:root{--page:#0d0d0d;--surface:#1a1a19;--surface-2:#222220;--ink:#ffffff;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:rgba(255,255,255,.10);--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--good:#0ca30c;--warn:#fab219;--serious:#ec835a;--crit:#d03b3b;--seq-250:#86b6ef;--seq-400:#3987e5;--seq-600:#184f95;--radius:10px}*{box-sizing:border-box;margin:0}html{color-scheme:dark}body{background:var(--page);color:var(--ink);font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;padding-bottom:calc(64px + env(safe-area-inset-bottom))}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select{font:inherit;color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:9px 10px;width:100%}a:focus-visible,button:focus-visible,input:focus,select:focus{outline:2px solid var(--s1);outline-offset:1px}a{color:var(--s1);text-decoration:none}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}header.app{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgba(13,13,13,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--grid)}header.app .logo{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--s1),var(--seq-600));display:grid;place-items:center;font-size:14px;color:#fff}header.app h1{font-size:15px;font-weight:650;letter-spacing:.2px}header.app .sub{color:var(--muted);font-size:12px;margin-left:auto}main{max-width:980px;margin:0 auto;padding:16px}nav.tabs{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:rgba(13,13,13,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--grid);padding-bottom:env(safe-area-inset-bottom)}nav.tabs a{flex:1 1;padding:10px 4px 12px;color:var(--muted);font-size:11px;display:grid;grid-gap:3px;gap:3px;justify-items:center;min-height:44px}nav.tabs a .ic{font-size:18px;line-height:1}nav.tabs a.on{color:var(--s1)}.screen{animation:fade .18s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1}}.offline-banner{position:-webkit-sticky;position:sticky;top:51px;z-index:19;background:rgba(250,178,25,.12);color:var(--warn);border-bottom:1px solid var(--grid);padding:7px 16px;font-size:12.5px;text-align:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.card h2{font-size:13px;font-weight:650;color:var(--ink-2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px}.grid2{grid-template-columns:1fr 1fr;grid-gap:10px}.grid2,.grid4{display:grid;gap:10px}.grid4{grid-template-columns:repeat(4,1fr);grid-gap:10px}@media(max-width:640px){.grid4{grid-template-columns:1fr 1fr}}label.f{display:grid;grid-gap:5px;gap:5px;font-size:12px;color:var(--muted)}.btn{background:var(--s1);color:#fff;font-weight:650;border-radius:9px;padding:12px;width:100%;font-size:15px}.btn:active{transform:scale(.99)}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--border)}.btn.danger{background:rgba(208,59,59,.15);color:var(--crit);border:1px solid rgba(208,59,59,.4)}.btn.apple{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#111;border:1px solid var(--border)}.btn.apple:active{transform:scale(.99)}.btn.apple .apple-ic,.chip{display:inline-flex;align-items:center}.chip{gap:5px;font-size:12px;padding:4px 9px;border-radius:99px;border:1px solid var(--border);color:var(--ink-2);background:none;cursor:pointer;min-height:26px}.chip.on{border-color:var(--s1);color:var(--s1)}.badge{font-size:10.5px;font-weight:650;padding:2px 7px;border-radius:5px;letter-spacing:.3px;display:inline-block}.badge.direct{background:rgba(12,163,12,.14);color:var(--good)}.badge.vi{background:rgba(236,131,90,.15);color:var(--serious)}.badge.pos{background:rgba(250,178,25,.13);color:var(--warn)}.badge.stale{background:rgba(137,135,129,.15);color:var(--muted)}.badge.pctl{background:rgba(57,135,229,.15);color:var(--s1)}.badge.fav{background:rgba(201,133,0,.16);color:var(--s4)}.rowline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.money{font-weight:700;font-size:17px}.money small{font-size:11px;color:var(--muted);font-weight:500}.up{color:var(--serious)}.down{color:var(--good)}table{width:100%;border-collapse:collapse;font-size:13px}th{color:var(--muted);font-weight:600;text-align:left;padding:7px 8px;border-bottom:1px solid var(--axis);font-size:11.5px;text-transform:uppercase;letter-spacing:.4px}td{padding:8px;border-bottom:1px solid var(--grid);vertical-align:middle}tr:last-child td{border-bottom:none}.note{font-size:12px;color:var(--muted);line-height:1.5}.hr{height:1px;background:var(--grid);margin:12px 0}.empty{text-align:center;color:var(--muted);padding:28px 16px;font-size:13px;line-height:1.6}.empty .big{font-size:30px;margin-bottom:8px}.banner-warn{font-size:12.5px;color:var(--warn);background:rgba(250,178,25,.1);border:1px solid rgba(250,178,25,.25);border-radius:8px;padding:8px 11px;margin:10px 0}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.seg button{padding:5px 11px;border-radius:6px;font-size:12px;color:var(--muted);min-height:28px}.seg button.on{background:var(--s1);color:#fff}.prov{gap:8px;flex-wrap:wrap;margin-top:10px}.p,.prov{display:flex}.p{align-items:center;gap:6px;font-size:12px;color:var(--muted);padding:5px 10px;border:1px solid var(--border);border-radius:8px}.p .dot{width:8px;height:8px;border-radius:50%;background:var(--axis);flex:none}.p.run .dot{background:var(--warn);animation:pulse 1s infinite}.p.ok .dot{background:var(--good)}.p.ko .dot{background:var(--crit)}.p.skip .dot{background:var(--axis)}.p.ok{color:var(--ink-2)}@keyframes pulse{50%{opacity:.35}}.itin{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:10px;overflow:hidden}.itin>button.head{width:100%;text-align:left;padding:13px 14px;display:grid;grid-gap:8px;gap:8px}.itin .top{display:flex;align-items:baseline;gap:10px}.itin .times{font-weight:650;font-size:15px;white-space:nowrap}.itin .aln{color:var(--muted);font-size:12px}.itin .spread{margin-left:auto;text-align:right}.itin .spread .rng{font-size:11px;color:var(--muted)}.itin .detail{display:none;border-top:1px solid var(--grid);padding:12px 14px;background:var(--surface-2)}.itin.open .detail{display:block}.offer-line{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--grid);font-size:13px;flex-wrap:wrap}.offer-line:last-child{border:none}.offer-line .src{width:110px;color:var(--ink-2)}.offer-line .pos{width:44px;color:var(--muted);font-size:12px}.offer-line .go{margin-left:auto;color:var(--s1);font-weight:600;font-size:12px}.best{color:var(--good);font-weight:700}.decode{display:grid;grid-gap:4px;gap:4px;font-size:12.5px;margin-top:10px}.decode .l{display:flex;justify-content:space-between;color:var(--ink-2)}.decode .l.total{border-top:1px solid var(--axis);padding-top:5px;font-weight:700;color:var(--ink)}.meter{height:8px;border-radius:5px;display:flex;overflow:hidden;gap:2px;margin:6px 0 2px}.meter i{display:block;height:100%}.mx-wrap{overflow-x:auto;margin:0 -14px;padding:0 14px}.mx td,.mx th{text-align:right;white-space:nowrap}.mx td:first-child,.mx th:first-child{text-align:left;position:-webkit-sticky;position:sticky;left:0;background:var(--surface)}.mx .cell{border-radius:6px;padding:5px 7px;display:inline-block;min-width:64px;text-align:right;cursor:pointer}.mx .cbest{background:rgba(12,163,12,.16);color:var(--good);font-weight:700}.mx .cwarn{outline:1px dashed var(--warn);outline-offset:-1px}.mx .risk{font-size:10px;vertical-align:super}.sheet-veil{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;background:var(--surface);border-top:1px solid var(--border);border-radius:14px 14px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));max-width:980px;margin:0 auto;animation:sheetUp .2s ease}@keyframes sheetUp{0%{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}.sheet h3{font-size:14px;font-weight:650;margin-bottom:8px}.sheet ul{margin:8px 0 12px 18px;font-size:12.5px;color:var(--ink-2);display:grid;grid-gap:4px;gap:4px}.watch{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;align-items:center}.watch .route{font-weight:650;font-size:14.5px}.watch .meta{color:var(--muted);font-size:12px}.spark{display:block;margin-top:6px}.switch{width:40px;height:23px;border-radius:99px;background:var(--axis);position:relative;transition:.15s;flex:none;padding:0}.switch.on{background:var(--s1)}.switch i{position:absolute;top:2.5px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}.switch.on i{left:19px}.alertline{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--grid);font-size:13px}.alertline:last-child{border:none}.alertline .ic{font-size:15px}.alertline time{color:var(--muted);font-size:11.5px;display:block}.watch-card.focus{outline:2px solid var(--s1);outline-offset:1px;transition:outline .3s}.tiles{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;margin-bottom:12px}@media(max-width:640px){.tiles{grid-template-columns:1fr 1fr}}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:11px 12px}.tile .v{font-size:21px;font-weight:700;margin-top:2px}.tile .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.tile .d{font-size:11.5px;margin-top:2px}.tooltip{position:fixed;pointer-events:none;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:12px;z-index:50;box-shadow:0 6px 20px rgba(0,0,0,.5)}.legend-inline{font-size:11.5px;color:var(--muted);display:flex;gap:14px;margin-top:8px}.legend-inline i{display:inline-block;width:14px;height:3px;border-radius:2px;background:var(--s1);vertical-align:middle;margin-right:5px}.legend-inline i.band{height:10px;background:rgba(57,135,229,.18);border:1px solid rgba(57,135,229,.35)}.stepper{display:inline-flex;align-items:center;gap:6px}.stepper button{width:26px;height:26px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--ink-2);font-size:14px;line-height:1;display:grid;place-items:center}.stepper .val{min-width:44px;text-align:center;font-size:12.5px}.slider-row{display:grid;grid-gap:4px;gap:4px;margin-bottom:12px}.slider-row .lbl{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-2)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:22px;background:none;border:none;padding:0}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:3px;background:var(--axis)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--s1);margin-top:-7px}input[type=range]::-moz-range-track{height:4px;border-radius:3px;background:var(--axis)}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--s1);border:none}.fav-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--grid);font-size:13px}.fav-row:last-child{border:none}.fav-row .name{color:var(--ink-2);flex:1 1}.loglines{font:11.5px/1.6 ui-monospace,Menlo,monospace;color:var(--ink-2);overflow-x:auto;white-space:pre}.login-wrap{min-height:calc(100vh - 60px);display:grid;place-items:center;padding:24px}.login-box{width:100%;max-width:360px;display:grid;grid-gap:14px;gap:14px;text-align:center}.login-box .biglogo{width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,var(--s1),var(--seq-600));display:grid;place-items:center;font-size:32px;margin:0 auto;color:#fff}.login-box h1{font-size:22px;font-weight:700;letter-spacing:.3px}.err{color:var(--crit);font-size:12.5px}.ap{position:relative}.ap-line{display:flex;gap:6px}.ap-line input{flex:1 1}.ap-gps{width:38px;flex:0 0 38px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink-2);font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ap-gps.on,.ap-gps:hover{border-color:var(--s1);color:var(--s1)}.ap-gps.on{background:rgba(57,135,229,.12)}.ap-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.ap-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:3px 8px;border-radius:99px;border:1px solid var(--s1);color:var(--s1);background:rgba(26,135,229,.08);letter-spacing:.4px}.ap-chip button{border:none;background:none;color:inherit;font-size:11px;cursor:pointer;padding:0 2px}.ap-chip button:hover{color:#fff}.ap-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 32px rgba(0,0,0,.55);padding:6px;max-height:300px;overflow:auto}.ap-group{margin-bottom:4px}.ap-title{font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);padding:6px 8px 4px}.ap-opt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:7px 8px;border:none;border-radius:8px;background:none;color:var(--ink);cursor:pointer;font-size:14px}.ap-opt:hover{background:var(--surface-2)}.ap-code{flex:0 0 44px;font-size:13px;font-weight:800;letter-spacing:.6px;color:var(--s1);background:rgba(26,135,229,.1);border-radius:6px;padding:3px 0;text-align:center}.ap-text{display:grid;line-height:1.25;min-width:0}.ap-name{font-size:13.5px}.ap-sub{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-empty,.ap-sub{color:var(--muted)}.ap-empty{font-size:12.5px;padding:10px 8px}.drp{position:relative}.drp-field{display:grid;grid-gap:2px;gap:2px;padding:9px 12px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);cursor:pointer;text-align:left}.drp-field.focus,.drp-field:hover{border-color:var(--s1)}.drp-lab{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}.drp-val{font-size:14.5px;font-weight:650}.cal-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 16px 40px rgba(0,0,0,.6);padding:10px}.cal-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cal-nav{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink-2);font-size:17px;cursor:pointer;line-height:1}.cal-nav:hover{border-color:var(--s1);color:var(--s1)}.cal-mons{flex:1 1;display:flex;justify-content:center;gap:14px}.cal-mon{font-size:13px;font-weight:800;letter-spacing:.3px}.cal-grids{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media(max-width:560px){.cal-grids{grid-template-columns:1fr}}.cal-wd{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px;margin-bottom:3px}.cal-wd span{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.cal-day{aspect-ratio:1;border:none;border-radius:8px;background:none;color:var(--ink);font-size:12.5px;font-weight:600;cursor:pointer;position:relative}.cal-day:hover:not(:disabled){background:var(--surface-2)}.cal-day.past{color:var(--grid);cursor:default}.cal-day.wd{color:var(--ink-2)}.cal-day.today{box-shadow:inset 0 0 0 1px var(--s1)}.cal-day.in{background:rgba(26,135,229,.18);border-radius:0}.cal-day.sel-a{background:var(--s1);color:#fff;border-radius:9px}.cal-day.sel-r{background:var(--s3);color:#fff;border-radius:9px}.cal-day.sel-a.in{border-radius:9px 0 0 9px}.cal-day.sel-r.in{border-radius:0 9px 9px 0}.cal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;border-top:1px solid var(--border);padding-top:8px;flex-wrap:wrap}.cal-mode{font-size:12px;color:var(--muted)}.cal-short{display:flex;gap:6px;flex-wrap:wrap}.al-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:10px;gap:10px;margin-bottom:12px}.al-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);transition:transform .12s ease,border-color .12s ease}.al-card:hover{transform:translateY(-1px);border-color:var(--s1)}.al-avatar{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;box-shadow:0 2px 8px rgb(0 0 0/.35)}.al-info{min-width:0;display:flex;flex-direction:column;gap:2px}.al-name{font-size:13.5px;font-weight:650;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.al-meta{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}.al-bonus{font-size:10.5px;font-weight:700;color:#7ce0b0;background:rgb(25 158 112/.16);border:1px solid rgb(25 158 112/.35);padding:1px 7px;border-radius:999px}.al-x{margin-left:auto;background:none;border:none;color:var(--muted);font-size:14px;cursor:pointer;padding:6px;border-radius:8px;transition:color .12s ease,background .12s ease}.al-x:hover{color:#ff6b6b;background:rgb(255 107 107/.12)}.al-add{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px dashed var(--border);border-radius:14px;background:var(--surface-2)}.al-add .ap-line input{width:100%}