@font-face{font-family:"Jakarta";src:url("/assets/fonts/plus-jakarta-sans-latin.woff2") format("woff2");font-weight:400 800;font-display:swap}
:root{
  --primary:#2A6DF4;      /* sampled: original site primary, hsl(220 90% 56%) – 4.57:1 with white */
  --primary-sky:#3B82F6;  /* sampled: original's lighter sky blue – charts/decor only */
  --primary-ink:#1557C1;  /* hover / text on light */
  --primary-soft:#EAF1FE;
  --teal:#10B981; --teal-ink:#047857; --teal-soft:#E7F8F1;
  --red:#C9302C; --red-soft:#FCEBEA; --amber-ink:#92400E; --amber-soft:#FEF3C7; --amber-dot:#F59E0B;
  --lav-ink:#4338CA; --lav-soft:#EEF0FF;
  --ink:#101828; --text:#344054; --muted:#667085; --line:#EAECF0; --canvas:#FFFFFF; --subtle:#F7F8FA;
  --r:14px; --font:"Jakarta",Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{font-family:var(--font);color:var(--ink);background:var(--subtle);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}
.stage{min-height:100%;display:flex;align-items:center;justify-content:center;padding:28px 16px;gap:40px}
.side{max-width:300px;color:var(--muted);font-size:14px}
.side h1{font-size:22px;color:var(--ink);margin:0 0 8px;letter-spacing:-.02em}
.side .tag{display:inline-block;margin-bottom:14px}
.side ol{padding-left:18px;margin:14px 0 0}.side li{margin:6px 0}
.phone{width:390px;height:844px;border-radius:52px;background:#0B0D12;padding:12px;box-shadow:0 30px 80px -30px rgba(16,24,40,.35);flex:none;position:relative}
.screen{position:relative;width:100%;height:100%;border-radius:41px;overflow:hidden;background:var(--canvas);display:flex;flex-direction:column}
.island{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:118px;height:34px;border-radius:20px;background:#0B0D12;z-index:30}
.status{height:50px;flex:none;display:flex;justify-content:space-between;align-items:center;padding:6px 30px 0 34px;font-weight:600;font-size:15px}
.status .ic{display:flex;gap:6px;align-items:center}
.status .bat{width:24px;height:12px;border:1.5px solid var(--ink);border-radius:4px;position:relative}
.status .bat:after{content:"";position:absolute;inset:1.5px 5px 1.5px 1.5px;background:var(--ink);border-radius:1.5px}
.views{flex:1;position:relative;overflow:hidden}
.view{position:absolute;inset:0;overflow-y:auto;padding:4px 20px 110px;display:none;scrollbar-width:none}
.view::-webkit-scrollbar{display:none}
.view.on{display:block;animation:fade .22s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.view.on{animation:none}}
/* full-screen on phones / narrow iframes */
@media (max-width:520px){
  .stage{padding:0;display:block}.side{display:none}
  .phone{width:100%;height:100vh;height:100dvh;border-radius:0;padding:0;box-shadow:none;background:var(--canvas)}
  .screen{border-radius:0}.island,.status{display:none}
  .view{padding-top:14px}
}
/* generic */
.row{display:flex;align-items:center;gap:10px}
.between{display:flex;align-items:center;justify-content:space-between;gap:10px}
.top{display:flex;align-items:center;justify-content:space-between;height:48px;margin-bottom:6px}
.top h2{font-size:16px;font-weight:700;margin:0;letter-spacing:-.01em}
.iconbtn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--line);background:#fff}
.iconbtn svg{width:18px;height:18px}
.sample{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--muted);background:var(--subtle);border:1px solid var(--line);border-radius:999px;padding:3px 9px}
.sample:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber-dot)}
h3.sec{font-size:15.5px;font-weight:700;margin:22px 0 12px;letter-spacing:-.01em;display:flex;justify-content:space-between;align-items:center}
h3.sec a,h3.sec button{font-size:13px;font-weight:600;color:var(--primary-ink)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px}
.card.subtle{background:var(--subtle)}
.muted{color:var(--muted)}.small{font-size:12.5px}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;border-radius:6px;padding:4px 8px;white-space:nowrap}
.pill.high{background:var(--red);color:#fff}
.pill.med{background:var(--amber-soft);color:var(--amber-ink)}
.pill.low{background:var(--lav-soft);color:var(--lav-ink)}
.pill.ok{background:var(--teal-soft);color:var(--teal-ink)}
.pill.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.tag{background:var(--amber-soft);color:var(--amber-ink)}
.pill.tag:before{background:var(--amber-dot)}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:50px;border-radius:12px;background:var(--primary);color:#fff;font-weight:700;font-size:15px;transition:background .15s}
.btn:hover{background:var(--primary-ink)}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.danger{background:#fff;color:var(--red);border:1px solid #F4C7C5}
.btn.danger.solid{background:var(--red);color:#fff;border:0}
.btn[disabled]{opacity:.45;pointer-events:none}
/* home */
.hello{display:flex;align-items:center;gap:12px;margin:6px 0 18px}
.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#BFD5FD,#A7F0D2);display:grid;place-items:center;font-weight:700;color:var(--primary-ink);flex:none}
.hello small{display:block;color:var(--muted);font-size:12.5px}
.hello b{font-size:16px}
.hello .iconbtn{margin-left:auto;position:relative}
.hello .iconbtn i{position:absolute;top:9px;right:10px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid #fff}
.cash .big{font-size:32px;font-weight:800;letter-spacing:-.03em;margin:4px 0 2px}
.bar{height:6px;background:var(--line);border-radius:6px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--primary);border-radius:6px;transition:width .4s ease}
.bar.teal i{background:var(--teal)}
.promo{margin-top:14px;border-radius:var(--r);padding:18px;color:#fff;background:linear-gradient(135deg,#2A6DF4 0%,#1F5FDB 55%,#1557C1 100%);position:relative;overflow:hidden}
.promo:after{content:"";position:absolute;right:-30px;bottom:-40px;width:150px;height:150px;border-radius:36px;background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(16,185,129,.35));transform:rotate(18deg)}
.promo b{font-size:16.5px;display:block;max-width:15em;line-height:1.3;position:relative;z-index:1}
.promo p{margin:6px 0 14px;font-size:12.5px;color:#E3ECFE;max-width:20em;position:relative;z-index:1}
.promo .wp{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--primary-ink);font-weight:700;font-size:13px;border-radius:999px;padding:9px 14px}
.seg{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-bottom:12px}
.seg button{flex:none;height:34px;padding:0 14px;border-radius:9px;border:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--muted);background:#fff}
.seg button[aria-selected=true]{background:var(--primary);border-color:var(--primary);color:#fff}
.crunch{display:block;width:100%;text-align:left;margin-bottom:10px}
.crunch .t{font-weight:700;font-size:15px;margin:10px 0 2px}
.crunch .foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:12.5px;color:var(--muted)}
.stack{display:flex}.stack span{width:24px;height:24px;border-radius:50%;border:2px solid #fff;margin-left:-7px;display:grid;place-items:center;font-size:9.5px;font-weight:700;color:#fff}
.stack span:first-child{margin-left:0}
.chk{width:20px;height:20px;border-radius:6px;border:1.5px solid #D0D5DD;display:grid;place-items:center;flex:none;background:#fff}
.chk.on{background:var(--primary);border-color:var(--primary)}
.chk.on:after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.empty{text-align:center;padding:28px 10px;color:var(--muted)}
/* forecast */
.strip{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:4px 0 14px}
.strip button{height:60px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-weight:700;font-size:15px}
.strip button small{font-size:11px;font-weight:500;color:var(--muted)}
.strip button[aria-selected=true]{background:var(--primary);color:#fff}
.strip button[aria-selected=true] small{color:#DCE7FD}
.strip button .w{width:5px;height:5px;border-radius:50%;background:var(--red);margin-top:2px}
.strip button[aria-selected=true] .w{background:#fff}
.chart{position:relative;margin:4px -4px 0}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.chart .pt{cursor:pointer}
.legend{display:flex;gap:14px;font-size:11.5px;color:var(--muted);margin-top:6px}
.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;background:var(--primary-sky);vertical-align:middle;margin-right:5px}
.legend i.buf{background:none;border-top:2px dashed var(--red);height:0}
.kpis{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px}
.kpis div{background:var(--subtle);border-radius:12px;padding:10px}
.kpis b{display:block;font-size:15px;letter-spacing:-.01em}
.kpis small{font-size:11.5px;color:var(--muted)}
.why{margin-top:12px}
.why .li{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.why .li:first-of-type{border-top:0}
.neg{color:var(--red);font-weight:600}.pos{color:var(--teal-ink);font-weight:600}
/* alert detail */
.meta{display:grid;grid-template-columns:110px 1fr;gap:12px 8px;font-size:13px;margin:16px 0 4px;align-items:center}
.meta dt{color:var(--muted);display:flex;align-items:center;gap:8px}
.meta dd{margin:0;font-weight:600}
.status3{display:inline-flex;gap:4px;flex-wrap:wrap}
.status3 button{font-size:12px;font-weight:600;padding:4px 8px;border-radius:6px;color:var(--muted)}
.status3 button[aria-pressed=true]{background:var(--primary);color:#fff}
.grp{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff}
.grp>button{width:100%;display:flex;align-items:center;gap:10px;padding:13px 14px;font-weight:700;font-size:14px;text-align:left}
.grp>button .ring{width:18px;height:18px;border-radius:50%;border:1.5px solid #D0D5DD;flex:none}
.grp.done>button .ring{background:var(--teal);border-color:var(--teal)}
.grp>button .chev{margin-left:auto;transition:transform .2s}
.grp.open>button .chev{transform:rotate(180deg)}
.grp ul{list-style:none;margin:0;padding:0 14px 10px 14px;display:none}
.grp.open ul{display:block}
.grp li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;font-size:13px;cursor:pointer}
.grp li .amt{margin-left:auto;font-weight:600;color:var(--teal-ink);white-space:nowrap}
.result{border-radius:12px;padding:12px 14px;margin:14px 0;font-size:13px;display:flex;gap:10px;align-items:center}
.result.bad{background:var(--red-soft);color:#8A1F1B}.result.good{background:var(--teal-soft);color:var(--teal-ink)}
/* upload */
.file{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff}
.file[aria-checked=true]{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.file .ext{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:10.5px;font-weight:800;color:#fff;flex:none}
.file .radio{margin-left:auto;width:20px;height:20px;border-radius:50%;border:1.5px solid #D0D5DD;flex:none}
.file[aria-checked=true] .radio{border:6px solid var(--primary)}
.drop{border:1.5px dashed #D0D5DD;border-radius:14px;padding:20px;text-align:center;color:var(--muted);margin-bottom:16px;background:var(--subtle)}
.steps li{display:flex;gap:10px;align-items:center;padding:10px 0;color:var(--muted);font-size:13.5px}
.steps li.done{color:var(--ink)}
.steps{list-style:none;padding:0;margin:12px 0}
.spin{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--primary);animation:sp 0.8s linear infinite;flex:none}
@keyframes sp{to{transform:rotate(360deg)}}
.big-ok{width:64px;height:64px;border-radius:20px;background:var(--teal-soft);display:grid;place-items:center;margin:24px auto 14px}
/* settings */
.list{background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.list .it{display:flex;align-items:center;gap:12px;padding:14px;border-top:1px solid var(--line);font-size:13.5px}
.list .it:first-child{border-top:0}
.list .it .ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-ink);flex:none}
.list .it .ico.t{background:var(--teal-soft);color:var(--teal-ink)}
.list .it b{display:block;font-size:14px}
.tog{margin-left:auto;width:44px;height:26px;border-radius:13px;background:#D0D5DD;position:relative;flex:none;transition:background .2s}
.tog:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.tog[aria-checked=true]{background:var(--primary)}.tog[aria-checked=true]:after{transform:translateX(18px)}
/* tab bar */
.tabbar{position:absolute;left:0;right:0;bottom:0;height:84px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);align-items:start;padding:8px 6px 0;z-index:20;backdrop-filter:blur(8px)}
.tabbar button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#98A2B3;padding-top:4px}
.tabbar button svg{width:22px;height:22px}
.tabbar button[aria-current=page]{color:var(--primary-ink)}
.tabbar .plus{width:52px;height:52px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;margin:-4px auto 0;padding:0;box-shadow:0 8px 18px -8px rgba(42,109,244,.7)}
.tabbar .plus svg{width:24px;height:24px}
@media (max-width:520px){.tabbar{height:calc(70px + env(safe-area-inset-bottom));position:fixed}}
/* sheet + toast */
.scrim{position:absolute;inset:0;background:rgba(16,24,40,.35);z-index:40;display:none}
.scrim.on{display:block}
.sheet{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:22px 22px 0 0;padding:22px 20px 30px;z-index:41;transform:translateY(105%);transition:transform .25s ease}
.sheet.on{transform:none}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--line);margin:-8px auto 16px}
.toast{position:absolute;left:20px;right:20px;bottom:100px;background:var(--ink);color:#fff;border-radius:12px;padding:12px 14px;font-size:13px;z-index:50;opacity:0;transform:translateY(8px);transition:all .2s;pointer-events:none}
.toast.on{opacity:1;transform:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.list .ico svg,.iconbtn svg{width:18px;height:18px}
