:root{--black:#080808;--pink:#FF1493;--gold:#D4AF37;--white:#fff;--charcoal:#1A1A1A;--muted:#bdb6a6;--good:#5fd38a;--bad:#ff7a8a}
*{box-sizing:border-box}
body{margin:0;background:var(--black);color:var(--white);font:16px/1.55 "Helvetica Neue",Arial,sans-serif;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--gold)}a:hover{color:var(--pink)}
:focus-visible{outline:3px solid var(--pink);outline-offset:2px}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:.01em}
h1{font-size:1.9rem;margin:.2em 0 .6em}h2{font-size:1.2rem;margin:0 0 .6em;color:var(--gold)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--gold);color:#000;padding:8px;z-index:9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--gold);background:var(--charcoal)}
.brand{color:var(--white);text-decoration:none;font-family:Georgia,serif;font-size:1.25rem;display:flex;align-items:center;gap:10px}.brand b{color:var(--pink)}
.wave{display:inline-flex;align-items:center;gap:2px;height:22px}.wave i{display:block;width:3px;background:var(--gold);border-radius:2px}
.wave i:nth-child(1){height:8px}.wave i:nth-child(2){height:16px}.wave i:nth-child(3){height:22px;background:var(--pink)}.wave i:nth-child(4){height:14px}.wave i:nth-child(5){height:9px}
.who{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.who form{margin:0}
button.link{background:none;border:0;color:var(--gold);font:inherit;text-decoration:underline;cursor:pointer;padding:0}
.shell{flex:1;display:block;width:100%;max-width:1280px;margin:0 auto}
.shell.has-nav{display:grid;grid-template-columns:210px 1fr}
.side{display:flex;flex-direction:column;padding:16px 8px;border-right:1px solid #2c2c2c}
.side a{color:var(--white);text-decoration:none;padding:9px 12px;border-left:3px solid transparent;border-radius:0 6px 6px 0}
.side a:hover{background:var(--charcoal);color:var(--gold)}
.side a[aria-current=page]{border-left-color:var(--pink);background:var(--charcoal);color:var(--gold);font-weight:700}
main{padding:20px;min-width:0}
.card{background:var(--charcoal);border:1px solid #3a3320;border-top:2px solid var(--gold);border-radius:8px;padding:18px;margin:0 0 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.grid .card{margin:0}.grid .wide{grid-column:1/-1}
.auth{max-width:440px;margin:40px auto}.eyebrow{color:var(--pink);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;margin:0}
label{display:block;margin:0 0 12px;font-size:.92rem;color:var(--muted)}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:10px;background:var(--black);color:var(--white);border:1px solid #5a5338;border-radius:6px;font:inherit;font-size:16px}
input[type=checkbox]{display:inline;width:22px;height:22px;margin:0 8px 0 0;vertical-align:middle;accent-color:var(--pink)}
label.check{display:inline-block;margin:0 14px 6px 0;padding:6px 0;min-height:36px}
.who a,button.link{display:inline-block;padding:8px 2px}label.inline{display:inline-block;margin-right:10px}label.inline select{display:inline-block;width:auto}
fieldset{border:1px solid #3a3320;border-radius:6px;margin:0 0 12px}legend{color:var(--gold);padding:0 6px}
.btn{display:inline-block;background:var(--pink);color:#fff;border:2px solid var(--pink);padding:10px 18px;border-radius:6px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.btn:hover{background:#fff;color:#000;border-color:#fff}
.btn.ghost{background:transparent;color:var(--gold);border-color:var(--gold)}.btn.ghost:hover{background:var(--gold);color:#000}
.btn.small{padding:6px 12px;font-size:.9rem}.btn.disabled{opacity:.55;cursor:not-allowed}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.actions form{margin:0}
.muted{color:var(--muted);font-size:.9rem}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;border:1px solid;font-size:.82rem;font-weight:700;vertical-align:middle}
.badge.good{color:var(--good);border-color:var(--good)}.badge.bad{color:var(--bad);border-color:var(--bad)}.badge.neutral{color:var(--muted);border-color:var(--muted)}
.flash{padding:12px 14px;border-radius:6px;margin:0 0 16px;border:1px solid}.flash.ok{border-color:var(--good);background:#10231a}.flash.error{border-color:var(--bad);background:#2a1216}
code{background:#000;padding:2px 6px;border-radius:4px;color:var(--gold)}
.player-frame{position:relative;width:100%;max-width:450px;aspect-ratio:450/316;margin:0 0 12px}
.player-frame.tall{aspect-ratio:auto;height:420px}
.player-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:6px}
.list{list-style:none;padding:0}.list li{padding:10px 0;border-bottom:1px solid #2c2c2c}
.userrow{padding:12px 0;border-bottom:1px solid #2c2c2c}.userrow p{margin:0 0 8px}
.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid #2c2c2c}.tablewrap th,.tablewrap td{white-space:nowrap}th{color:var(--gold)}
.foot{text-align:center;padding:16px;color:var(--muted);font-size:.85rem;border-top:1px solid #2c2c2c}
@media (max-width:860px){
  .shell.has-nav{display:block}
  .side{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #2c2c2c;padding:6px}
  .side a{white-space:nowrap;border-left:0;border-bottom:3px solid transparent;border-radius:6px 6px 0 0}
  .side a[aria-current=page]{border-bottom-color:var(--pink)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 8px}
.cal-title{margin:8px 0 12px}
.cal{display:grid;gap:10px}.cal-week{grid-template-columns:repeat(7,minmax(0,1fr))}.cal-month{grid-template-columns:repeat(7,minmax(0,1fr))}.cal-day{grid-template-columns:1fr}
.cal .day{background:var(--charcoal);border:1px solid #2c2c2c;border-radius:8px;padding:8px;min-width:0}
.cal .day.today{border-color:var(--pink)}.cal .day.outside{opacity:.5}
.cal .day h3{font-size:.85rem;margin:0 0 6px}.cal .day h3 a{color:var(--gold);text-decoration:none}
.ev{border-left:3px solid var(--pink);background:#111;border-radius:4px;padding:6px 8px;margin:0 0 6px;display:flex;flex-direction:column;gap:2px;font-size:.85rem;overflow-wrap:anywhere}
.ev.win{border-left-color:var(--gold);background:repeating-linear-gradient(135deg,#15130c,#15130c 8px,#1c1910 8px,#1c1910 16px)}
.ev.cancelled strong,.ev.cancelled .time{text-decoration:line-through}.ev.mine{outline:1px solid var(--good)}
.ev .time{color:var(--gold);font-weight:700}.small-link{font-size:.8rem}
.tag{display:inline-block;font-size:.72rem;border:1px solid var(--muted);border-radius:4px;padding:0 6px;color:var(--muted);width:fit-content}.tag.good{color:var(--good);border-color:var(--good)}.tag.bad{color:var(--bad);border-color:var(--bad)}
.inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:10px 0}.inline-form label{margin:0}
.blockrow{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #2c2c2c}
@media (max-width:860px){
  .cal-week,.cal-month{grid-template-columns:1fr}
  .cal .day.empty,.cal .day.outside{display:none}
  .cal-day .day.empty{display:block}
}
.big{font-size:2.4rem;font-weight:700;margin:0;color:var(--white);line-height:1.1}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pubwrap{max-width:640px;margin:0 auto}
.req-row{display:grid;grid-template-columns:auto 1fr auto;gap:6px 14px;align-items:start;padding:12px 0;border-bottom:1px solid #2c2c2c}
.req-row .meta{grid-column:2;color:var(--muted);font-size:.85rem}.req-row h3{margin:0;font-size:1rem}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0;overflow-wrap:anywhere}
.msg{white-space:pre-wrap;background:#000;border:1px solid #3a3320;border-radius:6px;padding:10px;overflow-wrap:anywhere}
@media (max-width:600px){.req-row{grid-template-columns:1fr}.req-row .meta{grid-column:1}dl.kv{grid-template-columns:1fr}}
fieldset.consent{border:2px solid var(--gold);background:#0f0d07;padding:12px 14px}
fieldset.consent legend{font-weight:700}
.req{color:var(--muted);font-size:.82rem}
.statusrows{width:100%;border-collapse:collapse;margin:0 0 12px}
.statusrows th{text-align:left;padding:8px 12px 8px 0;vertical-align:top;font-weight:600;width:34%;color:var(--white)}
.statusrows td{padding:8px 0;vertical-align:top}
.statusrows tr+tr th,.statusrows tr+tr td{border-top:1px solid #2c2c2c}
.grid.studio{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.countdown{color:var(--gold);font-weight:700;font-variant-numeric:tabular-nums}
.checklist{list-style:none;padding:0;margin:0 0 12px}.checklist li{border-bottom:1px solid #2c2c2c}
.checklist form{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
.tick{display:flex;gap:10px;align-items:flex-start;text-align:left;background:none;border:0;color:var(--white);font:inherit;cursor:pointer;padding:10px 4px;min-height:44px}
.tick .box{font-size:1.3rem;line-height:1.1;color:var(--gold)}.tick[aria-pressed=true] span:last-child{color:var(--muted);text-decoration:line-through}
.msglist{max-height:320px;overflow-y:auto;border:1px solid #2c2c2c;border-radius:6px;padding:8px;background:#0e0e0e;margin:0 0 10px}
.msgitem{padding:6px 8px;margin:0 0 6px;border-left:3px solid var(--gold);background:#161616;border-radius:4px;overflow-wrap:anywhere}.msgitem.mine{border-left-color:var(--pink)}
.card.wide{grid-column:1/-1}
.hostrow{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center;border-bottom:1px solid #2c2c2c;padding:2px 0}
.notif{padding:12px 0;border-bottom:1px solid #2c2c2c}.notif:last-child{border-bottom:0}
.notif.unread{border-left:3px solid var(--pink);padding-left:12px;background:#15101a}
.notif h2{font-size:1.05rem;margin:6px 0;color:var(--white)}.notif-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.notif-body{margin:0 0 8px;overflow-wrap:anywhere}.notif .actions form{margin:0}
#notif-badge{display:inline-block;min-width:1.4em;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--pink);color:#fff;font-size:.8rem;font-weight:700;text-align:center;line-height:1.5}
#notif-badge[hidden]{display:none}
button[disabled]{opacity:.55;cursor:not-allowed}
fieldset.slots{margin:0 0 10px}fieldset.slots legend{font-size:.95rem}
label.slot{display:inline-flex;align-items:center;gap:6px;margin:0 8px 8px 0;padding:8px 12px;min-height:44px;border:1px solid #5a5338;border-radius:6px;background:#0e0e0e;color:var(--white);cursor:pointer}
label.slot input[type=radio]{width:20px;height:20px;margin:0;accent-color:var(--pink)}
label.slot:has(input:checked){border-color:var(--pink);background:#1d0f17}
.availday{border-bottom:1px solid #2c2c2c;padding:8px 0}.availday h3{margin:0 0 4px;font-size:1rem}.availday p{margin:2px 0}
.ev.show{border-left:3px solid var(--pink);padding-left:8px}.ev.win{border-left:3px solid var(--gold);padding-left:8px;color:var(--muted)}
.adrow{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px solid #2c2c2c}.adrow label{min-width:90px;margin:0}.adrow h3{margin:0 0 4px;font-size:1rem}
@media (max-width:600px){.adrow{flex-direction:column}.adrow label{min-width:0;width:100%}}

code { overflow-wrap: anywhere; word-break: break-word; }
/* Artist submission upgrade (2026-11-09) */
.fchk{display:block;font-size:.85rem;margin-top:4px;color:var(--muted)}.fchk.good{color:var(--good)}.fchk.bad{color:var(--bad)}
.upl{margin:14px 0;padding:10px;border:1px solid #5a5338;border-radius:8px;background:#0e0e0e}.upl[hidden]{display:none}
.upl span{display:block;height:10px;border-radius:999px;background:#2c2c2c;overflow:hidden}.upl i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pink),var(--gold));transition:width .2s}
.upl b{display:block;margin-top:6px;font-size:.9rem}
.fail{border:1px solid var(--bad);color:var(--bad);padding:10px;border-radius:8px;margin:10px 0}.fail[hidden]{display:none}
.steps{display:flex;gap:8px;list-style:none;margin:14px 0;padding:0;counter-reset:s}.steps li{flex:1;text-align:center;font-size:.82rem;color:var(--muted);padding-top:30px;position:relative}
.steps li:before{counter-increment:s;content:counter(s);position:absolute;top:0;left:50%;transform:translateX(-50%);width:24px;height:24px;line-height:22px;border-radius:50%;border:2px solid var(--muted);font-weight:700}
.steps li:after{content:"";position:absolute;top:11px;left:calc(50% + 18px);right:calc(-50% + 18px);height:2px;background:#3a3320}.steps li:last-child:after{display:none}
.steps li.done{color:var(--good)}.steps li.done:before{content:"✔";border-color:var(--good);color:var(--good)}
.steps li.now{color:#fff;font-weight:700}.steps li.now:before{border-color:var(--pink);background:var(--pink);color:#fff}
.steps li.stop{color:var(--bad)}.steps li.stop:before{content:"!";border-color:var(--bad);color:var(--bad)}
.next ol{margin:6px 0 0 18px;padding:0}.next li{margin:4px 0}
.bulkbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px;margin:0 0 10px;border:1px solid var(--pink);border-radius:8px;background:#1d0f17}.bulkbar[hidden]{display:none}.bulkbar label{margin:0}
.pipe{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.pipe a{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #3a3320;border-radius:8px;background:#0e0e0e;color:#fff;text-decoration:none;min-height:56px}
.pipe a:hover{border-color:var(--gold)}.pipe .has a{border-color:var(--pink)}
.pipe .pn{font-size:1.6rem;font-weight:800;min-width:34px;text-align:center;color:var(--gold)}.pipe .has .pn{color:var(--pink)}.pipe .none{opacity:.7}.pipe .none .pn{color:var(--good)}
.pipe .pt{display:flex;flex-direction:column;flex:1}.pipe small{color:var(--muted);font-size:.8rem}

/* ---- Layout upgrade 2026-11-09: dashboard + song submission ---- */
.side{position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto}
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 14px}.dash-head h1{margin:.1em 0 0}
.dash-top{display:grid;grid-template-columns:minmax(300px,480px) 1fr;gap:16px;align-items:start;margin:0 0 8px}
.dash-top .card{margin:0}.dash-player .player-frame{max-width:none}
.dash-h{font-size:.85rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-family:"Helvetica Neue",Arial,sans-serif;font-weight:700;margin:26px 0 10px;padding-bottom:6px;border-bottom:1px solid #2c2c2c}
.grid.stats{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.grid.stats .card{display:flex;flex-direction:column;align-items:flex-start}.grid.stats .card h2{font-size:.95rem;margin-bottom:.3em}
.grid.stats .card .big{font-size:2.6rem}.grid.stats .card .muted{flex:1;margin:.3em 0 .9em}
.pipeline{border-top-color:var(--pink)}.pipe{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
@media (max-width:1000px){.dash-top{grid-template-columns:1fr}}

.wide-form{max-width:780px}
.wide-form .steps{margin:18px 0 22px}
.subform .sec{margin:0 0 18px;padding:20px}
.subform .sec h2{display:flex;align-items:center;gap:10px;font-size:1.15rem}
.num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--pink);color:#fff;font:700 .9rem "Helvetica Neue",Arial,sans-serif}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.cols .span2{grid-column:1/-1}
.pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:0 0 12px}.pick legend{padding:0 0 6px;float:none;width:100%}
label.opt{display:flex;align-items:center;gap:10px;margin:0;padding:12px;border:1px solid #5a5338;border-radius:8px;background:#0e0e0e;color:var(--white);cursor:pointer;min-height:56px}
label.opt input{margin:0;width:20px;height:20px;accent-color:var(--pink);flex:none}label.opt:has(input:checked){border-color:var(--pink);background:#1d0f17}
.opt span{font-size:.92rem;color:var(--muted)}.opt strong{display:block;color:var(--white)}
label.drop{display:flex;flex-direction:column;gap:2px;padding:14px;border:2px dashed #5a5338;border-radius:10px;background:#0e0e0e;margin:0 0 14px;color:var(--white);cursor:pointer}
label.drop:hover,label.drop:focus-within{border-color:var(--gold)}.drop .dt{font-weight:700}.drop .dt em{font-style:normal;font-weight:400;color:var(--muted);font-size:.8rem}.drop .dh{color:var(--muted);font-size:.82rem}
label.drop input[type=file]{border:0;background:transparent;padding:8px 0 0}
.terms{display:flex;flex-direction:column;gap:2px}.terms label.check{display:flex;align-items:flex-start;gap:6px;margin:0;padding:8px 0;border-bottom:1px solid #2c2c2c;color:var(--white);font-size:.9rem}
.terms label.check input{flex:none;margin-top:2px}.terms .mailopt{border-bottom:0;color:var(--gold)}
.sendbar{padding:6px 0 14px}
.big-btn{width:100%;padding:14px 18px;font-size:1.05rem}
@media (max-width:640px){.cols,.pick{grid-template-columns:1fr}.subform .sec{padding:16px}}
.dash-quick{margin-top:30px}
@media (max-width:640px){.grid.stats{grid-template-columns:1fr 1fr;gap:10px}.grid.stats .card{padding:12px}.grid.stats .card .big{font-size:2rem}.grid.stats .card .btn{font-size:.8rem;padding:6px 10px}.pipe{grid-template-columns:1fr 1fr}.pipe a{flex-wrap:wrap;gap:6px;padding:8px}.pipe .pn{font-size:1.3rem;min-width:26px}}
.details{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 16px;margin:10px 0}.details dt{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.details dd{margin:0;overflow-wrap:anywhere}
