:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f7f8fa;--surface:#fff;--surface-2:#f1f3f7;--text:#14161a;--text-muted:#5b6472;--border:#e2e6ee;--border-strong:#cdd4e0;--accent:#27498f;--accent-hover:#1d3a76;--accent-soft:#e6ecf7;--on-accent:#fff;--good:#17734b;--good-soft:#e2f5ec;--bad:#b3261e;--bad-soft:#fde9e7;--warn:#8a5300;--warn-soft:#fdf1dc;--radius-sm:6px;--radius:10px;--radius-lg:16px;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-lg:0 4px 12px #10182814, 0 12px 28px #10182814;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--measure:68rem;--measure-prose:68ch;--player-surface:#14161a;--player-surface-2:#24272d;--player-text:#f2f4f7;--player-border:#3a3f47;--player-track:#3a3f47;--player-accent:#7d9dff;--app-header-block-size:4.125rem;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1115;--surface:#171a21;--surface-2:#1e222b;--text:#e8ebf0;--text-muted:#9aa3b2;--border:#262b36;--border-strong:#343b49;--accent:#7d9dff;--accent-hover:#97b1ff;--accent-soft:#1c2540;--on-accent:#0f1115;--good:#6ddba4;--good-soft:#12301f;--bad:#ff9a92;--bad-soft:#331714;--warn:#f0c37a;--warn-soft:#302311;--shadow:0 1px 2px #0006;--shadow-lg:0 8px 24px #00000073}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}h1,h2,h3{letter-spacing:-.015em;margin:0;font-weight:650;line-height:1.2}h1{letter-spacing:-.022em;text-wrap:balance;font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);font-weight:680}h2{font-size:1.2rem}h3{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.78rem;font-weight:600}p{margin:0}a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-underline-offset:.18em}a:hover{text-decoration-color:currentColor}.tnum,code{font-family:var(--font-mono);font-variant-numeric:tabular-nums lining-nums;font-size:.85em}.badge,.row__actions,progress+*,small{font-variant-numeric:tabular-nums}small{color:var(--text-muted);font-size:.82rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-header{z-index:10;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header__inner{max-width:var(--measure);padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 auto;display:flex}.brand{align-items:center;gap:var(--space-2);color:var(--text);letter-spacing:-.01em;font-weight:650;text-decoration:none;display:inline-flex}.brand__mark{border-radius:var(--radius-sm);background:var(--accent);color:#fff;place-items:center;width:1.6rem;height:1.6rem;font-size:.85rem;display:grid}.brand__sub{color:var(--text-muted);font-weight:450}.app-nav{gap:var(--space-1);flex-wrap:wrap;margin-inline-start:auto;margin-inline-end:var(--space-4);display:flex}.app-nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.92rem;font-weight:500;text-decoration:none}.app-nav a:hover{background:var(--surface-2);color:var(--text)}.app-nav a.router-link-active{background:var(--accent-soft);color:var(--accent)}.app-main{max-width:var(--measure);padding:var(--space-6) var(--space-4) var(--space-7);margin:0 auto}.app-main--wide{max-width:none}.app-main--wide>*>*{inline-size:100%;max-inline-size:calc(var(--measure) - var(--space-4)*2);margin-inline:auto}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page-head__lead{color:var(--text-muted);margin-top:var(--space-1);max-width:var(--measure-prose)}.stack{gap:var(--space-4);display:grid}.stack--tight{gap:var(--space-2)}.cluster{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.list-reset{margin:0;padding:0;list-style:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-4)}.card--flush{padding:0;overflow:hidden}.muted{color:var(--text-muted)}.btn,button{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;justify-content:center;align-items:center;min-height:2.25rem;padding:.5rem .9rem;font-size:.92rem;font-weight:550;text-decoration:none;transition:background-color .12s,border-color .12s,transform 80ms;display:inline-flex}.btn:hover:not(:disabled),button:hover:not(:disabled){background:var(--surface-2)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}.btn--primary,button[type=submit]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn--primary:hover:not(:disabled),button[type=submit]:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn--ghost{color:var(--text-muted);padding-inline:var(--space-2);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.btn--danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,transparent);background:0 0}.btn--danger:hover:not(:disabled){background:var(--bad-soft)}input,select,textarea{font:inherit;width:100%;min-height:2.25rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.5rem .7rem;font-size:.95rem;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input::-moz-placeholder{color:var(--text-muted);opacity:.75}textarea::-moz-placeholder{color:var(--text-muted);opacity:.75}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.75}textarea{resize:vertical;min-height:4.5rem}.field{gap:var(--space-1);color:var(--text-muted);font-size:.9rem;font-weight:550;display:grid}.form-row{gap:var(--space-2);flex-wrap:wrap;align-items:flex-start;display:flex}.form-row>input,.form-row>select{flex:12rem;width:auto}.badge{font-family:var(--font-mono);letter-spacing:.01em;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:999px;width:.4rem;height:.4rem}.badge--good{background:var(--good-soft);color:var(--good);border-color:color-mix(in srgb,var(--good) 25%,transparent)}.badge--bad{background:var(--bad-soft);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 25%,transparent)}.badge--progress{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}.badge--progress:before{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3}}[role=alert]{background:var(--bad-soft);color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 25%,transparent);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:.9rem}.rows{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin:0;padding:0;list-style:none;overflow:hidden}.rows>li+li{border-top:1px solid var(--border)}.row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.row__main{gap:.1rem;min-width:0;display:grid}.row__title{color:var(--text);overflow-wrap:anywhere;font-weight:550;text-decoration:none}.row__title:hover{color:var(--accent)}.row__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.row-button{text-align:start;width:100%;padding:var(--space-3) var(--space-4);background:0 0;border:0;border-radius:0;min-height:3rem}.row-button:hover:not(:disabled){background:var(--surface-2)}.empty{border:1px dashed var(--border-strong);padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted);background:color-mix(in srgb,var(--surface) 60%,transparent)}.empty,.player{border-radius:var(--radius)}.player{aspect-ratio:16/9;width:100%;box-shadow:var(--shadow-lg);background:#000}.player,.player-shell{display:block}.player-shell>.player{border-end-end-radius:0;border-end-start-radius:0}:is(.player-shell:fullscreen,.player-shell[data-view-mode=fill]){background:#000;flex-direction:column;block-size:100%;inline-size:100%;display:flex}:is(.player-shell:fullscreen,.player-shell[data-view-mode=fill],.player-shell[data-view-mode=theater])>.embed__player,:is(.player-shell:fullscreen,.player-shell[data-view-mode=fill],.player-shell[data-view-mode=theater])>.player{aspect-ratio:auto;block-size:auto;min-block-size:0;box-shadow:none;-o-object-fit:contain;object-fit:contain;border-radius:0;flex:1}:is(.player-shell:fullscreen,.player-shell[data-view-mode=fill])>.controls{border-radius:0}:is(.player-shell:fullscreen,.player-shell[data-view-mode=fill]):focus-visible{outline:none}.player-shell[data-view-mode=theater]{--player-theater-headroom:calc(var(--app-header-block-size) + var(--space-4));inline-size:auto;max-inline-size:none;margin-inline:calc(var(--space-4)*-1);max-block-size:calc(100dvh - var(--player-theater-headroom));flex-direction:column;scroll-margin-block-start:var(--app-header-block-size);display:flex}.player-shell[data-view-mode=fill]{z-index:20;block-size:100dvh;position:fixed;inset:0}.auth{max-width:24rem;margin:var(--space-6) auto}.app-footer{max-width:var(--measure);padding:var(--space-5) var(--space-4) var(--space-6);color:var(--text-muted);border-top:1px solid var(--border);margin:0 auto;font-size:.82rem}
