:root{--blue:#2563eb;--navy:#172b4d;--muted:#69788c;--line:#e1e7ef;--bg:#f5f7fb;--white:#fff;--radius:10px}*{box-sizing:border-box}body{margin:0;font:15px/1.6 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--navy);background:var(--bg)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.35;margin:0 0 16px}h1{font-size:30px;letter-spacing:-.7px}h2{font-size:21px}h3{font-size:17px;margin-top:20px}p{margin:10px 0 18px}.navbar{padding:18px max(24px,calc((100% - 1240px)/2));background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{color:var(--navy);font-size:20px;font-weight:750;white-space:nowrap}.navbar nav,.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.navbar nav{font-size:14px}.navbar form{margin:0}.container{max-width:1240px;margin:36px auto;padding:0 24px;min-height:75vh}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0}.page-heading p{margin-bottom:0}.eyebrow{display:block;letter-spacing:2px;color:var(--blue);font-weight:700;font-size:11px;margin-bottom:12px}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin-bottom:24px;box-shadow:0 2px 4px #172b4d03;scroll-margin-top:20px}.subcard{border:1px solid var(--line);border-radius:8px;padding:18px;margin:20px 0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.equal:has(> :nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}.span-2{grid-column:span 2}.assessment-card{display:block;color:inherit;transition:box-shadow .15s,border-color .15s}.assessment-card:hover{text-decoration:none;border-color:#9cbafb;box-shadow:0 5px 20px #172b4d0a}.stats{display:flex;gap:32px;padding-top:15px;flex-wrap:wrap}.stats strong{display:block;font-size:29px;color:var(--blue)}.stats span{color:var(--muted);font-size:13px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:12px 0}.list-row:last-child{border-bottom:0}.list-row h2,.list-row h3{margin:0}.muted,small{color:var(--muted)}small{display:block;font-size:12px}.badge{display:inline-block;white-space:nowrap;background:#eff3fa;color:#52647f;border-radius:5px;padding:3px 9px;font-size:12px;font-weight:600}.success{background:#e8f6ef;color:#176b47}.warning{background:#fff5dc;color:#896018}.danger{background:#fff0f0;color:#a82d3d}.alert{padding:15px 18px;border-radius:7px;margin:20px 0}.text-danger,.required{color:#b53646}.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 15px;border:1px solid #ced8e5;border-radius:6px;background:#fff;color:var(--navy);font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;line-height:1.5}.btn:hover{background:#f3f6fb;text-decoration:none}.btn-primary{background:var(--blue);border-color:var(--blue);color:white}.btn-primary:hover{background:#1d4ed8}.btn-danger{color:#ae3544;border-color:#ebc8cf}.btn-sm{font-size:12px;padding:5px 10px}.full-width{width:100%}input,select,textarea{display:block;width:100%;border:1px solid #cbd5e1;background:#fff;color:var(--navy);border-radius:6px;padding:9px 11px;font:inherit;font-size:14px;min-width:0;line-height:1.5}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #b7d0ff;outline-offset:2px}textarea{min-height:84px;resize:vertical}input[type=checkbox]{display:inline-block;width:17px;height:17px;vertical-align:middle;accent-color:var(--blue)}label{display:block;font-size:13px;font-weight:600;margin:14px 0 7px}label input,label textarea,label select{margin-top:6px}input[type=file]{max-width:100%;padding:7px}form>.btn{margin-top:16px}.inline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:14px 0}.inline-form input,.inline-form select{flex:1;min-width:110px}.inline-form label{flex:1;margin:0;min-width:110px}.inline-form .btn{margin-top:0}.grow{flex:1;min-width:0}.check,.checks label{display:flex;align-items:center;gap:9px}.check input,.checks input{margin:0}.checks{display:flex;gap:24px;flex-wrap:wrap}.tabs{display:flex;gap:6px;flex-wrap:wrap;padding:8px;background:#eaf0f8;border-radius:8px;margin-bottom:28px}.tabs a{padding:8px 15px;font-size:14px;color:#395374}.tabs a:hover{background:white;border-radius:5px;text-decoration:none}.table-wrap{overflow-x:auto}.table-wrap table{min-width:620px}table{border-collapse:collapse;width:100%;font-size:14px;margin:16px 0}th{text-align:left;background:#f6f8fc;color:#63738a;font-size:12px;font-weight:600}th,td{border-bottom:1px solid var(--line);padding:13px 14px;vertical-align:top}tr:last-child td{border-bottom:0}.empty{text-align:center;padding:45px;color:var(--muted)}.empty h2{color:var(--navy)}details{margin:16px 0}summary{cursor:pointer;font-weight:600;color:#405a7d;padding:8px 0}pre,.code,code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f7fb;padding:14px;border-radius:6px}code{color:#405a88}.prose{white-space:pre-wrap;overflow-wrap:anywhere}.auth-card{max-width:450px;margin:80px auto;padding:36px}.auth-card .btn{margin-top:24px}.auth-card input{margin-bottom:20px}.extra{border-left:4px solid #43a77a}fieldset{border:0;margin:0;padding:0}fieldset:disabled{opacity:.6}footer{text-align:center;padding:24px;color:#8492a5;font-size:12px}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.rule-node{border-left:3px solid #c4d4ef;margin:12px 0;padding:10px 0 10px 15px}.rule-node>.inline-form{align-items:center}.rule-node .btn{font-size:12px}.rule-node input,.rule-node select{max-width:240px}.htmx-request{opacity:.65}.htmx-request .btn,button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}@media(max-width:850px){.grid,.grid.equal,.grid.equal:has(> :nth-child(3)){grid-template-columns:1fr}.span-2{grid-column:auto}.navbar{align-items:start;flex-direction:column;gap:14px}.navbar nav{gap:12px}.container{padding:0 16px;margin:24px auto}.card{padding:20px}.list-row{flex-wrap:wrap}.inline-form{gap:10px}.inline-form input{min-width:130px}.page-heading{align-items:start}h1{font-size:25px}.tabs{gap:0}.tabs a{padding:7px 10px}.auth-card{margin:40px auto}.stats{gap:20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
