:root{--fsm-red:#c41e3a;--fsm-red-light:#f0a3b0;--fsm-missing:#eef1f4}*{box-sizing:border-box;margin:0;padding:0}body{color:#1a2b3c;background:radial-gradient(at 20% 0,#d4e4f0 0%,#0000 50%),radial-gradient(at 80% 100%,#c5d5c8 0%,#0000 45%),linear-gradient(160deg,#e8eef2 0%,#f2f0ea 50%,#e6ebe8 100%);min-height:100vh;padding:20px;font-family:"Source Serif 4",Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}.container{background:#fff;border-radius:20px;max-width:1180px;margin:0 auto;overflow:hidden;box-shadow:0 20px 60px #0000001a}.header{color:#fff;text-align:center;background:linear-gradient(135deg,#2c3e50,#34495e);padding:40px}.header h1{margin-bottom:10px;font-size:2.5em}.header p{opacity:.8;font-size:1.1em}.upload-section{padding:40px}.form-row{text-align:center;margin-bottom:24px}.form-row label{color:#2c3e50;margin-bottom:8px;font-weight:600;display:block}select.org-select{color:#2c3e50;background:#fff;border:2px solid #ecf0f1;border-radius:10px;width:100%;max-width:420px;padding:12px 14px;font-size:1em}.upload-area{text-align:center;background:#f8fafc;border:3px dashed #3498db;border-radius:15px;margin-bottom:16px;padding:48px 32px;transition:all .3s}.upload-area:hover:not(.busy){background:#ecf0f1;border-color:#2980b9;transform:translateY(-2px)}.upload-area.dragover{background:#e8f8f0;border-color:#27ae60}.upload-area.busy{pointer-events:none;opacity:.75}.upload-icon{color:#3498db;margin-bottom:20px;font-size:4em}.upload-text{color:#2c3e50;margin-bottom:16px;font-size:1.2em}.file-types{color:#7f8c8d;margin-bottom:20px}.file-queue{text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:10px;max-width:420px;max-height:200px;margin:0 auto 20px;padding:0;list-style:none;overflow-y:auto}.file-queue li{color:#334155;border-bottom:1px solid #eef2f7;grid-template-columns:minmax(0,1fr) 88px auto auto;align-items:center;gap:8px;padding:8px 12px;font-size:.9rem;display:grid}.file-queue li:last-child{border-bottom:none}.file-queue-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-queue-size{color:#64748b;font-variant-numeric:tabular-nums;font-size:.8rem}.file-queue-org{font:inherit;color:#1e3a5f;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;max-width:88px;padding:4px 6px;font-size:.8rem;font-weight:600}.file-queue-org.detected{background:#f0fdf4;border-color:#86efac}.file-queue-org.missing{background:#fef2f2;border-color:#fca5a5}.queue-warning{color:#b91c1c;margin:0 0 12px;font-size:.9rem}.label-hint{color:#64748b;font-size:.85rem;font-weight:400}.file-queue-remove{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.2rem;line-height:1}.file-queue-remove:hover:not(:disabled){color:#c41e3a}.batch-results{text-align:left;margin:12px 0 0;padding:0;font-size:.9rem;list-style:none}.batch-results li{border-bottom:1px solid #eef2f7;padding:4px 0}.batch-results li.ok{color:#166534}.batch-results li.fail{color:#b91c1c}.upload-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:25px;margin:6px;padding:15px 40px;font-size:1.05em;transition:all .3s;box-shadow:0 5px 20px #3498db4d}.upload-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #3498db66}.upload-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.upload-btn.secondary{background:linear-gradient(135deg,#95a5a6,#7f8c8d);box-shadow:0 5px 20px #95a5a659}.features{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px;padding:0 40px 40px;display:grid}.feature{text-align:center;background:#f8fafc;border-radius:15px;padding:30px;transition:transform .3s}.feature:hover{transform:translateY(-5px)}.feature-icon{margin-bottom:15px;font-size:3em}.feature h3{color:#2c3e50;margin-bottom:10px}.feature p{color:#7f8c8d;line-height:1.6}.status{text-align:center;background:#e8f6f3;border:1px solid #1abc9c;border-radius:10px;margin:20px 0 0;padding:20px}.status h3{color:#16a085;margin-bottom:10px}.status.error{background:#fdeaea;border-color:#e74c3c}.status.error h3{color:#c0392b}.status.warn{background:#fef9e8;border-color:#f1c40f}.status.warn h3{color:#d68910}.coming-soon{opacity:.7;font-style:italic}.orgs{flex-wrap:wrap;justify-content:space-around;margin:30px 0;display:flex}.org{color:#2c3e50;background:#fff;border:2px solid #ecf0f1;border-radius:10px;margin:5px;padding:15px 25px;font-weight:600}.api-hint{color:#7f8c8d;text-align:center;word-break:break-all;margin-bottom:8px;font-size:.85em}.pre-result{text-align:left;white-space:pre-wrap;background:#fff;border:1px solid #dce4ec;border-radius:8px;max-height:360px;margin-top:14px;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.8rem;overflow:auto}.report-section{border-top:2px solid #ecf0f1;margin-top:28px;padding-top:28px}.report-section h2{text-align:center;color:#2c3e50;margin-bottom:18px;font-size:1.35rem}.report-overview{color:#34495e;background:linear-gradient(135deg,#f8fafc 0%,#eef2ff 100%);border:1px solid #dce4ec;border-radius:12px;gap:10px;margin-bottom:22px;padding:18px 22px;font-size:.95rem;display:grid}.report-overview strong{color:#2c3e50}.report-charts{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.chart-card{background:#f8fafc;border:1px solid #ecf0f1;border-radius:12px;padding:16px}.chart-card h3{color:#2c3e50;margin-bottom:12px;font-size:.95rem;font-weight:600}.chart-card.empty-note{color:#7f8c8d;justify-content:center;align-items:center;min-height:120px;font-size:.9rem;display:flex}.chart-wrap{height:280px;position:relative}.chart-card.hidden{display:none!important}.tabs{background:#fafbfc;border-bottom:1px solid #e2e8f0;gap:8px;padding:16px 24px 0;display:flex}.tab{font:inherit;cursor:pointer;color:#5a6a7a;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-1px;padding:12px 18px}.tab.active{color:#1e3a5f;border-bottom-color:#1e3a5f;font-weight:600}.workspace{padding:28px 40px 40px}.workspace-header h2{color:#1e3a5f;margin-bottom:8px}.workspace-header p{color:#5a6a7a;margin-bottom:16px;line-height:1.5}.review-list{flex-direction:column;gap:16px;display:flex}.review-card{background:#fff;border:1px solid #dce4ec;border-left:4px solid #94a3b8;border-radius:10px;padding:16px 18px}.review-card.severity-high,.review-card.severity-critical{border-left-color:#b45309}.review-card.severity-medium{border-left-color:#2563eb}.review-card header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.badge{text-transform:uppercase;letter-spacing:.04em;background:#eef2f7;border-radius:4px;padding:2px 8px;font-size:.75rem}.badge.muted{color:#64748b}.review-question{color:#1e3a5f;margin-bottom:8px;font-weight:600;line-height:1.45}.review-explain,.muted{color:#64748b;font-size:.95rem}.impact-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:12px 0;padding:12px;font-size:.9rem}.field{color:#2c3e50;margin:12px 0;font-size:.9rem;font-weight:600;display:block}.field select,.field textarea,.field input{width:100%;font:inherit;border:2px solid #ecf0f1;border-radius:8px;margin-top:6px;padding:10px 12px;font-weight:400;display:block}.checkbox-row{color:#334155;align-items:center;gap:8px;margin:10px 0 14px;font-size:.9rem;display:flex}.review-actions{flex-wrap:wrap;gap:8px;display:flex}.portfolio-controls{margin-bottom:20px}.org-chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chip{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:inline-flex}.chip.on{color:#fff;background:#1e3a5f;border-color:#1e3a5f}.form-row.inline{text-align:left;flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.coverage-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:16px 0 24px;display:grid}.coverage-cell{border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:4px;padding:12px;font-size:.85rem;display:flex}.coverage-cell.present{background:#ecfdf5;border-color:#a7f3d0}.coverage-cell.missing{background:#fff7ed;border-color:#fed7aa}.statement-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.statement-table th,.statement-table td{text-align:left;border-bottom:1px solid #e2e8f0;padding:10px 12px}.statement-table .num{text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.statement-table tr.calc td{background:#f8fafc;font-weight:600}.org.phase-inactive{opacity:.55}.org{flex-direction:column;gap:4px;font-size:.85rem;display:flex}.linkish{color:#1d4ed8;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.section-title{color:#1e3a5f;margin:28px 0 12px;font-size:1.1rem}.history-list{margin:0 0 24px;padding:0;list-style:none}.history-list li{border-bottom:1px solid #e2e8f0;padding:8px 0;font-size:.9rem}.period-bar{background:#fff;border:1px solid #dce4ec;border-radius:10px;margin-bottom:18px;padding:14px 16px}.period-bar-main{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.period-pill{text-transform:uppercase;letter-spacing:.05em;background:#e2e8f0;border-radius:999px;padding:3px 8px;font-size:.7rem}.period-pill.reviewed{color:#1e40af;background:#dbeafe}.period-pill.approved{color:#065f46;background:#d1fae5}.period-pill.locked{color:#fff;background:#1e3a5f}.field.compact{margin:8px 0}.amount-link{font:inherit;color:#1d4ed8;cursor:pointer;background:0 0;border:none;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-decoration:underline}.split-view{grid-template-columns:1fr;gap:16px;display:grid}.split-view.with-drill{grid-template-columns:1.2fr 1fr}.drilldown-panel{background:#f8fafc;border:1px solid #dce4ec;border-radius:10px;max-height:70vh;padding:14px;position:sticky;top:12px;overflow:auto}.drilldown-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.drilldown-header h3{color:#1e3a5f;margin:0 0 4px}@media (width<=900px){.split-view.with-drill{grid-template-columns:1fr}}.coverage-matrix-wrap{padding:28px 40px 8px}.coverage-matrix-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.coverage-matrix-header h3{color:#1e3a5f;margin-bottom:6px}.coverage-matrix-header p{color:#5a6a7a;max-width:52rem;font-size:.95rem;line-height:1.45}.coverage-loading{color:#64748b;white-space:nowrap;padding-top:4px;font-size:.85rem}.coverage-fetch-error{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.coverage-fetch-error p{flex:240px;margin:0}.coverage-legend{color:#475569;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;font-size:.85rem;display:flex}.legend-swatch{vertical-align:middle;border:1px solid #cbd5e1;border-radius:3px;width:16px;height:16px;margin-right:4px;display:inline-block}.legend-swatch.pnl{background:var(--fsm-red)}.legend-swatch.bs{background:var(--fsm-red-light)}.legend-swatch.empty{background:var(--fsm-missing)}.coverage-matrix-scroll{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow-x:auto}.coverage-matrix{border-collapse:collapse;border-spacing:0;width:max-content;font-size:.75rem}.coverage-matrix th,.coverage-matrix td{text-align:center;padding:0;line-height:0}.coverage-matrix thead th{color:#1e3a5f;z-index:1;background:#fff;padding:6px 0 8px;font-weight:600;line-height:1.2;position:sticky;top:0}.coverage-matrix .sticky-corner{text-align:left;min-width:64px;padding:6px 0 8px 8px}.coverage-matrix .sticky-corner-right{text-align:left}.coverage-matrix .period-col-label{font-variant-numeric:tabular-nums;writing-mode:horizontal-tb;width:28px;min-width:28px;font-size:.65rem}.coverage-matrix .org-row-label{text-align:left;color:#334155;white-space:nowrap;vertical-align:middle;padding:0 0 0 8px;font-weight:600;line-height:1.2}.coverage-matrix .org-row-label-right{text-align:left}.org-col-btn{color:#1e3a5f;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.org-col-btn:hover{text-decoration:underline}.diag-cell{cursor:pointer;background:linear-gradient(to bottom right, var(--pnl) 0%, var(--pnl) 49%, #d8dee6 49%, #d8dee6 51%, var(--bs) 51%, var(--bs) 100%);border:none;border-radius:0;width:28px;height:20px;margin:0;padding:0;display:block;box-shadow:inset 0 0 0 1px #0000001f}.diag-cell:hover{outline-offset:-2px;z-index:2;outline:2px solid #1e3a5f;position:relative}@media (width<=640px){.coverage-matrix-wrap{padding:20px 16px 0}.diag-cell{width:24px;height:17px}.coverage-matrix .period-col-label{width:24px;min-width:24px}.workspace{padding:20px}.header h1{font-size:1.6em}}
