:root{--bg: #f5f6f9;--surface: #ffffff;--surface-2: #f8fafc;--border: #e7e9ee;--border-strong: #cfd4dd;--text: #0f172a;--text-2: #475569;--muted: #64748b;--dim: #94a3b8;--primary: #4f46e5;--primary-700: #4338ca;--primary-050: #eef2ff;--ok: #16a34a;--ok-bg: #dcfce7;--warn: #b45309;--warn-bg: #fef3c7;--bad: #dc2626;--bad-bg: #fee2e2;--ring: 0 0 0 3px rgba(79, 70, 229, .28);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .05);--shadow-lg: 0 20px 40px -12px rgba(15, 23, 42, .25);--radius: 12px;--radius-sm: 8px;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","ss01"}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}::selection{background:var(--primary-050);color:var(--primary-700)}h1{font-size:1.45rem;font-weight:680;letter-spacing:-.01em;margin:0 0 4px}h2{font-size:1.05rem;font-weight:640;letter-spacing:-.01em}h3{font-size:.95rem;font-weight:640;margin:0 0 10px}a{color:var(--primary);text-decoration:none}.muted{color:var(--muted);font-size:.85rem}.center{text-align:center}.num{text-align:right;font-variant-numeric:tabular-nums}*:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}*{scrollbar-width:thin;scrollbar-color:#cbd2dc transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:#cbd2dc;border-radius:8px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:#aeb6c4;background-clip:content-box}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.page{padding:4px;animation:fadeUp .25s ease both}.page>h1{margin-top:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section{padding:18px 20px;margin-bottom:16px}.section h3{margin-top:0;color:var(--text)}button{font-family:inherit}button.primary{background:linear-gradient(180deg,var(--primary),var(--primary-700));color:#fff;border:none;padding:10px 18px;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:filter .15s,transform .05s,box-shadow .15s}button.primary:hover:not(:disabled){filter:brightness(1.07);box-shadow:var(--shadow-md)}button.primary:active:not(:disabled){transform:translateY(1px)}button.primary:disabled{opacity:.55;cursor:not-allowed}button.link,.link{background:none;border:none;color:var(--primary);cursor:pointer;padding:6px 8px;border-radius:6px;font-size:.9rem;font-weight:500;transition:background .12s,color .12s}button.link:hover:not(:disabled){background:var(--primary-050)}button.link:disabled{color:var(--dim);cursor:not-allowed}.link.danger{color:var(--bad)}.link.danger:hover{background:var(--bad-bg)}.btn-cancel{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-2);padding:9px 16px;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:background .12s}.btn-cancel:hover{background:var(--surface-2)}.btn-submit{background:linear-gradient(180deg,var(--primary),var(--primary-700));color:#fff;border:none;padding:9px 16px;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm)}.btn-submit:hover{filter:brightness(1.07)}input,select,textarea{width:100%;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:.92rem;background:var(--surface);color:var(--text);transition:border-color .12s,box-shadow .12s}input::placeholder{color:var(--dim)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}input:read-only{background:var(--surface-2);color:var(--muted)}label{display:block;font-size:.8rem;font-weight:600;color:var(--text-2);margin-top:14px}label>input,label>select{margin-top:6px}.field-err{display:block;color:var(--bad);font-size:.75rem;margin-top:4px}.error{color:var(--bad);background:var(--bad-bg);border:1px solid #fca5a5;padding:9px 12px;border-radius:var(--radius-sm);margin-top:12px;font-size:.85rem}.chip{font-size:.72rem;font-weight:600;background:var(--primary-050);color:var(--primary-700);padding:3px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:5px}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite;vertical-align:-2px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,#eaeefb 0%,var(--bg) 55%)}.login-card{width:380px;max-width:100%;padding:32px 28px;animation:pop .3s ease both}.login-header{display:flex;align-items:center;gap:10px;margin-bottom:4px}.login-header h1{background:linear-gradient(90deg,var(--primary),#7c3aed);-webkit-background-clip:text;background-clip:text;color:transparent}.login-card .primary{width:100%;margin-top:20px;padding:11px}.password-row{display:flex;gap:8px;align-items:stretch}.password-row .link{white-space:nowrap;border:1px solid var(--border)}.layout{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;background:#ffffffd9;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border);padding:12px 24px}.brand{font-weight:720;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;font-size:1.05rem}.nav{display:flex;gap:4px;flex:1}.nav a{color:var(--muted);padding:7px 12px;border-radius:8px;font-weight:550;font-size:.88rem;transition:background .12s,color .12s}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a.active{color:var(--primary-700);background:var(--primary-050)}.user{display:flex;align-items:center;gap:12px}.content{padding:28px 24px;max-width:1320px;margin:0 auto}.stats-row{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;animation:fadeUp .3s ease both}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--dim)}.stat.ok:before{background:var(--ok)}.stat.warn:before{background:var(--warn)}.stat.bad:before{background:var(--bad)}.stat-value{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat.ok .stat-value{color:var(--ok)}.stat.warn .stat-value{color:var(--warn)}.stat.bad .stat-value{color:var(--bad)}.stat .muted{display:block;margin-top:2px;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.toolbar{margin-bottom:14px;max-width:520px}.table-wrap{padding:0;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);position:sticky;top:0;z-index:1}tbody tr{transition:background .1s}tbody tr:last-child td{border-bottom:none}tr.row-click{cursor:pointer}tr.row-click:hover{background:var(--primary-050)}.row-actions{display:flex;gap:4px}.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:600;background:#eef1f5;color:var(--text-2)}.status-pending{background:var(--warn-bg);color:var(--warn)}.status-completed{background:var(--primary-050);color:var(--primary-700)}.status-successful{background:var(--ok-bg);color:var(--ok)}.status-failed{background:var(--bad-bg);color:var(--bad)}.outcome-compliant{background:var(--ok-bg);color:var(--ok)}.outcome-inconclusive{background:var(--warn-bg);color:var(--warn)}.outcome-uncompliant{background:var(--bad-bg);color:var(--bad)}.paginator{display:flex;align-items:center;gap:14px;margin-top:14px;justify-content:flex-end;font-size:.85rem;color:var(--muted)}.paginator label{display:flex;align-items:center;gap:6px;margin:0}.paginator select{width:auto;padding:5px 8px}.banner{padding:11px 16px;border-radius:var(--radius-sm);margin-bottom:18px;font-size:.88rem;animation:fadeUp .25s ease both}.banner.ok{background:var(--ok-bg);color:var(--ok);border:1px solid #86efac}.actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:18px}.loading-row{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--muted)}.checks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:18px 0}.check-card{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;transition:box-shadow .15s,transform .1s;animation:fadeUp .3s ease both}.check-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.check-icon{color:var(--primary);flex-shrink:0;width:38px;height:38px;display:grid;place-items:center;background:var(--primary-050);border-radius:10px}.form-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start}.form-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px;align-items:start}.radio-row{display:flex;gap:10px;flex-wrap:wrap}.radio{display:inline-flex;align-items:center;gap:7px;color:var(--text);padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .12s,background .12s;font-size:.88rem}.radio:hover{background:var(--surface-2)}.radio:has(input:checked){border-color:var(--primary);background:var(--primary-050);color:var(--primary-700);font-weight:600}.radio.block{display:flex;margin-top:8px}.radio input{width:auto;accent-color:var(--primary)}.js-head{display:flex;justify-content:space-between;align-items:center}.jurisdiction-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.req{color:var(--bad);margin-left:2px}.chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip-toggle{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--border-strong);border-radius:999px;cursor:pointer;font-size:.83rem;color:var(--text-2);transition:all .12s;-webkit-user-select:none;user-select:none}.chip-toggle:hover{border-color:var(--primary)}.chip-toggle.on{background:var(--primary-050);border-color:var(--primary);color:var(--primary-700);font-weight:600}.chip-toggle input{width:auto;accent-color:var(--primary)}.threshold-row{display:flex;gap:12px}.preview{position:sticky;top:84px;padding:18px 20px;background:linear-gradient(180deg,var(--surface),var(--surface-2))}.preview p{color:var(--text-2);line-height:1.6}.preview-list{margin-top:10px}.preview-list ul{margin:4px 0 0;padding-left:18px;color:var(--text-2)}.overlay{position:fixed;inset:0;background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeUp .15s ease}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:420px;max-width:96vw;padding:26px;animation:pop .2s ease both}.modal h2{margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--border)}.modal .field{margin-bottom:12px}.modal .actions{margin-top:20px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0 22px}.detail-grid .muted{display:block;text-transform:uppercase;font-size:.7rem;letter-spacing:.05em;margin-bottom:2px}.participant{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.participant h3{margin-bottom:8px}.badge{margin-left:8px;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:600}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.modal.card{width:min(900px,96vw);max-height:86vh;overflow-y:auto}@media(max-width:980px){.form-cols,.form-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,1fr)}.preview{position:static}.content{padding:20px 16px}}
