@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-ext-400-normal-CiZNW1ec.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-400-normal-DYBYyMQr.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-500-normal-CfdwVo8-.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-ext-500-normal-h0Fp6aX0.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-500-normal-CK0UkkKf.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-BJkVuMHw.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-ext-600-normal-BNd8euf0.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-600-normal-BeUwKxhG.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-By_5yT39.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-ext-700-normal-C8_gqRu2.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-700-normal-4Hjo2OtD.woff)format("woff");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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.woff)format("woff");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{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c100f;--surface:#121816;--surface-2:#171f1c;--surface-3:#1e2824;--border:#25302c;--border-strong:#34433d;--text:#e8eeea;--text-2:#a9b6b0;--text-3:#76847e;--accent:#62d6a2;--accent-strong:#7fe3b5;--accent-ink:#062016;--accent-soft:#62d6a21f;--warm:#e9b96e;--warm-soft:#e9b96e21;--danger:#f0776c;--danger-soft:#f0776c1f;--info:#7cb4f0;--info-soft:#7cb4f01f;--wave:#3a4a44;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow:0 12px 40px #00000073;--ring:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--font:"Be Vietnam Pro", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--sidebar-w:248px;--player-h:76px;--topbar-h:52px;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4,p,ul,dl,dd,pre{margin:0}ul{padding:0;list-style:none}h1{letter-spacing:-.02em;font-size:24px;font-weight:600;line-height:1.25}h2{letter-spacing:-.01em;font-size:16px;font-weight:600}h3,h4{font-size:14px;font-weight:600}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{box-shadow:var(--ring);outline:none}a:focus-visible{border-radius:var(--radius-sm)}::selection{background:#62d6a24d}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}input[type=text],input[type=password],input[type=number],input[type=search],select,textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:38px;padding:8px 11px;transition:border-color .15s,background-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.55}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a9b6b0' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;padding-right:32px}option,optgroup{background:var(--surface-2);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--text-3)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--border-strong)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}input[type=range].range{--fill:0%;appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0}input[type=range].range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill), var(--border-strong) var(--fill));border-radius:2px;height:4px}input[type=range].range::-moz-range-track{background:linear-gradient(to right, var(--accent) var(--fill), var(--border-strong) var(--fill));border-radius:2px;height:4px}input[type=range].range::-webkit-slider-thumb{appearance:none;background:var(--text);width:14px;height:14px;transition:transform .15s var(--ease);border:none;border-radius:50%;margin-top:-5px}input[type=range].range::-moz-range-thumb{background:var(--text);border:none;border-radius:50%;width:14px;height:14px}input[type=range].range:hover:not(:disabled)::-webkit-slider-thumb{transform:scale(1.2)}input[type=range].range:focus-visible{box-shadow:none}input[type=range].range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--accent-soft), 0 0 0 2px var(--accent)}input[type=range].range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px var(--accent-soft), 0 0 0 2px var(--accent)}input[type=range].range:disabled{opacity:.4;cursor:not-allowed}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--text-3)}.mono{font-family:var(--font-mono);font-size:.92em}.nowrap{white-space:nowrap}.text-danger{color:var(--danger)}.push-right{margin-left:auto}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);grid-template-rows:minmax(0, 1fr) var(--player-h);height:100dvh;display:grid}.boot{place-items:center;height:100dvh;display:grid}.topbar{display:none}.main{scroll-behavior:smooth;grid-area:1/2;overflow-y:auto}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;grid-area:1/1;min-height:0;display:flex}.brand{align-items:center;gap:11px;padding:18px 18px 14px;display:flex}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-name{letter-spacing:-.02em;font-size:17px;font-weight:700}.brand-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:500}.nav{flex:1;min-height:0;padding:6px 10px 12px;overflow-y:auto}.nav-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:18px 10px 6px;font-size:11px;font-weight:600}.nav-item{border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:11px;margin:1px 0;padding:8px 10px;font-weight:500;transition:background-color .15s,color .15s;display:flex}.nav-item svg{opacity:.85;flex:none}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.is-active{background:var(--accent-soft);color:var(--accent-strong)}.nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.count{background:var(--accent);min-width:20px;color:var(--accent-ink);text-align:center;border-radius:10px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px}.soon{border:1px solid var(--border-strong);color:var(--text-3);white-space:nowrap;border-radius:10px;padding:1px 7px;font-size:10.5px;font-weight:500}.sidebar-foot{border-top:1px solid var(--border);padding:10px}.queue-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;padding:10px 12px;font-size:12.5px}.queue-box-title{color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;font-weight:600;display:flex}.queue-indicator{color:var(--text-2)}.queue-counts{gap:14px;display:flex}.queue-counts strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.queue-nodes{align-items:center;gap:7px;margin-top:4px;display:flex}.dot{border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.dot-on{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dot-off{background:var(--text-3)}.user-menu{position:relative}.user-button{border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:7px 8px;transition:background-color .15s;display:flex}.user-button:hover,.user-button[aria-expanded=true]{background:var(--surface-2)}.user-button>svg{color:var(--text-3)}.avatar{background:var(--warm-soft);width:32px;height:32px;color:var(--warm);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.user-text{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.user-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.user-role{color:var(--text-3);font-size:12px}.menu{z-index:30;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);animation:rise-in .14s var(--ease);padding:5px;position:absolute;bottom:calc(100% + 6px);left:0;right:0}.menu-item{border-radius:var(--radius-sm);width:100%;color:var(--text-2);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;display:flex}.menu-item:hover{background:var(--border);color:var(--text)}.player-bar{z-index:20;background:var(--surface);border-top:1px solid var(--border);grid-area:2/1/auto/-1;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:24px;padding:0 20px;display:grid}.player-track{align-items:center;gap:13px;min-width:0;display:flex}.player-info{flex-direction:column;min-width:0;line-height:1.3;display:flex}.player-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}a.player-title:hover{text-decoration:underline}.player-sub{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.player-sub.is-error{color:var(--danger)}.player-seek{align-items:center;gap:11px;display:flex}.player-time{width:40px;color:var(--text-3);font-variant-numeric:tabular-nums;text-align:center;flex:none;font-size:12px}.player-volume{justify-content:flex-end;align-items:center;gap:6px;display:flex}.player-volume .range{max-width:110px}@media (width<=900px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--topbar-h) minmax(0, 1fr) auto}.topbar{background:var(--surface);border-bottom:1px solid var(--border);grid-row:1;align-items:center;gap:10px;padding:0 12px;display:flex}.topbar .brand-name{font-size:15px}.main{grid-area:2/1}.sidebar{z-index:40;width:min(var(--sidebar-w), 84vw);transition:transform .22s var(--ease);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.nav-open .sidebar{box-shadow:var(--shadow);transform:none}.nav-scrim{z-index:35;background:#0000008c;animation:.2s fade-in;position:fixed;inset:0}.player-bar{grid-row:3;grid-template-columns:minmax(0,1fr);gap:4px;padding:9px 12px}.player-volume{display:none}}.btn{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-height:36px;color:var(--text);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:7px 14px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.btn:hover:not(:disabled){background:var(--border);border-color:var(--text-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#2a0906;font-weight:600}.btn-danger:hover:not(:disabled){background:#f58d83;border-color:#f58d83}.btn-danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-soft);border-color:#0000}.btn-sm{gap:6px;min-height:30px;padding:4px 10px;font-size:13px}.btn-lg{border-radius:var(--radius);min-height:46px;padding:10px 20px;font-size:15px}.icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-2);background:0 0;border:none;flex:none;place-items:center;padding:0;transition:background-color .15s,color .15s;display:inline-grid}.icon-btn.sm{width:26px;height:26px}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:disabled{opacity:.45}.icon-btn.is-fav{color:var(--danger)}.play-btn{background:var(--surface-3);border:1px solid var(--border-strong);width:40px;height:40px;color:var(--text);transition:background-color .15s, border-color .15s, color .15s, transform .12s var(--ease);border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.play-btn.lg{width:48px;height:48px}.play-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);transform:scale(1.06)}.play-btn.is-active:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.play-btn:disabled{opacity:.4}.play-btn:focus-visible{border-radius:50%}.badge{background:var(--surface-3);color:var(--text-2);white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}.badge-queued,.tone-warn{background:var(--warm-soft);color:var(--warm)}.badge-preparing,.badge-running{background:var(--info-soft);color:var(--info)}.badge-completed,.tone-ok,.tone-accent{background:var(--accent-soft);color:var(--accent-strong)}.badge-failed,.tone-danger{background:var(--danger-soft);color:var(--danger)}.badge-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag{background:var(--accent-soft);color:var(--accent-strong);border-radius:20px;padding:1px 8px;font-size:12px;font-weight:500}.progress{background:var(--surface-3);border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .4s var(--ease);border-radius:3px}.progress-fill.is-hot{background:var(--warm)}.state{color:var(--text-3);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:56px 24px;display:flex}.state-icon{background:var(--surface-2);width:56px;height:56px;color:var(--text-2);border-radius:50%;place-items:center;margin-bottom:4px;display:grid}.state-title{color:var(--text);font-size:15px;font-weight:600}.state-text{max-width:44ch}.state-error .state-icon{background:var(--danger-soft);color:var(--danger)}.state .btn{margin-top:8px}.field{min-width:0;position:relative}.field>label{display:block}.field-label{color:var(--text-2);margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.field-aside{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:12.5px;position:absolute;top:0;right:0}.field-hint{color:var(--text-3);margin-top:6px;font-size:12.5px;line-height:1.45}.field-hint em{color:var(--warm);font-style:normal;font-weight:500}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field-row.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.form-stack{flex-direction:column;gap:16px;display:flex}@media (width<=560px){.field-row,.field-row.cols-3,.field-row.cols-4{grid-template-columns:minmax(0,1fr)}}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;display:inline-flex}.switch.is-disabled{opacity:.5;cursor:not-allowed}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch-track{background:var(--border-strong);border-radius:10px;flex:none;width:34px;height:20px;transition:background-color .18s;position:relative}.switch-track:after{content:"";background:var(--text);width:14px;height:14px;transition:transform .18s var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{background:var(--accent-ink);transform:translate(14px)}.switch input:focus-visible+.switch-track{box-shadow:var(--ring)}.switch-label{color:var(--text-2);font-size:13.5px}.notice{border-radius:var(--radius-sm);border:1px solid #0000;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.notice svg{flex:none;margin-top:2px}.notice-info{background:var(--info-soft);color:var(--info);border-color:#7cb4f040}.notice-warn{background:var(--warm-soft);color:var(--warm);border-color:#e9b96e40}.notice-danger{background:var(--danger-soft);color:var(--danger);border-color:#f0776c40}.chips{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.chip{border:1px solid var(--border-strong);color:var(--text-2);background:0 0;border-radius:20px;padding:4px 12px;font-size:13px;transition:background-color .15s,border-color .15s,color .15s}.chip:hover{border-color:var(--text-3);color:var(--text)}.chip.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.chip:focus-visible{border-radius:20px}.chip-add{border:1px dashed var(--border-strong);border-radius:20px;align-items:center;gap:2px;padding-right:3px;display:inline-flex}.chip-add:focus-within{border-style:solid;border-color:var(--accent)}.chip-add input{background:0 0;border:none;width:120px;min-height:28px;padding:2px 4px 2px 12px;font-size:13px}.chip-add input:focus-visible{box-shadow:none}.modal-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#040807b3;place-items:center;padding:20px;animation:.15s fade-in;display:grid;position:fixed;inset:0}.modal-overlay.is-drawer{place-items:stretch end;padding:0}.modal,.drawer{background:var(--surface);border:1px solid var(--border-strong);width:100%;max-height:calc(100dvh - 40px);box-shadow:var(--shadow);flex-direction:column;display:flex}.modal{border-radius:var(--radius-lg);animation:rise-in .2s var(--ease)}.modal.size-sm{max-width:420px}.modal.size-md{max-width:560px}.modal.size-lg{max-width:760px}.drawer{max-width:620px;height:100dvh;max-height:none;animation:slide-in .22s var(--ease);border-width:0 0 0 1px}.modal:focus-visible,.drawer:focus-visible{box-shadow:var(--shadow)}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 14px 20px;display:flex}.modal-body{flex:1;min-height:0;padding:20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.confirm-text{color:var(--text-2);line-height:1.6}.confirm-text strong{color:var(--text)}.toast-stack{right:20px;bottom:calc(var(--player-h) + 16px);z-index:80;flex-direction:column;gap:8px;max-width:min(420px,100vw - 40px);display:flex;position:fixed}.toast{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);animation:rise-in .2s var(--ease);align-items:flex-start;gap:10px;padding:11px 10px 11px 14px;display:flex}.toast>svg{flex:none;margin-top:2px}.toast>span{flex:1}.toast-success>svg{color:var(--accent)}.toast-error{border-color:#f0776c66}.toast-error>svg{color:var(--danger)}.track-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:13px;padding:12px 12px 12px 13px;transition:border-color .15s,background-color .15s;display:flex}.track-card:hover{background:var(--surface-2);border-color:var(--border-strong)}.track-card.is-active{border-color:#62d6a273}.track-main{flex:1;min-width:0}.track-title{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;display:block;overflow:hidden}.track-title:hover{color:var(--accent-strong)}.track-meta{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:12.5px;display:flex}.track-actions{flex:none;align-items:center;gap:2px;display:flex}.stars{margin-right:4px;display:inline-flex}.star{width:22px;height:26px;color:var(--border-strong);background:0 0;border:none;place-items:center;padding:0;transition:color .12s;display:grid}.star.is-on,.stars:hover .star:not(:disabled){color:var(--warm)}.stars .star:hover~.star{color:var(--border-strong)}@media (width<=560px){.track-card{flex-wrap:wrap}.track-actions{justify-content:flex-end;width:100%}}.job-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 15px}.job-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.job-title-wrap{min-width:0}.job-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:14.5px;display:-webkit-box;overflow:hidden}.job-sub{color:var(--text-3);margin-top:2px;font-size:12.5px}.job-text{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:10px;font-size:13px;display:flex}.job-progress{margin-top:12px}.job-progress .job-text{margin-top:8px}.job-percent{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.job-stage{background:var(--surface-3);border-radius:4px;padding:0 7px;font-size:12px}.job-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);overflow-wrap:anywhere;margin-top:10px;padding:9px 11px;font-size:13px}.job-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.job-actions .job-text{margin-top:0}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:11px 14px}.table th{color:var(--text-3);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:11.5px;font-weight:600}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background-color .12s}.table tbody tr:hover{background:var(--surface-2)}.table small{color:var(--text-3);font-size:12px;display:block}.table select{min-width:110px;min-height:32px;padding-top:4px;padding-bottom:4px}.table tr.is-inactive td:not(.cell-actions){opacity:.5}.cell-title{max-width:340px}.cell-title>span,.cell-title>a{text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.cell-title>a:hover{color:var(--accent-strong)}.cell-progress{min-width:170px;max-width:280px}.cell-progress small{overflow-wrap:anywhere;margin-top:4px}.cell-actions{white-space:nowrap;text-align:right!important}.cell-actions>*{vertical-align:middle;margin-left:4px}.code-block{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:280px;color:var(--text-2);font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;padding:11px 13px;font-size:12.5px;line-height:1.6;overflow:auto}.code-block.log{max-height:420px}.detail-json{max-width:420px;color:var(--text-3);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.waveform{position:relative}.waveform-canvas{cursor:pointer}.waveform-overlay{color:var(--text-3);pointer-events:none;justify-content:center;align-items:center;gap:9px;display:flex;position:absolute;inset:0}.page{max-width:1320px;margin:0 auto;padding:28px 32px 48px;animation:.2s fade-in}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;margin-bottom:22px;display:flex}.page-desc{max-width:70ch;color:var(--text-3);margin-top:4px}.page-actions{gap:8px;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.section-title{color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px;font-size:13px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:12px 18px;margin-bottom:18px;display:flex}.toolbar select{width:auto;min-width:170px}.search-box{flex:260px;max-width:420px;position:relative}.search-box svg{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-box input{padding-left:36px}.group{margin-bottom:26px}@media (width<=900px){.page{padding:20px 16px 36px}}.login-page{background:radial-gradient(60% 50% at 50% 0%, #62d6a217, transparent 70%), var(--bg);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow);animation:rise-in .3s var(--ease);flex-direction:column;gap:18px;padding:30px 28px;display:flex}.login-brand{align-items:center;gap:14px;margin-bottom:6px;display:flex}.login-brand h1{font-size:19px}.login-brand p{color:var(--text-3);font-size:13px}.create-grid{grid-template-columns:minmax(360px,460px) minmax(0,1fr);align-items:start;gap:28px;display:grid}.gen-form{flex-direction:column;gap:18px;display:flex}.gen-submit{width:100%;position:sticky;bottom:12px;box-shadow:0 6px 24px #0006}.advanced{border-top:1px solid var(--border);padding-top:6px}.advanced-toggle{width:100%;color:var(--text-2);background:0 0;border:none;align-items:center;gap:6px;padding:8px 0;font-weight:500;display:flex}.advanced-toggle:hover{color:var(--text)}.advanced-body{animation:rise-in .18s var(--ease);flex-direction:column;gap:14px;padding-top:6px;display:flex}.advanced-body>.field-hint{margin-top:0}.job-list{flex-direction:column;gap:10px;display:flex}@media (width<=1080px){.create-grid{grid-template-columns:minmax(0,1fr)}}.track-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,480px),1fr));gap:10px;display:grid}.track-detail{flex-direction:column;gap:18px;max-width:1080px;display:flex}.back-link{color:var(--text-3);align-self:flex-start;align-items:center;gap:6px;font-size:13px;display:inline-flex}.back-link:hover{color:var(--text)}.detail-head{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.detail-head-main{flex:1;min-width:220px}.detail-head-actions{align-items:center;gap:4px;display:flex}.title-row{align-items:center;gap:6px;display:flex}.title-row h1{overflow-wrap:anywhere;min-width:0}.title-input{flex:1;font-weight:600;font-size:20px!important}.action-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.action-sep{background:var(--border-strong);width:1px;height:22px;margin:0 4px}.meta-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px 24px;display:grid}.meta-grid.compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px 18px}.meta-item.wide{grid-column:1/-1}.meta-item dt{color:var(--text-3);margin-bottom:3px;font-size:12px;font-weight:500}.meta-item dd{overflow-wrap:anywhere}.prompt-text{white-space:pre-wrap;line-height:1.6}.file-list li{flex-wrap:wrap;gap:2px 12px;padding:3px 0;display:flex}.meta-grid+.field-hint{margin-top:16px}.job-detail{flex-direction:column;gap:14px;display:flex}.job-detail>.btn{align-self:flex-start}.job-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.job-detail .job-error{margin-top:0}.job-detail h4{color:var(--text-3);letter-spacing:.05em;text-transform:uppercase;margin-bottom:-6px;font-size:12px}.tree{flex-direction:column;gap:10px;display:flex}.tree-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tree-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 14px 12px 16px;display:flex}.tree-row+.tree-row{border-top:1px solid var(--border)}.tree-row.is-child{background:var(--bg);padding-left:22px}.tree-row.is-inactive .tree-main{opacity:.5}.tree-main{align-items:center;gap:10px;min-width:0;display:flex}.tree-branch{color:var(--text-3);flex:none}.tree-name{font-weight:600}.tree-name .mono{margin-left:6px;font-weight:400}.tree-sub{color:var(--text-3);font-size:12.5px}.tree-actions{align-items:center;gap:8px;display:flex}.node-list li{align-items:center;gap:7px;display:flex}.node-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:16px;display:grid}.node-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:16px;padding:18px;display:flex}.node-card.is-inactive>:not(.node-head,.node-actions){opacity:.5}.node-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.node-name{font-size:16px}.node-sub{color:var(--text-3);font-size:12.5px}.gpu{background:var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:10px;padding:12px 13px;display:flex}.gpu-name{font-weight:500}.meter-head{color:var(--text-2);justify-content:space-between;margin-bottom:5px;font-size:12.5px;display:flex}.node-facts{flex-direction:column;gap:9px;display:flex}.node-line{justify-content:space-between;align-items:baseline;gap:14px;font-size:13px;display:flex}.node-line dt,.node-line>span:first-child{color:var(--text-3);flex:none}.node-line dd{text-align:right;overflow-wrap:anywhere}.node-line dd a:hover{color:var(--accent-strong);text-decoration:underline}.node-line.stacked{flex-direction:column;align-items:flex-start;gap:5px}.node-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:14px;display:flex}.node-buttons{gap:6px;display:flex}.token-box{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 10px 10px 13px;display:flex}.token-value{min-width:0;font-family:var(--font-mono);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;flex:1;font-size:13px}
