:root{--bg:#f3f5f7;--ink:#17202a;--muted:#6b7782;--line:#dce3e8;--blue:#2563eb;--green:#16834b;--red:#c43d3d}
*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;font:14px Arial;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#17202a}.box{width:430px;background:#fff;padding:28px;border-radius:14px}
.logo{font-size:28px;font-weight:800}.muted{color:var(--muted);font-size:12px}label{display:block;margin:10px 0 4px;color:var(--muted);font-size:12px}
input,select{width:100%;padding:9px;border:1px solid #cbd4dc;border-radius:7px}.btn{padding:8px 11px;border:1px solid #cbd4dc;border-radius:7px;background:#fff;cursor:pointer}.primary{background:var(--blue);border-color:var(--blue);color:#fff}
#app{display:none}header{height:62px;background:#17202a;color:#fff;display:flex;align-items:center;padding:0 22px;gap:12px}.brand{font-size:20px;font-weight:800}.pill{font-size:11px;background:#344452;padding:5px 8px;border-radius:14px}.who{margin-left:auto}
.layout{display:flex;min-height:calc(100vh - 62px);min-width:0}aside{width:220px;flex:0 0 220px;background:#fff;border-right:1px solid var(--line);padding:13px}aside button{width:100%;border:0;background:transparent;text-align:left;padding:10px;border-radius:7px}.navon{background:#eaf2ff!important;color:#1557b0;font-weight:bold}
main{flex:1;min-width:0;width:100%;padding:23px;max-width:1500px;margin:auto}.page{display:none;min-width:0}.page.on{display:block}.card{min-width:0;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kpi{font-size:23px;font-weight:800;margin:5px 0}
.collapsible{padding:0}.collapsible>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer;user-select:none}.collapsible>summary::-webkit-details-marker{display:none}.collapsible>summary:before{content:'›';font-size:24px;line-height:16px;color:var(--muted);transition:transform .15s}.collapsible[open]>summary:before{transform:rotate(90deg)}.sectionTitle{font-size:18px;font-weight:700}.sectionSummary{margin-left:auto;color:var(--muted);font-size:12px;text-align:right}.sectionBody{padding:0 16px 16px;border-top:1px solid var(--line)}.collapsible.attention>summary{background:#fff7e6;border-radius:11px}.collapsible.attention .sectionSummary{color:#9a5b00;font-weight:bold}
table{width:100%;border-collapse:collapse}th,td{padding:9px;border-bottom:1px solid #e3e8ec;text-align:left;overflow-wrap:anywhere}th{font-size:12px;color:var(--muted)}tr.click{cursor:pointer}tr.click:hover{background:#f7f9fb}.responsiveTable{display:block;width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.responsiveTable>table{width:100%}.routeTable,.assignmentTable{table-layout:fixed;min-width:900px}.routeTable th:nth-child(3),.routeTable td:nth-child(3){width:34%}.assignmentTable th:nth-child(2),.assignmentTable td:nth-child(2){width:38%}.assignmentTable th:last-child,.assignmentTable td:last-child{width:190px}.instructionCell{white-space:normal;line-height:1.4}.actionStack{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:170px}.actionStack .btn{width:100%;white-space:normal;margin:0}
.routeDesigner{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:16px;align-items:start}.processPanel{width:auto;border:1px solid var(--line);border-radius:9px;padding:12px;max-height:720px;overflow:auto}.processPanel button{width:100%;text-align:left;margin:3px 0}.filterRow{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:9px}.filterRow .btn{width:auto;font-size:11px}.routeHead{padding:8px;background:#f5f7fa;border-radius:7px;color:var(--muted);font-size:12px}.routeRow{display:grid;grid-template-columns:38px minmax(125px,.8fr) minmax(165px,1.2fr) minmax(145px,1fr) 100px 92px 16px 92px;gap:7px;align-items:end;margin:9px 0;padding-bottom:9px;border-bottom:1px solid var(--line)}.routeRow label{margin:0}.routeControls{grid-column:2/-1;width:100%;display:flex;flex-wrap:wrap;gap:4px}.routeControls .btn{width:auto;min-width:86px;padding:7px 8px;text-align:center;font-size:11px}.subcard{margin-top:18px;padding:13px;border:1px dashed #b9c4cc;border-radius:9px}.success,.failure,.notice{padding:11px;border-radius:8px;margin-top:10px}.success{background:#edf9f2;border:1px solid #b9e3c9}.failure{background:#fff0f0;border:1px solid #efb0b0}.notice{background:#fff7e6;border:1px solid #f0d18d}
.securityFeaturePanel{position:relative;overflow:hidden;border-color:#b7c9d6;background:linear-gradient(135deg,#fff 0%,#f4f9fb 55%,#f8f5ff 100%)}.securityFeaturePanel:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.22;background:repeating-radial-gradient(ellipse at 100% 0,#6e92a9 0 1px,transparent 1px 8px)}.securityFeaturePanel>*{position:relative}.securityFeatureHeader,.securityFeatureCardHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.securityFeatureHeader{padding-bottom:12px;border-bottom:1px solid #cbd9e2}.securityFeatureHeader h2,.securityFeatureCardHeader h3{margin:0}.securityFeatureEyebrow{margin:0 0 4px;color:#496b80;font-size:10px;font-weight:800;letter-spacing:.16em}.securityFeatureReadOnly,.securityFeatureCode,.securityFeatureStatus,.securityRelationPurpose{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.08em}.securityFeatureReadOnly{padding:5px 8px;border:1px solid #8aa7b9;border-radius:4px;color:#36576b;background:#fff}.securityFeatureGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:14px}.securityFeatureCard{min-width:0;padding:15px;border:1px solid #bdced9;border-left:4px solid #436c83;border-radius:8px;background:rgba(255,255,255,.92);box-shadow:0 3px 12px rgba(31,59,75,.06)}.securityFeatureCode{margin-bottom:5px;color:#4b6879}.securityFeatureStatus{padding:5px 8px;border-radius:999px;border:1px solid #9aabb5;background:#f4f6f7;color:#33434c;white-space:nowrap}.securityFeatureStatus.ready-for-approval{border-color:#b78a33;background:#fff8e5;color:#704e0a}.securityFeatureStatus.approved{border-color:#3b8462;background:#edf8f2;color:#215e43}.securityFeatureStatus.verified{border-color:#3f6fa0;background:#edf5fc;color:#234f79}.securityFeatureContent{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.securityFeatureContent section{padding:10px;border:1px solid #dde6eb;border-radius:6px;background:#fbfcfd}.securityFeatureContent h4,.securityFeatureRelevance h4{margin:0 0 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#526a78}.securityFeatureContent p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.securityFeatureRelevance{margin-top:12px}.securityFeatureRelevance ul{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}.securityFeatureRelation{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #c8d5dd;border-radius:5px;background:#f5f8fa}.securityFeatureRelation.instruction{border-left:4px solid #2c7881}.securityFeatureRelation.verification{border-left:4px double #715e9b}.securityRelationPurpose{color:#415c6b}.securityFeatureRelation.verification .securityRelationPurpose{color:#5d477f}.securityFeatureRelation.none{color:var(--muted);font-size:12px}.securityFeatureEmpty{display:flex;flex-direction:column;gap:5px;margin-top:14px;padding:20px;border:1px dashed #9fb5c2;border-radius:7px;text-align:center;background:rgba(255,255,255,.75)}.securityFeatureEmpty span{color:var(--muted);font-size:12px}
.securityFeatureCreate{margin-top:14px}.securityFeatureCreate>summary{display:inline-block;list-style:none}.securityFeatureCreate>summary::-webkit-details-marker{display:none}.securityFeatureEditor{margin-top:10px;padding:14px;border:1px solid #b9cbd6;border-radius:7px;background:rgba(255,255,255,.92)}.securityFeatureEditor textarea{display:block;width:100%;min-height:96px;resize:vertical;padding:9px;border:1px solid #cbd4dc;border-radius:7px;font:inherit}.securityFeatureEditor input:focus,.securityFeatureEditor textarea:focus,.securityFeatureCreate>summary:focus,.securityFeatureDraftEditor>summary:focus{outline:3px solid rgba(37,99,235,.3);outline-offset:2px}.securityFeatureCheck{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:13px}.securityFeatureCheck input{width:auto}.securityFeatureDraftEditor{margin-top:14px;border-top:1px solid #cad8e0;padding-top:12px}.securityFeatureDraftEditor>summary{cursor:pointer;color:#315c74;font-weight:700}.securityFeatureDraftEditor .securityFeatureEditor>section+section{margin-top:14px;padding-top:14px;border-top:1px solid #d8e2e8}
.securityFeatureRelationEditor ul{display:flex;flex-direction:column;align-items:stretch;gap:7px;margin:0 0 12px;padding:0;list-style:none}.securityFeatureRelationEditor .securityFeatureRelation{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;width:100%;max-width:100%}.securityFeatureRelationEditor .securityFeatureRelation>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.securityFeatureRelationEditor .securityFeatureRelation .btn{min-width:0;width:auto;max-width:100%;white-space:nowrap;justify-self:end;flex-shrink:0}.securityFeatureRelationEditor select:focus{outline:3px solid rgba(37,99,235,.3);outline-offset:2px}
.securityFeatureSubmit{border:1px solid #b78a33;border-radius:7px;padding:12px;background:#fffaf0}.securityFeatureSubmit p{margin:0 0 10px;color:#5f4a20}.securityFeatureSubmit .btn{width:auto}
.securityFeatureGovernedRevision{margin-top:14px;padding:13px;border:1px solid #b78a33;border-radius:7px;background:#fffaf0}.securityFeatureGovernedRevision>p{margin:0 0 10px;color:#5f4a20;line-height:1.45}.securityFeatureGovernedRevisionAction{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.securityFeatureGovernedRevisionAction>*{min-width:0;max-width:100%}.securityFeatureGovernedRevisionAction label{width:100%;margin:0}.securityFeatureGovernedRevisionAction .btn{width:auto;white-space:normal;justify-self:start}.securityFeatureGovernedRevisionAction input:focus{outline:3px solid rgba(37,99,235,.3);outline-offset:2px}
.securityFeatureQcReview{margin-top:14px;padding:13px;border:1px solid #8aa7b9;border-radius:7px;background:#f4f9fb}.securityFeatureQcReview>p{margin:0 0 10px}.securityFeatureQcActions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}.securityFeatureQcActions>*{min-width:0;max-width:100%}.securityFeatureQcActions label{width:100%;margin:0}.securityFeatureQcActions .btn{width:auto;max-width:100%;white-space:normal;justify-self:start}.securityFeatureQcActions input:focus{outline:3px solid rgba(37,99,235,.3);outline-offset:2px}
@media(max-width:1100px){.routeDesigner{grid-template-columns:1fr}.routeRow{grid-template-columns:38px minmax(0,1fr) minmax(0,1fr)}.routeControls{grid-column:2/-1;width:100%;display:flex;flex-wrap:wrap}.routeControls .btn{min-width:86px}.processPanel{max-height:none}}@media(max-width:900px){.grid,.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:700px){header{height:auto;min-height:62px;padding:10px 12px;flex-wrap:wrap}.brand{font-size:18px}.who{width:100%;margin-left:0;overflow-wrap:anywhere}.layout{display:block;min-height:0}.layout>aside{width:100%;padding:7px 10px;border-right:0;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:4px}.layout>aside button{width:auto;flex:1 1 120px;text-align:center;padding:8px}main{padding:12px}.grid,.two,.securityFeatureContent,.securityFeatureQcActions{grid-template-columns:minmax(0,1fr)}.card{padding:12px}.collapsible>summary{align-items:flex-start;flex-wrap:wrap;padding:12px}.sectionTitle{font-size:16px;min-width:0;overflow-wrap:anywhere}.sectionSummary{width:100%;margin-left:36px;text-align:left}.sectionBody{padding:0 12px 12px}.routeRow{grid-template-columns:32px minmax(0,1fr)}.routeRow>*:not(:first-child){grid-column:2}.routeControls{grid-column:2}.routeControls .btn{flex:1 1 110px}.routeTable,.assignmentTable{min-width:780px}.actionStack{min-width:150px}.securityFeatureGrid{grid-template-columns:minmax(0,1fr)}.securityFeatureHeader,.securityFeatureCardHeader{align-items:stretch;flex-direction:column}.securityFeatureReadOnly,.securityFeatureStatus{align-self:flex-start}}
.closureReport{font-size:12px}.closureReport h1{margin:0 0 4px}.closureReport h2{margin:24px 0 7px;border-bottom:2px solid var(--line);padding-bottom:5px}.closureReport .grid{margin:14px 0}.closureReport .reportEnd{margin-top:28px;padding-top:10px;border-top:2px solid var(--ink)}.closureReport th,.closureReport td{overflow-wrap:break-word;word-break:normal;vertical-align:top}.routeReportTable th:nth-child(1),.routeReportTable td:nth-child(1){width:4%}.routeReportTable th:nth-child(2),.routeReportTable td:nth-child(2){width:54%}.routeReportTable th:nth-child(3),.routeReportTable td:nth-child(3){width:13%}.routeReportTable th:nth-child(4),.routeReportTable td:nth-child(4){width:8%}.routeReportTable th:nth-child(5),.routeReportTable td:nth-child(5){width:13%}.routeReportTable th:nth-child(6),.routeReportTable td:nth-child(6){width:8%}.auditReportTable th:nth-child(1),.auditReportTable td:nth-child(1){width:16%;white-space:nowrap}.auditReportTable th:nth-child(2),.auditReportTable td:nth-child(2){width:17%}.auditReportTable th:nth-child(3),.auditReportTable td:nth-child(3){width:67%}
@page{size:A4 landscape;margin:10mm}@media print{body{background:#fff}header,aside,#detail>button,#detail>h1,#detail>.grid,#detail>.card:not(#closureReportPanel),#closureReportAccess{display:none!important}.layout,main,#detail,#closureReportPanel{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important}.closureReport{font-size:8pt}.closureReport .muted{font-size:7pt}.closureReport h1{font-size:18pt}.closureReport h2{font-size:12pt;margin-top:14px}.closureReport th,.closureReport td{padding:4px 5px;line-height:1.25}.closureReport table{page-break-inside:auto;table-layout:auto}.closureReport thead{display:table-header-group}.closureReport tr{page-break-inside:avoid;page-break-after:auto}.closureReport h2{page-break-after:avoid}.closureReport .responsiveTable{overflow:visible}.auditReportTable{break-before:page}.auditReportTable thead{display:table-row-group}.auditReportTable table{font-size:7.5pt}.quantityReportTable table{font-size:7.5pt}.closureReport .reportEnd{display:none}}
