:root{--bg:#121019;--panel:#1b1824;--panel2:#231f2f;--line:#332d44;--text:#ece8f4;--mute:#a59fb6;--gold:#e8b04a;--gold2:#f4c96f;--red:#e5636b;--green:#5cc98a;--blue:#7aa7ff;--r:12px}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans Bengali","Hind Siliguri",sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--gold2)}button,input,select,textarea{font:inherit;color:inherit}
.boot{padding:40px;text-align:center;color:var(--mute)}
header.top{position:sticky;top:0;z-index:20;background:rgba(18,16,25,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top))}
header.top .brand{font-weight:700;color:var(--gold);white-space:nowrap;text-decoration:none}
header.top .title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
header.top nav{display:flex;gap:6px}
main{max-width:980px;margin:0 auto;padding:14px 14px 200px}
h1{font-size:22px;margin:6px 0 14px}h2{font-size:18px;margin:22px 0 10px}h3{font-size:16px;margin:0 0 8px}
.muted{color:var(--mute)}.small{font-size:13px}.gold{color:var(--gold)}.red{color:var(--red)}.green{color:var(--green)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:0 0 12px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}
.btn{appearance:none;border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:9px 14px;cursor:pointer;white-space:nowrap;min-height:40px}
.btn:hover{border-color:#4a4260}.btn:disabled{opacity:.5;cursor:default}
.btn.primary{background:var(--gold);border-color:var(--gold);color:#1a1405;font-weight:700}.btn.primary:hover{background:var(--gold2)}
.btn.big{padding:14px 22px;font-size:17px;min-height:52px}
.btn.ghost{background:transparent}.btn.danger{color:var(--red)}.btn.sm{padding:6px 10px;min-height:34px;font-size:14px}
.icon{appearance:none;border:1px solid var(--line);background:var(--panel2);border-radius:999px;width:38px;height:38px;cursor:pointer;flex:none;display:inline-flex;align-items:center;justify-content:center}
.segs{display:flex;gap:6px;overflow-x:auto;margin:0 0 14px;padding-bottom:2px;position:sticky;top:58px;z-index:15;background:var(--bg);padding-top:6px}
.seg{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:8px 16px;cursor:pointer;white-space:nowrap}
.seg.on{background:var(--gold);color:#1a1405;border-color:var(--gold);font-weight:700}
input[type=text],input[type=password],input[type=number],select,textarea{width:100%;background:#0f0d15;border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none}
textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--gold)}
label.f{display:block;margin:10px 0 4px;color:var(--mute);font-size:13px}
input[type=range]{width:100%;accent-color:var(--gold)}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;border:1px solid var(--line);color:var(--mute);white-space:nowrap}
.pill.ok{color:var(--green);border-color:#2f6b4a}.pill.need{color:var(--gold);border-color:#6b5428}.pill.free{color:var(--blue);border-color:#34497a}.pill.warn{color:var(--red);border-color:#7a3438}
.scene{margin:18px 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.scene h2{margin:0;flex:1;min-width:150px}
.line{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:12px;margin:0 0 8px}
.line .head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.line .id{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--mute)}
.line .who{font-weight:700}
.line .txt{font-size:16px;line-height:1.6;margin:4px 0 8px}
.line .tag{color:var(--gold);font-size:13px}
.line .acts{display:flex;gap:6px;flex-wrap:wrap}
.panel{margin-top:10px;padding:12px;background:var(--panel2);border-radius:10px;border:1px solid var(--line)}
.cue{background:#17141f;border:1px dashed #3d3552;border-radius:var(--r);padding:10px 12px;margin:0 0 8px}
.cue .kind{font-size:11px;font-weight:800;letter-spacing:.06em;padding:2px 8px;border-radius:6px;background:#2c2540;color:var(--gold2)}
.cue.MUSIC .kind{background:#1f2c45;color:var(--blue)}.cue.AMBIENCE .kind{background:#1e3a2c;color:var(--green)}
.cue.muted{opacity:.55}
.cost{background:#2b2312;border:1px solid #6b5428;color:var(--gold2);border-radius:10px;padding:8px 10px;font-size:14px;margin:8px 0}
.cost.free{background:#16213a;border-color:#34497a;color:var(--blue)}
.diff .old{color:var(--mute);text-decoration:line-through;font-size:14px}.diff .new{font-size:16px}
.progress{height:10px;background:#0f0d15;border-radius:999px;overflow:hidden;border:1px solid var(--line)}
.progress>div{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));transition:width .4s}
.bottombar{position:fixed;left:0;right:0;bottom:0;z-index:25;background:rgba(18,16,25,.96);border-top:1px solid var(--line);padding:10px 14px;padding-bottom:max(10px,env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center;justify-content:center}
.bottombar .info{font-size:13px;color:var(--mute);flex:1;max-width:520px}
.player{position:fixed;left:0;right:0;bottom:70px;z-index:30;display:flex;gap:8px;align-items:center;background:#0c0a11;border-top:1px solid var(--line);padding:6px 10px}
.player audio{flex:1;height:36px;min-width:0}.player #pl-label{font-size:12px;color:var(--mute);max-width:30%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hidden{display:none!important}
.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center}
.modal .sheet{background:var(--panel);border:1px solid var(--line);border-radius:16px 16px 0 0;width:100%;max-width:560px;max-height:88vh;overflow:auto;padding:18px;padding-bottom:max(18px,env(safe-area-inset-bottom))}
@media(min-width:700px){.modal{align-items:center}.modal .sheet{border-radius:16px}}
.toast{position:fixed;left:50%;transform:translateX(-50%);top:70px;z-index:60;background:#2a2438;border:1px solid var(--line);padding:10px 16px;border-radius:10px;max-width:90vw;box-shadow:0 8px 30px rgba(0,0,0,.4)}
.toast.err{border-color:var(--red);color:#ffd3d6}
.grid2{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:760px){.grid2{grid-template-columns:1fr 1fr}}
.plist .card{display:flex;gap:12px;align-items:center;cursor:pointer}.plist .card:hover{border-color:#4a4260}
.login{max-width:380px;margin:12vh auto;padding:0 16px;text-align:center}
.login .logo{font-size:40px;color:var(--gold)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14px}.kv b{color:var(--mute);font-weight:500}
.sp{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sp .name{font-weight:700;font-size:16px;min-width:110px}
code{background:#0f0d15;border:1px solid var(--line);padding:1px 6px;border-radius:6px;font-size:13px}
.libitem{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.libitem:last-child{border-bottom:0}

a.btn,a.seg,.brand{text-decoration:none}
.segs{scrollbar-width:none}.segs::-webkit-scrollbar{display:none}
body:not(:has(.bottombar)) .player{bottom:0}
.row select.grow,.row input.grow{width:auto;flex:1;min-width:0}
@media(max-width:420px){.seg{padding:8px 12px;font-size:14px}}
