/* dash.css: card dashboard layout + theme on top of noir.css.
   Overrides the dashboard's original inline styles so its scripts keep working. */
body{min-height:100vh;font-family:var(--font)}
body.dash{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100vh}

/* ── Sidebar ── */
.side{position:sticky;top:0;height:100vh;overflow-y:auto;background:rgba(10,10,16,.92);
  border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:4px;z-index:40}
.side .brand{font-family:var(--display);letter-spacing:.42em;font-size:1.15rem;text-align:center;padding:6px 0 2px}
.side .brand-sub{text-align:center;font-size:.62rem;letter-spacing:.24em;color:var(--dim);text-transform:uppercase;margin-bottom:14px}
.side .grp{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);padding:14px 10px 6px}
.side .tab{display:flex!important;align-items:center;gap:10px;padding:8px 10px!important;border-radius:8px;
  border:1px solid transparent!important;color:var(--dim)!important;font-size:.86rem!important;cursor:pointer;
  text-decoration:none!important;line-height:1.2}
.side .tab .ic{width:18px;text-align:center;opacity:.8;flex:none}
.side .tab:hover{color:var(--txt)!important;background:var(--panel2)}
.side .tab.active{color:var(--txt)!important;background:linear-gradient(90deg,rgba(139,108,217,.22),rgba(139,108,217,.04));
  border-color:rgba(139,108,217,.35)!important}
.side .tab .tab-badge{margin-left:auto}
.side .me{margin-top:auto;padding:12px 10px 4px;border-top:1px solid var(--line);font-size:.8rem;display:flex;flex-direction:column;gap:8px}
.side .me .who{display:flex;align-items:center;gap:8px}
.side .me .role{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:99px;
  border:1px solid var(--gold);color:var(--gold-soft)}
.side .me .role.staff{border-color:var(--line2);color:var(--dim)}

/* ── Top bar ── */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:12px 26px;
  background:rgba(8,8,13,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar h1{font-family:var(--display);font-weight:400;font-size:1.15rem;letter-spacing:.08em;margin:0}
.topbar .spacer{flex:1}
.topbar #hdr-stats{font-size:.78rem;color:var(--dim)}
.menu-btn{display:none;background:none;border:1px solid var(--line2);color:var(--txt);border-radius:8px;
  padding:6px 10px;font-size:1rem;cursor:pointer}
main{max-width:1240px!important;padding:24px 26px 60px!important;margin:0 auto}

/* ── Theme overrides for the original components ── */
.tabs{display:none!important}
.stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px!important}
.stat{background:var(--panel)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important}
.stat .num{font-family:var(--display);font-weight:400!important;color:var(--txt)!important}
.stat .lbl{letter-spacing:.14em;color:var(--dim)!important;font-size:.66rem!important}
label{color:var(--dim)!important}
input[type=text],input[type=number],input[type=password],input[type=url],input[type=search],select,textarea{
  background:var(--inset)!important;border-color:var(--line2)!important;color:var(--txt)!important;font-family:var(--font)!important}
