/* ==========================================================================
   Voidshop - stylesheet. Values are taken 1:1 from the supplied design files
   (Artist Page, Release Page, Checkout, Artist Dashboard). Palette is strictly grayscale:
   #0B0B0B page, #171717 panels, #2A2A2A hairlines, #3A3A3A input borders,
   #F2F2F2 text, #A3A3A3 secondary, #6E6E6E placeholder, #D0D0D0 body copy.
   ========================================================================== */

body{margin:0;background:#0B0B0B}
a{color:#F2F2F2;text-decoration:none}
a:hover{color:#A3A3A3}
*{box-sizing:border-box}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid #F2F2F2;outline-offset:1px}
input::placeholder,textarea::placeholder{color:#6E6E6E}
img{max-width:100%}

.page{min-height:100vh;background:#0B0B0B;color:#F2F2F2;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:15px}

/* ---- top bar (all public pages) -------------------------------------------------------------- */
.topbar{background:#171717;border-bottom:1px solid #2A2A2A}
.topbar-in{max-width:1080px;margin:0 auto;padding:0 24px;height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px}
.topbar-in.narrow{max-width:960px}
.brand{font-weight:700}
.nav{display:flex;gap:24px;align-items:center}
.navlink{color:#A3A3A3}
.cartbtn{border:1px solid #3A3A3A;border-radius:4px;padding:6px 12px}
.cartbtn:hover{background:#222}

.wrap{max-width:1080px;margin:0 auto;padding:24px}
.wrap-pad{max-width:1080px;margin:0 auto;padding:40px 24px;display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}
.wrap-pad.narrow{max-width:960px}

.footer{max-width:1080px;margin:40px auto 0;padding:24px;border-top:1px solid #2A2A2A;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;color:#A3A3A3}
.footer.tight{margin-top:0}
.footer-links{display:flex;gap:20px}
.footer a{color:#A3A3A3}

/* ---- placeholders / images -------------------------------------------------------------------- */
.hatch{background:repeating-linear-gradient(135deg,#171717 0 12px,#1C1C1C 12px 24px)}
.header-img{height:180px;border-radius:4px;overflow:hidden}
.header-img img{width:100%;height:100%;object-fit:cover;display:block}
.thumb{aspect-ratio:1;border-radius:3px;overflow:hidden;display:grid;place-items:center}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}

/* ---- artist page --------------------------------------------------------------------------------- */
.cols{display:flex;flex-wrap:wrap;gap:40px;margin-top:32px;align-items:flex-start}
.col-main{flex:3 1 440px;min-width:0}
.sec{margin-bottom:44px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #2A2A2A;padding-bottom:12px;margin-bottom:20px}
.sec-head h2{margin:0;font-size:18px;font-weight:700}
.sec-head span{font-size:13px;color:#A3A3A3}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:28px 20px}
.card{display:block;color:#F2F2F2}
.card-title{margin-top:10px;font-weight:600;line-height:1.3}
.card-sub{margin-top:4px;font-size:13px;color:#A3A3A3}
.empty{color:#A3A3A3;font-size:14px;margin:0}

.about{flex:1 1 260px;max-width:100%;background:#171717;border-radius:4px;padding:24px;display:flex;flex-direction:column;gap:16px}
.avatar{width:96px;height:96px;border-radius:50%;overflow:hidden;background:repeating-linear-gradient(135deg,#222 0 10px,#292929 10px 20px)}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.about-name{font-size:22px;font-weight:700}
.about-loc{margin-top:4px;font-size:13px;color:#A3A3A3}
.about p{margin:0;line-height:1.55;color:#D0D0D0;white-space:pre-line}
.about-links{border-top:1px solid #2A2A2A;padding-top:16px;display:flex;flex-direction:column;gap:10px}
.about-links a{font-size:14px;display:flex;align-items:center;gap:10px}
.picon{flex:none;display:block}

/* ---- release page --------------------------------------------------------------------------------- */
.rel-main{flex:3 1 440px;min-width:0;order:1}
.rel-side{flex:1 1 280px;max-width:100%;display:flex;flex-direction:column;gap:20px;order:2}
.rel-title{margin:0;font-size:36px;line-height:1.1;font-weight:700;letter-spacing:-.01em}
.rel-by{margin-top:8px;color:#A3A3A3}
.rel-by a{color:#F2F2F2;text-decoration:underline}
.player{margin-top:28px;display:flex;align-items:center;gap:16px;background:#171717;border-radius:4px;padding:14px 16px}
.player-btn{cursor:pointer;flex:none;width:44px;height:44px;border-radius:50%;border:0;background:#F2F2F2;color:#0B0B0B;font:700 12px 'Helvetica Neue',Arial,sans-serif}
.player-mid{flex:1;min-width:0}
.player-line{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.player-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-time{color:#A3A3A3;font-variant-numeric:tabular-nums}
.bar{height:4px;background:#2E2E2E;border-radius:2px;margin-top:10px;cursor:pointer;position:relative}
.bar::before{content:'';position:absolute;left:0;right:0;top:-8px;bottom:-8px}
.bar-fill{height:100%;background:#F2F2F2;border-radius:2px;width:0}
.tracks{margin-top:8px}
.trow{display:flex;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid #2A2A2A;color:#C8C8C8}
.trow.on{color:#F2F2F2}
.trow-btn{cursor:pointer;flex:none;width:28px;height:28px;border-radius:50%;border:1px solid #4A4A4A;background:transparent;color:#F2F2F2;font-size:10px}
.trow-title{flex:1;min-width:0}
.trow-dur{color:#A3A3A3;font-size:13px;font-variant-numeric:tabular-nums}
.rel-notes{margin-top:32px;max-width:560px;line-height:1.6;color:#D0D0D0}
.rel-notes p{margin:0 0 16px;white-space:pre-line}
.rel-notes .meta{margin:0;font-size:13px;color:#A3A3A3;white-space:pre-line}
.cover{aspect-ratio:1;border-radius:3px;overflow:hidden}
.cover img{width:100%;height:100%;object-fit:cover;display:block}
.buybox{background:#171717;border-radius:4px;padding:20px;display:flex;flex-direction:column;gap:16px}
.buy-head{display:flex;justify-content:space-between;align-items:baseline}
.buy-head b{font-weight:700}
.buy-price{font-size:24px;font-weight:700}
.lbl{display:block;font-size:13px;color:#A3A3A3;margin-bottom:8px}
.fmt-row{display:flex;gap:8px}
.fmt{flex:1;border-radius:4px;border:1px solid #F2F2F2;padding:10px 0;font:600 13px 'Helvetica Neue',Arial,sans-serif;background:#F2F2F2;color:#0B0B0B;text-align:center}
.fmt.off{background:transparent;color:#F2F2F2;border-color:#3A3A3A}
.price-in{display:flex;align-items:center;border:1px solid #3A3A3A;border-radius:4px;background:#0B0B0B;padding-left:12px}
.price-in span{color:#A3A3A3}
.price-in input{flex:1;min-width:0;background:transparent;border:0;color:#F2F2F2;padding:11px 12px 11px 6px;font:15px 'Helvetica Neue',Arial,sans-serif}
.price-in input:focus{outline:2px solid #F2F2F2;outline-offset:1px}
.fine{font-size:12px;line-height:1.5;color:#A3A3A3}
.btn{display:block;width:100%;text-align:center;background:#F2F2F2;color:#0B0B0B;border:0;border-radius:4px;padding:14px;font:700 15px 'Helvetica Neue',Helvetica,Arial,sans-serif;cursor:pointer}
.btn:hover{background:#D8D8D8;color:#0B0B0B}
.btn[disabled],.btn.disabled{background:#2A2A2A;color:#6E6E6E;cursor:not-allowed}
.btn.big{padding:15px}
.btn.sm{display:inline-block;width:auto;padding:11px 18px}
.btn.xs{display:inline-block;width:auto;padding:7px 12px;font-size:13px}
.btn.ghost{background:transparent;color:#F2F2F2;border:1px solid #3A3A3A}
.btn.ghost:hover{background:#222;color:#F2F2F2}
.banner{background:#171717;border:1px solid #3A3A3A;border-radius:4px;padding:12px 14px;font-size:13px;line-height:1.5;color:#D0D0D0}
.banner b{color:#F2F2F2}
.banner.solid{background:#F2F2F2;color:#0B0B0B;border-color:#F2F2F2}
.banner.solid b{color:#0B0B0B}

/* ---- checkout / success / download / forms ----------------------------------------------------------- */
.co-main{flex:3 1 440px;min-width:0;display:flex;flex-direction:column;gap:32px}
.co-main h1,.h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em}
.field{display:flex;flex-direction:column;gap:12px}
.field>b{font-weight:700}
.input{width:100%;background:#171717;border:1px solid #3A3A3A;border-radius:4px;color:#F2F2F2;padding:13px 14px;font:15px 'Helvetica Neue',Arial,sans-serif}
select.input{appearance:auto}
textarea.input{resize:vertical;min-height:90px;line-height:1.5}
.hint{font-size:13px;color:#A3A3A3}
.paybox{background:#171717;border:1px solid #3A3A3A;border-radius:4px;padding:13px 14px;font-size:14px;line-height:1.5;color:#D0D0D0}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#D0D0D0;line-height:1.4}
.check input{margin-top:3px;accent-color:#F2F2F2}
.terms{font-size:12px;line-height:1.5;color:#A3A3A3}
.terms a{text-decoration:underline}
.summary{flex:1 1 260px;max-width:100%;background:#171717;border-radius:4px;padding:20px;display:flex;flex-direction:column;gap:16px}
.sum-item{display:flex;gap:14px;align-items:center}
.sum-thumb{flex:none;width:64px;height:64px;border-radius:3px;overflow:hidden;background:repeating-linear-gradient(135deg,#222 0 8px,#292929 8px 16px)}
.sum-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.sum-name{font-weight:600;line-height:1.3}
.sum-sub{margin-top:4px;font-size:13px;color:#A3A3A3}
.sum-rows{border-top:1px solid #2A2A2A;padding-top:14px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.sum-rows div,.sum-total{display:flex;justify-content:space-between;gap:12px}
.sum-rows div span:first-child{color:#A3A3A3}
.sum-total{border-top:1px solid #2A2A2A;padding-top:14px;font-weight:700;font-size:18px}
.panel-lite{background:#171717;border-radius:4px;padding:20px;display:flex;flex-direction:column;gap:16px}
.dl-card{display:flex;gap:14px;align-items:center;background:#0B0B0B;border-radius:4px;padding:16px}
.flash{background:#171717;border:1px solid #3A3A3A;border-left:3px solid #F2F2F2;border-radius:4px;padding:12px 14px;font-size:14px;line-height:1.5}
.flash.err b:first-child{margin-right:4px}
.flash-stack{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.prose{max-width:720px;line-height:1.65;color:#D0D0D0}
.prose h1{font-size:28px;color:#F2F2F2;letter-spacing:-.01em;margin:0 0 8px}
.prose h2{font-size:18px;color:#F2F2F2;margin:32px 0 8px}
.prose a{text-decoration:underline}
.prose ul{padding-left:20px}
.prose .muted{color:#A3A3A3;font-size:13px}
.prose table{border-collapse:collapse;width:100%;font-size:14px;margin:12px 0}
.prose th,.prose td{border:1px solid #2A2A2A;padding:8px 10px;text-align:left;vertical-align:top}
.prose th{color:#F2F2F2;background:#171717}
.auth-box{width:100%;max-width:420px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.sr{position:absolute;left:-9999px}

/* ==========================================================================
   Artist dashboard (from Artist Dashboard.dc.html)
   ========================================================================== */
.dash{min-height:100vh;background:#0B0B0B;color:#F2F2F2;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;display:flex;flex-wrap:wrap}
.dash-side{flex:0 0 220px;background:#171717;border-right:1px solid #2A2A2A;padding:20px 12px;display:flex;flex-direction:column;gap:24px;min-height:100vh}
.dash-brand{padding:0 12px}
.dash-brand b{display:block;font-weight:700;font-size:16px}
.dash-brand a{font-size:12px;color:#A3A3A3}
.dash-nav{display:flex;flex-direction:column;gap:2px}
.dash-nav a{padding:9px 12px;border-radius:4px;background:transparent;color:#A3A3A3}
.dash-nav a:hover{background:#222;color:#A3A3A3}
.dash-nav a.on{background:#262626;color:#F2F2F2}
.dash-foot{margin-top:auto;padding:0 12px;font-size:12px;color:#A3A3A3;word-break:break-all}
.dash-foot a{color:#A3A3A3;text-decoration:underline}
.dash-foot form{display:inline}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:#A3A3A3;text-decoration:underline;cursor:pointer}
.linkbtn:hover{color:#F2F2F2}
.dash-main{flex:1 1 560px;min-width:0;padding:32px;display:flex;flex-direction:column;gap:32px;max-width:1000px}
.dash-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.dash-head h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em}
.dash .btn.sm{font-size:14px}
.stats{display:flex;flex-wrap:wrap;gap:16px}
.stat{flex:1 1 200px;background:#171717;border-radius:4px;padding:20px}
.stat-l{font-size:13px;color:#A3A3A3}
.stat-v{margin-top:8px;font-size:32px;font-weight:700;letter-spacing:-.02em}
.stat-n{margin-top:4px;font-size:12px;color:#A3A3A3}
.blk-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.blk-head h2,.dash h2.t{margin:0;font-size:16px}
.blk-head a{font-size:13px;color:#A3A3A3}
.list{background:#171717;border-radius:4px;overflow:hidden}
.lrow{display:flex;align-items:center;gap:16px;padding:12px 16px;border-top:1px solid #2A2A2A}
.lrow:first-child{border-top:0}
.lthumb{flex:none;width:44px;height:44px;border-radius:3px;overflow:hidden;background:repeating-linear-gradient(135deg,#222 0 8px,#2A2A2A 8px 16px)}
.lthumb img{width:100%;height:100%;object-fit:cover;display:block}
.lmid{flex:1;min-width:0}
.lname{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lsub{font-size:12px;color:#A3A3A3;margin-top:2px}
.tag{font-size:12px;border:1px solid #3A3A3A;color:#A3A3A3;border-radius:3px;padding:3px 8px;white-space:nowrap}
.tag.live{border-color:#4A4A4A;color:#F2F2F2}
.lsold{width:72px;text-align:right;color:#A3A3A3;font-variant-numeric:tabular-nums}
.lmuted{color:#A3A3A3;font-size:13px;white-space:nowrap}
.lamt{width:72px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.lact{color:#A3A3A3;text-decoration:underline}
.lact:hover{color:#F2F2F2}
.lrow-empty{padding:20px 16px;color:#A3A3A3}
.rowform{display:inline}

/* dashboard forms */
.dash .panel{background:#171717;border-radius:4px;padding:20px;display:flex;flex-direction:column;gap:16px}
.dash .panel h2{margin:0;font-size:16px}
.dash .input{background:#0B0B0B;padding:10px 12px;font-size:14px}
.dash .field{gap:6px}
.dash .field>b{font-weight:600;font-size:13px;color:#A3A3A3}
.dash .hint{font-size:12px}
.dash .grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dash .grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.dash .formrow{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.dash .radio{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid #3A3A3A;border-radius:4px;cursor:pointer;background:#0B0B0B}
.dash .radio input{appearance:none;-webkit-appearance:none;flex:none;width:14px;height:14px;margin:3px 0 0;border:2px solid #3A3A3A;border-radius:50%;background:transparent}
.dash .radio input:checked{border-color:#F2F2F2;background:#F2F2F2}
.dash .radio.on{border-color:#F2F2F2}
.dash .radio b{font-weight:600}
.dash .radios.row{flex-direction:row;flex-wrap:wrap}
.dash .radios.row .radio{flex:1 1 150px}
.dash .radio small{display:block;color:#A3A3A3;font-size:12px;margin-top:2px}
.dash .radios{display:flex;flex-direction:column;gap:8px}
.dash .feetable{width:100%;border-collapse:collapse;font-size:13px}
.dash .feetable th{font-weight:600;color:#A3A3A3;text-align:right;padding:6px 8px;border-bottom:1px solid #2A2A2A}
.dash .feetable th:first-child,.dash .feetable td:first-child{text-align:left}
.dash .feetable td{text-align:right;padding:7px 8px;border-bottom:1px solid #222;font-variant-numeric:tabular-nums}
.dash .feetable tr.net td{font-weight:700;color:#F2F2F2}
.dash .feetable td.est{color:#A3A3A3}
.dash .tl{display:flex;flex-direction:column;gap:8px}
.dash .trk{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#0B0B0B;border:1px solid #2A2A2A;border-radius:4px}
.dash .trk.drag{opacity:.5}
.dash .trk .grip{cursor:grab;color:#6E6E6E;user-select:none;padding:0 4px}
.dash .trk .num{width:22px;color:#A3A3A3;font-variant-numeric:tabular-nums}
.dash .trk .ttl{flex:1;min-width:0}
.dash .trk .ttl .input{padding:7px 10px}
.dash .trk .meta{font-size:12px;color:#A3A3A3;white-space:nowrap}
.dash .trk .acts{display:flex;gap:6px;flex-wrap:wrap}
.dash .trk audio{height:32px;max-width:220px}
.dash .artwork-box{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.dash .artwork-box .lthumb{width:96px;height:96px}
.dash .note{font-size:13px;line-height:1.5;color:#A3A3A3}
.dash .note b{color:#F2F2F2}
.dash .code{font:13px ui-monospace,Menlo,monospace;background:#0B0B0B;border:1px solid #2A2A2A;border-radius:4px;padding:10px 12px;word-break:break-all;color:#F2F2F2}
.dash .sep{border:0;border-top:1px solid #2A2A2A;margin:4px 0}
.dash .tabs{display:flex;gap:6px;flex-wrap:wrap}
.dash .tabs a{padding:7px 12px;border:1px solid #3A3A3A;border-radius:4px;color:#A3A3A3}
.dash .tabs a.on{background:#F2F2F2;color:#0B0B0B;border-color:#F2F2F2}
.dash .tbl{width:100%;border-collapse:collapse;font-size:13px}
.dash .tbl th{text-align:left;color:#A3A3A3;font-weight:600;padding:10px 16px;border-bottom:1px solid #2A2A2A;white-space:nowrap}
.dash .tbl td{padding:10px 16px;border-top:1px solid #2A2A2A;vertical-align:top}
.dash .tbl tr:first-child td{border-top:0}
.dash .tbl .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.dash .scroll{overflow-x:auto}
.dash .upload-state{display:none;font-size:13px;color:#A3A3A3}
.dash .upload-state.on{display:block}
.dash details summary{cursor:pointer;color:#A3A3A3}
.dash .var-row{display:grid;grid-template-columns:1fr 110px auto;gap:10px;align-items:center}
.dash .img-strip{display:flex;gap:10px;flex-wrap:wrap}
.dash .img-strip .it{width:96px}
.dash .img-strip .it .lthumb{width:96px;height:96px}

[hidden]{display:none!important}

/* ---- scheduled release: countdown page ---- */
.soon-tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid #4A4A4A;border-radius:3px;padding:4px 8px;color:#F2F2F2;margin-bottom:16px}
.cd{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.cd-u{flex:1 1 80px;max-width:130px;background:#171717;border-radius:4px;padding:18px 8px;text-align:center}
.cd-u b{display:block;font-size:40px;line-height:1;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cd-u span{display:block;margin-top:8px;font-size:12px;color:#A3A3A3}
.cd-when{margin:24px 0 0;font-size:16px}
.cd-note{margin:8px 0 0;font-size:13px;color:#A3A3A3}

.dash .collab-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.dash .collab-row .input{flex:1 1 180px;width:auto}
.dash .wiz .collab-row .input{padding:10px 12px;font-size:14px}

/* ---- file drop zones + upload progress (from New Track.dc.html) ---------------------------------------- */
.dash .drop{width:100%;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.dash .drop-zone{width:100%;display:flex;gap:16px;align-items:center;cursor:pointer;background:#171717;border:1px dashed #4A4A4A;border-radius:4px;padding:16px;position:relative}
.dash .drop-zone:hover,.dash .drop-zone.over,.dash .drop-zone:focus-within{border-color:#F2F2F2}
.dash .drop-zone.center{justify-content:center;text-align:center;padding:24px}
.dash .drop-zone.col{flex-direction:column;align-items:stretch;gap:10px;padding:24px}
.dash .drop-zone.wide{flex-direction:column;align-items:stretch}
.dash .panel .drop-zone{background:#0B0B0B}
.js .dash .drop-zone input[type=file],.js .dash .filebtn input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.js .dash .drop-submit{display:none}
.dash .drop-body{color:#A3A3A3;line-height:1.6;min-width:0}
.dash .drop-body b{color:#F2F2F2;font-weight:600}
.dash .drop-sub{font-size:12px;color:#A3A3A3}
.dash .drop-thumb{flex:none;width:96px;height:96px;border-radius:3px;overflow:hidden;background:repeating-linear-gradient(135deg,#222 0 10px,#2A2A2A 10px 20px);display:grid;place-items:center;font:10px ui-monospace,Menlo,monospace;color:#6E6E6E}
.dash .drop-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.dash .drop-thumb.round{border-radius:50%}
.dash .drop-thumb.banner{width:100%;height:auto;aspect-ratio:6/1}
.dash .drop-queue{display:flex;flex-direction:column;gap:8px}
.dash .drop-queue:empty{display:none}
.dash .art-row{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.dash .filebtn{position:relative;cursor:pointer}
.dash .up{background:#171717;border:1px solid #2A2A2A;border-radius:4px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.dash .panel .up{background:#0B0B0B}
.dash .up-line{display:flex;justify-content:space-between;gap:12px;align-items:center}
.dash .up-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;min-width:0;color:#F2F2F2}
.dash .up-st{color:#A3A3A3;white-space:nowrap;font-size:13px;font-variant-numeric:tabular-nums}
.dash .up.err{border-color:#6E6E6E}
.dash .up.err .up-st{color:#F2F2F2;font-weight:600}
.dash .up-msg{font-size:13px;line-height:1.5;color:#D0D0D0}
.dash .prog{display:block;height:4px;background:#2E2E2E;border-radius:2px;overflow:hidden}
.dash .prog i{display:block;height:100%;width:0;background:#F2F2F2;border-radius:2px;transition:width .15s linear}
.dash .prog.busy i{width:30%;transition:none;animation:prog-busy 1.1s ease-in-out infinite}
@keyframes prog-busy{0%{transform:translateX(-100%)}100%{transform:translateX(340%)}}
@media (prefers-reduced-motion:reduce){.dash .prog.busy i{animation:none;width:100%;opacity:.5}}
.dash [data-live=flashes]{display:contents}

/* ---- release editor: steps + preview (from New Track.dc.html) -------------------------------------------- */
.dash .wiz{display:flex;flex-direction:column;gap:32px}
.dash .wiz-steps{display:none;gap:8px;flex-wrap:wrap}
.js .dash .wiz-steps{display:flex}
.dash .wiz-steps button{flex:1 1 140px;display:flex;align-items:center;gap:10px;padding:0 0 12px;border:0;border-bottom:2px solid #2A2A2A;background:none;color:#A3A3A3;font:14px 'Helvetica Neue',Helvetica,Arial,sans-serif;text-align:left;cursor:pointer}
.dash .wiz-steps button[disabled]{cursor:not-allowed}
.dash .wiz-steps .dot{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:1px solid #4A4A4A;color:#A3A3A3}
.dash .wiz-steps .on,.dash .wiz-steps .done{border-bottom-color:#F2F2F2}
.dash .wiz-steps .on{color:#F2F2F2;font-weight:700}
.dash .wiz-steps .on .dot{border-color:#F2F2F2;color:#F2F2F2}
.dash .wiz-steps .done .dot{background:#F2F2F2;border-color:#F2F2F2;color:#0B0B0B}
.dash .wiz-cols{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
.dash .wiz-main{flex:3 1 440px;min-width:0;display:flex;flex-direction:column;gap:24px}
.dash .wiz-step{display:flex;flex-direction:column;gap:20px}
.dash .wiz-step+.wiz-step,.dash #release-form .wiz-step{padding-top:24px;border-top:1px solid #2A2A2A;margin-top:24px}
.js .dash .wiz-step{display:none;padding-top:0;border-top:0;margin-top:0}
.js .dash .wiz-step.on{display:flex}
.dash .wiz-head h2{margin:0;font-size:22px}
.dash .wiz-head p{margin:6px 0 0;color:#A3A3A3}
.dash .wiz .field>b{font-size:14px;color:#F2F2F2}
.dash .wiz .opt{color:#A3A3A3;font-weight:400}
.dash .wiz .input{background:#171717;padding:12px 14px;font-size:15px}
.dash .wiz .radio{background:#171717;padding:14px 16px}
.dash .wiz .trk{background:#171717}
.dash .wiz .trk .ttl .input{padding:7px 10px;font-size:14px;background:#0B0B0B}
.dash .wiz audio{max-width:100%;height:36px}
.dash .wiz-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:20px;border-top:1px solid #2A2A2A}
.dash .wiz-nav .hint{flex:1;text-align:right}
.dash .wiz-nav .js-only{display:none}
.js .dash .wiz-nav .js-only{display:inline-block}
.js .dash .wiz-nav .hint.js-only{display:block}
.dash .wiz-nav .btn.disabled{background:#F2F2F2;color:#0B0B0B;opacity:.4;cursor:not-allowed}
.dash .wiz-prev{flex:1 1 240px;max-width:100%;background:#171717;border-radius:4px;padding:16px;display:flex;flex-direction:column;gap:12px;position:sticky;top:24px}
.dash .pv-lbl{font-size:12px;color:#A3A3A3}
.dash .pv-cover{aspect-ratio:1;border-radius:3px;overflow:hidden;background:repeating-linear-gradient(135deg,#222 0 12px,#2A2A2A 12px 24px);display:grid;place-items:center;font:11px ui-monospace,Menlo,monospace;color:#6E6E6E}
.dash .pv-cover img{width:100%;height:100%;object-fit:cover;display:block}
.dash .pv-title{font-weight:600;overflow-wrap:anywhere}
.dash .pv-sub{margin-top:3px;color:#A3A3A3;font-size:13px}
.dash .pv-foot{font-size:12px;color:#A3A3A3;border-top:1px solid #2A2A2A;padding-top:12px}
.dash .done{max-width:560px;display:flex;flex-direction:column;gap:16px;padding:32px 0}
.dash .done h1{margin:0;font-size:32px;letter-spacing:-.01em}
.dash .done p{margin:0;color:#C8C8C8;line-height:1.6}

@media (max-width:760px){
  .dash .wiz-prev{position:static}
  .dash-side{flex:1 1 100%;min-height:0}
  .dash-main{padding:20px 16px}
  .dash .grid2,.dash .grid3{grid-template-columns:1fr}
  .dash .var-row{grid-template-columns:1fr 90px auto}
  .dash .trk{flex-wrap:wrap}
  .rel-title{font-size:30px}
}

/* merch option buttons (same look as the design's Format buttons) */
.vopt{flex:1 0 64px;display:block}
.vopt .fmt{display:block;cursor:pointer}
.vopt input:checked + .fmt{background:#F2F2F2;color:#0B0B0B;border-color:#F2F2F2}
.vopt input:focus-visible + .fmt{outline:2px solid #F2F2F2;outline-offset:2px}
.vopt.out .fmt{color:#6E6E6E;text-decoration:line-through;cursor:not-allowed}
