:root{
  --bg:#EEF2F1; --card:#fff; --line:#EDF1F0; --line2:#D4DFDC;
  --ink:#11201E; --muted:#5C6E6B; --faint:#8A9996;
  --teal:#11A498; --teal-d:#0B6A61; --teal-bg:#E7F4F1;
  --amber:#ED9B2D; --amber-bg:#FCF2E1;
  --red:#CB4040; --red-d:#9A4A4A; --red-bg:#FBECEC;
  --pink:#E5006D; --soft:#F6FAF9;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:'Onest',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--bg);color:var(--ink);}
a{color:inherit;text-decoration:none;}
input::placeholder{color:#A7B4B1;}
.wrap{min-height:100vh;padding:40px 24px;display:flex;justify-content:center;}
.shell{width:100%;max-width:1160px;}
.card{background:var(--card);border-radius:18px;box-shadow:0 1px 3px rgba(17,32,30,.06),0 12px 40px rgba(17,32,30,.07);border:1px solid var(--line);overflow:hidden;}

/* brand + tabs */
.brand{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--line);}
.brand-l{display:flex;align-items:center;gap:11px;}
.logo{width:28px;height:28px;border-radius:8px;background:var(--teal);position:relative;}
.logo::after{content:"";position:absolute;right:-3px;top:-3px;width:9px;height:9px;border-radius:50%;background:var(--pink);}
.brand-name{font-size:15px;font-weight:700;}
.dot{color:#C7D2D0;}
.brand-sub{font-size:13px;color:var(--muted);}
.tabs{display:flex;gap:6px;}
.tab{font-family:inherit;font-size:13px;font-weight:600;padding:8px 14px;border-radius:9px;cursor:pointer;border:1px solid transparent;color:var(--teal-d);background:#fff;}
.tab.active{color:#fff;background:var(--teal);}
.tab.ghost{border-color:#BFE0DB;}

/* header */
.hd{padding:26px 32px;border-bottom:1px solid var(--line);background:var(--soft);}
.hd h1{margin:0 0 6px;font-size:22px;font-weight:800;letter-spacing:-0.02em;}
.hd p{margin:0;font-size:13px;color:var(--muted);max-width:780px;line-height:1.55;}
.scope{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.chip{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--teal-d);background:var(--teal-bg);padding:4px 9px;border-radius:6px;}

/* sections */
.sec{padding:24px 32px;border-bottom:1px solid var(--line);}
.sec:last-child{border-bottom:none;}
.sec-t{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--faint);margin-bottom:16px;}
.sec-t .hint{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--faint);}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:24px 32px;border-bottom:1px solid var(--line);}
.kpi{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:16px 18px;}
.kpi .v{font-size:30px;font-weight:800;letter-spacing:-0.02em;line-height:1;}
.kpi .l{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.35;}
.kpi.warn{background:var(--red-bg);border-color:#F0D2D2;}
.kpi.warn .v{color:var(--red);}
.kpi.flag .v{font-size:17px;font-weight:700;color:var(--ink);}

/* two-col */
.grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:0;border-bottom:1px solid var(--line);}
.grid2 > div{padding:24px 32px;}
.grid2 > div:first-child{border-right:1px solid var(--line);}

/* distribution stacks */
.crit-row{margin-bottom:18px;}
.crit-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:7px;}
.crit-name{font-size:14px;font-weight:700;}
.crit-name .meta{font-size:12px;font-weight:500;color:var(--muted);margin-left:6px;}
.crit-mean{font-family:var(--mono);font-size:13px;font-weight:600;}
.stack{display:flex;height:26px;border-radius:8px;overflow:hidden;background:#EFF3F2;}
.stack span{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;}
.s-low{background:var(--red);}
.s-mid{background:var(--amber);}
.s-high{background:var(--teal);}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--muted);}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle;}

/* donut */
.donut-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;}
.donut{position:relative;width:172px;height:172px;}
.donut .ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.donut .ctr .n{font-size:46px;font-weight:800;letter-spacing:-0.03em;line-height:1;}
.donut .ctr .u{font-size:12px;color:var(--faint);margin-top:2px;}
.donut-cap{margin-top:14px;text-align:center;font-size:13px;color:var(--muted);line-height:1.45;max-width:250px;}
.pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;padding:5px 11px;border-radius:999px;border:1px solid #F4E1C0;background:var(--amber-bg);margin-bottom:10px;}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--amber);}

