@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');

:root{--ink:#17243d;--muted:#667085;--line:#dce3ee;--surface:#fff;--canvas:#f4f7fb;--navy:#172d52;--teal:#0d8078;--teal-soft:#e8f7f4;--red:#c84252;--red-soft:#fff0f1;--amber:#b66b08;--amber-soft:#fff5dd;--violet:#6e55b5;--violet-soft:#f2eeff;--shadow:0 12px 34px rgba(31,45,74,.08)}
*{box-sizing:border-box}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.5}
button,input,select{font:inherit}
button{cursor:pointer}
.topbar{height:70px;padding:0 clamp(20px,5vw,76px);display:flex;align-items:center;gap:24px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--navy);font:700 1.05rem "Manrope",sans-serif;letter-spacing:-.02em}
.brand b{color:var(--teal)}
.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:800}
.privacy-pill{margin-left:auto;background:var(--teal-soft);color:#17645f;border:1px solid #ccebe6;padding:7px 12px;border-radius:999px;font-size:.82rem;font-weight:600}
.privacy-pill span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#18a88f;margin-right:7px}
.icon-button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);font-weight:700}
main{max-width:1480px;margin:auto;padding:40px clamp(20px,5vw,76px) 64px}
.intro{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(330px,.6fr);gap:54px;align-items:end;margin-bottom:34px}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--teal);font-size:.72rem;font-weight:800;margin:0 0 6px}
h1,h2,h3{font-family:"Manrope",sans-serif;color:var(--navy);margin:0;letter-spacing:-.035em}
h1{font-size:clamp(2.1rem,4vw,4rem);line-height:1.07;max-width:900px}
h1 em{font-style:normal;color:var(--teal)}
.lede{font-size:1.07rem;color:var(--muted);max-width:750px;margin:16px 0 0}
.upload-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:10px;box-shadow:var(--shadow)}
.upload-panel p{grid-column:1/-1;color:var(--muted);font-size:.76rem;margin:5px 0 0;text-align:center}
.primary,.secondary{border-radius:10px;padding:12px 16px;border:1px solid transparent;font-weight:700;transition:.2s transform,.2s box-shadow}
.primary{background:var(--teal);color:#fff;box-shadow:0 6px 15px rgba(13,128,120,.19)}
.primary:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(13,128,120,.25)}
.secondary{background:#fff;color:var(--navy);border-color:var(--line)}
.small{padding:9px 13px;font-size:.86rem}
.dashboard{display:none}
.dashboard.active{display:block}
.dashboard-head{display:flex;align-items:end;justify-content:space-between;margin:32px 0 16px;gap:20px}
.dashboard-head h2{font-size:1.5rem}
.dashboard-head p:last-child{color:var(--muted);font-size:.87rem;margin:4px 0 0}
.head-actions{display:flex;gap:8px}
.metrics{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:14px}
.metric{background:var(--surface);border:1px solid var(--line);border-radius:16px;min-height:150px;padding:20px;box-shadow:0 4px 18px rgba(31,45,74,.035);display:flex;align-items:flex-start;gap:14px}
.metric-label{color:#657187;font-size:.82rem;font-weight:700}
.metric strong{display:block;font:800 2.25rem "Manrope";color:var(--navy);line-height:1.1;margin-top:14px}
.metric p{color:var(--muted);font-size:.79rem;margin:6px 0 0}
.metric-icon{flex:0 0 37px;height:37px;border-radius:11px;display:grid;place-items:center;font-weight:800}
.metric-icon.red{background:var(--red-soft);color:var(--red)}
.metric-icon.amber{background:var(--amber-soft);color:var(--amber)}
.metric-icon.violet{background:var(--violet-soft);color:var(--violet)}
.score-card{display:block;background:linear-gradient(135deg,#172d52,#1c4160);border:0;color:#fff}
.score-card .metric-label,.score-card strong{color:#fff}
.score-card p{color:#cbd8e5}
.info{display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid #7890a9;border-radius:50%;font-size:.62rem;margin-left:4px}
.score-row{display:flex;align-items:end;justify-content:space-between}
.score-row strong{font-size:2.7rem;margin-top:9px}
.score-row span{font-size:.78rem;color:#bce5df;margin-bottom:6px}
.progress{height:6px;background:rgba(255,255,255,.18);border-radius:5px;overflow:hidden;margin-top:12px}
.progress div{height:100%;background:#2cc2aa;border-radius:5px}
.content-grid{display:grid;grid-template-columns:1.55fr .75fr;gap:14px;margin-top:14px}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 4px 18px rgba(31,45,74,.035)}
.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.panel h3{font-size:1.05rem}
.generated-tag{font-size:.71rem;color:#5d4b9c;background:var(--violet-soft);padding:5px 9px;border-radius:999px;font-weight:700}
.summary-text{font-size:1rem;color:#34435a;margin:0 0 17px}
.priorities{display:grid;gap:8px}
.priority{display:grid;grid-template-columns:26px 1fr auto;gap:9px;align-items:center;background:#f8fafc;border:1px solid #e9edf3;border-radius:10px;padding:10px 12px;font-size:.84rem}
.priority b:first-child{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--red-soft);color:var(--red);font-size:.7rem}
.priority span{color:var(--muted)}
.disclaimer{font-size:.7rem!important;color:#8993a5!important;margin:16px 0 0!important}
.risk-chart{display:grid;gap:15px}
.chart-item{display:grid;grid-template-columns:1fr auto;gap:7px;font-size:.8rem}
.chart-item b{color:var(--navy)}
.chart-track{grid-column:1/-1;height:8px;background:#edf1f6;border-radius:10px;overflow:hidden}
.chart-fill{height:100%;border-radius:10px}
.actions-panel{margin-top:14px;padding:0;overflow:hidden}
.table-tools{display:flex;justify-content:space-between;align-items:end;gap:18px;padding:20px 22px;border-bottom:1px solid var(--line)}
.filters{display:flex;gap:8px}
.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 10px;gap:7px}
.search input{border:0;outline:0;min-width:220px;padding:9px 0;color:var(--ink)}
select{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:9px 30px 9px 10px}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:990px;font-size:.82rem}
th{text-align:left;color:#748095;background:#f8fafc;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:11px 16px}
td{border-top:1px solid #edf0f4;padding:13px 16px;color:#425069;vertical-align:middle}
td strong{color:var(--navy)}
.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-weight:800;font-size:.68rem}
.badge.high{background:var(--red-soft);color:var(--red)}.badge.medium{background:var(--amber-soft);color:var(--amber)}.badge.low{background:var(--teal-soft);color:var(--teal)}
.finding{font-weight:700;color:var(--navy)}
.finding small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
.empty-state{text-align:center;color:var(--muted);padding:40px}
.start-state{border:1px dashed #bcc8d9;border-radius:18px;background:rgba(255,255,255,.55);padding:45px 24px;text-align:center}
.start-state.hidden{display:none}
.start-icon{width:48px;height:48px;border-radius:15px;background:var(--teal-soft);color:var(--teal);display:grid;place-items:center;margin:0 auto 14px;font-size:1.5rem}
.start-state h2{font-size:1.3rem}.start-state>p{max-width:580px;margin:8px auto 24px;color:var(--muted)}
.steps{display:flex;justify-content:center;align-items:center;gap:16px;color:#526077;font-size:.82rem}
.steps span{display:flex;align-items:center;gap:7px}.steps b{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:#fff;font-size:.7rem}.steps i{height:1px;width:44px;background:#cbd3df}
dialog{border:0;border-radius:18px;width:min(590px,calc(100% - 32px));padding:0;box-shadow:0 24px 70px rgba(14,29,52,.3)}
dialog::backdrop{background:rgba(13,25,45,.58);backdrop-filter:blur(3px)}
dialog form{padding:28px;position:relative}.dialog-close{position:absolute;right:16px;top:13px;border:0;background:transparent;font-size:1.6rem;color:var(--muted)}
dialog h2{font-size:1.55rem}dialog>form>p:not(.eyebrow){color:var(--muted)}
.code-list{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;background:#f6f8fb;border-radius:12px;padding:16px;margin:18px 0}
.code-list code{color:var(--teal);font-weight:700}.code-list span{font-size:.82rem;color:#57647a}.full{width:100%}
.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:10px 16px;border-radius:9px;opacity:0;pointer-events:none;transition:.2s;box-shadow:var(--shadow);font-size:.85rem}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.metrics{grid-template-columns:1fr 1fr}.content-grid{grid-template-columns:1fr}.intro{grid-template-columns:1fr}.upload-panel{max-width:580px}.intro{gap:25px}}
@media(max-width:680px){.topbar{padding:0 16px}.privacy-pill{display:none}main{padding:28px 16px 48px}.upload-panel{grid-template-columns:1fr}.upload-panel p{grid-column:auto}.metrics{grid-template-columns:1fr}.dashboard-head,.table-tools{align-items:stretch;flex-direction:column}.filters{flex-direction:column}.search input{min-width:0;width:100%}.steps{align-items:flex-start;flex-direction:column;width:max-content;margin:auto}.steps i{height:20px;width:1px;margin-left:11px}.head-actions button{flex:1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
