@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-italic-DxWqP7Ku.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-italic-CGbN9UgK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-italic-lSdLDfvT.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spline Sans Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/spline-sans-mono-latin-ext-wght-normal-Dh0aNLWd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spline Sans Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/spline-sans-mono-latin-wght-normal-DlaB5ohX.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--text-scale:1;--text-2xs:calc(.6875rem * var(--text-scale));--text-xs:calc(.75rem * var(--text-scale));--text-sm:calc(.8125rem * var(--text-scale));--text-md:calc(.875rem * var(--text-scale));--text-base:calc(.9375rem * var(--text-scale));--text-lg:calc(1rem * var(--text-scale));--text-xl:calc(1.125rem * var(--text-scale));--display-xs:calc(1.25rem * var(--text-scale));--display-sm:calc(1.375rem * var(--text-scale));--display-md:calc(1.5rem * var(--text-scale));--display-lg:calc(1.75rem * var(--text-scale));--display-xl:calc(2rem * var(--text-scale));--display-2xl:calc(2.125rem * var(--text-scale));--display-hero:calc(3rem * var(--text-scale));--paper:#f6f1e6;--paper-2:#ede5d2;--card:#fdfaf2;--ink:#211a10;--ink-soft:#574c39;--muted:#75684e;--hairline:#e0d6bf;--hairline-strong:#c4b596;--sun:#ed8f00;--sun-deep:#b96e00;--flame:#c94f32;--flame-deep:#a23c22;--leaf:#3a7d44;--leaf-deep:#2d6437;--sky:#3d6ad1;--violet:#7a56c4;--peso:var(--leaf-deep);--tint-sun:#fff6e6;--tint-flame:#fdefe9;--tint-sky:#eef2fc;--tint-violet:#f3effb;--scrim:#211a1066;--skeleton-a:#ece3cf;--skeleton-b:#f5efe0;--bg:var(--paper);--panel:var(--card);--panel2:var(--paper-2);--line:var(--hairline);--text:var(--ink);--accent:var(--sun-deep);--prod:var(--sun);--cons:var(--flame);--sell:var(--leaf);--buy:var(--sky);--grid:var(--violet);--font-display:"Fraunces Variable", "Iowan Old Style", Georgia, "Times New Roman", serif;--font-ui:"Schibsted Grotesk Variable", "Segoe UI", system-ui, sans-serif;--font-mono:"Spline Sans Mono Variable", "Cascadia Code", ui-monospace, Consolas, monospace;--shadow-sm:0 1px 2px #543c100d, 0 6px 18px -10px #543c1024;--shadow-md:0 2px 4px #543c100f, 0 16px 40px -18px #543c1038;accent-color:var(--sun-deep);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#15110c;--paper-2:#0f0c08;--card:#1f1913;--ink:#ede3cd;--ink-soft:#c6b89c;--muted:#9c8f74;--hairline:#332b1f;--hairline-strong:#4d4130;--sun:#f3a226;--sun-deep:#f0b455;--flame:#e06a48;--flame-deep:#ee8e6f;--leaf:#59a566;--leaf-deep:#84c490;--sky:#7d9ff0;--violet:#a98ee8;--tint-sun:#2d2210;--tint-flame:#2f1c13;--tint-sky:#171e30;--tint-violet:#221a30;--scrim:#0009;--skeleton-a:#241d14;--skeleton-b:#2e251a;--shadow-sm:0 1px 2px #00000059, 0 6px 18px -10px #00000080;--shadow-md:0 2px 4px #0006, 0 16px 40px -18px #000000a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-textsize=large]{--text-scale:1.125}*{box-sizing:border-box}html{scrollbar-color:var(--hairline-strong) transparent}body{color:var(--ink);font-family:var(--font-ui);font-size:var(--text-base);-webkit-font-smoothing:antialiased;background:radial-gradient(1100px 620px at 12% -12%, #f4a62a2b, transparent 62%), radial-gradient(900px 520px at 108% -4%, #3a7d4412, transparent 55%), var(--paper);background-attachment:fixed;margin:0;line-height:1.55}:root[data-theme=dark] body{background:radial-gradient(1100px 620px at 12% -12%, #f3a22614, transparent 62%), radial-gradient(900px 520px at 108% -4%, #59a5660d, transparent 55%), var(--paper);background-attachment:fixed}body:before{content:"";z-index:1000;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}:root[data-theme=dark] body:before{mix-blend-mode:screen;opacity:.04}::selection{background:#ed8f0040}:root[data-theme=dark] ::selection{background:#f3a22659}:focus-visible{outline:2px solid var(--sun-deep);outline-offset:2px;border-radius:2px}@media (width<=767px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}}#app{min-height:100vh}main.app-main{max-width:1320px;margin:0 auto;padding:18px 32px 64px}@media (width<=767px){main.app-main{padding:14px 16px 48px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin:6px 0 16px;display:flex}.page-head h2{font-family:var(--font-display);font-size:var(--display-lg);letter-spacing:-.01em;font-variation-settings:"opsz" 30;margin:0;font-weight:540;line-height:1.1}.page-pills{gap:6px;display:flex}.dateline{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:12px;font-weight:500;display:flex}.dateline:after{content:"";border-top:1px solid var(--hairline);flex:1}.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:18px 0 22px;display:grid}.kpi{background:var(--card);border:1px solid var(--hairline);box-shadow:var(--shadow-sm);border-radius:10px;padding:14px 16px 12px;position:relative;overflow:hidden}.kpi:before{content:"";background:var(--sun);border-radius:0 0 3px 3px;width:26px;height:3px;position:absolute;top:0;left:16px}.kpi .label{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.11em;font-weight:600}.kpi .value{font-family:var(--font-mono);font-size:var(--display-sm);letter-spacing:-.01em;margin-top:6px;font-weight:560}.kpi .unit{color:var(--muted);font-size:var(--text-sm);margin-left:4px;font-weight:400}.kpi .delta{color:var(--ink-soft);font-size:var(--text-sm);margin-top:5px}.panel{background:var(--card);border:1px solid var(--hairline);box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:16px;padding:18px 20px}.panel h2{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:9px;margin:0 0 14px;font-weight:600;display:flex}.panel h2:before{content:"";background:var(--sun);border-radius:2px;flex-shrink:0;width:14px;height:3px}.row{grid-template-columns:2fr 1fr;gap:16px;display:grid}@media (width<=980px){.row{grid-template-columns:1fr}}.controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.controls button{border:1px solid var(--hairline-strong);color:var(--ink-soft);cursor:pointer;min-height:38px;font-size:var(--text-md);font-family:var(--font-ui);background:0 0;border-radius:999px;padding:8px 16px;font-weight:500;transition:background-color .14s,color .14s,border-color .14s}.controls button:hover:not(:disabled){background:var(--card);border-color:var(--ink);color:var(--ink)}.controls button:disabled,.controls input:disabled{opacity:.45;cursor:not-allowed}.controls.busy{cursor:progress}.controls button.active{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600}.controls input[type=date]{background:var(--card);border:1px solid var(--hairline-strong);color:var(--ink);font-size:var(--text-md);font-family:var(--font-mono);border-radius:8px;padding:8px 12px}.controls .label{font-size:var(--text-sm);color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em}canvas{max-width:100%}.chart-wrap{height:360px;position:relative}.chart-wrap.sm{height:260px}table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:var(--text-md)}th,td{border-bottom:1px solid var(--hairline);text-align:right;font-variant-numeric:tabular-nums;padding:9px 12px}th:first-child,td:first-child{text-align:left}th{background:var(--card);color:var(--muted);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;box-shadow:inset 0 -1px 0 var(--hairline-strong);font-weight:600;position:sticky;top:0}tr:hover td{background:#ed8f000d}tfoot td{background:var(--paper-2);border-top:3px double var(--ink);font-weight:600;position:sticky;bottom:0}.table-wrap{border:1px solid var(--hairline);background:var(--card);border-radius:10px;max-height:420px;overflow:auto}.money{color:var(--peso);font-weight:600}.pill{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--paper-2);color:var(--ink-soft);border:1px solid var(--hairline);border-radius:999px;padding:4px 12px;display:inline-block}.pill+.pill{margin-left:6px}.skeleton{background:linear-gradient(90deg, var(--skeleton-a) 25%, var(--skeleton-b) 50%, var(--skeleton-a) 75%);background-size:200% 100%;border-radius:10px;height:160px;animation:1.4s infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.error-banner{color:var(--flame-deep);font-size:var(--text-base);background:#c94f3214;border:1px solid #c94f3259;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}.error-banner button{background:var(--flame);color:#fff7ee;cursor:pointer;font-weight:600;font-size:var(--text-md);font-family:var(--font-ui);border:0;border-radius:8px;padding:6px 12px}.empty-msg{color:var(--muted);text-align:center;font-size:var(--text-base);padding:24px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.app-main>*{animation:.55s cubic-bezier(.22,.8,.32,1) backwards rise}.app-main>:nth-child(2){animation-delay:50ms}.app-main>:nth-child(3){animation-delay:.1s}.app-main>:nth-child(4){animation-delay:.15s}.app-main>:nth-child(5){animation-delay:.2s}.app-main>:nth-child(6){animation-delay:.25s}.app-main>:nth-child(n+7){animation-delay:.3s}.app-main>.loading-bar{animation:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.modal-backdrop[data-v-64fb9a40]{background:var(--scrim);-webkit-backdrop-filter:blur(3px);z-index:100;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal[data-v-64fb9a40]{background:var(--card);border:1px solid var(--hairline-strong);width:100%;max-width:460px;max-height:85vh;box-shadow:var(--shadow-md);border-radius:14px;flex-direction:column;display:flex}.modal-head[data-v-64fb9a40]{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-head h2[data-v-64fb9a40]{font-family:var(--font-display);font-size:var(--display-xs);color:var(--ink);margin:0;font-weight:540}.close-btn[data-v-64fb9a40]{color:var(--muted);font-size:var(--display-md);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 10px;line-height:1}.close-btn[data-v-64fb9a40]:hover{background:var(--panel2);color:var(--text)}.modal-body[data-v-64fb9a40]{padding:16px 18px;overflow-y:auto}.field[data-v-64fb9a40]{margin-bottom:18px}.field-label[data-v-64fb9a40]{font-size:var(--text-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.6px;align-items:center;gap:8px;margin-bottom:6px;display:flex}.source-pill[data-v-64fb9a40]{font-size:var(--text-2xs);text-transform:none;letter-spacing:0;color:var(--muted);background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:1px 8px}.field-value[data-v-64fb9a40]{font-size:var(--text-base);color:var(--text)}.field-value b[data-v-64fb9a40]{color:var(--accent)}.cycle-preview[data-v-64fb9a40]{background:var(--panel2);border:1px solid var(--line);border-radius:10px;margin-top:10px;padding:10px 12px}.preview-row[data-v-64fb9a40]{font-size:var(--text-md);color:var(--muted);justify-content:space-between;margin:4px 0;display:flex}.preview-row .preview-value[data-v-64fb9a40]{color:var(--text);font-variant-numeric:tabular-nums}.progress[data-v-64fb9a40]{background:var(--paper-2);border:1px solid var(--hairline);border-radius:3px;height:6px;margin:6px 0;overflow:hidden}.progress-fill[data-v-64fb9a40]{background:linear-gradient(90deg, var(--sun), var(--leaf));height:100%;transition:width .3s}.kv[data-v-64fb9a40]{font-size:var(--text-md);grid-template-columns:110px 1fr;gap:4px 14px;margin:0;display:grid}.kv dt[data-v-64fb9a40]{color:var(--muted)}.kv dd[data-v-64fb9a40]{color:var(--text);font-variant-numeric:tabular-nums;margin:0}.warn[data-v-64fb9a40]{font-size:var(--text-sm);color:var(--flame-deep);margin-top:6px}.input-row[data-v-64fb9a40]{font-size:var(--text-base);color:var(--text);align-items:center;gap:8px;margin-top:8px;display:flex}.input-label[data-v-64fb9a40]{color:var(--muted);min-width:84px}.input-prefix[data-v-64fb9a40],.input-suffix[data-v-64fb9a40]{color:var(--muted);font-size:var(--text-md)}.input-prefix[data-v-64fb9a40]{margin-right:-4px}.num-input[data-v-64fb9a40]{background:var(--panel2);border:1px solid var(--line);min-width:0;color:var(--text);font-size:var(--text-base);font-variant-numeric:tabular-nums;border-radius:8px;flex:1;padding:6px 9px}.num-input.narrow[data-v-64fb9a40]{text-align:right;flex:0 0 72px}.num-input[data-v-64fb9a40]:focus{border-color:var(--accent);outline:none}.num-input.invalid[data-v-64fb9a40]{border-color:var(--flame-deep)}.err-text[data-v-64fb9a40]{font-size:var(--text-sm);color:var(--flame-deep);margin:4px 0 0}.hint-text[data-v-64fb9a40]{font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;margin:4px 0 0}.rates-link[data-v-64fb9a40]{background:var(--panel2);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 14px;transition:border-color .14s,background-color .14s;display:flex}.rates-link[data-v-64fb9a40]:hover{border-color:var(--accent)}.rates-link-body[data-v-64fb9a40]{flex-direction:column;gap:2px;min-width:0;display:flex}.rates-dist[data-v-64fb9a40]{color:var(--ink);font-size:var(--text-lg);font-weight:600}.rates-src[data-v-64fb9a40]{color:var(--muted);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em}.rates-arrow[data-v-64fb9a40]{color:var(--sun-deep);font-weight:600;font-size:var(--text-base);flex:none}.theme-toggle[data-v-64fb9a40]{background:var(--panel2);border:1px solid var(--line);border-radius:999px;gap:4px;padding:3px;display:inline-flex}.seg[data-v-64fb9a40]{color:var(--muted);font-family:var(--font-ui);font-size:var(--text-md);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-weight:600;transition:background-color .16s,color .16s;display:inline-flex}.seg svg[data-v-64fb9a40]{display:block}.seg-large[data-v-64fb9a40]{font-size:calc(var(--text-md) * 1.125)}.sub-label[data-v-64fb9a40]{margin-top:12px}.seg[data-v-64fb9a40]:hover{color:var(--text)}.seg.active[data-v-64fb9a40]{background:var(--ink);color:var(--paper);box-shadow:var(--shadow-sm)}.modal-foot[data-v-64fb9a40]{border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:12px 18px 14px;display:flex}.foot-status[data-v-64fb9a40]{flex:1;min-width:0}.status-err[data-v-64fb9a40]{color:var(--flame-deep)}.status-ok[data-v-64fb9a40]{color:var(--leaf)}.status-note[data-v-64fb9a40]{color:var(--muted)}.save-btn[data-v-64fb9a40]{background:var(--sun);color:#2b1c00;border:1px solid var(--sun-deep);font-family:var(--font-ui);font-size:var(--text-base);letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;flex:none;padding:8px 22px;font-weight:700;transition:filter .14s,transform 60ms}.save-btn[data-v-64fb9a40]:hover:not(:disabled){filter:brightness(1.05)}.save-btn[data-v-64fb9a40]:active:not(:disabled){transform:translateY(1px)}.save-btn[data-v-64fb9a40]:disabled{opacity:.5;cursor:not-allowed}.setup-wrap[data-v-710bed33]{max-width:1320px;margin:0 auto;padding:12px 32px 0}.setup-banner[data-v-710bed33]{background:var(--tint-sun);border:1px solid var(--sun-deep);box-shadow:var(--shadow-sm);border-left-width:4px;border-radius:10px;align-items:center;gap:13px;padding:11px 14px;display:flex}.setup-mark[data-v-710bed33]{background:var(--sun);color:#2b1c00;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.setup-text[data-v-710bed33]{min-width:0;font-size:var(--text-base);color:var(--ink-soft);flex:1;margin:0;line-height:1.4}.setup-text strong[data-v-710bed33]{color:var(--ink)}.setup-cta[data-v-710bed33]{background:var(--sun);color:#2b1c00;border:1px solid var(--sun-deep);font-family:var(--font-ui);font-size:var(--text-base);letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;flex:none;padding:8px 18px;font-weight:700;transition:filter .14s,transform 60ms}.setup-cta[data-v-710bed33]:hover{filter:brightness(1.05)}.setup-cta[data-v-710bed33]:active{transform:translateY(1px)}@media (width<=767px){.setup-wrap[data-v-710bed33]{padding:10px 16px 0}.setup-banner[data-v-710bed33]{flex-wrap:wrap;gap:10px}.setup-text[data-v-710bed33]{flex:100%;order:2}.setup-cta[data-v-710bed33]{order:3}}.modal-backdrop[data-v-30f41159]{background:var(--scrim);-webkit-backdrop-filter:blur(3px);z-index:100;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal[data-v-30f41159]{background:var(--card);border:1px solid var(--hairline-strong);width:100%;max-width:440px;max-height:86vh;box-shadow:var(--shadow-md);border-radius:14px;flex-direction:column;display:flex}.modal-head[data-v-30f41159]{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-head h2[data-v-30f41159]{font-family:var(--font-display);font-size:var(--display-xs);color:var(--ink);margin:0;font-weight:540}.close-btn[data-v-30f41159]{color:var(--muted);font-size:var(--display-md);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 10px;line-height:1}.close-btn[data-v-30f41159]:hover{background:var(--panel2);color:var(--text)}.modal-body[data-v-30f41159]{padding:16px 18px;overflow-y:auto}.field[data-v-30f41159]{margin-bottom:18px}.field-label[data-v-30f41159]{font-size:var(--text-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.6px;align-items:center;gap:8px;margin-bottom:8px;display:flex}.count-pill[data-v-30f41159]{font-size:var(--text-xs);letter-spacing:0;background:var(--flame-deep);color:#fff;border-radius:999px;padding:1px 7px;font-weight:700}.note[data-v-30f41159]{font-size:var(--text-md);color:var(--muted);background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.push-row[data-v-30f41159]{justify-content:space-between;align-items:center;gap:12px;display:flex}.push-text[data-v-30f41159]{flex-direction:column;gap:2px;min-width:0;display:flex}.push-text strong[data-v-30f41159]{font-size:var(--text-base);color:var(--ink)}.push-sub[data-v-30f41159]{font-size:var(--text-sm);color:var(--muted)}.toggle-btn[data-v-30f41159]{background:var(--panel2);color:var(--text);border:1px solid var(--hairline-strong);font-family:var(--font-ui);font-size:var(--text-md);cursor:pointer;border-radius:999px;flex:none;padding:6px 16px;font-weight:600;transition:filter .14s,background-color .14s,color .14s}.toggle-btn.on[data-v-30f41159]{background:var(--leaf);color:#fff;border-color:var(--leaf-deep)}.toggle-btn[data-v-30f41159]:disabled{opacity:.5;cursor:not-allowed}.all-clear[data-v-30f41159]{font-size:var(--text-base);color:var(--leaf-deep);background:var(--panel2);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;padding:12px;display:flex}.alert-list[data-v-30f41159]{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.alert-item[data-v-30f41159]{border:1px solid var(--line);background:var(--panel2);border-radius:10px;gap:10px;padding:11px 12px;display:flex}.alert-item.critical[data-v-30f41159]{border-color:var(--flame-deep);background:var(--tint-flame)}.alert-item.warning[data-v-30f41159]{border-color:var(--sun-deep);background:var(--tint-sun)}.sev-dot[data-v-30f41159]{background:var(--muted);border-radius:50%;flex:none;width:9px;height:9px;margin-top:5px}.sev-dot.critical[data-v-30f41159]{background:var(--flame-deep)}.sev-dot.warning[data-v-30f41159]{background:var(--sun-deep)}.sev-dot.resolved[data-v-30f41159]{background:var(--leaf)}.alert-body[data-v-30f41159]{flex:1;min-width:0}.alert-title-row[data-v-30f41159]{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.alert-title[data-v-30f41159]{font-size:var(--text-base);color:var(--ink);font-weight:600}.alert-time[data-v-30f41159]{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.alert-detail[data-v-30f41159]{font-size:var(--text-md);color:var(--ink-soft);margin:3px 0 0;line-height:1.35}.muted-list .alert-item[data-v-30f41159]{background:0 0}.alert-item.resolved[data-v-30f41159]{opacity:.75}.config-toggle[data-v-30f41159]{cursor:pointer;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.04em;background:0 0;border:0;align-items:center;gap:7px;padding:2px 0;display:inline-flex}.config-toggle[data-v-30f41159]:hover{color:var(--text)}.config[data-v-30f41159]{border:1px solid var(--line);background:var(--panel2);border-radius:10px;margin-top:12px;padding:12px}.rule-master[data-v-30f41159]{font-size:var(--text-base);color:var(--ink);border-bottom:1px solid var(--line);align-items:center;gap:8px;margin-bottom:8px;padding-bottom:10px;font-weight:600;display:flex}.rule[data-v-30f41159]{padding:7px 0}.rule.off[data-v-30f41159]{opacity:.5}.rule-head[data-v-30f41159]{font-size:var(--text-base);color:var(--text);align-items:center;gap:8px;display:flex}.rule-opt[data-v-30f41159]{font-size:var(--text-md);color:var(--muted);margin:4px 0 0 24px}.mini-input[data-v-30f41159]{background:var(--card);border:1px solid var(--line);width:56px;color:var(--text);font-size:var(--text-md);text-align:right;font-variant-numeric:tabular-nums;border-radius:6px;padding:3px 6px}.mini-input[data-v-30f41159]:focus{border-color:var(--accent);outline:none}.save-btn[data-v-30f41159]{background:var(--sun);color:#2b1c00;border:1px solid var(--sun-deep);width:100%;font-family:var(--font-ui);font-size:var(--text-base);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;margin-top:12px;padding:8px 22px;font-weight:700}.save-btn[data-v-30f41159]:hover:not(:disabled){filter:brightness(1.05)}.save-btn[data-v-30f41159]:disabled{opacity:.5;cursor:not-allowed}.hint-text[data-v-30f41159]{font-size:var(--text-sm);color:var(--muted);margin:6px 0 0}.err-text[data-v-30f41159]{font-size:var(--text-sm);color:var(--flame-deep);margin:6px 0 0}.modal-foot[data-v-30f41159]{border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--muted);padding:11px 18px 13px}.icon-btn[data-v-1d49f23a]{border:1px solid var(--hairline-strong);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background-color .14s,color .14s,border-color .14s;display:inline-flex;position:relative}.icon-btn[data-v-1d49f23a]:hover,.icon-btn.active[data-v-1d49f23a]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.badge[data-v-1d49f23a]{background:var(--sun-deep);color:#fff;min-width:16px;height:16px;font-family:var(--font-mono);font-size:var(--text-2xs);text-align:center;border:1.5px solid var(--card);border-radius:999px;padding:0 4px;font-weight:700;line-height:16px;position:absolute;top:-5px;right:-5px}.badge.critical[data-v-1d49f23a]{background:var(--flame-deep)}.app-header[data-v-314c316a]{max-width:1320px;margin:0 auto;padding:26px 32px 0}.masthead[data-v-314c316a]{border-bottom:3px double var(--ink);justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:14px;display:flex}.brand[data-v-314c316a]{align-items:center;gap:13px;min-width:0;display:flex}.brand-text[data-v-314c316a]{min-width:0}.brand-mark[data-v-314c316a]{background:var(--ink);width:42px;height:42px;color:var(--sun);box-shadow:var(--shadow-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.brand-text h1[data-v-314c316a]{font-family:var(--font-display);font-variation-settings:"opsz" 50;font-size:var(--display-lg);letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:560;line-height:1.05;overflow:hidden}.brand-text .sub[data-v-314c316a]{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-weight:500;overflow:hidden}.header-icons[data-v-314c316a]{align-items:center;gap:6px;padding-bottom:2px;display:inline-flex}.station-select[data-v-314c316a]{background:var(--card);border:1px solid var(--hairline-strong);color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;border-radius:999px;max-width:200px;padding:6px 10px;font-weight:500;transition:border-color .14s,color .14s}.station-select[data-v-314c316a]:hover{border-color:var(--ink);color:var(--ink)}@media (width<=767px){.station-select[data-v-314c316a]{max-width:130px;font-size:var(--text-xs)}}.icon-btn[data-v-314c316a]{border:1px solid var(--hairline-strong);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;text-decoration:none;transition:background-color .14s,color .14s,border-color .14s;display:inline-flex}.icon-btn[data-v-314c316a]:hover,.icon-btn.active[data-v-314c316a]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.overflow-wrap[data-v-314c316a]{display:none;position:relative}.menu-backdrop[data-v-314c316a]{z-index:40;position:fixed;inset:0}.overflow-menu[data-v-314c316a]{z-index:41;background:var(--card);border:1px solid var(--hairline-strong);min-width:168px;box-shadow:var(--shadow-sm), 0 8px 24px #0000002e;border-radius:12px;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.menu-item[data-v-314c316a]{cursor:pointer;text-align:left;width:100%;color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-md);letter-spacing:.04em;background:0 0;border:0;border-radius:8px;align-items:center;gap:11px;padding:10px 12px;font-weight:500;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.menu-item[data-v-314c316a]:hover,.menu-item.active[data-v-314c316a]{background:var(--ink);color:var(--paper)}.app-header-nav[data-v-314c316a]{border-bottom:1px solid var(--hairline);align-items:center;gap:26px;padding:11px 2px 0;display:flex}.app-header-nav .tab[data-v-314c316a]{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:2px 0 10px;font-weight:600;text-decoration:none;transition:color .14s,border-color .14s}.app-header-nav .tab[data-v-314c316a]:hover{color:var(--ink)}.app-header-nav .tab.tab-active[data-v-314c316a]{color:var(--ink);border-bottom-color:var(--sun)}@media (width<=767px){.app-header[data-v-314c316a]{padding:16px 16px 0}.app-header-nav[data-v-314c316a]{display:none}.masthead[data-v-314c316a]{border-bottom-width:3px}.brand-mark[data-v-314c316a]{width:36px;height:36px}.brand-text h1[data-v-314c316a]{font-size:var(--display-sm)}.brand-text .sub[data-v-314c316a]{font-size:var(--text-2xs)}.collapsible[data-v-314c316a]{display:none}.overflow-wrap[data-v-314c316a]{display:inline-flex}.sub-detail[data-v-314c316a]{display:none}}.bottom-tab-bar[data-v-e538ee20]{background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--hairline-strong);padding:8px 4px calc(16px + env(safe-area-inset-bottom));z-index:10;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab[data-v-e538ee20]{text-align:center;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:5px 2px 3px;font-weight:600;text-decoration:none;transition:color .14s;display:flex;position:relative}.tab .icon[data-v-e538ee20]{line-height:1;display:inline-flex}.tab.tab-active[data-v-e538ee20]{color:var(--ink)}.tab.tab-active[data-v-e538ee20]:after{content:"";background:var(--sun);border-radius:0 0 3px 3px;width:22px;height:3px;position:absolute;top:-9px;left:50%;transform:translate(-50%)}@media (width>=768px){.bottom-tab-bar[data-v-e538ee20]{display:none}}.notif-banner[data-v-6a4aa9fc]{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:90;background:var(--card);border:1px solid var(--hairline-strong);width:calc(100% - 32px);max-width:460px;box-shadow:var(--shadow-md);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex;position:fixed;transform:translate(-50%)}@media (width<=767px){.notif-banner[data-v-6a4aa9fc]{bottom:calc(74px + env(safe-area-inset-bottom))}}.notif-mark[data-v-6a4aa9fc]{background:var(--ink);width:34px;height:34px;color:var(--sun);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.notif-text[data-v-6a4aa9fc]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notif-text strong[data-v-6a4aa9fc]{font-family:var(--font-display);font-size:var(--text-lg);color:var(--ink);font-weight:560}.notif-sub[data-v-6a4aa9fc]{font-size:var(--text-sm);color:var(--muted);line-height:1.35}.notif-err[data-v-6a4aa9fc]{font-size:var(--text-sm);color:var(--flame-deep);margin-top:2px}.notif-actions[data-v-6a4aa9fc]{flex-direction:column;flex:none;align-items:stretch;gap:6px;display:flex}.notif-cta[data-v-6a4aa9fc]{background:var(--sun);color:#2b1c00;border:1px solid var(--sun-deep);font-family:var(--font-ui);font-size:var(--text-md);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;padding:7px 16px;font-weight:700;transition:filter .14s,transform 60ms}.notif-cta[data-v-6a4aa9fc]:hover:not(:disabled){filter:brightness(1.05)}.notif-cta[data-v-6a4aa9fc]:active:not(:disabled){transform:translateY(1px)}.notif-cta[data-v-6a4aa9fc]:disabled{opacity:.6;cursor:not-allowed}.notif-later[data-v-6a4aa9fc]{color:var(--muted);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:2px;font-weight:600}.notif-later[data-v-6a4aa9fc]:hover{color:var(--text)}.install-banner[data-v-bb174085]{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:90;background:var(--card);border:1px solid var(--hairline-strong);width:calc(100% - 32px);max-width:460px;box-shadow:var(--shadow-md);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex;position:fixed;transform:translate(-50%)}@media (width<=767px){.install-banner.has-tabbar[data-v-bb174085]{bottom:calc(74px + env(safe-area-inset-bottom))}}.install-mark[data-v-bb174085]{background:var(--ink);width:34px;height:34px;color:var(--sun);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.install-text[data-v-bb174085]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.install-text strong[data-v-bb174085]{font-family:var(--font-display);font-size:var(--text-lg);color:var(--ink);font-weight:560}.install-sub[data-v-bb174085]{font-size:var(--text-sm);color:var(--muted);line-height:1.35}.inline-glyph[data-v-bb174085]{vertical-align:-2px;margin:0 1px;display:inline-block}.install-cta[data-v-bb174085]{background:var(--sun);color:#2b1c00;border:1px solid var(--sun-deep);font-family:var(--font-ui);font-size:var(--text-md);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;flex:none;align-items:center;gap:6px;padding:7px 14px;font-weight:700;transition:filter .14s,transform 60ms;display:inline-flex}.install-cta[data-v-bb174085]:hover{filter:brightness(1.05)}.install-cta[data-v-bb174085]:active{transform:translateY(1px)}.install-close[data-v-bb174085]{color:var(--muted);font-size:var(--display-sm);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;padding:2px 6px;line-height:1}.install-close[data-v-bb174085]:hover{background:var(--panel2);color:var(--text)}.app-footer[data-v-5dbb4a5b]{text-align:center;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;color:var(--muted);padding:0 16px 28px;font-weight:500}
