
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#1b303a;background:#f4f7f8;font-synthesis:none;--ink:#122b35;--muted:#73848b;--teal:#098a75;--line:#e2e9eb}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid #d6e0e3;border-radius:8px;background:white;padding:10px 15px;color:var(--ink);font-size:13px;font-weight:600}button:hover{background:#edf4f3}button:disabled{opacity:.5;cursor:wait}a{color:var(--teal);text-decoration:none}p{line-height:1.7}h1,h2,h3,p{margin-top:0}h1{font-size:29px;letter-spacing:-1px;margin-bottom:10px}h2{font-size:22px}h3{font-size:15px}small,.muted{color:var(--muted)}[hidden]{display:none!important}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:#087464}.primary span{margin-left:25px}.quiet{background:transparent;border:0;color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--teal)}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:white}.login-story{background:#102d37;color:white;padding:12vh 12%;display:flex;flex-direction:column;align-items:flex-start;background-image:radial-gradient(ellipse at 80% 70%,#1c4d50,transparent 70%)}.login-story .eyebrow{color:#7bd6c6;margin-top:55px}.login-story h1{font-size:clamp(40px,5vw,66px);line-height:1.12;margin-top:24px;letter-spacing:-2px;font-weight:600}.login-story p{max-width:390px;color:#a8c2c8;font-size:16px}.story-foot{margin-top:auto;padding-top:80px;font-size:11px;color:#a8c2c8;width:100%}.story-foot span{float:right}.login-form{max-width:370px;width:100%;margin:auto;padding:40px 10px}.login-form h2{margin-top:20px;font-size:26px}.login-form>p{font-size:14px;margin-bottom:32px}.login-form button{width:100%;margin:12px 0 18px}.login-form>a{font-size:12px}label{display:block;font-size:12px;font-weight:600;margin:18px 0;color:#435a64}input,select,textarea{display:block;width:100%;border:1px solid #d5e0e4;border-radius:7px;padding:11px 12px;margin-top:8px;background:white;color:var(--ink)}textarea{min-height:100px;resize:vertical}.error{color:#b63737;font-size:13px}.shell{display:grid;grid-template-columns:226px 1fr;min-height:100vh}aside{background:#102b35;color:white;padding:33px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;color:white;padding:0 11px;margin-bottom:42px;font-size:15px;line-height:1.3}.brand b{font-weight:500;color:#9ec0c5}.nav-label{font-size:9px;letter-spacing:1.7px;color:#72929b;padding:0 15px;margin:20px 0 12px}nav a{display:flex;gap:13px;align-items:center;color:#9bb6bf;margin:4px 0;padding:13px 15px;border-radius:7px;font-size:18px}nav span{font-size:12px;font-weight:500}nav a:hover,nav a.active{background:#1c424b;color:#c5fff2}nav a.active{box-shadow:inset 3px 0 #2fc4a4}.sidebar-foot{margin-top:auto;border-top:1px solid #27464f;padding:22px 10px 0;font-size:11px;color:#b6cbd0;line-height:2}.sidebar-foot small{font-size:9px;color:#7798a2}.status-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:#24bf9e;margin-right:6px}.workspace{min-width:0}.topbar{height:75px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px}.topbar>span{font-size:9px;letter-spacing:1.8px;color:#89999f}.topbar>div{display:flex;gap:10px;align-items:center;font-size:12px}.user-avatar{background:#edf5f3;border:1px solid #d9e9e5;border-radius:50%;width:29px;height:29px;display:grid;place-items:center;color:var(--teal);font-weight:bold}main{padding:36px 38px;min-height:calc(100vh - 135px);max-width:1600px;margin:auto}footer{border-top:1px solid var(--line);font-size:10px;color:#8d9ba2;padding:20px 38px;display:flex;justify-content:space-between}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:15px}.page-head p{font-size:13px;margin:0;color:var(--muted)}.page-head .eyebrow{display:block;margin-bottom:12px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.stat{border:1px solid var(--line);background:white;padding:23px;border-radius:11px}.stat-label{color:#6c828c;font-size:11px}.stat strong{display:block;font-size:34px;font-weight:600;letter-spacing:-1px;margin:15px 0 9px}.stat small{font-size:10px}.stat.warning strong{color:#bb5939}.stat.good strong{color:var(--teal)}.panel{background:white;border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-bottom:24px}.panel-head{padding:21px 23px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-head h3{margin:0}.panel-head small{font-size:11px}.panel-body{padding:24px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{background:#fafcfc;color:#89999f;text-transform:uppercase;font-size:9px;letter-spacing:1px;padding:15px 22px;font-weight:600}td{padding:18px 22px;border-top:1px solid #edf1f2;line-height:1.5}td strong{font-weight:600}td small{display:block;font-size:10px;margin-top:3px}tr:hover td{background:#fafdfc}.badge{display:inline-block;border-radius:5px;padding:4px 7px;font-size:9px;font-weight:600;background:#eef2f4;color:#677d89;white-space:nowrap}.badge.COMPLIANT,.badge.RESOLVED{background:#e7f5ee;color:#28835b}.badge.NON_COMPLIANT,.badge.CRITICAL,.badge.overdue{background:#fff0ed;color:#c25140}.badge.PARTIALLY_COMPLIANT,.badge.HIGH,.badge.OPEN{background:#fff6e6;color:#ae8125}.badge.IN_PROGRESS{background:#e9f1ff;color:#4074b0}.badge.RISK_ACCEPTED{background:#f0eafb;color:#7752ab}.empty{padding:65px 25px;text-align:center;color:var(--muted);font-size:13px}.empty h3{color:#435e69;margin:15px 0 8px}.empty-symbol{font-size:32px;color:#bdd3d2}.empty button{margin-top:14px}.two-col{display:grid;grid-template-columns:1.7fr 1fr;gap:24px}.notice{border:1px solid #d6e8e4;background:#f0f8f5;color:#45766a;border-radius:9px;padding:16px 20px;font-size:12px;line-height:1.7;margin-bottom:24px}.step{display:flex;gap:15px;margin-bottom:24px}.step>span{flex:none;background:#eaf4f1;color:var(--teal);border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font-size:12px}.step h3{margin:2px 0 6px}.step p{font-size:12px;color:var(--muted);margin:0}.score{font-weight:700;font-variant-numeric:tabular-nums}.score.good{color:var(--teal)}.score.bad{color:#bd6449}meter{width:75px;height:6px;margin-left:10px;accent-color:var(--teal)}.filter{width:190px;padding:8px;margin:0;font-size:12px}.filters{display:flex;gap:8px;flex-wrap:wrap}.search{width:240px;margin:0;padding:8px 12px;font-size:12px}.back{display:block;font-size:12px;margin-bottom:20px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.detail-grid div{font-size:13px}.detail-grid small{display:block;margin-bottom:6px}.token{word-break:break-all;background:#f0f5f5;padding:18px;border-radius:6px;font:13px monospace;display:block;margin:16px 0}pre{white-space:pre-wrap;word-break:break-word;background:#f0f5f5;padding:16px;border-radius:6px;font-size:12px;line-height:1.7}code{font:12px Consolas,monospace}.check-row{display:flex;align-items:center;gap:10px;font-size:12px}.check-row input{width:auto;margin:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}dialog{border:1px solid var(--line);border-radius:14px;max-width:650px;width:calc(100% - 32px);padding:32px;box-shadow:0 25px 90px #102b3530;color:var(--ink)}dialog::backdrop{background:#102b3577;backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:14px;top:10px;font-size:23px;border:0;background:none;color:#84969d;padding:5px 10px}dialog h2{margin-right:22px}dialog p{font-size:13px;color:var(--muted)}.toast{position:fixed;bottom:25px;right:25px;background:#173c43;color:white;padding:15px 22px;border-radius:9px;box-shadow:0 5px 25px #0002;font-size:13px;max-width:450px;z-index:20}.safety-row{padding:15px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:12px}.catalog-count{font-size:11px;color:var(--muted)}.enroll-wrap{max-width:850px;margin:60px auto;padding:24px}.enroll-wrap .brand{color:var(--ink)}details{font-size:12px}summary{cursor:pointer;color:var(--teal)}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}main{padding:28px 24px}.topbar{padding:0 24px}}@media(max-width:760px){.login-layout{grid-template-columns:1fr}.login-story{padding:40px 28px}.login-story h1{font-size:40px}.login-story .eyebrow{margin-top:24px}.story-foot{padding-top:24px}.login-form{padding:35px 24px;max-width:450px}.shell{grid-template-columns:1fr}aside{position:static;height:auto;padding:16px}.brand{margin-bottom:15px}.nav-label,.sidebar-foot{display:none}nav{display:flex;flex-wrap:wrap}nav a{padding:8px 11px}nav span{font-size:11px}.page-head{align-items:flex-start;flex-direction:column}.topbar>span{display:none}.topbar{height:55px;justify-content:flex-end}.stats{gap:12px}.stat{padding:16px}.stat strong{font-size:28px}main{padding:24px 16px}.detail-grid{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}.form-row{grid-template-columns:1fr}footer span{display:none}.search,.filter{width:100%}}

