:root{--bg:#12172b;--panel:#1a2140;--card:#232b52;--line:#ffffff1a;--text:#f3f1e7;--muted:#a6adc8;--gold:#f2c14e;--green:#7ee0a1;--red:#ff6b81;--amber:#ffb454;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.4 ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:560px;padding-bottom:calc(84px + env(safe-area-inset-bottom));margin:0 auto}h2,h3,p{margin:0}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.icon{width:44px;height:44px;display:block}.icon-sm{flex:none;width:18px;height:18px}.map{-webkit-user-select:none;user-select:none;background:#101527;width:100%;height:auto;display:block}.node{cursor:pointer;outline:none}.node:focus-visible>circle:first-child{stroke:var(--gold);stroke-width:2.5px}.node.is-unseen{opacity:.72}.node .label{fill:var(--text);paint-order:stroke;stroke:#101527;stroke-width:3.5px;font-size:11.5px;font-weight:700}.node .badge{fill:#12172b;font-size:13px;font-weight:800}.node .stop{fill:var(--gold);font-size:10.5px;font-weight:800}.glow{opacity:.28;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite glow}.route-line{animation:1s linear infinite march}@keyframes glow{50%{opacity:.1;transform:scale(1.14)}}@keyframes march{to{stroke-dashoffset:-19px}}.panel{background:var(--panel);border-radius:20px 20px 0 0;margin-top:-14px;padding:18px 14px 20px;position:relative}.panel.flush{background:0 0;border-radius:0;margin-top:0}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-head h2{font-size:24px;line-height:1.15}.count{color:var(--muted);background:#ffffff14;border-radius:99px;flex:none;padding:5px 12px;font-size:14px;font-weight:700}.count.hot{background:var(--gold);color:#1b1a12}.card{background:var(--card);border-radius:16px;align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px;display:flex}.card.is-done{opacity:.6}.card-icon{flex:none}.card-body{flex:1;min-width:0}.card-body h3{flex-wrap:wrap;align-items:center;gap:6px;font-size:16px;display:flex}.card-body p{color:#d6d9e8;margin-top:3px;font-size:15px}.card-tools{flex-wrap:wrap;gap:4px;margin:6px 0 0 -8px;display:flex}.tool{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-size:13px;display:inline-flex}.tool .icon-sm{width:15px;height:15px}.tool.warn{color:var(--amber)}.tool.on{color:var(--red)}.detail{background:#00000030;border-radius:10px;margin-top:4px;padding:8px 10px;font-size:14px;color:#ffdcae!important}.pill{border-radius:99px;align-items:center;gap:3px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-flex}.pill .icon-sm{width:12px;height:12px}.pill.night{color:#d6d8ff;background:#3e3f8f}.pill.skipped{color:#ffd18f;background:#5c3e1a}.tick{color:#0000;background:#ffffff0d;border:2px solid #ffffff40;border-radius:50%;flex:none;align-self:center;place-items:center;width:48px;height:48px;display:grid}.tick .icon-sm{width:26px;height:26px}.tick[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#12251a}.checks{border:1px dashed #ffffff40;border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;display:flex}.checks-label{width:100%;color:var(--muted);font-size:14px;font-weight:700}.chip{background:#ffffff14;border:1px solid #ffffff30;border-radius:99px;align-items:center;gap:6px;min-height:44px;padding:8px 14px;font-weight:600;display:inline-flex}.chip.on{color:var(--green);background:#7ee0a11f;border-color:#7ee0a166}.owned{flex-wrap:wrap;gap:8px;margin:8px 0 12px;display:flex}.alert{border-left:5px solid var(--amber);background:#3a2d19;border-radius:14px;gap:10px;margin-bottom:12px;padding:12px;display:flex}.alert p{color:#eadfca;margin-top:2px;font-size:14px}.alert .icon-sm{width:22px;height:22px;color:var(--amber)}.alert.forever{border-left-color:var(--red);background:#41202a}.alert.forever .icon-sm{color:var(--red)}.alert.recoverable{background:#1d3049;border-left-color:#6fb8ff}.alert.recoverable .icon-sm{color:#6fb8ff}.tag{letter-spacing:.03em;text-transform:uppercase;opacity:.85;margin-top:6px;font-size:12px;font-weight:800;display:inline-block}.empty{color:var(--green);background:#7ee0a11a;border-radius:14px;align-items:center;gap:10px;margin-bottom:10px;padding:14px;display:flex}.empty.big{text-align:center;flex-direction:column;padding:28px 14px}.empty.big .icon-sm{width:40px;height:40px}.empty.big p{color:var(--muted)}.later{color:var(--muted);align-items:center;gap:8px;margin:12px 2px;font-size:14px;display:flex}.nearby{text-align:left;background:#f2c14e1a;border:1px solid #f2c14e55;border-radius:12px;align-items:center;gap:10px;width:100%;min-height:48px;margin-bottom:10px;padding:10px 12px;display:flex}.nearby .icon-sm{color:var(--gold)}.done-list summary{min-height:44px;color:var(--muted);cursor:pointer;padding:10px 2px;font-weight:600}.muted{color:var(--muted);font-size:14px}.route{margin:0;padding:0;list-style:none}.route li{gap:10px;padding-bottom:14px;display:flex;position:relative}.route li:not(:last-child):before{content:"";border-left:3px dashed #f2c14e66;position:absolute;top:34px;bottom:0;left:15px}.route-num{background:var(--gold);color:#1b1a12;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.route li.pass .route-num{color:var(--muted);background:#ffffff1f}.route-stop{flex:1;min-width:0}.route-stop h3{margin:4px 0 8px;font-size:18px}.stat{background:var(--panel);border-radius:18px;margin-bottom:12px;padding:14px}.stat header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.stat header h2{flex:1;font-size:17px}.stat header b{color:var(--gold);font-size:26px;line-height:1}.stat header small{color:var(--muted);font-size:15px}.stat-icon .icon{width:36px;height:36px}.stat-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat-row .stat{min-width:0}.token-grid{grid-template-columns:repeat(10,1fr);gap:5px;display:grid}.token-grid i{aspect-ratio:1;background:#ffffff14;border-radius:50%}.token-grid i.lit{background:var(--gold);box-shadow:0 0 8px #f2c14e88}.heart-grid{grid-template-columns:repeat(9,1fr);gap:3px;display:grid}.heart-cell{width:100%;display:block}.slots{flex-wrap:wrap;gap:2px;display:flex}.slots .icon{width:26px;height:26px}.slots.tight .icon{width:19px;height:19px}.stepper{color:var(--muted);align-items:center;gap:8px;margin-top:12px;font-size:14px;display:flex}.stepper span{flex:1}.stepper button{background:#ffffff14;border:0;border-radius:12px;width:44px;height:44px;font-size:22px}.stepper output{min-width:26px;color:var(--text);text-align:center;font-weight:800}.soon{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.soon li{color:var(--muted);background:#ffffff0f;border-radius:99px;padding:4px 10px;font-size:13px}.save-row{gap:8px;margin-top:8px;display:flex}.btn{cursor:pointer;background:#ffffff14;border:0;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:10px 14px;font-weight:700;display:inline-flex}.btn.primary{background:var(--gold);color:#1b1a12}.btn.danger{background:var(--red);color:#2a0b12}.btn.subtle{width:100%;color:var(--muted);background:0 0;margin-top:8px;font-weight:500}.fineprint{color:var(--muted);padding:0 6px;font-size:12px}.tabs{z-index:5;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#0d1122f2;justify-content:center;display:flex;position:fixed;inset:auto 0 0}.tab{max-width:187px;min-height:60px;color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 4px;font-size:12px;font-weight:600;display:flex;position:relative}.tab .icon-sm{width:24px;height:24px}.tab.on{color:var(--gold)}.tab em{background:var(--gold);color:#1b1a12;text-align:center;border-radius:99px;min-width:18px;padding:0 5px;font-size:11px;font-style:normal;font-weight:800;line-height:18px;position:absolute;top:5px;left:calc(50% + 8px)}.heading{background:var(--gold);color:#1b1a12;text-align:left;border:0;align-items:center;gap:10px;width:100%;min-height:54px;padding:10px 14px 24px;font-weight:800;display:flex}.heading span{flex:1}.heading small{opacity:.75;font-weight:700}.heading.set{color:var(--text);background:#2b3463}.heading.set b{color:var(--gold)}.way{border-radius:20px;margin-top:12px}.way-note{margin-top:12px}.side-title{margin:8px 0 10px;font-size:18px}.side{background:var(--card);border-radius:16px;align-items:center;gap:12px;margin-bottom:10px;padding:12px;display:flex}.side.on{outline:2px solid var(--gold)}.side-body{flex:1;min-width:0}.side h4{margin:0 0 2px;font-size:16px}.side p{font-size:14px}.side .good{color:var(--green)}.side .btn{flex:none;min-width:84px}.dest-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.sheet-back{z-index:10;background:#05081299;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:560px;padding:22px 18px calc(22px + env(safe-area-inset-bottom));background:var(--panel);border-radius:22px 22px 0 0;animation:.2s ease-out rise}.sheet h2{font-size:21px;line-height:1.2}.sheet-icons{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.sheet-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.save-warning{background:var(--red);color:#2a0b12;margin:0;padding:10px 14px;font-weight:700}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important}}
