:root{--bg:#07090f;--panel:#0e1220;--panel-edge:#1d2438;--text:#e8ecf6;--muted:#8a93ab;--accent:#5b8cff;--danger:#ff5b72}*{box-sizing:border-box}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text);margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.dot-field{cursor:crosshair;touch-action:none;overscroll-behavior:none;width:100vw;height:100dvh;display:block}.page{min-height:100vh}.page.center{justify-content:center;align-items:center;display:flex}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem}.small-note{font-size:.8rem;line-height:1.4}code{background:#ffffff0f;border-radius:4px;padding:.1em .35em;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}.btn{appearance:none;border:1px solid var(--panel-edge);background:var(--panel);color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .9rem;font-family:inherit;font-size:.9rem;text-decoration:none;transition:border-color .12s,background .12s;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.primary:hover{filter:brightness(1.1)}.btn.ghost{background:0 0}.btn.danger{color:var(--danger);border-color:#ff5b7266}.btn.danger:hover{border-color:var(--danger)}.btn.small{padding:.3rem .6rem;font-size:.8rem}.btn.icon{padding:.25rem .5rem;font-size:.85rem;line-height:1}.btn:disabled{opacity:.5;cursor:default}.panel{background:var(--panel);border:1px solid var(--panel-edge);border-radius:14px;padding:1.5rem}.panel.narrow{flex-direction:column;gap:1rem;width:min(380px,92vw);display:flex}.panel h2{margin:0 0 .25rem;font-size:1.15rem}.field{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.8rem;display:flex}.field input,.field textarea{background:var(--bg);border:1px solid var(--panel-edge);color:var(--text);resize:vertical;border-radius:8px;padding:.55rem .7rem;font-family:inherit;font-size:.95rem}.field input:focus,.field textarea:focus,.track-row input:focus{border-color:var(--accent);outline:none}.color-field{color:var(--muted);align-items:center;gap:.6rem;font-size:.8rem;display:inline-flex}.color-field input{border:1px solid var(--panel-edge);background:var(--bg);cursor:pointer;border-radius:6px;width:42px;height:30px;padding:2px}.admin-page{padding:2rem clamp(1rem,4vw,3rem) 4rem}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.admin-header h1{letter-spacing:.02em;margin:0;font-size:1.4rem}.admin-header-actions{gap:.6rem;display:flex}.playlist-list{flex-direction:column;gap:.7rem;max-width:720px;margin:0;padding:0;list-style:none;display:flex}.playlist-card{background:var(--panel);border:1px solid var(--panel-edge);border-radius:12px;align-items:center;gap:1rem;padding:.9rem 1.1rem;display:flex}.disc-chip{border-radius:6px 6px 6px 12px;flex-shrink:0;width:26px;height:28px;box-shadow:inset 0 0 0 1px #ffffff26}.playlist-card-info{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.playlist-card-info .muted{font-size:.8rem}.playlist-card-actions{gap:.5rem;display:flex}.editor-layout{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start;gap:1.25rem;max-width:1100px;display:grid}.editor-form{flex-direction:column;gap:1rem;display:flex}.editor-form h3{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:.5rem 0 0;font-size:.95rem}.track-rows{flex-direction:column;gap:.5rem;display:flex}.track-row{grid-template-columns:1.4rem 1.6fr 1fr 1fr 3.6rem auto;align-items:center;gap:.4rem;display:grid}.track-num{color:var(--muted);text-align:right;font-size:.8rem}.track-row input{background:var(--bg);border:1px solid var(--panel-edge);color:var(--text);border-radius:7px;min-width:0;padding:.45rem .55rem;font-family:inherit;font-size:.85rem}.track-row-actions{gap:.25rem;display:flex}.track-list-buttons{gap:.6rem;display:flex}.editor-actions{gap:.6rem;margin-top:.5rem;display:flex}.editor-side{flex-direction:column;gap:.9rem;display:flex;position:sticky;top:2rem}.qr-panel{background:var(--panel);border:1px solid var(--panel-edge);border-radius:14px;flex-direction:column;gap:.9rem;padding:1.25rem;display:flex}.qr-panel h3{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.95rem}.qr-preview{background:repeating-conic-gradient(#ffffff1a 0% 25%,#0000 0% 50%) 0 0/18px 18px;border-radius:10px;align-self:center;width:min(220px,100%);padding:14px}.qr-preview svg{width:100%;height:auto;display:block}.qr-url{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.qr-url code{word-break:break-all;font-size:.75rem}.qr-controls{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.playlist-page{background:radial-gradient(900px 500px at 25% 30%, #5b8cff1a, transparent 65%), var(--bg);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);display:grid}.disc-stage{height:100vh;min-height:320px;position:sticky;top:0}.playlist-info{max-width:620px;padding:clamp(2rem,6vh,4.5rem) clamp(1.25rem,4vw,3.5rem)}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--muted);margin:0 0 .75rem;font-size:.7rem}.playlist-info h1{margin:0 0 .75rem;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.1}.playlist-info .description{color:var(--muted);margin:0 0 .75rem;line-height:1.55}.track-list{flex-direction:column;margin:2rem 0 0;padding:0;list-style:none;display:flex}.track-list li{border-bottom:1px solid #ffffff12;align-items:baseline;gap:1rem;padding:.8rem .25rem;display:flex}.track-list-num{color:var(--muted);flex-shrink:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem}.track-list-main{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.track-list-title{font-weight:600}.track-list-sub{font-size:.82rem}.track-list-time{flex-shrink:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem}@media (width<=900px){.editor-layout{grid-template-columns:1fr}.editor-side{position:static}.playlist-page{grid-template-columns:minmax(0,1fr)}.disc-stage{min-width:0;height:48vh;position:static;overflow:hidden}.track-row{grid-template-columns:1.4rem 1fr 1fr;grid-auto-rows:auto}.track-row .track-duration{grid-column:2}.track-row-actions{grid-column:3;justify-content:flex-end}}