input:focus,select:focus,textarea:focus{border-color:var(--violet)!important}
.btn{background:var(--violet);border-radius:var(--radius-sm)!important;font-family:var(--font)}
.btn:hover{background:#9b7ee6}
.btn.sec{background:var(--panel2)!important;border:1px solid var(--line2);color:var(--txt)!important}
.btn.sec:hover{border-color:var(--violet)}
.drop-zone,.batch-drop{border-color:var(--line2)!important;background:var(--panel);border-radius:var(--radius)!important}
.drop-zone.over,.batch-drop.over{border-color:var(--violet)!important}
.add-preview-pane,.release-banner,.bulk-bar,.mgr-kpi{background:var(--panel)!important;border-color:var(--line)!important}
table thead th{color:var(--dim)!important;border-color:var(--line)!important}
td{border-color:var(--line)!important}
tbody tr:hover{background:var(--panel2)!important}
.panel>p:first-child{color:var(--dim)!important}
/* the old "drafts saved" note no longer breaks the button row */
#card-draft-status{flex-basis:100%;font-size:.78rem;color:var(--dim);margin:6px 0 0}

/* ── Live preview pane shows the real frame render ── */
.add-preview-pane{position:sticky;top:76px!important}
.preview-placeholder{font-size:0!important;padding:0!important}
.preview-placeholder::before{content:"";display:block;margin:6px auto;width:72%;aspect-ratio:1315/2000;
  border-radius:12px;border:2px dashed var(--line2);background:repeating-linear-gradient(45deg,transparent 0 10px,rgba(255,255,255,.015) 10px 20px)}
.preview-placeholder::after{content:"Add art and a name to see the card in its frame";display:block;
  font-size:.78rem;color:var(--dim);margin-top:10px}

/* ── Duplicate panel ── */
.dup-warn{background:rgba(212,175,55,.08)!important;border-color:rgba(212,175,55,.45)!important;color:var(--gold-soft)!important;border-radius:10px!important}
.dup-thumbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.dup-thumbs a{width:58px;text-decoration:none;color:var(--dim);font-size:.64rem;line-height:1.2}
.dup-thumbs img{width:58px;aspect-ratio:1162/1692;object-fit:cover;border-radius:6px;border:1px solid var(--line2);display:block;margin-bottom:3px}

/* ── Home + Series panels ── */
.home-hero{display:flex;align-items:center;gap:18px;justify-content:space-between;flex-wrap:wrap;
  padding:20px 22px;border-radius:var(--radius);border:1px solid rgba(212,175,55,.3);
  background:linear-gradient(120deg,rgba(212,175,55,.08),rgba(139,108,217,.08))}
.home-hero .big{font-family:var(--display);font-size:1.5rem}
.home-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-top:16px}
@media(max-width:980px){.home-cols{grid-template-columns:minmax(0,1fr)}}
.list{display:flex;flex-direction:column}
.list .row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line);font-size:.86rem}
.list .row:last-child{border-bottom:0}
.list .row .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list .row img{width:30px;aspect-ratio:1162/1692;object-fit:cover;border-radius:4px}
.tile-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.series-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.series-card{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--radius);border:1px solid var(--line);
  background:var(--panel);cursor:pointer;text-align:left;color:var(--txt);font:inherit}
.series-card:hover{border-color:var(--violet)}
.series-card img{width:46px;aspect-ratio:1162/1692;object-fit:cover;border-radius:6px;background:var(--inset);flex:none}
.series-card .nm{font-weight:600;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.series-card .ct{font-size:.74rem;color:var(--dim);margin-top:3px}
.series-detail .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:14px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.toolbar .n-input{max-width:320px}
.admin-only{}
body.role-staff .admin-only{display:none!important}
.zip-note{font-size:.78rem;color:var(--dim);margin-top:6px}

/* ── Login ── */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}
.login-card{width:min(380px,100%);text-align:center;padding:36px 30px}
.login-card .brand{font-family:var(--display);letter-spacing:.42em;font-size:1.5rem}
.login-card .sub{font-size:.66rem;letter-spacing:.24em;color:var(--dim);text-transform:uppercase;margin:6px 0 26px}
.login-card .n-btn{width:100%;justify-content:center;margin-top:12px;padding:11px}
.login-card .err{color:var(--bad);font-size:.82rem;margin-top:10px;min-height:1em}

/* ── Phone ── */
@media(max-width:860px){
  body.dash{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;left:0;top:0;bottom:0;width:min(280px,84vw);transform:translateX(-102%);
    transition:transform .2s;box-shadow:var(--shadow)}
  body.nav-open .side{transform:none}
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:35}
  .menu-btn{display:inline-block}
  .topbar{padding:10px 16px}
  main{padding:16px 16px 50px!important}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.n-tile .corner .n-badge{background:rgba(8,8,13,.78);backdrop-filter:blur(4px)}
.dup-thumbs a{width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dup-thumbs img{width:72px}
.side .tab{padding:7px 10px!important}
.side .grp{padding:12px 10px 5px}
@media(min-width:701px){
  .search-bar{flex-wrap:nowrap!important;align-items:center}
  .search-bar select{width:auto!important;flex:0 0 auto}
  .search-bar input{flex:1 1 220px}
}
