:root{color-scheme:light;--navy:#061941;--ink:#152b4f;--muted:#65748b;--accent:#3a75d6;--accent-ink:#2d62b8;--line:#dce3ef;--paper:#f4f6fb;--white:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.5;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0} [hidden]{display:none!important}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #3a75d6;outline-offset:3px}button{border:1px solid transparent;border-radius:7px;min-height:42px;padding:9px 15px;background:transparent;color:inherit;transition:background .15s,border-color .15s}button:hover{background:#eaf0fb}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;line-height:1.2;margin-bottom:9px}h2{font-size:18px;line-height:1.35;margin-bottom:12px}p{margin-bottom:16px}small,.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.5px;color:var(--accent-ink);margin-bottom:10px}.primary{background:var(--navy);color:white;font-weight:650}.primary:hover{background:#143773}.secondary{border-color:#cbd9dd;background:white;font-weight:600}.quiet{font-size:12px;padding:9px 10px}.icon-button{font-size:26px;line-height:1;flex-shrink:0;width:42px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:12px;min-width:0;margin-bottom:17px}input,select,textarea{width:100%;min-width:0;background:#fff;border:1px solid #cbd8dd;border-radius:6px;padding:11px 12px;color:var(--ink);font-size:14px;min-height:44px}textarea{resize:vertical;line-height:1.6;max-height:320px}input::placeholder,textarea::placeholder{color:#80929a}label .muted{font-weight:400}form .form-error{color:#ad343c;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;margin:12px 0}.form-error:empty{display:none}
.wordmark{display:flex;align-items:center;gap:12px;font-weight:700;font-size:21px;letter-spacing:-.4px;line-height:1.1}.wordmark small{font-weight:450;color:#b9ccec;letter-spacing:.2px;font-size:12px}.brand-icon{display:grid;place-items:center;width:37px;height:42px;background:#3a75d6;color:#fff;border-radius:12px 12px 12px 3px;font-size:26px;font-weight:600;flex-shrink:0}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:var(--navy);color:white;padding:55px 11%;display:flex;flex-direction:column;justify-content:space-between;gap:70px}.login-story h1{font-size:clamp(38px,4.4vw,66px);letter-spacing:-2px;line-height:1.08;margin:18px 0 24px}.login-story p{max-width:420px;color:#c3d2ec;font-size:15px;line-height:1.8}.login-story .eyebrow{color:#a6c8ff;font-size:11px}.login-story .small{font-size:12px}.story-line{width:55px;height:3px;background:#3a75d6;margin:36px 0}.login-panel{display:grid;place-items:center;padding:44px}.login-card{width:100%;max-width:380px}.login-card h2{font-size:25px;letter-spacing:-.6px}.login-card>button{width:100%;margin:6px 0 22px}.login-card>.muted{margin-bottom:28px}
.workspace{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#d0dcf0;padding:30px 20px;display:flex;flex-direction:column;position: sticky;top:0;height:100vh}.sidebar .wordmark{margin:5px 10px 44px;color:white}.nav-label{font-size:9px;letter-spacing:1.7px;color:#99afd0;margin:0 12px 13px}.sidebar nav{display:grid;gap:7px}.nav{display:flex;align-items:center;gap:12px;text-align:left;width:100%;color:#becdeb;font-size:13px;padding:12px 13px}.nav.active{color:#fff;background:#173362;border-left:3px solid #83b2ff}.nav:hover{background:#173362;color:white}.sidebar-bottom{margin-top:auto;font-size:11px;padding:22px 12px 0;color:#bfcee7}.sidebar-bottom p{font-size:10px;color:#9eafd0;line-height:1.8;margin:17px 0 0}.local-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#58c9ad;margin-right:5px}.main-shell{min-width:0}.topbar{min-height:76px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 34px}.breadcrumb{font-size:9px;letter-spacing:1.5px;color:#798e98;white-space:nowrap}.breadcrumb span{padding:0 10px;color:#b7c8cd}.account-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.account-tools>span{font-size:11px;overflow-wrap:anywhere;max-width:240px}main{padding:32px 34px;max-width:1700px;margin:0 auto;min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.page-heading p:last-child{margin-bottom:0}.page-heading>.secondary{flex-shrink:0}.notice{display:flex;gap:12px;background:#edf3fd;border:1px solid #d4e1f5;border-radius:7px;padding:12px 15px;color:#496486;font-size:11px;line-height:1.6;margin-bottom:23px}.notice strong{color:#2d62b8;white-space:nowrap}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:27px}.summary-card{background:white;border:1px solid var(--line);border-radius:9px;padding:17px 19px;display:flex;flex-direction:column;border-top:3px solid #b7c9d0}.summary-card>span{font-size:11px;font-weight:650;color:#647a86}.summary-card strong{font-size:28px;line-height:1.4;color:var(--navy);font-weight:650;letter-spacing:-.8px}.summary-card small{font-size:10px;color:#91a0a8}.summary-card.in-progress{border-top-color:#d7ac56}.summary-card.completed{border-top-color:#4da997}.summary-card.rejected{border-top-color:#cf8084}.toolbar{display:flex;align-items:center;gap:15px;margin-bottom:23px}.toolbar label{margin:0}.search{flex:1;max-width:450px}.filter-label{flex-direction:row;align-items:center;gap:10px;color:var(--muted)}.filter-label select{max-width:245px}.toolbar>#result-count{margin-left:auto;white-space:nowrap}.state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.state-card{background:white;border:1px solid var(--line);padding:18px;text-align:left;min-width:0;border-radius:9px}.state-card:hover,.requirement-card:hover{background:#fcffff;border-color:#8babde;box-shadow:0 3px 12px #13344309}.state-card-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.state-code{display:grid;place-items:center;background:#eef4f5;border:1px solid #e2ecee;border-radius:7px;height:35px;width:40px;font-size:12px;font-weight:700;letter-spacing:1px;color:#52727d}.state-arrow{color:#95aeb7}.state-card h2{font-size:15px;margin-bottom:5px}.state-card p{margin-bottom:9px;font-size:11px}.state-card progress{display:block;width:100%;height:4px;border:0;border-radius:10px;overflow:hidden;background:#edf1f3;accent-color:#239984}.state-card progress::-webkit-progress-bar{background:#edf1f3}.state-card progress::-webkit-progress-value{background:#239984}.state-counts{display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:12px;min-height:17px;font-size:9px;color:#72858f}.state-counts .in-progress{color:#9e7835}.state-counts .rejected{color:#b05059}.workspace-foot{color:#8b9ca5;font-size:10px;margin:30px 0 0;line-height:1.7}.panel-caption{display:flex;justify-content:space-between;gap:20px;padding:17px;background:white;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0}.panel-caption strong{font-size:12px}.table-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:0 0 8px 8px;background:white;overscroll-behavior-x:contain}table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}th,td{text-align:left;border-bottom:1px solid #e7edef;padding:12px;vertical-align:middle}thead th{background:#edf3f5;color:#5a727e;font-size:10px;font-weight:700}#matrix th{min-width:165px;max-width:205px}#matrix thead th{height:74px;text-align:center}#matrix tbody th,#matrix thead th:first-child{position: sticky;left:0;background:white;z-index:1;border-right:1px solid var(--line)}#matrix thead th:first-child{background:#edf3f5;z-index:2}#matrix td{padding:4px 8px}.matrix-cell{width:100%;min-width:145px;padding:7px}.badge{display:inline-block;font-size:10px;padding:4px 9px;border-radius:5px;white-space:nowrap;background:#edf1f5;color:#62788b;font-weight:600}.badge.in-progress{background:#fcf2de;color:#9d711f}.badge.completed{background:#e2f3ed;color:#2c8066}.badge.rejected{background:#fae9e9;color:#ac4d55}.state-link{font-size:12px;padding:4px 0;text-align:left}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:18px}.requirement-card{text-align:left;background:white;border:1px solid var(--line);padding:21px;min-width:0}.requirement-card .eyebrow{font-size:8px;letter-spacing:1px}.requirement-card h2{font-size:16px;overflow-wrap:anywhere}.requirement-preview{color:#748892;font-size:12px;line-height:1.6;margin:15px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.panel{padding:25px;background:white;border:1px solid var(--line);border-radius:9px;min-width:0}.panel>p{font-size:12px}.panel form{max-width:480px}.user-list{margin-top:23px;border-top:1px solid var(--line)}.user-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.user-row>span:first-child{overflow-wrap:anywhere;min-width:0}.audit-panel{margin-top:22px}.audit-panel table{min-width:650px}.audit-panel td{overflow-wrap:anywhere;max-width:260px}
dialog{border:1px solid var(--line);border-radius:13px;box-shadow:0 25px 100px #06194144;padding:27px;width:min(650px,calc(100% - 32px));max-height:calc(100dvh - 36px);overflow-y:auto;color:var(--ink);overscroll-behavior:contain}dialog::backdrop{background:#06194199;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:18px}.dialog-heading h2{font-size:21px;margin-bottom:0;overflow-wrap:anywhere}.dialog-heading .eyebrow{font-size:9px}.dialog-heading>.icon-button{margin-top:-8px;margin-right:-10px}.compact{font-size:10px;gap:8px;margin-bottom:18px}.edit-meta{display:flex;flex-wrap:wrap;gap:6px 12px;padding:12px;background:#f2f6f7;border-radius:6px;font-size:10px;color:var(--muted);overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:20;background:var(--navy);color:white;box-shadow:0 6px 26px #06194133;padding:13px 20px;border-radius:8px;max-width:calc(100vw - 32px);width:max-content;overflow-wrap:anywhere;font-size:12px;pointer-events:none}.loading{min-height:100vh;display:grid;place-items:center;color:var(--accent-ink)}.empty{padding:25px;color:var(--muted)}
@media(min-width:1550px){.state-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1150px){.workspace{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:25px 12px}.topbar{padding:13px 22px}.breadcrumb{display:none}main{padding:25px 22px}.state-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{flex-wrap:wrap}.search{max-width:none}.toolbar>#result-count{width:100%;margin:0}.account-tools{margin-left:auto}}
@media(max-width:760px){.workspace{display:block}.sidebar{position:static;height:auto;padding:15px 18px 10px}.sidebar .wordmark{margin:0 0 15px;font-size:18px}.sidebar .wordmark br{display:none}.sidebar .wordmark small{margin-left:6px}.sidebar .brand-icon{width:28px;height:32px;font-size:21px;border-radius:8px}.nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;flex-wrap:wrap;gap:6px}.nav{width:auto;flex:1;padding:10px 9px;gap:6px;font-size:11px;justify-content:center;min-height:42px;white-space:nowrap}.nav.active{border-left:0;border-bottom:2px solid #83b2ff}.topbar{padding:10px 18px;min-height:60px}.account-tools{width:100%;flex-wrap:wrap;gap:3px;justify-content:flex-start}.account-tools>span{max-width:none;width:100%;font-size:10px}.quiet{min-height:42px}.account-tools .quiet{padding-left:0;padding-right:16px}main{padding:24px 18px}.page-heading{gap:10px;align-items:flex-start}.page-heading h1{font-size:25px}.page-heading .eyebrow{font-size:8px;letter-spacing:1px}.page-heading .muted{font-size:12px}.page-heading>.secondary{padding:9px 11px;font-size:11px}.notice{font-size:10px;padding:10px 12px;gap:9px}.summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:21px}.summary-card{padding:12px 15px}.summary-card strong{font-size:25px}.toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:11px}.filter-label{display:flex;justify-content:space-between}.filter-label select{max-width:275px;width:calc(100% - 70px)}.toolbar>#result-count{font-size:10px}.state-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.state-card{padding:13px}.state-card h2{font-size:13px}.state-card p{font-size:10px}.state-card-heading{margin-bottom:10px}.state-counts{font-size:8px;gap:4px}.state-code{height:29px;width:35px;font-size:10px}.panel-caption{flex-direction:column;gap:5px;padding:12px}.panel-caption .small{font-size:10px}.detail-grid,.admin-grid{grid-template-columns:minmax(0,1fr)}.panel{padding:20px}.requirement-card{padding:19px}dialog{padding:20px;max-height:calc(100dvh - 24px);width:calc(100% - 24px);border-radius:10px}dialog textarea{max-height:200px}.dialog-heading h2{font-size:18px}.dialog-heading .icon-button{margin-right:-7px}.dialog-actions{gap:8px}.dialog-actions button{flex:1;padding:10px}.login-layout{display:block}.login-story{padding:24px;gap:25px}.login-story>div:nth-child(2){display:none}.login-story>p{display:none}.login-panel{padding:35px 24px}.login-card{max-width:420px}.login-card h2{font-size:24px}.audit-panel .table-scroll{border-radius:6px}.user-row{font-size:11px}}
/* Keep both visual headings and the scrollbar outside the overflow viewport.
   The real thead retains table semantics and column sizing, under its inert mirror. */
.matrix-scroll-tools{position:sticky;top:0;z-index:3;background:var(--white);border:1px solid var(--line);box-shadow:0 3px 8px #0619410d;padding-top:8px}
#matrix-top-scroll{overflow-x:scroll;overflow-y:hidden;height:22px;margin:0 10px 8px;overscroll-behavior-x:contain}
#matrix-sticky-head{overflow:hidden}
#matrix-sticky-head table{table-layout:fixed}
#matrix-sticky-head th{height:74px;text-align:center}
#matrix-sticky-head th:first-child{position:sticky;left:0;z-index:2;border-right:1px solid var(--line);background:#edf3f5}
#matrix-panel{--matrix-head-height:74px}
#matrix-scroll{margin-top:calc(-1 * var(--matrix-head-height))}
#matrix thead{opacity:0;pointer-events:none}
#matrix-scroll-spacer{height:1px}
#matrix-top-scroll::-webkit-scrollbar{height:14px}
#matrix-top-scroll::-webkit-scrollbar-track{background:#edf1f5;border-radius:7px}
#matrix-top-scroll::-webkit-scrollbar-thumb{background:#65748b;border:3px solid #edf1f5;border-radius:7px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.cell-status-row{display:grid;grid-template-columns:minmax(125px,1fr) minmax(0,2fr);gap:12px}.cell-display{display:block;margin-top:6px;font-size:12px;font-weight:400;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.matrix-cell .cell-display{font-size:9.6px;max-width:155px;margin-left:auto;margin-right:auto}

/* Scofa.com: navy #061941, blue #3a75d6, original white SVG logo. */
.scofa-brand{flex-direction:column;align-items:flex-start;gap:10px}.scofa-logo{display:block;width:200px;max-width:100%;height:auto;flex-shrink:0}.product-name{font-size:13px;font-weight:500;letter-spacing:1.5px;color:#c3d2ec}.sidebar .scofa-logo{width:145px}.sidebar .product-name{font-size:11px}.login-story{justify-content:flex-start;gap:clamp(65px,12vh,150px)}
@media(max-width:760px){.login-story{gap:28px}.login-story .scofa-logo{width:155px}.sidebar .scofa-brand{flex-direction:row;align-items:center;gap:18px}.sidebar .scofa-logo{width:120px}.sidebar .product-name{font-size:12px}}
