body{background-image:radial-gradient(800px 500px at 10% -5%,#8b5cf629,#0000 60%),radial-gradient(700px 500px at 100% 0,#3da9ff1f,#0000 60%);min-height:100vh}.mono{font-family:var(--font-jetbrains-mono), monospace}.admin h1,.admin h2,.admin h3,.admin h4{font-family:var(--font-unbounded), sans-serif;letter-spacing:-.01em;margin:0;font-weight:500}.admin input,.admin select,.admin textarea{font:inherit}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.field .hint{color:var(--ink-faint);font-size:11px;font-family:var(--font-jetbrains-mono), monospace}.inp{border:1px solid var(--line-strong);width:100%;color:var(--ink);transition:border-color .2s var(--easing), background .2s var(--easing);background:#ffffff08;border-radius:12px;padding:11px 14px}.inp:focus{border-color:var(--violet);background:#8b5cf614;outline:none}textarea.inp{resize:vertical;min-height:80px;line-height:1.55}.row{flex-wrap:wrap;gap:12px;display:flex}.row>*{flex:1;min-width:140px}.btn{border:1px solid var(--line-strong);color:var(--ink);transition:transform .2s var(--easing), border-color .2s var(--easing), background .2s var(--easing), box-shadow .2s var(--easing);background:#ffffff0a;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:14px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--line-strong);background:#ffffff12;transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{color:#fff;background:linear-gradient(135deg,#8b5cf6,#3da9ff 55%,#ff6fb1);border:0;box-shadow:0 10px 30px -12px #8b5cf6b3,inset 0 0 0 1px #ffffff2e}.btn-primary:hover{box-shadow:0 14px 40px -12px #8b5cf6e6,inset 0 0 0 1px #ffffff47}.btn-ghost{border-color:var(--line);background:0 0}.btn-danger{color:#ffb3bb;background:#ff5b6b14;border-color:#ff5b6b66}.btn-danger:hover{background:#ff5b6b29;border-color:#ff5b6b99}.btn-sm{padding:7px 12px;font-size:12px}.card{border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#ffffff09,#ffffff03);border-radius:20px;padding:22px}.pill{border:1px solid var(--line-strong);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.16em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:10px;display:inline-flex}.pill.admin{color:#e8e4ff;background:linear-gradient(135deg,#8b5cf633,#3da9ff33);border-color:#8b5cf680}.pill.streamer{color:#ffd1ea;background:#ff6fb114;border-color:#ff6fb166}.toast-host{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border:1px solid var(--line-strong);background:var(--bg-2);animation:slidein .3s var(--easing);border-radius:12px;padding:12px 16px;font-size:13px;box-shadow:0 12px 40px -12px #0009}.toast.ok{background:#4ade801a;border-color:#4ade8066}.toast.err{background:#ff5b6b1f;border-color:#ff5b6b80}@keyframes slidein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{width:min(420px,100%)}.brand{align-items:center;gap:12px;margin-bottom:6px;display:flex}.brand-mark{background:conic-gradient(#8b5cf6,#3da9ff,#7df0d4,#ffd58a,#ff6fb1,#8b5cf6);border-radius:9px;width:34px;height:34px;position:relative;box-shadow:0 0 24px #8b5cf680}.brand-mark:after{content:"";background:var(--bg-0);border-radius:5px;position:absolute;inset:5px}.brand-word{font-family:var(--font-unbounded), sans-serif;letter-spacing:.22em;font-size:16px;font-weight:600}.topbar{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:linear-gradient(#05060cd9,#05060c66);justify-content:space-between;align-items:center;gap:16px;padding:16px clamp(16px,4vw,40px);display:flex;position:sticky;top:0}.topbar .who{color:var(--ink-dim);align-items:center;gap:10px;font-size:13px;display:flex}.shell{width:min(1160px,94vw);margin:0 auto;padding:28px 0 80px}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.tab{border:1px solid var(--line);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);background:#ffffff05;border-radius:12px;padding:10px 16px;font-size:12px}.tab.active{color:#fff;border-color:var(--line-strong);background:#8b5cf624}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.mcard{border:1px solid var(--line);transition:transform .3s var(--easing), border-color .3s var(--easing);background:linear-gradient(#ffffff0a,#ffffff03);border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.mcard:hover{border-color:var(--line-strong);transform:translateY(-3px)}.mcard .head{border-bottom:1px solid var(--line);align-items:center;gap:12px;height:64px;padding:0 16px;display:flex}.mcard .sw{border-radius:4px;width:12px;height:12px;box-shadow:0 0 14px}.mcard .body{flex-direction:column;flex:1;gap:8px;padding:14px 16px;display:flex}.mcard .av{object-fit:cover;border:1px solid var(--line);background:#0a0c1a;border-radius:10px;width:44px;height:44px}.mcard .foot{border-top:1px solid var(--line);gap:8px;padding:12px 16px;display:flex}.muted{color:var(--ink-faint);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.08em;font-size:11px}.editor-grid{grid-template-columns:1fr 320px;align-items:start;gap:22px;display:grid}@media (max-width:860px){.editor-grid{grid-template-columns:1fr}}.section-t{font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--violet);margin:22px 0 12px;font-size:11px}.section-t.first{margin-top:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;letter-spacing:.1em;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:11px;display:inline-flex}.chip button{color:var(--ink-faint);background:0 0;border:0;padding:0;font-size:14px;line-height:1}.chip button:hover{color:var(--danger)}.artist-row{grid-template-columns:1fr 1fr 1.4fr auto;gap:8px;margin-bottom:8px;display:grid}@media (max-width:900px){.artist-row{grid-template-columns:1fr auto}}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink-dim);align-items:center;gap:10px;font-size:13px;display:inline-flex}.toggle input{opacity:0;width:0;height:0;position:absolute}.switch{width:42px;height:24px;transition:background .2s var(--easing);background:#ffffff1f;border-radius:999px;flex:none;position:relative}.switch:after{content:"";width:18px;height:18px;transition:transform .2s var(--easing);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle input:checked+.switch{background:linear-gradient(135deg,#8b5cf6,#3da9ff)}.toggle input:checked+.switch:after{transform:translate(18px)}.prev{position:sticky;top:88px}.prev .av-box{aspect-ratio:1;border:1px solid var(--line);background:linear-gradient(135deg,#8b5cf640,#0a0c1a);border-radius:16px;justify-content:center;align-items:center;margin-bottom:14px;display:flex;position:relative;overflow:hidden}.prev .av-box img{object-fit:cover;width:100%;height:100%}.prev .av-box .ph{font-family:var(--font-jetbrains-mono), monospace;color:var(--ink-faint);letter-spacing:.15em;font-size:11px}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line);padding:10px 12px;font-size:10px}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px;font-size:14px}.tbl tr:hover td{background:#ffffff05}.err-text{color:#ffb3bb;min-height:18px;font-size:13px;font-family:var(--font-jetbrains-mono), monospace}.soon{font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);background:#ffd58a14;border:1px solid #ffd58a66;border-radius:999px;padding:4px 10px;font-size:10px;display:inline-block}.modal-bg{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:60;background:#03040ab3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{width:min(460px,100%)}.spinner{border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
