:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}html{overscroll-behavior:none;background-color:#050508;height:100%}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background-color:#050508;height:100%;margin:0;overflow:hidden}#root{text-align:center;box-sizing:border-box;overscroll-behavior:none;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}#root{overscroll-behavior:none;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden}.app{--bg:#050508;--text:#a1a1aa;--text-h:#fafafa;--border:#2a2b32;--code-bg:#14151c;--accent:#c084fc;--accent-bg:#c084fc24;--accent-border:#c084fc8c;--social-bg:#202128f2;--orac-bg:#2dd4bf1a;--orac-border:#2dd4bf61;--orac-pill-text:#99f6e4;--orac-pill-bg:#2dd4bf24;--orac-pill-border:#2dd4bf52;text-align:left;width:100%;max-width:720px;height:100%;min-height:0;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));padding-bottom:max(12px, env(safe-area-inset-bottom));box-sizing:border-box;background:var(--bg);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;flex-direction:column;flex:1;margin:0 auto;display:flex;overflow:hidden}.app-top{background:var(--bg);z-index:2;padding-top:env(safe-area-inset-top);flex-shrink:0}.chat-header{position:relative}.chat-header h1{text-align:center;color:#f4a0a0;letter-spacing:.02em;margin:8px 0 6px;font-size:1.25rem;font-weight:600}.about-btn{color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.1rem;position:absolute;top:50%;right:0;transform:translateY(-50%)}.about-btn:hover{color:var(--text-h)}.tabs{background:var(--bg);border-bottom:1px solid var(--border);gap:6px;padding:10px 12px 12px;display:flex}.tab{color:#ffffff8c;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:4px;margin:0;padding:8px 4px;font-size:.72rem;transition:background .15s,color .15s;display:flex}.tab--active{color:#fff;background:#ffffff26;border-color:#ffffff59;font-weight:600}.tab:not(.tab--active):hover{color:#fffc;background:#ffffff1a}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.push-banner{border:1px solid var(--border);background:#14151ceb;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin:10px 0 0;padding:10px 12px;display:flex}.push-banner-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.push-banner-title{color:var(--text-h);font-size:.88rem;font-weight:600}.push-banner-text{color:#ffffffb3;font-size:.82rem;line-height:1.35}.push-banner-btn{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;flex:none;padding:9px 12px;font-weight:600}.push-banner-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=620px){.push-banner{flex-direction:column;align-items:stretch}}.app-body{overscroll-behavior:none;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.messages-wrap{flex-direction:column;flex:1;min-height:0;display:flex}.messages{overscroll-behavior:none;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:12px;min-height:0;padding:0 0 8px;display:flex;overflow-y:auto}.message{display:flex}.message--user{justify-content:flex-end}.message--assistant{justify-content:flex-start}.bubble{border:1px solid var(--border);background:var(--social-bg);max-width:85%;color:var(--text-h);white-space:pre-wrap;word-break:break-word;border-radius:12px;padding:10px 14px}.bubble--user{background:var(--accent-bg);border-color:var(--accent-border)}.bubble--assistant{flex-direction:column;gap:8px;padding-bottom:8px;display:flex}.bubble-body{white-space:pre-wrap;word-break:break-word}.bubble-footer{justify-content:flex-start;margin-top:2px;display:flex}.bubble-pill{letter-spacing:.02em;opacity:.85;border-radius:999px;padding:3px 7px;font-size:.65rem;font-style:normal;font-weight:500;line-height:1}.bubble--brenda{background:var(--social-bg);border-color:var(--border)}.bubble--brenda .bubble-pill{color:var(--text);background:var(--code-bg);border:1px solid var(--border)}.bubble--orac{background:var(--orac-bg);border-color:var(--orac-border)}.bubble--orac .bubble-pill{color:var(--orac-pill-text);background:var(--orac-pill-bg);border:1px solid var(--orac-pill-border)}.loading-indicator{opacity:.75;font-style:italic}.composer{border-top:1px solid var(--border);flex-shrink:0;align-items:stretch;gap:8px;padding-top:12px;display:flex}.composer-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.composer-attach{min-width:44px;font:inherit;background:var(--social-bg);color:var(--text-h);cursor:pointer;-webkit-tap-highlight-color:transparent;border:2px solid #0000;border-radius:8px;flex-shrink:0;padding:10px 8px;font-size:1.15rem;line-height:1}.composer-attach:disabled{opacity:.45;cursor:not-allowed}.composer-attach:not(:disabled):hover{border-color:var(--border)}.composer-attach:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.composer input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--code-bg);color:var(--text-h);border-radius:8px;flex:1;padding:10px 12px}.composer input:disabled{opacity:.6}.composer button[type=submit]{font:inherit;background:var(--accent-bg);color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:2px solid #0000;border-radius:8px;flex-shrink:0;padding:10px 16px}.composer button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.composer button[type=submit]:not(:disabled):hover{border-color:var(--accent-border)}.travel-tab-panel,.sched-tab-panel{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sched-panel{overscroll-behavior:none;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:8px 0 10px;overflow-y:auto}.sched-state{text-align:center;color:var(--text);margin:0;padding:24px 8px;font-size:.95rem}.sched-state--error{color:var(--text-h)}.sched-retry{border:1px solid var(--border);background:var(--code-bg);color:var(--text-h);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;justify-content:center;align-items:center;margin:0 auto;padding:10px 14px;display:inline-flex}.sched-retry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sched-list{flex-direction:column;gap:10px;display:flex}.sched-card{border:1px solid var(--border);background:#202128eb;border-radius:14px;padding:12px 12px 10px}.sched-card-head{cursor:pointer;-webkit-tap-highlight-color:transparent}.sched-card-title-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.sched-card-title-right{align-items:center;gap:8px;display:flex}.sched-chevron{color:#ffffff73;flex-shrink:0;transition:transform .2s}.sched-chevron--open{transform:rotate(180deg)}.sched-card-title{color:var(--text-h);margin:0;font-size:1rem;font-weight:600}.sched-card-desc{color:#ffffffad;margin:6px 0 0;font-size:.9rem;line-height:1.35}.sched-pill{border:1px solid var(--border);color:#ffffffb8;white-space:nowrap;background:#14151cd9;border-radius:999px;padding:5px 9px;font-size:.72rem;line-height:1}.sched-pill--on{color:#99f6e4;background:#2dd4bf1a;border-color:#2dd4bf61}.sched-pill--off{opacity:.85}.sched-meta{grid-template-columns:1fr;gap:6px;margin-top:10px;display:grid}.sched-meta-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.sched-meta-k{text-transform:uppercase;letter-spacing:.08em;color:#ffffff80;font-size:.72rem}.sched-meta-v{color:#ffffffc7;text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.86rem}.sched-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.sched-btn{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;flex:none;padding:10px 12px;font-weight:600}.sched-btn:disabled{opacity:.55;cursor:not-allowed}.sched-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sched-toggle{border:1px solid var(--border);color:#ffffffbf;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;background:#14151cd9;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;display:inline-flex}.sched-toggle input{accent-color:var(--accent)}.sched-toggle:has(input:disabled){opacity:.6;cursor:not-allowed}.travel-panel{overscroll-behavior:none;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:0 0 8px;overflow:hidden auto}.travel-subtab{font:inherit;border:1px solid var(--border);background:var(--code-bg);color:#ffffffb3;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;flex:1;padding:10px 12px;font-size:.9rem}.travel-subtab--active{color:var(--text-h);border-color:var(--accent-border);box-shadow:inset 0 0 0 1px #c084fc40}.travel-subtab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.travel-subtab:not(.travel-subtab--active):hover{color:#ffffffd9}.travel-state{text-align:center;color:var(--text);margin:0;padding:24px 8px;font-size:.95rem}.travel-state--error{color:var(--text-h)}.travel-sections{flex-direction:column;gap:4px;display:flex}.travel-section:first-child .travel-section-title{margin-top:0}.travel-section-title{font-family:var(--heading);text-transform:uppercase;letter-spacing:.08em;color:var(--text);margin:12px 0 8px;font-size:.72rem;font-weight:600}.travel-section-title--sub{margin-top:4px}.travel-state--inline{text-align:left;padding:12px 8px 8px}.travel-past-toggle{width:100%;font:inherit;text-align:center;color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;margin:8px 0 4px;padding:12px 14px;font-size:.9rem;font-weight:500}.travel-past-toggle:hover{border-color:var(--orac-border)}.travel-past-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.travel-past-panel{padding-bottom:8px}.travel-list{flex-direction:column;gap:12px;display:flex}.travel-card{border:1px solid var(--orac-border);background:var(--orac-bg);text-align:left;border-radius:12px;margin:0;padding:14px 14px 12px;position:relative}.travel-card--past{opacity:.6}.travel-card-head{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:4px;display:flex}.travel-card-type-icon{background:#ffffff12;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:1px;font-size:15px;display:flex}.travel-card-head-text{flex:1;min-width:0}.travel-card-meta-row{align-items:baseline;gap:7px;display:flex}.travel-card-flag{flex-shrink:0;font-size:17px;line-height:1}.travel-card-route-row{flex-wrap:wrap;align-items:center;gap:7px;margin-top:1px;display:flex}.travel-card-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:700;line-height:1.6;display:inline-block}.travel-card-delete{cursor:pointer;opacity:.85;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;flex-shrink:0;margin:0;padding:6px 8px;font-size:1.05rem;line-height:1}.travel-card-delete:hover{opacity:1;background:#ffffff0f}.travel-card-delete:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.travel-card-confirm{color:var(--text-h);border:1px solid var(--border);background:#00000040;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:6px 0 12px;padding:10px 12px;font-size:.85rem;line-height:1.35;display:flex}.travel-card-confirm-text{margin-right:auto}.travel-card-confirm-yes,.travel-card-confirm-cancel{font:inherit;cursor:pointer;border:1px solid var(--border);-webkit-tap-highlight-color:transparent;border-radius:8px;padding:6px 14px;font-size:.85rem;font-weight:600}.travel-card-confirm-yes{color:#fecaca;background:#f8717126;border-color:#f8717173}.travel-card-confirm-cancel{background:var(--code-bg);color:var(--text-h)}.travel-card-date{color:var(--orac-pill-text);margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.travel-card-route{font-family:var(--heading);letter-spacing:normal;color:var(--text-h);margin:0;font-size:1rem;font-weight:600;line-height:1.3}.travel-card-operator{color:var(--text-dim,#fff6);margin:2px 0 10px;font-size:.75rem;line-height:1.2}.travel-card-line{color:var(--text-h);margin:0 0 6px;font-size:.88rem;line-height:1.4}.travel-card-label{min-width:2.75rem;color:var(--text);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;display:inline-block}.travel-card-actions{flex-direction:column;align-items:flex-start;gap:8px;margin-top:14px;display:flex}.travel-card-qr-primary{width:100%;font:inherit;border:1px solid var(--orac-border);background:var(--code-bg);color:var(--text-h);cursor:pointer;-webkit-tap-highlight-color:transparent;letter-spacing:.01em;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:13px 12px;font-size:1rem;font-weight:600;display:flex}.travel-card-qr-primary:active{opacity:.85}.travel-card-qr-primary:focus-visible{outline:2px solid var(--orac-border);outline-offset:3px}.travel-card-qr-secondary{font:inherit;color:#ffffff4d;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0;font-size:.75rem}.travel-card-qr-secondary:hover,.travel-card-qr-secondary:active{color:#ffffff8c}.dep-board{touch-action:pan-y;background:#050508;border:1px solid #f59e0b33;border-radius:12px;padding:12px;overflow-x:hidden;box-shadow:inset 0 0 0 1px #f59e0b0f}.dep-controls{flex-direction:column;gap:12px;margin-bottom:10px;display:flex}.dep-station{flex-direction:column;gap:10px;display:flex}.dep-station-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;display:flex}.dep-station-actions .dep-quick{flex:auto;min-width:0}.dep-label{text-transform:uppercase;letter-spacing:.08em;color:#fbbf24d9;flex-direction:column;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;display:flex}.dep-input{color:#fbbf24;letter-spacing:.08em;text-transform:uppercase;background:#0009;border:1px solid #fbbf2447;border-radius:10px;width:100%;padding:10px 12px;font:700 1rem/1.1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dep-ac{width:100%;position:relative}.dep-ac-input{text-transform:none;letter-spacing:.04em;font-weight:600}.dep-ac-list{z-index:20;background:#0a0a0f;border:1px solid #fbbf2459;border-radius:10px;max-height:14rem;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0000008c}.dep-ac-list li{margin:0;padding:0}.dep-ac-option{color:#fbbf24;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;width:100%;margin:0;padding:8px 12px;font:600 .82rem/1.35 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;display:block}.dep-ac-option:hover,.dep-ac-option:focus-visible{background:#fbbf241f;outline:none}.dep-ac-suggestion-text{display:block}.dep-ac-suffix,.dep-ac-paren{color:#fbbf24e0}.dep-ac-match{color:#fde08b;text-underline-offset:2px;font-weight:700;text-decoration:underline}.dep-quick{gap:8px;display:flex}.dep-quick-btn{color:#fbbf24;cursor:pointer;background:#fbbf2414;border:1px solid #fbbf2438;border-radius:10px;flex:none;padding:10px 12px;font:700 .9rem/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dep-toggle{color:#fbbf24e6;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0000008c;border:1px solid #fbbf242e;border-radius:10px;flex:none;align-items:center;gap:8px;margin:0;padding:10px 12px;font:600 .85rem/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;display:inline-flex}.dep-toggle input{accent-color:#fbbf24}@media (width<=380px){.dep-station-actions{flex-direction:column;align-items:stretch}.dep-toggle{justify-content:center}}.dep-refresh{justify-content:space-between;align-items:center;gap:10px;display:flex}.dep-countdown{color:#fbbf24a6;font:600 .8rem/1.2 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dep-retry{color:#fbbf24;cursor:pointer;background:#fbbf2414;border:1px solid #fbbf243d;border-radius:10px;padding:10px 12px;font:700 .85rem/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dep-retry:disabled{opacity:.6;cursor:not-allowed}.dep-head{justify-content:space-between;align-items:baseline;gap:10px;margin:6px 0 10px;display:flex}.dep-station-name{color:#fbbf24;letter-spacing:.02em;font:800 1rem/1.1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dep-meta{color:#fbbf24a6;font:600 .75rem/1.2 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dep-skeleton{text-align:center;color:#fbbf24cc;padding:26px 10px;font:700 .9rem/1.4 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dep-error{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:22px 10px;display:flex}.dep-error-title{color:#ffffffd9;font:800 .95rem/1.3 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dep-stale-banner{color:#1a1a1a;background:#fbbf24d9;border-radius:4px;justify-content:center;align-items:center;gap:10px;margin:0 8px 6px;padding:6px 12px;font:600 .78rem/1.3 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;display:flex}.dep-stale-banner .dep-retry{padding:2px 8px;font-size:.72rem}.dep-table{border-top:1px solid #fbbf242e}.dep-row{color:#fbbf24;border-bottom:1px solid #fbbf241f;grid-template-columns:64px 54px 1fr 110px;gap:8px;padding:10px 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;display:grid}.dep-row--header{color:#fbbf24bf;letter-spacing:.08em;text-transform:uppercase;padding:8px 0;font-size:.72rem;font-weight:800}.dep-row--yours{background:#2dd4bf14;border-bottom-color:#2dd4bf38;border-radius:8px;margin:6px -10px;padding:10px;box-shadow:inset 0 0 0 1px #2dd4bf2e}.dep-cell{min-width:0}.dep-time,.dep-plat,.dep-status{letter-spacing:.02em;font-weight:800}.dep-dest-main{font-weight:800}.dep-op-inline{color:#fbbf24a6;letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:.72rem;font-weight:700;overflow:hidden}.dep-status{text-align:right;white-space:nowrap}.dep-dest{min-width:0}.dep-dest-main{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dep-your{color:#99f6e4e6;flex-wrap:wrap;gap:8px;margin-top:4px;font-size:.75rem;display:flex}.dep-your-ref{opacity:.8}.dep-plat--changed{color:#fff;background:#ef44442e;border:1px solid #ef444459;border-radius:8px;width:fit-content;padding:2px 6px}.dep-status--ontime{color:#86efac}.dep-status--delayed{color:#fbbf24}.dep-status--cancelled{color:#fca5a5}@media (width<=420px){.dep-row{grid-template-columns:54px 44px 1fr 98px;gap:6px}}.qr-overlay{z-index:1000;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));box-sizing:border-box;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#050508;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.qr-overlay-close{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:2;min-width:48px;min-height:48px;font:inherit;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff24;border:1px solid #ffffff59;border-radius:10px;padding:12px 18px;font-size:1rem;font-weight:600;line-height:1.2;position:absolute}.qr-overlay-close:active{background:#ffffff38}.qr-overlay-close:focus-visible{outline-offset:2px;outline:2px solid #fff}.qr-overlay-img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:4px;width:auto;max-width:min(92vw,440px);height:auto;max-height:min(70vh,560px);box-shadow:0 8px 32px #0009}.qr-overlay-ref{font-size:.75rem;font-family:var(--mono);color:#ffffff8c;letter-spacing:.02em;margin:0}.qr-overlay-loading,.qr-overlay-error{color:#ffffffd9;margin:0;font-size:.95rem}.qr-overlay-error{color:#fca5a5}.qr-overlay--barcode{cursor:default;background:#fff}.qr-overlay--barcode .qr-overlay-close{color:#111;background:#00000012;border-color:#0000002e}.qr-overlay--barcode .qr-overlay-ref{color:#00000073}.qr-overlay-barcode-img{object-fit:contain;cursor:default;-webkit-user-select:none;user-select:none;border-radius:8px;width:min(88vw,520px);height:min(88vw,520px)}.qr-overlay-toggle{cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;padding:6px 12px;font-size:.85rem}.qr-overlay--barcode .qr-overlay-toggle{color:#0006}.qr-overlay:not(.qr-overlay--barcode) .qr-overlay-toggle{color:#ffffff80}.about-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.about-panel{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:380px;max-height:85dvh;padding:32px 24px 24px;position:relative;overflow-y:auto}.about-close{color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.1rem;position:absolute;top:12px;right:12px}.about-close:hover{color:var(--text-h)}.about-avatar{object-fit:cover;border:none;border-radius:24px;width:140px;height:140px;margin-bottom:16px}.about-title{color:var(--text-h);margin:0 0 4px;font-size:1.4rem;font-weight:600}.about-version{color:var(--accent);margin:0 0 12px;font-size:.85rem}.about-desc{color:var(--text);margin:0 0 20px;font-size:.9rem;line-height:1.5}.about-tech{text-align:left;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:.85rem;display:grid}.about-tech dt{color:var(--accent);font-weight:600}.about-tech dd{color:var(--text);margin:0}.agenda-list{padding:4px 0 24px}.agenda-row{align-items:center;gap:8px;padding:11px 14px;font-size:.9rem;display:flex}.agenda-week-divider{border-top:1px dashed #ffffff38;margin:4px 14px}.agenda-week-label{color:#ffffff73;margin:0;padding:8px 12px 4px;font-size:.75rem;font-weight:600}.agenda-date{color:var(--accent);flex-shrink:0;min-width:76px;font-size:.82rem}.agenda-icon{flex-shrink:0;font-size:1rem}.agenda-badge{letter-spacing:.02em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.7rem;font-weight:700}.agenda-route{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.agenda-time{color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.88rem}.ticket-collapsed{cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;width:100%;font:inherit;background:0 0;border:none;border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:11px 14px;display:flex}.ticket-collapsed:active{background:#ffffff0a}.ticket-collapsed-chevron{color:#ffffff4d;flex-shrink:0;margin-left:auto;font-size:1.2rem}.ticket-collapse-bar{color:#ffffff4d;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-bottom:1px solid #ffffff0f;width:100%;padding:5px 14px;font-size:.78rem;display:block}.ticket-collapse-bar:hover{color:#6ea8fe}.travel-card--collapsed{cursor:pointer;-webkit-tap-highlight-color:transparent;padding:0}.travel-card--collapsed:active{opacity:.8}.travel-card-collapsed-row{align-items:center;gap:10px;padding:12px 14px;display:flex}.travel-card-collapsed-text{flex:1;min-width:0}.travel-card-collapsed-time{color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.9rem}.travel-card-collapsed-chevron{color:#ffffff59;flex-shrink:0;font-size:1.3rem;line-height:1}.travel-card-date-row{align-items:center;gap:10px;display:inline-flex}.travel-card-collapse-btn{cursor:pointer;color:inherit;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:10px;padding:0;display:inline-flex}.travel-card-chevron-icon{color:#fff6;flex-shrink:0}.wallet-section-header{z-index:5;-webkit-backdrop-filter:blur(8px);background:#0a0a14bf;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:11px 16px;display:flex;position:sticky;top:0}.wallet-section-header--cards{border-top:2px solid #ffffff1a;margin-top:8px}.wallet-section-heading{text-transform:uppercase;letter-spacing:.07em;color:#ffffff80;font-size:.8rem;font-weight:600}.wallet-section-add-btn{font:inherit;color:#fff9;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffffff2e;border-radius:6px;padding:5px 11px;font-size:.8rem}.wallet-section-add-btn:hover,.wallet-section-add-btn:active{color:var(--text-h);border-color:#ffffff59}.wallet-upload-status{font-size:.78rem}.wallet-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0;padding:16px 12px 6px;font-size:.75rem;font-weight:600}.wallet-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:8px 12px 24px;display:grid}.wallet-tile{background:var(--code-bg);border:1px solid var(--border);-webkit-tap-highlight-color:transparent;text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;min-height:130px;padding:12px 8px 10px;display:flex;position:relative}.wallet-tile-img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:6px;width:100%;max-width:160px;height:100px}.wallet-tile-img--photo{object-fit:cover;border-radius:8px;max-width:100%}.wallet-tile-name{color:var(--text);word-break:break-word;font-size:.8rem;line-height:1.3}.wallet-tile-delete{color:#ffffff59;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:4px 6px;font-size:.8rem;line-height:1;position:absolute;top:6px;right:6px}.wallet-tile-delete:hover{color:#fca5a5}.wallet-add-form{background:var(--code-bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;margin:8px 12px 0;padding:12px;display:flex}.wallet-add-form input[type=text]{border:1px solid var(--border);color:var(--text-h);font:inherit;box-sizing:border-box;background:#ffffff12;border-radius:8px;width:100%;padding:9px 12px;font-size:.9rem}.wallet-add-form input[type=text]:focus{border-color:var(--accent);outline:none}.wallet-add-form select{border:1px solid var(--border);color:var(--text-h);font:inherit;box-sizing:border-box;cursor:pointer;background:#ffffff12;border-radius:8px;width:100%;padding:9px 12px;font-size:.9rem}.wallet-add-form-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fasting{color:var(--text);flex-direction:column;display:flex}.fasting-header{background:var(--bg);z-index:5;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 12px;display:flex;position:sticky;top:0}.fasting-week-nav{flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.fasting-nav-btn{color:var(--text-h);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffffff1f;border-radius:8px;width:32px;height:32px;font-size:.9rem;transition:background .15s}.fasting-nav-btn:hover{background:#ffffff14}.fasting-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fasting-week-label{text-align:center;color:var(--text-h);font-size:.95rem;font-weight:600;line-height:1.2}.fasting-today-link{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:2px;padding:2px 0;font-size:.75rem}.fasting-today-link:hover{text-decoration:underline}.fasting-settings-btn{color:var(--text-h);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffffff1f;border-radius:8px;width:32px;height:32px;font-size:1rem}.fasting-settings-btn:hover{background:#ffffff14}.fasting-settings-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fasting-progress{border-bottom:1px solid var(--border);padding:12px}.fasting-progress-label{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.85rem;display:flex}.fasting-progress-label strong{color:var(--text-h);font-size:1rem}.fasting-target-hit{margin-left:4px}.fasting-progress-bar{background:#ffffff14;border-radius:3px;height:6px;overflow:hidden}.fasting-progress-fill{background:var(--accent);height:100%;transition:width .3s}.fasting-grid{flex-direction:column;display:flex}.fasting-row{border-bottom:1px solid #ffffff0f;grid-template-columns:1.05fr .9fr .9fr .9fr .9fr .9fr .7fr;align-items:center;gap:4px;padding:10px 28px 10px 12px;display:grid}.fasting-row>:nth-child(6){border-left:1px solid #ffffff24;margin-left:4px;padding-left:8px}.fasting-row--header{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--code-bg);padding:8px 12px;font-size:.7rem}.fasting-row--today{box-shadow:inset 3px 0 #f59e0b}.fasting-row--today .fasting-day-name{color:#f59e0b}.fasting-row--totals{background:var(--code-bg);color:var(--text-h);font-weight:600}.fasting-col-cell{justify-content:center;align-items:center;display:flex}.fasting-day{flex-direction:column;gap:2px;display:flex}.fasting-day-name{color:var(--text-h);font-size:.9rem;font-weight:600}.fasting-day-date{color:var(--text);font-size:.75rem}.fasting-circle{color:#0000;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:2px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:.85rem;font-weight:700;transition:background .15s,border-color .15s;display:flex}.fasting-circle:hover{border-color:#ffffff59}.fasting-circle--on{color:#fff;background:#10b981;border-color:#10b981}.fasting-circle--nocakes.fasting-circle--on{background:#a855f7;border-color:#a855f7}.fasting-circle--alcoholfree.fasting-circle--on{background:#a03055;border-color:#a03055}.fasting-circle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fasting-total{text-align:center;color:var(--text-h);font-weight:700}.fasting-loading{text-align:center;color:var(--text);padding:16px;font-size:.85rem}.fasting-settings-panel{background:var(--code-bg);border-radius:12px;flex-direction:column;gap:14px;max-width:420px;margin:24px auto;padding:20px;display:flex}.fasting-settings-label{color:var(--text-h);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.fasting-settings-input{background:var(--bg);border:1px solid var(--border);color:var(--text-h);font:inherit;border-radius:8px;padding:10px 12px;font-size:1rem}.fasting-settings-input:focus{outline:2px solid var(--accent);border-color:#0000}.fasting-save-btn{background:var(--accent);color:#0b0b12;font:inherit;cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-weight:600}.fasting-save-btn:disabled{opacity:.6;cursor:default}.fasting-settings-error{color:#fca5a5;font-size:.85rem}.fasting-settings-help{color:var(--text);font-size:.8rem;line-height:1.5}.fasting-progress-bar{position:relative}.fasting-progress-fill{height:100%;transition:width .3s;position:absolute;top:0;left:0}.fasting-progress-fill--projected{background:#c084fc59}.fasting-progress-fill--locked{background:var(--accent)}.fasting-progress-label{flex-wrap:wrap;gap:6px}.fasting-progress-locked strong{color:var(--text-h);font-size:1rem}.fasting-progress-sep{color:var(--text)}.fasting-progress-projected{color:var(--text);margin-left:auto;font-size:.78rem;font-style:italic}.fasting-row--locked{box-shadow:inset 3px 0 0 var(--accent);background:#ffffff0e}.fasting-row--locked .fasting-day-name,.fasting-row--locked .fasting-day-date{opacity:.9}.fasting-row--missed{opacity:.5}.fasting-row--hypothetical .fasting-total--hypothetical{color:var(--text);font-style:italic;font-weight:500}.fasting-lock-icon{margin-right:4px;font-size:.85rem}.fasting-day-tag{color:var(--text);font-size:.72rem;font-style:italic}.fasting-circle--disabled{opacity:.6;cursor:default}.fasting-circle--disabled:hover{border-color:#ffffff2e}.fasting-total-cell{justify-content:center;align-items:center;display:flex}.fasting-lock-btn{background:var(--accent-bg,#c084fc24);border:1px solid var(--accent-border,#c084fc8c);color:var(--text-h);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-size:.8rem;font-weight:600;display:flex}.fasting-lock-btn:hover{background:#c084fc40}.fasting-lock-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fasting-lock-btn-pts{font-variant-numeric:tabular-nums}.fasting-lock-btn-icon{font-size:.75rem}.fasting-locked-cell{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.fasting-total--locked-static{color:var(--text-h);font-size:1rem;font-weight:700}.fasting-unlock-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;opacity:.75;background:0 0;border:none;border-radius:6px;padding:2px;font-size:.9rem;transition:opacity .15s,background .15s;position:absolute;top:50%;right:-20px;transform:translateY(-50%)}.fasting-unlock-btn:hover{opacity:1;background:#ffffff14}.fasting-unlock-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;opacity:1}.fasting-modal-backdrop{z-index:100;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.fasting-modal{background:var(--code-bg);border:1px solid var(--border);width:100%;max-width:380px;color:var(--text-h);border-radius:14px;padding:20px}.fasting-modal-title{margin-bottom:10px;font-size:1.05rem;font-weight:600}.fasting-modal-body{color:var(--text);margin-bottom:16px;font-size:.9rem;line-height:1.5}.fasting-modal-body strong{color:var(--text-h)}.fasting-modal-actions{justify-content:flex-end;gap:10px;display:flex}.fasting-modal-btn{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-size:.9rem}.fasting-modal-btn--cancel{border:1px solid var(--border);color:var(--text-h);background:0 0}.fasting-modal-btn--cancel:hover{background:#ffffff0d}.fasting-modal-btn--confirm{background:var(--accent);color:#0b0b12;font-weight:600}.fasting-modal-btn--confirm:hover{opacity:.9}
