.spinner{display:inline-flex;align-items:center;justify-content:center;width:var(--spinner-size, 20px);height:var(--spinner-size, 20px);flex:none}.spinner-ring{width:100%;height:100%;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;border-right-color:transparent;opacity:.9}@media(prefers-reduced-motion:no-preference){.spinner-ring{animation:spinner-turn .72s linear infinite}}@media(prefers-reduced-motion:reduce){.spinner-ring{border-color:currentColor;opacity:.45}}@keyframes spinner-turn{to{transform:rotate(360deg)}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-5);border-radius:var(--radius-pill);border:1px solid transparent;font-size:var(--fs-body);font-weight:var(--fw-medium);line-height:1;letter-spacing:-.01em;white-space:nowrap;user-select:none;transition:transform var(--dur-fast) var(--ease),background-color var(--dur-state) var(--ease),border-color var(--dur-state) var(--ease),color var(--dur-state) var(--ease),opacity var(--dur-state) var(--ease)}.btn-content{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:0}.btn-label{overflow:hidden;text-overflow:ellipsis}.btn-icon{display:inline-flex;align-items:center;justify-content:center;font-size:1.05em;line-height:1}.btn-lg{min-height:54px;padding:0 var(--space-6);font-size:var(--fs-heading);font-weight:var(--fw-bold)}.btn-md{min-height:var(--tap-min)}.btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--fs-small)}.btn-sm:after{content:"";position:absolute;left:0;right:0;top:50%;height:var(--tap-min);transform:translateY(-50%)}.btn-full{width:100%}.btn-icon-only{padding:0;width:var(--tap-min);min-width:var(--tap-min)}.btn-icon-only.btn-sm{width:36px;min-width:36px}.btn-icon-only.btn-sm:after{left:50%;right:auto;width:var(--tap-min);transform:translate(-50%,-50%)}.btn-primary{background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-brand)}.btn-secondary{background:var(--surface-2);color:var(--text);border-color:var(--line)}.btn-ghost{background:transparent;color:var(--text-dim)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.btn.is-loading{cursor:progress;opacity:1}.btn.is-loading .btn-content{visibility:hidden}.btn-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:inherit}@media(hover:hover){.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--brand) 88%,var(--on-brand))}.btn-secondary:hover:not(:disabled){background:var(--surface-3)}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 24%,transparent)}}.sheet-root{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;justify-content:flex-end}.sheet-backdrop{position:absolute;inset:0;background:var(--overlay);backdrop-filter:blur(2px);border:0;cursor:pointer;opacity:0;transition:opacity var(--dur-screen) var(--ease)}.sheet-root.is-open .sheet-backdrop{opacity:1}.sheet-panel{position:relative;width:100%;max-width:var(--content-max);margin:0 auto;max-height:88vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-3);transform:translateY(100%);transition:transform var(--dur-screen) var(--ease-out);touch-action:none}.sheet-root.is-open .sheet-panel{transform:translateY(0)}.sheet-root.is-closing .sheet-panel{transform:translateY(100%)}.sheet-panel:focus{outline:none}.sheet-grab{flex:none;padding:var(--space-2) var(--space-5) var(--space-3);cursor:grab;touch-action:none;user-select:none}.sheet-grab:active{cursor:grabbing}.sheet-handle{display:block;width:40px;height:4px;margin:var(--space-1) auto var(--space-3);border-radius:var(--radius-pill);background:var(--line)}.sheet-title{font-size:var(--fs-heading);font-weight:var(--fw-bold);text-align:center}.sheet-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:0 var(--space-5) calc(var(--space-6) + var(--safe-bottom));display:flex;flex-direction:column;gap:var(--space-4)}body.has-sheet{overflow:hidden}.toasts{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + var(--space-3));z-index:80;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding-inline:var(--space-4);pointer-events:none}.app-shell[data-tabbar=off]+.toasts{bottom:calc(var(--safe-bottom) + var(--space-5))}.toast{max-width:min(100%,420px);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-2);font-size:var(--fs-small);line-height:1.35;text-align:center}.toast-success{border-color:color-mix(in srgb,var(--live) 45%,var(--line));color:var(--text)}.toast-danger{border-color:color-mix(in srgb,var(--danger) 55%,var(--line));background:var(--danger-soft)}.toast-info{border-color:color-mix(in srgb,var(--brand-2) 45%,var(--line))}@media(prefers-reduced-motion:no-preference){.toast{animation:toast-in .22s var(--ease-out)}}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.confirm-text{font-size:var(--fs-body);color:var(--text-dim);text-align:center}.confirm-actions{display:flex;flex-direction:column;gap:var(--space-2)}.tabbar{position:absolute;left:0;right:0;bottom:0;z-index:40;padding-bottom:var(--safe-bottom);background:var(--bg-blur);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--line)}.tabbar-list{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;max-width:var(--content-max);margin-inline:auto;height:var(--tabbar-height);padding-inline:var(--space-1)}.tabbar-item{display:flex;justify-content:center;min-width:0}.tabbar-link{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;height:var(--tabbar-height);color:var(--text-dim);text-decoration:none;transition:color var(--dur-state) var(--ease),transform var(--dur-fast) var(--ease)}.tabbar-link:hover{text-decoration:none}.tabbar-link:active{transform:scale(.94)}.tabbar-icon svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}.tabbar-label{font-size:11px;line-height:1.2;letter-spacing:.01em;white-space:nowrap}.tabbar-link.is-active{color:var(--text)}.tabbar-link.is-active .tabbar-icon svg{stroke-width:2.2}.tabbar-link.is-primary{justify-content:flex-start;gap:4px;padding-top:0}.tabbar-link.is-primary .tabbar-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin-top:-18px;border-radius:50%;background:var(--brand);color:var(--on-brand);border:4px solid var(--bg);box-shadow:var(--shadow-brand);transition:transform var(--dur-state) var(--ease),background-color var(--dur-state) var(--ease)}.tabbar-link.is-primary .tabbar-icon svg{width:22px;height:22px;stroke-width:2.4}.tabbar-link.is-primary.is-active .tabbar-icon{transform:scale(1.06)}.tabbar-link.is-primary.is-active .tabbar-label{color:var(--brand)}.tabbar-link:focus-visible{outline-offset:-4px}.skeleton{display:block;background:var(--skeleton);position:relative;overflow:hidden;flex:none}@media(prefers-reduced-motion:no-preference){.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--skeleton-shine),transparent);animation:skeleton-sweep 1.4s var(--ease) infinite}}@keyframes skeleton-sweep{to{transform:translate(100%)}}.stage{position:absolute;inset:0;overflow:hidden;background:var(--bg)}.stage-layer{position:absolute;inset:0;background:var(--bg);will-change:transform,opacity}.stage-layer.is-idle{z-index:1}.stage-layer.is-enter.is-forward,.stage-layer.is-leave.is-back{z-index:2}.stage-layer.is-leave.is-forward,.stage-layer.is-enter.is-back{z-index:1}@media(prefers-reduced-motion:no-preference){.stage-layer.is-enter.is-forward{animation:screen-enter-forward var(--dur-screen) var(--ease) both}.stage-layer.is-leave.is-forward{animation:screen-leave-forward var(--dur-screen) var(--ease) both}.stage-layer.is-enter.is-back{animation:screen-enter-back var(--dur-screen) var(--ease) both}.stage-layer.is-leave.is-back{animation:screen-leave-back var(--dur-screen) var(--ease) both}}@media(prefers-reduced-motion:reduce){.stage-layer.is-leave{opacity:0}}@keyframes screen-enter-forward{0%{transform:translate3d(100%,0,0);opacity:.7}to{transform:translateZ(0);opacity:1}}@keyframes screen-leave-forward{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(-24%,0,0);opacity:.45}}@keyframes screen-enter-back{0%{transform:translate3d(-24%,0,0);opacity:.45}to{transform:translateZ(0);opacity:1}}@keyframes screen-leave-back{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(100%,0,0);opacity:.7}}.boot{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);background:var(--bg)}.boot-mark{font-size:40px;line-height:1}@media(prefers-reduced-motion:no-preference){.boot-mark{animation:boot-ring 1.6s var(--ease) infinite}}@keyframes boot-ring{0%,70%,to{transform:rotate(0)}10%,30%,50%{transform:rotate(-12deg)}20%,40%,60%{transform:rotate(12deg)}}.boot-text{font-size:var(--fs-small);color:var(--text-dim)}.boot-skeleton{display:flex;flex-direction:column;gap:var(--space-4);padding:calc(var(--header-height) + var(--safe-top) + var(--space-4)) var(--space-5) var(--space-6)}:root{color-scheme:dark;--bg: #0b0b10;--surface: #14141c;--surface-2: #1d1d28;--line: #2a2a38;--text: #f4f4f7;--text-dim: #9a9aae;--brand: #ff4d3d;--brand-2: #ffb020;--live: #22c55e;--danger: #ef4444;--surface-3: #262633;--bg-blur: rgba(11, 11, 16, .72);--overlay: rgba(4, 4, 8, .6);--brand-soft: rgba(255, 77, 61, .16);--brand-2-soft: rgba(255, 176, 32, .16);--live-soft: rgba(34, 197, 94, .16);--danger-soft: rgba(239, 68, 68, .16);--on-brand: #ffffff;--skeleton: rgba(255, 255, 255, .06);--skeleton-shine: rgba(255, 255, 255, .13);--accent: var(--brand);--accent-soft: var(--brand-soft);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--fs-display: 32px;--fs-title: 24px;--fs-heading: 20px;--fs-body: 17px;--fs-small: 15px;--fs-micro: 13px;--lh-tight: 1.15;--lh-snug: 1.3;--lh-body: 1.5;--fw-regular: 400;--fw-medium: 550;--fw-bold: 700;--tracking-tight: -.02em;--tracking-wide: .04em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 999px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 6px 20px rgba(0, 0, 0, .45);--shadow-3: 0 18px 48px rgba(0, 0, 0, .55);--shadow-brand: 0 10px 30px rgba(255, 77, 61, .35);--ease: cubic-bezier(.2, .8, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .12s;--dur-state: .16s;--dur-screen: .26s;--tabbar-height: 62px;--header-height: 52px;--tap-min: 44px;--content-max: 560px}.accent-coral{--accent: #ff4d3d;--accent-soft: rgba(255, 77, 61, .16)}.accent-amber{--accent: #ffb020;--accent-soft: rgba(255, 176, 32, .16)}.accent-violet{--accent: #a78bfa;--accent-soft: rgba(167, 139, 250, .16)}.accent-mint{--accent: #34d399;--accent-soft: rgba(52, 211, 153, .16)}.accent-sky{--accent: #38bdf8;--accent-soft: rgba(56, 189, 248, .16)}.accent-rose{--accent: #fb7185;--accent-soft: rgba(251, 113, 133, .16)}.accent-lime{--accent: #a3e635;--accent-soft: rgba(163, 230, 53, .16)}.accent-slate{--accent: #94a3b8;--accent-soft: rgba(148, 163, 184, .16)}@media(prefers-color-scheme:light){:root{color-scheme:light;--bg: #f6f6f9;--surface: #ffffff;--surface-2: #f0f0f5;--line: #dedee8;--text: #14141c;--text-dim: #63637a;--brand: #e63a2b;--brand-2: #c97c00;--live: #16a34a;--danger: #dc2626;--surface-3: #e6e6ee;--bg-blur: rgba(246, 246, 249, .78);--overlay: rgba(20, 20, 28, .38);--brand-soft: rgba(230, 58, 43, .12);--brand-2-soft: rgba(201, 124, 0, .14);--live-soft: rgba(22, 163, 74, .14);--danger-soft: rgba(220, 38, 38, .12);--on-brand: #ffffff;--skeleton: rgba(20, 20, 28, .07);--skeleton-shine: rgba(20, 20, 28, .13);--shadow-1: 0 1px 2px rgba(20, 20, 28, .08);--shadow-2: 0 6px 20px rgba(20, 20, 28, .1);--shadow-3: 0 18px 48px rgba(20, 20, 28, .16);--shadow-brand: 0 10px 30px rgba(230, 58, 43, .28)}.accent-coral{--accent: #e63a2b;--accent-soft: rgba(230, 58, 43, .12)}.accent-amber{--accent: #b87700;--accent-soft: rgba(184, 119, 0, .14)}.accent-violet{--accent: #7c5cf0;--accent-soft: rgba(124, 92, 240, .13)}.accent-mint{--accent: #0f9d6b;--accent-soft: rgba(15, 157, 107, .14)}.accent-sky{--accent: #0284c7;--accent-soft: rgba(2, 132, 199, .13)}.accent-rose{--accent: #e11d48;--accent-soft: rgba(225, 29, 72, .12)}.accent-lime{--accent: #5f8c00;--accent-soft: rgba(95, 140, 0, .14)}.accent-slate{--accent: #5b6b7f;--accent-soft: rgba(91, 107, 127, .13)}}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;height:100%}body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overscroll-behavior-y:none;overflow:hidden;-webkit-tap-highlight-color:transparent}#root{height:100%;isolation:isolate}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{background:none;border:0;cursor:pointer;touch-action:manipulation}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none}h1,h2,h3,h4{font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}p{text-wrap:pretty}hr{border:0;border-top:1px solid var(--line)}::selection{background:var(--brand);color:var(--on-brand)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}:focus:not(:focus-visible){outline:none}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-pill)}.app-shell{position:relative;height:100%;width:100%;overflow:hidden;background:var(--bg)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.text-dim{color:var(--text-dim)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.row{display:flex;align-items:center;gap:var(--space-2)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