/* red-flag ranking */
.flags{display:flex;flex-direction:column;gap:11px;}
.flag-row{display:grid;grid-template-columns:250px 1fr 44px;align-items:center;gap:14px;}
.flag-lbl{font-size:13px;font-weight:600;}
.flag-lbl .sub{font-size:11px;color:var(--faint);font-weight:500;}
.flag-bar{height:12px;border-radius:99px;background:#EFF3F2;overflow:hidden;}
.flag-bar > i{display:block;height:100%;border-radius:99px;}
.flag-n{font-family:var(--mono);font-size:13px;font-weight:600;text-align:right;}
.sev-sev,.sev-severe{background:var(--red);}
.sev-maj,.sev-major,.sev-minor{background:var(--amber);}
.tagsm{font-family:var(--mono);font-size:10px;font-weight:600;padding:1px 6px;border-radius:5px;margin-left:6px;}
.tag-eq{color:var(--teal-d);background:var(--teal-bg);}
.tag-pe{color:#6b5bd4;background:#ECEAFB;}

/* trend */
.trend{display:flex;align-items:flex-end;gap:10px;height:120px;padding-top:8px;}
.tcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;justify-content:flex-end;height:100%;}
.tbar{width:100%;max-width:34px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--teal) 0%,#3bc0b4 100%);}
.tlab{font-size:10px;color:var(--faint);font-family:var(--mono);}
.tval{font-size:11px;font-weight:700;color:var(--ink);}

.note{margin:22px 32px 30px;padding:14px 18px;background:#FFF9EC;border:1px solid #F4E4BD;border-radius:12px;font-size:12px;color:#6b5a32;line-height:1.5;}
.note b{color:#4d4023;}

/* ============ simulator ============ */
.entry{padding:26px 32px;border-bottom:1px solid var(--line);background:var(--soft);}
.entry-t{font-size:18px;font-weight:700;letter-spacing:-0.01em;margin-bottom:14px;}
.entry-row{display:flex;gap:12px;align-items:stretch;max-width:760px;}
.id-box{flex:1;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line2);border-radius:11px;padding:0 16px;}
.id-tag{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--teal-d);background:var(--teal-bg);padding:4px 8px;border-radius:6px;}
.id-box input{flex:1;border:none;outline:none;background:transparent;font-family:var(--mono);font-size:14px;color:var(--ink);padding:13px 0;}
.btn{font-family:inherit;font-size:15px;font-weight:600;color:#fff;background:var(--teal);border:none;padding:0 26px;border-radius:11px;cursor:pointer;white-space:nowrap;}
.entry-pick{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap;}
.entry-pick span{font-size:12px;color:var(--faint);}
.entry-pick select{font-family:inherit;font-size:12px;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:8px;padding:6px 10px;cursor:pointer;max-width:560px;}

.ctxstrip{display:flex;gap:40px;padding:16px 32px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.ctxstrip .k{font-size:11px;color:var(--faint);margin-bottom:3px;}
.ctxstrip .v{font-size:14px;font-weight:600;}

.hero{display:flex;gap:36px;padding:36px 32px 30px;align-items:center;flex-wrap:wrap;}
.gauge{position:relative;flex:none;width:184px;height:184px;}
.gauge .ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.gauge .ctr .n{font-size:54px;font-weight:800;letter-spacing:-0.03em;line-height:1;}
.gauge .ctr .u{font-size:12px;color:var(--faint);margin-top:2px;}
.hero-r{flex:1;min-width:300px;}
.band-pill{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;margin-bottom:14px;}
.band-pill i{width:8px;height:8px;border-radius:50%;}
.hero-sum{margin:0 0 18px;font-size:18px;line-height:1.5;color:var(--ink);font-weight:500;max-width:580px;}
.statrow{display:flex;gap:14px;flex-wrap:wrap;}
.stat{flex:1;min-width:120px;border-radius:12px;padding:14px 16px;}
.stat .sv{font-size:28px;font-weight:800;letter-spacing:-0.02em;}
.stat .sl{font-size:12px;margin-top:2px;}
.stat.crit{background:var(--soft);border:1px solid var(--line);}
.stat.crit .sv{color:var(--ink);}.stat.crit .sl{color:var(--muted);}
.stat.risk{background:var(--red-bg);border:1px solid #F0D2D2;}
.stat.risk .sv{color:var(--red);}.stat.risk .sl{color:var(--red-d);}
.stat.pos{background:var(--teal-bg);border:1px solid #CFE8E3;}
.stat.pos .sv{color:var(--teal-d);}.stat.pos .sl{color:#3E6F69;}

.trace{display:flex;align-items:center;gap:8px;padding:0 32px 26px;flex-wrap:wrap;}
.trace .lbl{font-size:11px;color:var(--faint);margin-right:4px;}
.trace .step{font-family:var(--mono);font-size:11px;color:#3E6F69;background:var(--teal-bg);padding:4px 9px;border-radius:6px;}
.trace .arr{color:#C7D2D0;font-size:11px;}

.crits{padding:0 32px 8px;}
.acc{border:1px solid var(--line);border-radius:14px;margin-bottom:14px;overflow:hidden;}
.acc.risk{border-color:#F0D2D2;}
.acc-head{display:flex;align-items:center;gap:16px;padding:18px 20px;background:#FCFDFD;}
.acc.risk .acc-head{background:#FDF7F7;}
.acc-num{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink);background:var(--amber-bg);width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;}
.acc.good .acc-num{color:var(--teal-d);background:var(--teal-bg);}
.acc.risk .acc-num{color:var(--red);background:var(--red-bg);}
.acc-title{flex:1;}
.acc-title .t{font-size:16px;font-weight:700;}
.acc-title .t .badge{font-size:12px;font-weight:600;color:var(--red-d);background:var(--red-bg);padding:2px 8px;border-radius:6px;margin-left:4px;}
.acc-title .t .badge.na{color:var(--muted);background:#EFF3F2;}
.acc-title .s{font-size:13px;color:var(--muted);margin-top:1px;}
.acc-score{width:240px;}
.acc-score .row{display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px;}
.acc-score .row .k{color:var(--faint);}
.acc-bar{height:7px;border-radius:99px;background:#EFF3F2;overflow:hidden;}
.acc-bar > i{display:block;height:100%;border-radius:99px;}
.bar-low{background:var(--red);}.bar-mid{background:var(--amber);}.bar-high{background:var(--teal);}
.acc-body{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);}
.acc.risk .acc-body{border-top-color:#F0D2D2;}
.col{padding:20px;}
.col.l{border-right:1px solid var(--line);}
.col-h{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;margin-bottom:14px;}
.col-h i{width:9px;height:9px;border-radius:50%;}
.col-h.pos{color:var(--teal-d);}.col-h.pos i{background:var(--teal);}
.col-h.neg{color:var(--red-d);}.col-h.neg i{background:var(--red);}
.find{margin-bottom:16px;}
.find:last-child{margin-bottom:0;}
.find .ft{font-size:14px;font-weight:600;margin-bottom:5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sev{font-size:10px;font-weight:700;color:var(--ink);background:var(--amber-bg);padding:2px 7px;border-radius:5px;}
.sev.severe{color:var(--red);background:var(--red-bg);}
.quote{margin:0;padding:10px 14px;border-radius:0 8px 8px 0;}
.quote.pos{background:#F1F8F6;border-left:3px solid var(--teal);}
.quote.neg{background:#FCF1F1;border-left:3px solid var(--red);}
.quote .q{font-size:13px;line-height:1.5;font-style:italic;}
.quote.pos .q{color:#24403C;}.quote.neg .q{color:#5A2E2E;}
.muted-line{font-size:13px;color:var(--muted);line-height:1.5;}
.empty{font-size:13px;color:var(--faint);font-style:italic;}

.math{margin:18px 32px 32px;padding:20px 24px;background:var(--soft);border:1px solid var(--line);border-radius:14px;}
.math .h{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;margin-bottom:14px;}
.math .h .hint{font-size:11px;font-weight:500;color:var(--faint);}
.math .expr{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:13px;color:#3E6F69;flex-wrap:wrap;}
.math .expr b{color:var(--ink);}
.math .op{color:#C7D2D0;}
.math .res{color:var(--ink);font-weight:700;font-size:15px;}

@media(max-width:880px){
  .kpis{grid-template-columns:repeat(2,1fr);}
  .grid2{grid-template-columns:1fr;}
  .grid2 > div:first-child{border-right:none;border-bottom:1px solid var(--line);}
  .flag-row{grid-template-columns:150px 1fr 40px;}
  .acc-body{grid-template-columns:1fr;}
  .col.l{border-right:none;border-bottom:1px solid var(--line);}
  .acc-score{width:160px;}
}
