:root{--color-instrument-blue: #1B4F8A;--color-calibration-teal: #1A7A7A;--color-signal-amber: #E8A020;--color-warm-white: #F7F8FA;--color-indeterminate-slate: #8A9BB0;--color-positive-red: #C0392B;--color-negative-green: #1A7A45;--color-graphite: #2D3748;--color-mid-grey: #6B7A8D;--color-border: #DDE2EB;--color-surface: #FFFFFF;--color-bg: var(--color-warm-white);--color-text: var(--color-graphite);--color-text-muted: var(--color-mid-grey);--color-primary: var(--color-instrument-blue);--color-primary-contrast: #FFFFFF;--color-secondary: var(--color-calibration-teal);--color-accent: var(--color-signal-amber);--color-danger: var(--color-positive-red);--color-success: var(--color-negative-green);--color-focus-ring: #0B63C4;--font-heading: "Sora", -apple-system, "Segoe UI", Roboto, sans-serif;--font-body: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;--text-h1: 600 32px/1.2 var(--font-heading);--text-h2: 600 24px/1.3 var(--font-heading);--text-h3: 500 20px/1.4 var(--font-heading);--text-h4: 500 17px/1.4 var(--font-heading);--text-body: 400 15px/1.6 var(--font-body);--text-label: 500 13px/1.5 var(--font-body);--text-mono: 400 13px/1.6 var(--font-mono);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 56px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-card: 0 1px 2px rgba(45, 55, 72, .06), 0 8px 24px rgba(45, 55, 72, .08);color-scheme:light}@font-face{font-family:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(/focal/clinician/fonts/sora-500.woff2) format("woff2")}@font-face{font-family:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(/focal/clinician/fonts/sora-600.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/focal/clinician/fonts/inter-400.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/focal/clinician/fonts/inter-500.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/focal/clinician/fonts/jetbrains-mono-400.woff2) format("woff2")}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font:var(--text-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--color-graphite)}h1{font:var(--text-h1)}h2{font:var(--text-h2)}h3{font:var(--text-h3)}h4{font:var(--text-h4)}a{color:var(--color-secondary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.mono{font-family:var(--font-mono);font-size:13px}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;background:var(--color-instrument-blue);color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:100}.sidebar-logo{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);border-bottom:1px solid rgba(255,255,255,.15)}.sidebar-logo .wordmark{font-family:var(--font-heading);font-weight:600;font-size:20px;color:#fff;line-height:1}.sidebar-logo .subtitle{font-size:11px;color:#ffffffa6;text-transform:uppercase;letter-spacing:.6px;display:block;margin-top:2px}.sidebar-nav{flex:1;padding:var(--space-4) 0}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-4);color:#ffffffd1;cursor:pointer;transition:background .15s;font-size:14px;font-weight:500;border:none;background:none;width:100%;text-align:left;text-decoration:none}.nav-item:hover{background:#ffffff1a;color:#fff;text-decoration:none}.nav-item.active{background:#ffffff29;color:#fff;box-shadow:inset 3px 0 0 var(--color-signal-amber)}.nav-item .icon{font-size:17px;width:22px;text-align:center}.sidebar-footer{padding:var(--space-4);border-top:1px solid rgba(255,255,255,.15)}.sidebar-user{font-size:12px;color:#ffffffa6;margin-bottom:var(--space-2);word-break:break-word}.main-content{margin-left:248px;flex:1;min-width:0}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}.page-content{padding:var(--space-6);max-width:1400px}.disclaimer-banner{background:#fbf3e3;border:1px solid #F0D9A6;border-left:4px solid var(--color-signal-amber);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:13px;color:#5a4720;margin-bottom:var(--space-5);display:flex;align-items:flex-start;gap:var(--space-2)}.disclaimer-banner .disclaimer-icon{font-size:16px;flex-shrink:0;margin-top:1px;color:#8a6a12}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-card);margin-bottom:var(--space-5)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.card-title{font:var(--text-h3)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-card)}.stat-value{font-family:var(--font-mono);font-size:30px;font-weight:400;color:var(--color-instrument-blue)}.stat-label{font:var(--text-label);color:var(--color-text-muted);margin-top:var(--space-1)}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{background:var(--color-bg);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-mid-grey);padding:10px var(--space-4);border-bottom:2px solid var(--color-border);text-align:left;white-space:nowrap}tbody td{padding:12px var(--space-4);border-bottom:1px solid var(--color-border);font-size:14px;vertical-align:middle}tbody tr{cursor:default}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:#f7fafc}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.badge-positive{background:#fbeae7;color:var(--color-positive-red)}.badge-negative{background:#e6f2ea;color:var(--color-negative-green)}.badge-indeterminate{background:#eef1f5;color:var(--color-indeterminate-slate)}.badge-pending{background:#e9f0f8;color:var(--color-instrument-blue)}.badge-completed{background:#e6f2ea;color:var(--color-negative-green)}.badge-invalid{background:#fbeae7;color:var(--color-positive-red)}.badge-in-progress,.badge-calibrating{background:#fdf4e3;color:var(--color-graphite);border:1px solid var(--color-signal-amber)}.badge-referral-clinician{background:#e9f0f8;color:var(--color-instrument-blue)}.badge-referral-self_direct,.badge-referral-guardian_direct{background:#eaf4f4;color:var(--color-calibration-teal)}.badge-role{background:#eef1f5;color:var(--color-graphite)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:9px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s;text-decoration:none;line-height:1.2}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-instrument-blue);color:#fff;border-color:var(--color-instrument-blue)}.btn-primary:hover:not(:disabled){background:#163f6e;text-decoration:none}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg);text-decoration:none}.btn-teal{background:var(--color-calibration-teal);color:#fff;border-color:var(--color-calibration-teal)}.btn-teal:hover:not(:disabled){background:#145f5f;text-decoration:none}.btn-danger{background:var(--color-positive-red);color:#fff;border-color:var(--color-positive-red)}.btn-danger:hover:not(:disabled){background:#a12e20;text-decoration:none}.btn-sm{padding:5px 12px;font-size:12px}.btn-link{background:none;border:none;color:var(--color-calibration-teal);cursor:pointer;padding:0;font-weight:500}.btn-link:hover{text-decoration:underline}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;font:var(--text-label);color:var(--color-graphite);margin-bottom:var(--space-1)}.form-control{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:#fff;color:var(--color-text);transition:border-color .15s,box-shadow .15s}.form-control:focus{outline:none;border-color:var(--color-secondary);box-shadow:0 0 0 3px #1a7a7a24}.form-hint{font-size:12px;color:var(--color-text-muted);margin-top:4px}.form-error{color:var(--color-danger);font-size:13px;margin-bottom:var(--space-3)}.filter-row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--space-4)}.filter-row .form-group{margin-bottom:0;min-width:160px}.modal-overlay{position:fixed;inset:0;background:#2d374880;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.modal-title{font:var(--text-h3)}.modal-close{background:none;border:none;cursor:pointer;font-size:22px;color:var(--color-text-muted);line-height:1}.auth-page{min-height:100vh;background:linear-gradient(160deg,var(--color-instrument-blue) 0%,#123a63 100%);display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.auth-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-6) var(--space-5);width:100%;max-width:420px;box-shadow:0 20px 60px #0000004d}.auth-logo{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center;margin-bottom:var(--space-5)}.auth-logo .wordmark{font-family:var(--font-heading);font-weight:600;font-size:26px;color:var(--color-graphite)}.auth-logo .subtitle{color:var(--color-text-muted);font-size:13px}.spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.spinner-dark{border:2px solid rgba(27,79,138,.2);border-top-color:var(--color-instrument-blue)}@keyframes spin{to{transform:rotate(360deg)}}.flex{display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.flex-wrap{flex-wrap:wrap}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:13px}.text-xs{font-size:12px}.text-right{text-align:right}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.hidden{display:none!important}.w-full{width:100%}.empty-state{text-align:center;padding:var(--space-6) var(--space-4);color:var(--color-text-muted);font-size:14px}.metric-bar-container{margin:var(--space-1) 0}.metric-bar-label{display:flex;justify-content:space-between;font-size:12px;color:var(--color-text-muted);margin-bottom:4px;font-family:var(--font-mono)}.metric-bar-track{height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.metric-bar-fill{height:100%;border-radius:4px;transition:width .4s ease;background:var(--color-secondary)}.pagination{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 4px;flex-wrap:wrap}.backup-codes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2);font-family:var(--font-mono);font-size:14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.trend-improved{color:var(--color-negative-green)}.trend-worsened{color:var(--color-positive-red)}.trend-no_change{color:var(--color-mid-grey)}.trend-indeterminate{color:var(--color-indeterminate-slate)}