/* Bonsai-inspired typography and geometry. Existing product colors retained. */
@font-face{font-family:Geist;src:url('/static/fonts/Geist.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{font-family:Geist,"Segoe UI",Arial,sans-serif;font-optical-sizing:auto}
body{-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:500;text-wrap:balance}
h1{font-size:34px;line-height:1.15;letter-spacing:-1.25px}
h2{font-size:26px;letter-spacing:-.8px}h3{font-size:16px;letter-spacing:-.3px}
button{border-radius:999px;padding:11px 19px;font-weight:500;transition:background .15s,box-shadow .15s}
input,select,textarea{border-radius:10px;min-height:42px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--teal)}
.eyebrow{font-size:11px;letter-spacing:1.3px;font-weight:500}
.page-head{margin-bottom:36px}.page-head p{font-size:14px;max-width:660px}
.panel,.stat{border-radius:16px;box-shadow:0 3px 12px #122b3503}
.panel-head{padding:24px 26px}.panel-body{padding:28px}
.stat{padding:26px}.stat-label{font-size:12px}.stat strong{font-size:40px;font-weight:500;letter-spacing:-1.8px;font-variant-numeric:tabular-nums}
.stat small{font-size:11px}.stats{gap:20px;margin-bottom:32px}
table{font-size:13px}th{font-size:10px;letter-spacing:.6px;padding:16px 24px}td{padding:20px 24px}td small{font-size:11px}
.badge{border-radius:999px;font-size:10px;padding:5px 9px;font-weight:500}
nav a{border-radius:10px;gap:12px;padding:13px 14px}nav span{font-size:13px}
.nav-icon{width:19px;height:19px;flex:none;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.brand{font-size:16px;letter-spacing:-.35px}.brand b{font-weight:400}
.topbar{height:80px}.topbar>span{font-size:10px;letter-spacing:1.2px}
main{padding-top:40px}.notice{border-radius:12px}.empty{padding:64px 28px}.empty-symbol .nav-icon{width:44px;height:44px;stroke-width:1}
.login-story{padding:8vh 10%;background-image:none}.login-story .eyebrow{margin-top:42px}
.login-story h1{font-size:clamp(40px,4.5vw,64px);font-weight:500;line-height:1.08;letter-spacing:-2.7px;margin-top:20px}
.login-story p{font-size:16px;line-height:1.65}.story-foot{padding-top:28px;font-size:10px}
.login-form{max-width:410px;padding:44px 20px}.login-form h2{font-size:30px;letter-spacing:-1px}.login-form>p{line-height:1.6}
.security-visual{width:100%;max-width:390px;height:auto;margin:20px 0 12px;opacity:.95}
.login-form button{min-height:48px}.login-form label{font-size:13px;font-weight:500}
.enroll-wrap{max-width:900px}.enroll-wrap h1{font-size:42px;letter-spacing:-1.5px}.step{gap:20px;margin-bottom:30px}
.step>span{width:32px;height:32px}.step p{font-size:13px}.step:last-child{margin-bottom:0}
.topbar>div{min-width:0;flex-wrap:wrap}.topbar select{max-width:280px}
@media(max-width:1100px){.stat strong{font-size:34px}.login-story{padding:7vh 8%}}
@media(max-width:760px){h1{font-size:29px}.login-story{padding:32px 28px}.login-story .eyebrow{margin-top:24px}.login-story h1{font-size:42px;letter-spacing:-1.6px}.security-visual{display:none}.login-form{padding:36px 26px}.topbar{height:auto;min-height:64px;padding:12px 16px}.topbar select{max-width:210px}.page-head{margin-bottom:26px}.panel-head,.panel-body{padding:20px}.stat{padding:18px}.stat strong{font-size:30px}.stats{gap:12px}.enroll-wrap{margin:24px auto;padding:16px}.enroll-wrap h1{font-size:32px}nav span{font-size:12px}nav a{padding:10px}.story-foot{padding-top:12px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
.question-card{border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:12px}.question-card summary{display:list-item;line-height:1.6}.question-card summary .badge{margin-left:10px}.question-card p{font-size:13px;margin:16px 0}.question-card li{font-size:12px;margin:8px 0;overflow-wrap:anywhere}.question-card .actions{margin-top:18px}.table-wrap table{min-width:620px}dialog{max-height:90vh;overflow-y:auto}
.company-logo{width:32px;height:32px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:white;vertical-align:middle;margin-right:10px}.company-logo.large,.company-placeholder{width:72px;height:72px;flex:none;border-radius:16px}.company-placeholder{display:grid;place-items:center;background:#edf5f3;color:var(--teal);font-size:24px}.company-profile{display:flex;gap:18px;align-items:center;overflow-wrap:anywhere}.company-profile h3{margin-bottom:8px}.template-controls{max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:8px 16px}.template-control{margin:0;padding:10px 0;border-bottom:1px solid var(--line)}.template-control small{display:block;font-weight:400;margin-top:5px}.template-control input{flex:none}

.brand span{font-size:22px;font-weight:600;letter-spacing:-.7px}.brand b{display:inline-block;font-size:11px;line-height:1.35;max-width:130px;letter-spacing:0;font-weight:400}

/* Accessible portal selection on the shared login. */
.portal-options{border:0;padding:0;margin:24px 0 16px;min-width:0}.portal-options legend{font-size:13px;color:var(--muted);margin-bottom:8px}.login-form .portal-options label{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:12px;padding:14px;margin:8px 0;cursor:pointer}.portal-options label:has(input:checked){border-color:var(--teal);background:#f0f8f5;box-shadow:0 0 0 1px var(--teal)}.portal-options input{width:17px;height:17px;flex:none;margin:0;accent-color:var(--teal)}.portal-options strong,.portal-options small{display:block}.portal-options small{font-size:11px;font-weight:400;line-height:1.5;margin-top:4px}.login-form #portal-help{font-size:12px;margin-bottom:16px}.login-form{max-width:440px}
