:root{--navy: #1B2F5E;--gold: #C9963A;--light-blue: #E8EDF7;--success: #2e7d32;--danger: #c62828;--warn: #e65100;--bg: #f4f6fb;--surface: #ffffff;--border: #d0d7e8;--text: #1a1a2e;--text-muted: #5a6580;--topbar-h: 56px;--subbar-h: 36px;--bottom-h: 48px;--radius: 6px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);--shadow-lg: 0 10px 25px rgba(0,0,0,.18)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg)}.app-shell{display:flex;flex-direction:column;height:100vh}.topbar{position:sticky;top:0;z-index:100;height:var(--topbar-h);background:var(--navy);border-bottom:3px solid var(--gold);display:flex;align-items:center;padding:0 16px;gap:12px;flex-shrink:0}.topbar-brand{display:flex;align-items:center;gap:8px;flex-shrink:0}.topbar-brand .wordmark{color:#fff;font-size:13px;font-weight:700;letter-spacing:.04em;line-height:1.2}.topbar-brand .subtext{color:#ffffff80;font-size:10px;letter-spacing:.02em}.topbar-nav{display:flex;align-items:center;gap:2px;flex:1;justify-content:center}.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.nav-tab{padding:6px 13px;border-radius:var(--radius);border:none;cursor:pointer;font-size:12px;font-weight:500;letter-spacing:.02em;transition:background .15s,color .15s;background:transparent;color:#ffffffb3;white-space:nowrap}.nav-tab:hover{background:#ffffff1f;color:#fff}.nav-tab.active{background:var(--gold);color:var(--navy);font-weight:700}.tab-content{flex:1;overflow-y:auto;padding:24px;padding-bottom:calc(var(--bottom-h) + 32px)}.bottom-bar{position:fixed;bottom:0;left:0;right:0;z-index:100;height:var(--bottom-h);background:#0f172a;border-top:1px solid #1e293b;display:flex;align-items:center;padding:0 20px;gap:16px;font-size:12px;color:#ffffffa6;flex-shrink:0}.bottom-bar .scenario-label{flex-shrink:0;white-space:nowrap}.bottom-bar .gf-section{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end}.bottom-bar .gf-label{white-space:nowrap;font-size:11px}.bottom-bar .gf-bar-wrap{width:140px;height:7px;background:#ffffff1f;border-radius:4px;overflow:hidden;flex-shrink:0}.bottom-bar .gf-bar-fill{height:100%;border-radius:4px;transition:width .3s ease,background .3s ease}.bottom-bar .gf-bar-fill.under{background:#4caf50}.bottom-bar .gf-bar-fill.over{background:var(--danger)}.unsaved-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--danger);margin-left:5px;flex-shrink:0;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--surface);border-radius:8px;border-top:3px solid var(--navy);box-shadow:var(--shadow);padding:20px}.stat-card .value{font-size:28px;font-weight:700;color:var(--navy);line-height:1.1;margin-bottom:4px;font-variant-numeric:tabular-nums}.stat-card .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.stat-card .sub{font-size:11px;color:var(--text-muted);margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.card-header{border-bottom:1px solid var(--border);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.card-header h3{font-size:14px;font-weight:600;color:var(--navy)}.card-header h2{font-size:15px;font-weight:700;color:var(--navy)}.card-body{padding:20px}.integrity-subbar{height:var(--subbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;flex-shrink:0}.integrity-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;border:none;cursor:pointer;background:#1b5e20;color:#fff;font-size:11px;font-weight:600;letter-spacing:.03em;transition:background .15s;white-space:nowrap}.integrity-badge:hover{background:#2e7d32}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px}.modal-panel{background:var(--surface);border-radius:10px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{background:var(--navy);color:#fff;padding:20px;border-radius:10px 10px 0 0;display:flex;align-items:flex-start;justify-content:space-between;position:sticky;top:0;z-index:1}.modal-header h2{font-size:16px;font-weight:700}.modal-close{background:transparent;border:none;color:#ffffffbf;font-size:18px;cursor:pointer;padding:0 4px;transition:color .15s;line-height:1}.modal-close:hover{color:#fff}.modal-body{padding:24px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}thead th{background:var(--navy);color:#fff;padding:10px 12px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.04em;white-space:nowrap}thead th.num{text-align:right}tbody tr:nth-child(2n){background:#f9fafc}tbody tr:hover{background:var(--light-blue)}tbody td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle}tbody td.num{text-align:right;font-variant-numeric:tabular-nums}.subsection-header td{background:#eef1f8;font-weight:600;font-size:12px;color:var(--navy);padding:6px 12px}.recon-pass{color:var(--success);font-weight:700}.recon-warn{color:var(--warn);font-weight:700}.status-pass{color:var(--success);font-weight:600}.status-warn{color:var(--warn);font-weight:600}.section-tag{display:inline-block;background:var(--light-blue);color:var(--navy);padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600}.cite-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:10px;font-size:10px;font-weight:600;cursor:default;vertical-align:middle;margin-left:3px}.cite-badge.verified{background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7}.cite-badge.unverified{background:#fff3e0;color:#bf360c;border:1px solid #ffcc02}.fed-badge{display:inline-block;padding:1px 5px;border-radius:4px;background:#fff3e0;color:var(--warn);font-size:10px;font-weight:700;border:1px solid #ffcc80;vertical-align:middle;margin-left:4px}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:600;border:none;cursor:pointer;white-space:nowrap;transition:filter .12s}.status-badge:hover{filter:brightness(.93)}.status-badge.not-started{background:#f5f5f5;color:#555;border:1px solid #ccc}.status-badge.in-review{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.status-badge.justified{background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7}.status-badge.flagged{background:#ffebee;color:#b71c1c;border:1px solid #ef9a9a}.priority-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.priority-badge.Mandated{background:#ede7f6;color:#4527a0}.priority-badge.High{background:#ffebee;color:#b71c1c}.priority-badge.Medium{background:#fff8e1;color:#f57f17}.priority-badge.Low{background:#e8f5e9;color:#1b5e20}.priority-badge.Zero{background:#f5f5f5;color:#757575}.agency-list-item{padding:10px 14px;cursor:pointer;border-left:3px solid transparent;border-bottom:1px solid var(--border);transition:background .1s,border-color .1s}.agency-list-item:hover{background:var(--light-blue)}.agency-list-item.active{border-left-color:var(--navy);background:#edf1fa}.agency-list-item .name{font-size:13px;font-weight:500;color:var(--text);line-height:1.3}.agency-list-item .meta{font-size:11px;color:var(--text-muted);margin-top:3px;display:flex;align-items:center;gap:6px}.split-layout{display:grid;grid-template-columns:280px 1fr;gap:0}.left-panel{width:280px;border-right:1px solid var(--border);overflow-y:auto;height:calc(100vh - var(--topbar-h) - var(--subbar-h) - var(--bottom-h) - 4px);position:sticky;top:0;background:var(--surface);flex-shrink:0}.left-panel .panel-search{padding:12px;border-bottom:1px solid var(--border)}.left-panel .panel-search input{width:100%}.sandbox-table{width:100%;border-collapse:collapse;font-size:13px}.sandbox-table th{background:var(--navy);color:#fff;padding:8px 10px;text-align:left;font-size:11px;font-weight:600;white-space:nowrap}.sandbox-table td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.sandbox-table tr.locked td{opacity:.5}.sandbox-table tr.row-flagged td{background:#fff8f0!important}.sandbox-table input[type=number]{width:110px;text-align:right;padding:4px 7px;border:1px solid var(--border);border-radius:4px;font-size:13px;font-variant-numeric:tabular-nums}.sandbox-table input[type=number]:focus{outline:2px solid var(--navy);border-color:var(--navy)}.sandbox-table textarea{width:100%;min-height:44px;font-size:12px;resize:vertical}.sandbox-table select{width:110px;font-size:12px;padding:4px 6px}.gf-bar-mini{display:inline-block;width:56px;height:6px;background:var(--border);border-radius:3px;overflow:hidden;vertical-align:middle}.gf-bar-mini-fill{height:100%;background:var(--navy);border-radius:3px}.proviso-card{border:1px solid var(--border);border-left:4px solid var(--gold);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;font-size:13px;line-height:1.55;background:var(--surface)}.proviso-card.federal{border-left-color:var(--warn)}.proviso-card .proviso-meta{font-size:11px;color:var(--text-muted);margin-bottom:6px;display:flex;gap:8px;flex-wrap:wrap}.insights-body{font-size:13px;line-height:1.65;color:var(--text)}.insights-body h1{font-size:16px;font-weight:700;color:var(--navy);margin:20px 0 6px}.insights-body h2{font-size:14px;font-weight:700;color:var(--navy);margin:16px 0 5px;border-bottom:1px solid var(--border);padding-bottom:4px}.insights-body h3{font-size:13px;font-weight:600;color:var(--sc-green, #1B5E2A);margin:12px 0 4px}.insights-body h4{font-size:12px;font-weight:600;color:var(--text-muted);margin:10px 0 3px;text-transform:uppercase;letter-spacing:.04em}.insights-body p{margin-bottom:8px}.insights-body ul,.insights-body ol{padding-left:18px;margin-bottom:8px}.insights-body li{margin-bottom:4px}.insights-body strong{color:var(--navy)}.insights-body em{color:var(--text-muted);font-style:italic}.insights-body table{width:100%;border-collapse:collapse;font-size:12px;margin:10px 0 14px}.insights-body th{background:var(--light-blue);font-weight:600;text-align:left;padding:5px 8px;border:1px solid var(--border)}.insights-body td{padding:4px 8px;border:1px solid var(--border);vertical-align:top}.insights-body tr:nth-child(2n) td{background:var(--surface)}.insights-body hr{border:none;border-top:1px solid var(--border);margin:14px 0}.insights-body blockquote{border-left:3px solid var(--gold);padding-left:10px;color:var(--text-muted);margin:8px 0}.history-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.history-item:hover{background:var(--light-blue)}.history-item .q-text{font-size:12px;font-weight:500;color:var(--text)}.history-item .q-time{font-size:10px;color:var(--text-muted);margin-top:2px}.answer-box{font-size:15px;line-height:1.7;color:var(--text)}.answer-box p{margin-bottom:12px}.answer-markdown h1,.answer-markdown h2{font-size:16px;font-weight:700;color:var(--navy);margin:16px 0 8px}.answer-markdown h3,.answer-markdown h4{font-size:14px;font-weight:700;color:var(--navy);margin:14px 0 6px}.answer-markdown ul,.answer-markdown ol{padding-left:20px;margin-bottom:12px}.answer-markdown li{margin-bottom:4px}.answer-markdown strong{font-weight:700}.answer-markdown code{font-family:monospace;background:var(--bg-alt);padding:1px 4px;border-radius:3px;font-size:13px}.scenario-card{border:1px solid var(--border);border-radius:8px;padding:16px;background:var(--surface);transition:box-shadow .15s}.scenario-card:hover{box-shadow:0 4px 12px #0000001a}.waterfall-bar{height:16px;border-radius:3px;display:inline-block;min-width:2px}.sensitivity-table{width:100%;border-collapse:collapse;font-size:12px}.sensitivity-table th{background:#f0f3fa;color:var(--navy);padding:7px 10px;text-align:right;font-weight:600;border:1px solid var(--border)}.sensitivity-table th:first-child{text-align:left}.sensitivity-table td{padding:7px 10px;text-align:right;border:1px solid var(--border);font-variant-numeric:tabular-nums}.sensitivity-table td:first-child{text-align:left;font-weight:500}.alert{padding:12px 16px;border-radius:var(--radius);font-size:13px;line-height:1.5;margin-bottom:8px}.alert-info{background:#e3f2fd;border:1px solid #90caf9;color:#0d47a1}.alert-success{background:#e8f5e9;border:1px solid #a5d6a7;color:#1b5e20}.alert-warn{background:#fff3e0;border:1px solid #ffcc80;color:#e65100}.alert-danger{background:#ffebee;border:1px solid #ef9a9a;color:#b71c1c}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);border:none;cursor:pointer;font-size:13px;font-weight:600;transition:filter .15s,opacity .15s;white-space:nowrap;text-decoration:none;font-family:inherit}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(1.18)}.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover:not(:disabled){filter:brightness(1.08)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-outline{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}.btn-outline:hover:not(:disabled){background:var(--light-blue)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--light-blue);color:var(--text)}.btn-sm{padding:5px 10px;font-size:12px}.form-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}label{font-size:12px;font-weight:600;color:var(--text-muted);display:block;margin-bottom:4px}select,input[type=text],input[type=number],textarea{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text);background:var(--surface);transition:border-color .15s;font-family:inherit}select:focus,input[type=text]:focus,input[type=number]:focus,textarea:focus{outline:2px solid var(--navy);outline-offset:0;border-color:var(--navy)}textarea{resize:vertical;min-height:60px}select{cursor:pointer}.loading{display:flex;align-items:center;gap:10px;color:var(--text-muted);padding:20px;justify-content:center}.loading:before{content:"";width:18px;height:18px;flex-shrink:0;border:2px solid var(--border);border-top-color:var(--navy);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{color:var(--text-muted);text-align:center;padding:40px;font-style:italic}.present-mode .topbar,.present-mode .bottom-bar{display:none}.present-mode .tab-content{padding-bottom:24px}.present-mode .stat-card .value{font-size:42px}@media (max-width: 768px){.split-layout{grid-template-columns:1fr}.left-panel{width:100%;height:auto;position:static}.topbar-nav{display:none}.stat-card .value{font-size:20px}}.help-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);background:transparent;color:#fffc;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s,color .15s,border-color .15s;flex-shrink:0;line-height:1}.help-btn:hover{background:#ffffff26;color:#fff;border-color:#ffffffbf}.help-modal-overlay{animation:help-fade-in .18s ease}.help-modal-panel{max-width:640px!important;animation:help-slide-in .2s ease}@keyframes help-fade-in{0%{opacity:0}to{opacity:1}}@keyframes help-slide-in{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:none}}.help-modal-body{padding:28px 28px 20px}.help-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}.help-section:last-of-type{border-bottom:none;margin-bottom:12px}.help-section-heading{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--navy);margin-bottom:8px}.help-section-intro{font-size:13px;line-height:1.6;color:var(--text);margin-bottom:8px}.help-section p{font-size:13px;line-height:1.6;color:var(--text)}.help-bullet-list{margin:0;padding-left:18px;list-style:disc}.help-bullet-list li{font-size:13px;line-height:1.6;color:var(--text);padding:2px 0}.help-examples li{color:var(--text-muted);font-style:italic}.help-section-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:4px;margin-top:8px}.help-integrity-note{background:#e8f5e9;border:1px solid #a5d6a7;border-radius:var(--radius);padding:14px 16px;margin-bottom:16px}.help-integrity-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#1b5e20;margin-bottom:6px}.help-integrity-note p{font-size:12px;line-height:1.6;color:#1b5e20}.help-kbd-hint{font-size:11px;color:var(--text-muted);text-align:center}.help-kbd-hint kbd{display:inline-block;padding:1px 6px;border-radius:4px;border:1px solid var(--border);background:#f4f6fb;font-family:inherit;font-size:11px;font-weight:700;color:var(--text);box-shadow:0 1px 0 var(--border)}.flex{display:flex}.flex-1{flex:1}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.text-muted{color:var(--text-muted)}.text-sm{font-size:12px}.num{text-align:right;font-variant-numeric:tabular-nums}.page-tag{font-size:10px;color:var(--text-muted);white-space:nowrap}.row-expand{background:#f5f8ff;border-left:3px solid var(--gold);padding:12px 16px;font-size:13px}.collapse-toggle{background:none;border:none;cursor:pointer;font-size:12px;color:var(--navy);font-weight:600;padding:4px 0;display:inline-flex;align-items:center;gap:4px}.collapsible-section{margin-top:16px}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:12px;align-items:center}.row.between{justify-content:space-between}.grow{flex:1}.proviso-score{font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;background:#fdf4e7;color:var(--gold);border:1px solid #e8b054}.uncited-dollar{background:#fff3cd;padding:1px 4px;border-radius:3px;color:#bf360c;font-weight:600}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#aaa}
