:root{color-scheme:dark;--bg: #06080c;--surface: #0b0f16;--surface-2: #0f141c;--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .16);--text: #e8eef7;--muted: #8c9bb0;--faint: #55637a;--accent: #6fd3ff;--ok: #4ade80;--warn: #ffb86b;--bad: #f87171;--radius: 12px;font-family:PingFang SC,Hiragino Sans GB,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}code,.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{display:grid;grid-template-columns:304px minmax(0,1fr);height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--surface)}.brand{display:flex;gap:12px;align-items:center;padding:20px 18px 16px;border-bottom:1px solid var(--line)}.brand-mark{width:10px;height:26px;border-radius:3px;background:linear-gradient(180deg,var(--accent),#2b7ba8)}.brand-name{font-size:15px;font-weight:650;letter-spacing:-.01em}.brand-path{margin-top:3px;font-size:11.5px;color:var(--faint);max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-actions{padding:12px 14px 6px}.is-block{width:100%;text-align:center;padding:9px 14px}.video-list{flex:1;min-height:0;overflow-y:auto;padding:6px 12px 12px;display:flex;flex-direction:column;gap:8px}.video-item{text-align:left;display:flex;flex-direction:column;gap:6px;padding:11px 13px;border-radius:10px;border:1px solid transparent;background:transparent;color:inherit;cursor:pointer;font:inherit;transition:background .15s ease,border-color .15s ease}.video-item:hover{background:var(--surface-2)}.video-item.is-active{background:#101a26;border-color:#6fd3ff59}.video-title{font-size:14px;font-weight:600}.video-meta{font-size:11.5px;color:var(--faint)}.video-badges{display:flex;flex-wrap:wrap;gap:5px}.sidebar-foot{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}.foot-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.foot-actions .link:disabled{color:var(--faint);cursor:not-allowed;text-decoration:none}.empty{margin:8px 6px;padding:14px;border:1px dashed var(--line-strong);border-radius:10px;color:var(--muted);font-size:12.5px;line-height:1.7}.empty code{background:#131b26;padding:2px 5px;border-radius:4px;font-size:11.5px;color:#a8c0d8}.broken{margin:4px 2px;padding:10px 12px;border:1px solid rgba(248,113,113,.32);border-radius:10px;background:#f871710f}.broken-id{font-family:ui-monospace,monospace;font-size:12px;color:#ffc9c9;margin-bottom:5px}.broken-msg{margin:0;font-family:ui-monospace,monospace;font-size:11px;line-height:1.5;color:#e7a4a4;white-space:pre-wrap;word-break:break-word;max-height:132px;overflow:hidden}.content{min-width:0;overflow-y:auto;padding:26px 30px 120px;transition:padding-bottom .2s ease}.shell.has-log .content{padding-bottom:46vh}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:18px}.topbar h1{margin:0;font-size:26px;letter-spacing:-.02em}.subtitle{margin:6px 0 0;color:var(--muted);font-size:13px}.stats{display:flex;gap:22px}.stat-value{font-size:18px;font-weight:650;letter-spacing:-.01em}.stat-label{margin-top:2px;font-size:11px;color:var(--faint);letter-spacing:.06em}.banner{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:11px 14px;border-radius:10px;font-size:12.5px;line-height:1.6}.banner.is-error{background:#f871711a;border:1px solid rgba(248,113,113,.35);color:#ffc9c9;cursor:pointer}.banner.is-warn{background:#ffb86b17;border:1px solid rgba(255,184,107,.32);color:#ffd9ad}.banner.is-ok{background:#4ade8014;border:1px solid rgba(74,222,128,.28);color:#b6f0cd}.tabs{display:flex;align-items:center;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:2px}.tab{border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;padding:8px 14px;border-radius:8px 8px 0 0;cursor:pointer;position:relative}.tab:hover{color:var(--text);background:var(--surface-2)}.tab.is-active{color:var(--text);font-weight:600}.tab.is-active:after{content:"";position:absolute;left:10px;right:10px;bottom:-3px;height:2px;background:var(--accent);border-radius:2px}.tab-actions{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:12px;color:var(--muted);padding-bottom:6px}.tab-actions label{display:flex;align-items:center;gap:6px}.actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 14px;margin-bottom:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.btn{padding:7px 14px;border-radius:8px;border:1px solid var(--line-strong);background:#131b26;color:var(--text);font:inherit;font-size:12.5px;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .05s ease}.btn:hover:not(:disabled){background:#18222f;border-color:#ffffff47}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.is-primary{background:var(--accent);border-color:var(--accent);color:#041018;font-weight:600}.btn.is-primary:hover:not(:disabled){background:#8adcff}.btn.is-ghost{padding:3px 10px;font-size:11.5px;background:transparent}.btn.is-small{padding:4px 10px;font-size:11.5px}.input{background:#0a1017;border:1px solid var(--line-strong);border-radius:7px;color:var(--text);font:inherit;padding:6px 9px;min-width:0}.input:focus{outline:none;border-color:#6fd3ff80}.input.is-wide{width:320px;max-width:100%}.input.is-tiny{width:62px;text-align:center;font-family:ui-monospace,monospace}select.input{cursor:pointer}.check{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}.check input{accent-color:var(--accent)}input[type=range]{width:180px;accent-color:var(--accent)}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}.seg-item{border:0;background:#0a1017;color:var(--muted);font:inherit;font-size:12.5px;padding:6px 14px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.seg-item+.seg-item{border-left:1px solid var(--line)}.seg-item.is-active{background:#16263a;color:var(--text)}.seg-sub{font-size:10.5px;color:var(--faint)}.pill{border:1px solid var(--line-strong);background:transparent;color:var(--muted);border-radius:999px;padding:2px 9px;font:inherit;font-size:11px;cursor:pointer}.pill.is-active{border-color:#6fd3ff73;color:var(--accent);background:#6fd3ff14}.swatch-row{display:inline-flex;align-items:center;gap:6px}.swatch-dot{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.15)}.hint-text{font-size:11.5px;color:var(--faint)}.row-gap{display:inline-block;width:12px}.row-label{font-size:12px;color:var(--faint)}.panels{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px;margin-bottom:16px}@media(max-width:1180px){.panels{grid-template-columns:1fr}}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;margin-bottom:16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);letter-spacing:.02em}.preview{display:block;width:100%;aspect-ratio:16 / 9;border:0;background:#04070c}.stale{padding:8px 14px;font-size:11.5px;color:var(--warn);border-top:1px solid var(--line)}.placeholder{padding:44px 18px;text-align:center;color:var(--faint);font-size:13px}.checks{list-style:none;margin:0;padding:6px 14px 10px}.checks li{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:12.5px;border-bottom:1px solid rgba(255,255,255,.04)}.checks li:last-child{border-bottom:0}.check-label{color:var(--text)}.check-detail{margin-left:auto;color:var(--muted)}.videos{display:flex;flex-direction:column;gap:1px;border-top:1px solid var(--line);padding:8px 14px}.videos a{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:12px;color:#b6c8dc}.videos a:hover{color:var(--accent)}.warnings{list-style:none;margin:0;padding:10px 16px 14px;display:flex;flex-direction:column;gap:7px;font-size:12.5px;line-height:1.55;color:#d5c3a4}.warnings li:before{content:"!";display:inline-block;width:15px;color:var(--warn);font-weight:700}.config{display:flex;flex-direction:column;gap:14px;max-width:860px}.config-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.config-section>header{padding:13px 16px 11px;border-bottom:1px solid var(--line)}.config-section h3{margin:0;font-size:13.5px;font-weight:600}.config-section p{margin:4px 0 0;font-size:11.5px;color:var(--faint)}.config-body{padding:6px 16px 14px}.config-row{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.04)}.config-row:last-child{border-bottom:0}.config-label{font-size:12.5px;color:var(--muted)}.config-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.config-footer{position:sticky;bottom:0;z-index:5;padding-top:10px;background:linear-gradient(180deg,#06080c00,#06080cf0 34%,#06080c)}.config-actions{display:flex;align-items:center;gap:10px;padding:10px 2px 16px}.config-footer .banner{margin-bottom:8px}.episodes{display:flex;flex-direction:column;gap:10px}.episode{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.episode-head{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;text-align:left}.episode-head:hover{background:var(--surface-2)}.episode-id{font-family:ui-monospace,monospace;font-size:12px;color:var(--accent);border:1px solid rgba(111,211,255,.3);border-radius:6px;padding:1px 7px}.episode-title{font-weight:600}.episode-meta{margin-left:auto;font-size:11.5px;color:var(--faint)}.episode-caret{width:16px;text-align:center;color:var(--faint);font-size:15px}.steps{width:100%;border-collapse:collapse;font-size:12.5px}.steps th{text-align:left;font-weight:500;font-size:11px;letter-spacing:.05em;color:var(--faint);padding:8px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#090d13}.steps td{padding:8px 14px;border-bottom:1px solid rgba(255,255,255,.04);color:#b6c8dc}.steps tr:last-child td{border-bottom:0}.steps tr:hover td{background:#ffffff05}.ellipsis{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-warn{color:var(--warn)}.modal-mask{position:fixed;inset:0;background:#020408b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:5vh 4vw;z-index:50}.modal{width:min(880px,100%);max-height:90vh;display:flex;flex-direction:column;background:#0a0e15;border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 30px 80px #0009;overflow:hidden}.modal-head{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:16px}.stepper{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.step{font-size:11px;color:var(--faint);border:1px solid var(--line);border-radius:999px;padding:3px 9px}.step.is-active{color:var(--accent);border-color:#6fd3ff66;background:#6fd3ff14}.step.is-done{color:var(--muted);border-color:var(--line-strong)}.modal-body{padding:18px 20px 20px;overflow-y:auto;flex:1}.field{margin-bottom:18px}.field>label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:7px}.field-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field-hint{margin:6px 0 0;font-size:11.5px;color:var(--faint)}.hint-block{margin:0;font-size:12px;color:var(--faint);line-height:1.7}.modal-foot{display:flex;align-items:center;gap:12px;padding:13px 20px;border-top:1px solid var(--line);background:#080c12}.modal-hint{margin-left:auto;font-size:11.5px;color:var(--faint)}.theme-grid{flex:1 1 100%;width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;max-height:300px;overflow-y:auto;padding:2px}.theme-card{display:flex;flex-direction:column;gap:6px;padding:7px;border-radius:9px;border:1px solid var(--line);background:#0b0f16;cursor:pointer;font:inherit;color:inherit;text-align:left}.theme-card:hover{border-color:var(--line-strong)}.theme-card.is-active{border-color:#6fd3ff8c;background:#101a26}.theme-swatch{height:34px;border-radius:6px;border:1px solid transparent;display:flex;align-items:flex-end;padding:5px}.theme-swatch>span{width:26px;height:3px;border-radius:2px;display:block}.theme-name{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.choice{display:flex;flex-direction:column;gap:5px;text-align:left;padding:13px 14px;border-radius:10px;border:1px solid var(--line);background:#0b0f16;color:inherit;font:inherit;cursor:pointer}.choice strong{font-size:13px}.choice span{font-size:11.5px;color:var(--faint);line-height:1.5}.choice.is-active{border-color:#6fd3ff80;background:#101a26}.summary{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#080c12}.summary>div{display:flex;flex-direction:column;gap:3px;min-width:0}.summary span{font-size:11px;color:var(--faint)}.summary b{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(70% 60% at 50% 0%,#0d1a26,#06080c 70%)}.login-card{width:320px;display:flex;flex-direction:column;gap:14px;padding:28px 26px;border:1px solid var(--line-strong);border-radius:14px;background:#0a0e15}.login-card h1{margin:0;font-size:19px}.login-card p{margin:0;font-size:12.5px;color:var(--muted)}.chip{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong);font-size:11px;color:var(--muted);white-space:nowrap}.chip.is-ok{color:#9be8bb;border-color:#4ade804d;background:#4ade8014}.chip.is-warn{color:#ffcf9b;border-color:#ffb86b52;background:#ffb86b14}.chip.is-idle{color:var(--faint)}.dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--faint)}.dot.is-ok{background:var(--ok);box-shadow:0 0 0 3px #4ade801f}.dot.is-bad{background:var(--bad);box-shadow:0 0 0 3px #f871711f}.dot.is-idle{background:#2c3648}.dot.is-busy{background:var(--accent);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.link{border:0;background:none;color:var(--accent);font:inherit;font-size:11.5px;cursor:pointer;padding:0}.link:hover{text-decoration:underline}.muted{color:var(--faint)}.welcome{margin-top:8px;padding:30px 32px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:13.5px;line-height:1.9;max-width:720px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}.welcome h2{margin:0;font-size:17px;color:var(--text)}.welcome p{margin:0}.log{position:fixed;left:304px;right:0;bottom:0;background:#080c12;border-top:1px solid var(--line-strong);box-shadow:0 -18px 40px #00000073;z-index:20}.log-head{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;font-size:12px}.log-head:hover{background:#0c1219}.log-title{font-family:ui-monospace,monospace;font-size:11.5px;color:#a8c0d8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-state{margin-left:auto;color:var(--muted);font-size:11.5px}.log-toggle{color:var(--faint);font-size:11.5px}.log-body{margin:0;padding:10px 16px 16px;max-height:38vh;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;line-height:1.6;color:#a9bdd2;white-space:pre-wrap;word-break:break-word;border-top:1px solid var(--line)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#1d2735;border-radius:6px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#2b3a4d;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}
