:root{--navy:#0f2344;--navy2:#172f55;--blue:#1e67e8;--blue2:#eaf2ff;--ink:#142033;--muted:#66758b;--line:#dbe3ee;--bg:#f4f7fb;--white:#fff;--amber:#f59e0b;--red:#dc2626;--green:#16a34a;--shadow:0 10px 34px rgba(15,35,68,.08);--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:linear-gradient(180deg,var(--navy),#09182f);color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:40;box-shadow:6px 0 28px rgba(6,21,43,.12)}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 24px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{width:44px;height:44px;background:#fff;color:var(--blue);display:grid;place-items:center;border-radius:13px}.brand-mark svg{width:26px;height:26px}.brand-title{font-weight:850;line-height:1.08;letter-spacing:-.02em}.brand-subtitle{font-size:12px;margin-top:6px;color:#9fb2d1;text-transform:uppercase;letter-spacing:.13em}.nav{display:flex;flex-direction:column;gap:7px;margin-top:20px}.nav-item{border:0;background:transparent;color:#c8d4e8;padding:12px 13px;border-radius:10px;text-align:left;display:flex;gap:11px;align-items:center;font-weight:650}.nav-item span{font-size:11px;color:#7296d5}.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}.nav-item.active{background:#1b4380;color:#fff}.nav-item.active span{color:#9fc1ff}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:18px 8px 4px}.demo-pill{display:inline-flex;background:#f59e0b;color:#221605;font-size:10px;font-weight:900;letter-spacing:.12em;padding:6px 8px;border-radius:999px}.sidebar-foot p{font-size:11px;line-height:1.5;color:#9fb2d1}.sidebar-foot a{font-size:12px;color:#fff;text-decoration:none}.main-wrap{margin-left:260px;min-width:0;width:calc(100% - 260px)}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:25}.topbar h1{font-size:22px;margin:2px 0 0;letter-spacing:-.03em}.eyebrow,.kicker{font-size:10px;letter-spacing:.14em;font-weight:850;color:#7c8da6}.topbar-actions{display:flex;gap:12px;align-items:center}.status-dot{font-size:12px;color:#57677d;display:flex;gap:7px;align-items:center}.status-dot i{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px #fff2cf}.menu-toggle{display:none;border:0;background:transparent;font-size:22px}.content{padding:30px;min-height:calc(100vh - 142px)}.screen{display:none;animation:fade .18s ease}.screen.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero{padding:36px;display:grid;grid-template-columns:1.12fr .88fr;gap:34px;align-items:center;background:linear-gradient(135deg,#fff 55%,#f4f8ff)}.hero h2{font-size:38px;line-height:1.08;letter-spacing:-.045em;margin:8px 0 16px}.hero h2 span{color:var(--blue)}.hero p{font-size:15px;line-height:1.65;color:var(--muted);max-width:680px}.hero-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.hero-diagram{border-radius:14px;background:#f7faff;border:1px solid #dbe8fb;padding:8px}.hero-diagram svg{width:100%;display:block}.svg-title{font-size:14px;font-weight:800;fill:#22314a}.svg-sub{font-size:11px;fill:#6b7b91}.btn{border-radius:10px;padding:11px 15px;border:1px solid transparent;font-weight:800;font-size:13px;transition:.18s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 7px 20px rgba(30,103,232,.22)}.btn-secondary{background:#fff;color:var(--navy);border-color:#cfd9e7}.btn-ghost{background:#eff4fb;color:#30435f;border-color:#dce5f1}.btn-large{padding:14px 22px;font-size:14px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}.metric-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.metric-card span,.metric-card small{display:block;color:var(--muted);font-size:12px}.metric-card strong{font-size:29px;display:block;margin:5px 0}.warn-text{color:#d97706}.ok-text{color:var(--blue)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.wide-left{grid-template-columns:1.45fr .55fr}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px 0}.panel h3{margin:5px 0 10px;letter-spacing:-.02em}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 24px 24px}.check-grid div{display:flex;gap:10px;align-items:center;background:#f8fafc;border:1px solid #e4eaf2;padding:12px;border-radius:10px;font-size:13px}.check-grid b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e8f7ee;color:var(--green)}.notice-panel{padding:24px;display:flex;gap:16px;background:#fffdf7;border-color:#f2d79c}.notice-icon{width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:#fff0c2;color:#a16207;display:grid;place-items:center;font-weight:900}.notice-panel p{color:#6d5f3e;font-size:13px;line-height:1.55}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px;gap:16px}.section-heading h2{font-size:29px;margin:5px 0 4px;letter-spacing:-.035em}.section-heading p{margin:0;color:var(--muted);font-size:14px}.chip{border:1px solid #cbdcf9;background:#edf4ff;color:#2456a7;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:850}.chip.amber{border-color:#f6d59a;background:#fff8e8;color:#a16207}.form-panel{padding:26px}.form-panel label{display:block;font-size:12px;color:#536176;font-weight:750;margin-bottom:17px}.form-panel input,.form-panel select,.form-panel textarea{width:100%;margin-top:7px;border:1px solid #cfd9e6;border-radius:10px;padding:12px;background:#fbfdff;color:var(--ink)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-actions{display:flex;justify-content:flex-end}.scope-card{padding:24px}.switch-row{display:flex;align-items:center;gap:10px;font-size:13px;padding:11px 0;border-bottom:1px solid #edf1f6}.switch-row input{accent-color:var(--blue);width:17px;height:17px}.mini-note{font-size:11px;line-height:1.5;color:var(--muted);background:#f7f9fc;border-radius:10px;padding:12px;margin-top:16px}.upload-panel{padding:22px}.dropzone{border:1.5px dashed #afc6e9;border-radius:15px;padding:34px;text-align:center;background:#f8fbff}.dropzone.drag{background:#edf5ff;border-color:var(--blue)}.upload-icon{width:52px;height:52px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:#e8f1ff;color:var(--blue);font-size:26px;font-weight:900}.dropzone h3{margin:0 0 7px}.dropzone p{margin:0 0 18px;color:var(--muted);font-size:12px}.dropzone .btn{margin:4px}.file-table{margin-top:20px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.file-row{display:grid;grid-template-columns:1.5fr 1.2fr .7fr .5fr;gap:10px;padding:13px 15px;align-items:center;font-size:12px;border-top:1px solid #edf1f5}.file-row:first-child{border-top:0}.file-row.header{background:#f7f9fc;color:#6a7890;font-weight:850}.file-row:not(.header):hover{background:#fbfdff}.badge,.sev{font-style:normal;font-size:9px;font-weight:900;letter-spacing:.08em;border-radius:999px;padding:5px 7px}.badge.ready{background:#e9f8ef;color:#15803d}.badge.local{background:#eaf2ff;color:#1d4ed8}.bottom-actions{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:15px}.inline-note{color:#7c8899;font-size:11px}.run-panel{padding:28px}.run-summary{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:28px}.run-graphic{background:#f8fbff;border:1px solid #dbe7f6;border-radius:14px;padding:10px}.run-graphic svg{width:100%;display:block}.run-summary h3{font-size:25px;margin:7px 0 9px}.run-summary p{color:var(--muted);line-height:1.55;font-size:13px}.progress-box{margin-top:24px;border-top:1px solid var(--line);padding-top:22px}.progress-top{display:flex;justify-content:space-between;font-size:12px;color:#607086;margin-bottom:8px}.progress-track{height:10px;border-radius:999px;background:#e9eef5;overflow:hidden}.progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--blue),#5e9df8);transition:width .32s ease;border-radius:999px}.log{background:#0e1c33;color:#bfcee4;border-radius:12px;padding:15px;margin-top:14px;min-height:112px;font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.log .ok{color:#8ce6a8}.log .warn{color:#ffd181}.filter-wrap{display:flex;gap:7px}.filter{border:1px solid #d5deeb;background:#fff;color:#5b6b80;padding:7px 10px;border-radius:8px;font-size:11px;font-weight:800}.filter.active{background:var(--navy);color:#fff;border-color:var(--navy)}.finding-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px}.issue-list{padding:10px;max-height:680px;overflow:auto}.issue-card{padding:15px;border-radius:12px;border:1px solid transparent;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:8px}.issue-card:hover{background:#f8fbff}.issue-card.active{background:#eef5ff;border-color:#bfd5f8}.issue-card .title{font-weight:850;font-size:13px}.issue-card .meta{font-size:11px;color:#7a8799;margin-top:5px}.sev.high{background:#fee2e2;color:#b91c1c}.sev.medium{background:#fff0d6;color:#b45309}.sev.low{background:#e8f0ff;color:#1d4ed8}.issue-detail{padding:24px;min-height:420px}.empty-detail{display:grid;place-items:center;text-align:center;min-height:370px;color:#7b899d}.detail-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#edf4ff;color:var(--blue);font-size:26px;margin:auto}.issue-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;border-bottom:1px solid var(--line);padding-bottom:17px}.issue-head h2{margin:4px 0 5px;font-size:24px}.issue-head p{margin:0;color:var(--muted);font-size:12px}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.compare-box{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fbfdff}.compare-box label{font-size:10px;font-weight:900;letter-spacing:.1em;color:#7c8ba0}.compare-box strong{display:block;font-size:27px;margin:8px 0 4px}.compare-box small{color:#748399}.rule-box{margin-top:16px;background:#fffaf0;border:1px solid #f1dbac;border-radius:12px;padding:15px;font-size:12px;line-height:1.55;color:#6f5a31}.decision-box{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.report-wrap{display:grid;grid-template-columns:1fr 230px;gap:16px;align-items:start}.report-paper{background:#fff;border:1px solid #dfe5ec;border-radius:6px;box-shadow:0 12px 40px rgba(20,32,51,.09);padding:36px}.report-head{display:flex;justify-content:space-between;gap:18px;border-bottom:3px solid var(--navy);padding-bottom:18px}.report-brand{font-size:11px;font-weight:900;color:var(--blue);letter-spacing:.1em;text-transform:uppercase}.report-head h2{font-size:26px;margin:5px 0}.report-head p{font-size:12px;color:#6f7c8f;margin:0}.report-stamp{text-align:center;border:2px solid #e3ad43;color:#9a6400;padding:10px;border-radius:8px;font-size:13px;font-weight:900}.report-stamp small{font-size:7px}.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.report-kpis div{background:#f5f8fc;border:1px solid #e4eaf2;border-radius:8px;padding:12px}.report-kpis span{display:block;color:#7a8797;font-size:9px;text-transform:uppercase;font-weight:850}.report-kpis b{font-size:18px}.report-paper h3{margin:22px 0 8px;font-size:15px}.report-paper p{font-size:12px;line-height:1.65;color:#566477}.report-paper table{width:100%;border-collapse:collapse;font-size:10px}.report-paper th,.report-paper td{border-bottom:1px solid #e6ebf1;text-align:left;padding:9px 7px}.report-paper th{background:#f5f8fc}.report-warning{margin-top:20px;padding:13px;background:#fff8e9;border:1px solid #f3d69a;border-radius:8px;font-size:10px;line-height:1.5;color:#6d562a}.report-actions{padding:18px;position:sticky;top:104px}.report-actions p{font-size:11px;color:var(--muted);line-height:1.5}.report-actions .btn{display:block;width:100%;margin-top:8px}.footer{min-height:58px;background:#fff;border-top:1px solid var(--line);padding:16px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;color:#7c8998}.footer strong{color:#34435a}.toast{position:fixed;right:22px;bottom:22px;background:#0f2344;color:#fff;padding:13px 16px;border-radius:10px;font-size:12px;box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:80;max-width:330px}.toast.show{opacity:1;transform:none}
@media(max-width:1050px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main-wrap{margin-left:0;width:100%}.menu-toggle{display:block}.topbar{padding:0 18px}.content{padding:22px}.hero{grid-template-columns:1fr}.hero-diagram{max-width:620px}.metric-grid{grid-template-columns:repeat(2,1fr)}.report-wrap{grid-template-columns:1fr}.report-actions{position:static}.finding-layout,.two-col,.wide-left,.run-summary{grid-template-columns:1fr}}
@media(max-width:680px){.topbar{height:auto;min-height:76px;padding:14px}.topbar-actions .status-dot{display:none}.topbar .btn{display:none}.eyebrow{display:none}.content{padding:14px}.hero{padding:24px}.hero h2{font-size:30px}.metric-grid{grid-template-columns:1fr 1fr}.check-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.file-row{grid-template-columns:1.5fr 1fr .65fr}.file-row span:nth-child(4){display:none}.finding-layout{grid-template-columns:1fr}.issue-list{max-height:none}.compare-grid{grid-template-columns:1fr}.report-paper{padding:20px}.report-kpis{grid-template-columns:1fr 1fr}.report-head{flex-direction:column}.footer{flex-direction:column;align-items:flex-start}.bottom-actions,.section-heading{align-items:flex-start;flex-direction:column}.filter-wrap{flex-wrap:wrap}}
@media print{.sidebar,.topbar,.footer,.report-actions,.section-heading{display:none!important}.main-wrap{margin:0;width:100%}.content{padding:0}.screen{display:none!important}#screen-report{display:block!important}.report-wrap{display:block}.report-paper{box-shadow:none;border:0;padding:0}.app-shell{display:block}.report-warning{break-inside:avoid}}
