/* My Book Hub — shared dark theme override for app pages */
:root{
  --navy:#0a1940;--purple:#341a4c;
  --gold:#c9a84c;--gold-lt:#e8c97a;
  --white:#f0eef8;--muted:rgba(240,238,248,0.55);
  --glass:rgba(255,255,255,0.07);--glass-b:rgba(255,255,255,0.13);
}
html,body{
  background:linear-gradient(160deg,var(--navy) 0%,var(--purple) 100%) !important;
  background-attachment:fixed !important;
  color:var(--white) !important;
}
/* Header / nav */
.header,nav,.nav-bar{
  background:rgba(10,25,64,0.9) !important;
  backdrop-filter:blur(16px) !important;
  border-color:var(--glass-b) !important;
  box-shadow:none !important;
}
/* Logo */
.logo,.logo-text,.logo h1,.logo a{color:var(--white) !important;}
.logo-text em,.logo-mark{color:var(--gold) !important;}
.logo-mark{background:var(--gold) !important;}
.welcome,.welcome-text,.badge-role{color:var(--muted) !important;border-color:var(--glass-b) !important;}
/* Cards / panels / queue */
.card,.stats-bar,.stat-item,.az-bar,.queue,.mobile-nav,
.review-pane,.cr-history-row,.book-detail-panel,
.section-card,.info-card,.panel{
  background:var(--glass) !important;
  border-color:var(--glass-b) !important;
}
.queue{background:rgba(10,25,64,0.5) !important;}
/* Book items / rows */
.book-item,.book-row,.book-card,.table-row,tr{
  background:var(--glass) !important;
  border-color:var(--glass-b) !important;
  color:var(--white) !important;
}
.book-item:hover,.book-item.active,.book-row:hover{
  border-color:var(--gold) !important;
  background:rgba(201,168,76,0.08) !important;
}
/* Headings / text */
h1,h2,h3,h4,.page-title,.card-title,.letter-heading,
.section-title,.queue-header h2,.review-header h2{
  color:var(--white) !important;
}
/* Body text — full white for readability */
p,li{color:var(--white) !important;}
/* Subtitles / metadata — muted */
.page-sub,.stat-label,.subtitle,.sub-text,.card-sub,
.queue-header,.review-header .meta,.az-count,.lh-sub,
.book-item p,.item-meta,.badge,.welcome,.updated{
  color:var(--muted) !important;
}
.stat-num{color:var(--white) !important;}
/* All links get gold */
a{color:var(--gold) !important;}
a:hover{color:var(--gold-lt) !important;}
/* Inputs */
input,select,textarea,.search-box,.filter-sel{
  background:rgba(255,255,255,0.06) !important;
  border-color:var(--glass-b) !important;
  color:var(--white) !important;
}
input::placeholder,textarea::placeholder{color:var(--muted) !important;}
input:focus,select:focus,textarea:focus,.search-box:focus{
  border-color:var(--gold) !important;
  background:rgba(255,255,255,0.1) !important;
}
select option{background:#1a1040 !important;color:var(--white) !important;}
/* Buttons — neutral */
.hbtn,.nbtn,.sort-btn,.az-btn,.reset-btn,.btn-ghost,
.btn-outline,.mob-nav-btn.secondary,.filter-btn,.back,.abtn.preview{
  background:var(--glass) !important;
  border-color:var(--glass-b) !important;
  color:var(--muted) !important;
}
.hbtn:hover,.nbtn:hover,.sort-btn:hover,.reset-btn:hover,
.btn-ghost:hover,.btn-outline:hover,.mob-nav-btn.secondary:hover{
  background:rgba(255,255,255,0.12) !important;
  color:var(--white) !important;
  border-color:var(--gold-lt) !important;
}
/* Buttons — primary/active */
.hbtn.primary,.btn.primary,.sort-btn.active,.az-btn.selected,
.mob-nav-btn.primary{
  background:var(--gold) !important;
  color:#1a1000 !important;
  border-color:var(--gold) !important;
}
.az-btn.has-books{
  background:rgba(201,168,76,0.1) !important;
  border-color:rgba(201,168,76,0.3) !important;
  color:var(--gold-lt) !important;
}
/* Danger */
.btn-remove,.mob-nav-btn.danger,.abtn.reject{
  background:rgba(255,80,60,0.12) !important;
  border-color:rgba(255,80,60,0.4) !important;
  color:#ff8070 !important;
}
.abtn.changes{
  background:rgba(255,200,0,0.1) !important;
  border-color:rgba(255,200,0,0.4) !important;
  color:#ffd740 !important;
}
/* Dividers / lines */
.lh-line{background:var(--glass-b) !important;}
.step.active{background:rgba(201,168,76,0.12) !important;border-color:var(--gold) !important;color:var(--gold-lt) !important;}
.step.done{background:rgba(100,200,100,0.1) !important;color:#7ae07a !important;}
.step{background:var(--glass) !important;color:var(--muted) !important;}
/* Suggestion chips */
.sugg-chip,.idea-chip{
  background:rgba(201,168,76,0.08) !important;
  border-color:rgba(201,168,76,0.25) !important;
  color:var(--gold-lt) !important;
}
.sugg-chip:hover,.idea-chip:hover{
  background:rgba(201,168,76,0.18) !important;
  border-color:var(--gold) !important;
}
.idea-chip.active{background:rgba(201,168,76,0.25) !important;color:var(--gold) !important;}
/* Error/info banners */
.error{background:rgba(200,50,50,0.15) !important;border-color:rgba(200,50,50,0.4) !important;color:#ff8070 !important;}
.info{background:rgba(50,200,100,0.12) !important;border-color:rgba(50,200,100,0.4) !important;color:#7ae07a !important;}
/* QR / secret box */
.secret-box{background:rgba(201,168,76,0.12) !important;color:var(--gold) !important;}
.qr-wrap img{border-color:var(--gold) !important;}
/* Terms page */
.highlight{background:rgba(201,168,76,0.1) !important;border-color:var(--gold) !important;}
.warning{background:rgba(255,150,0,0.1) !important;border-color:#e07b00 !important;}
.updated{color:var(--muted) !important;}
/* AI panel */
.ai-panel-header{background:rgba(201,168,76,0.08) !important;border-color:rgba(201,168,76,0.25) !important;}
.ai-panel-header p{color:var(--gold-lt) !important;}
/* Status badges */
.submitted{background:rgba(100,200,100,0.15) !important;color:#7ae07a !important;}
.changes_requested{background:rgba(255,200,0,0.1) !important;color:#ffd740 !important;}
/* Table headers */
th,thead td{color:var(--muted) !important;border-color:var(--glass-b) !important;}
td{border-color:var(--glass-b) !important;color:var(--white) !important;}
/* Footer */
footer{background:rgba(10,25,64,0.6) !important;border-color:var(--glass-b) !important;}
footer p,footer span{color:var(--muted) !important;}
footer a{color:var(--gold) !important;}
.sub-text{color:var(--muted) !important;}
/* Tagline box */
.tagline-box{background:rgba(201,168,76,0.1) !important;border-color:rgba(201,168,76,0.3) !important;color:var(--gold-lt) !important;}
/* Login card */
.card{background:rgba(10,25,64,0.7) !important;border-color:var(--glass-b) !important;backdrop-filter:blur(20px) !important;}
/* ── Publisher dashboard ──────────────────────────────── */
/* Role badge pill (Publisher/Creator header badge) */
.badge{background:rgba(201,168,76,0.12) !important;border-color:rgba(201,168,76,0.35) !important;color:var(--gold) !important;}
/* Info grid cells, stat tiles, comment cards */
.info-cell,.stat-tile,.stat-card{background:var(--glass) !important;border-color:var(--glass-b) !important;}
.info-cell label,.stat-tile .lbl,.stat-card .lbl{color:var(--muted) !important;}
.info-cell p,.stat-tile .val,.stat-card .num{color:var(--white) !important;}
.comment-card{background:var(--glass) !important;border-color:var(--glass-b) !important;color:var(--white) !important;}
/* Modals */
.modal,.modal-overlay .modal{background:rgba(10,20,50,0.97) !important;border-color:var(--glass-b) !important;backdrop-filter:blur(20px) !important;box-shadow:0 20px 60px rgba(0,0,0,.6) !important;}
.modal h2{color:var(--gold) !important;}
.modal .sub,.modal p{color:var(--white) !important;}
.modal .divider,.modal hr{border-color:var(--glass-b) !important;}
/* Mobile bars */
.mobile-back,.mobile-pub-bar{background:rgba(10,25,64,0.95) !important;border-color:var(--glass-b) !important;color:var(--white) !important;}
.mobile-back{color:var(--gold) !important;}
/* Copyright clearance badges */
.cr-clear{background:rgba(30,180,80,0.15) !important;color:#7ae07a !important;}
.cr-warnings{background:rgba(255,200,0,0.1) !important;color:#ffd740 !important;}
.cr-issues{background:rgba(200,50,50,0.12) !important;color:#ff8070 !important;}
.cr-none{background:var(--glass) !important;color:var(--muted) !important;}

/* ── Admin users page ─────────────────────────────────── */
.table-wrap{background:var(--glass) !important;border-color:var(--glass-b) !important;}
th,thead tr{background:rgba(10,20,50,0.7) !important;}
tr:hover td{background:rgba(255,255,255,0.04) !important;}
.section-note{background:rgba(201,168,76,0.07) !important;border-color:rgba(201,168,76,0.22) !important;color:var(--gold-lt) !important;}
.section-note strong{color:var(--gold) !important;}
/* Session cards */
.session-card{background:var(--glass) !important;border-color:var(--glass-b) !important;}
.session-name{color:var(--white) !important;}
.session-email,.session-geo,.session-time,.session-ip{color:var(--muted) !important;}
.session-ip{background:rgba(255,255,255,0.06) !important;}
.session-avatar{background:rgba(201,168,76,0.15) !important;color:var(--gold) !important;}
.session-role-badge{background:rgba(201,168,76,0.12) !important;color:var(--gold-lt) !important;}
/* Audit rows */
.audit-row{border-color:var(--glass-b) !important;}
.audit-email{color:var(--white) !important;}
.audit-ip,.audit-time{color:var(--muted) !important;}
.audit-reason{background:rgba(255,150,50,0.15) !important;border:none !important;color:#ffa060 !important;}
/* Role/MFA/status badges */
.role-admin,.role-author{background:rgba(201,168,76,0.12) !important;border-color:rgba(201,168,76,0.3) !important;color:var(--gold) !important;}
.mfa-on{background:rgba(30,180,80,0.15) !important;border-color:rgba(30,180,80,0.3) !important;color:#7ae07a !important;}
.mfa-off{background:rgba(200,80,80,0.12) !important;border-color:rgba(200,80,80,0.3) !important;color:#ff8080 !important;}
.mfa-exempt{background:rgba(100,150,255,0.1) !important;border-color:rgba(100,150,255,0.25) !important;color:#90b0ff !important;}
.mfa-badge{border:1px solid transparent;}
.locked-badge{background:rgba(255,150,0,0.12) !important;border-color:rgba(255,150,0,0.3) !important;color:#ffa040 !important;}
.invite-chip{background:rgba(100,180,255,0.1) !important;border-color:rgba(100,180,255,0.25) !important;color:#80c0ff !important;}
.view-all-badge{background:rgba(150,100,255,0.1) !important;border-color:rgba(150,100,255,0.25) !important;color:#b090ff !important;}
.age-limit-badge{background:rgba(255,150,0,0.12) !important;border-color:rgba(255,150,0,0.3) !important;color:#ffa040 !important;}
/* User table */
.u-name{color:var(--white) !important;}
.u-email{color:var(--muted) !important;}
.u-username{color:var(--gold-lt) !important;}
/* Action buttons */
.act-btn{background:var(--glass) !important;border-color:var(--glass-b) !important;color:var(--muted) !important;}
.act-btn:hover{background:rgba(255,255,255,0.12) !important;color:var(--white) !important;}
.act-btn.primary{background:rgba(201,168,76,0.12) !important;border-color:rgba(201,168,76,0.35) !important;color:var(--gold) !important;}
.act-btn.danger{background:rgba(200,50,50,0.1) !important;border-color:rgba(200,50,50,0.3) !important;color:#ff8070 !important;}
.act-btn.green{background:rgba(30,160,80,0.1) !important;border-color:rgba(30,160,80,0.3) !important;color:#7ae07a !important;}
/* User pill / breadcrumb */
.user-pill{background:var(--glass) !important;border-color:var(--glass-b) !important;}
.user-pill-name{color:var(--gold) !important;}
.user-pill-role{color:var(--muted) !important;}
.logged-as{color:var(--muted) !important;border-color:var(--glass-b) !important;}
.logged-as strong{color:var(--white) !important;}
.breadcrumb{color:var(--muted) !important;}
/* MFA promo box */
.mfa-step-box{background:rgba(201,168,76,0.07) !important;border-color:rgba(201,168,76,0.25) !important;}
.mfa-code-box{background:var(--glass) !important;border-color:var(--glass-b) !important;color:var(--white) !important;}
/* Avatar initials circle */
.avatar-ini{background:rgba(201,168,76,0.12) !important;border-color:rgba(201,168,76,0.3) !important;color:var(--gold) !important;}
.avatar-ini:hover{background:rgba(201,168,76,0.2) !important;}
/* Page head */
.page-head h1{color:var(--white) !important;}
.page-head p{color:var(--muted) !important;}

/* ── Mobile / portrait ────────────────────────────────── */
@media (max-width:520px){
  /* Hide long text labels in app headers — keep icons only */
  .hbtn .hide-label,.logo-text{display:none !important;}
  /* Ensure header doesn't overflow */
  .header,.nav-bar{overflow:hidden;}
  /* Mobile nav drawer gets dark bg */
  .mobile-nav{background:rgba(10,25,64,0.97) !important;border-color:var(--glass-b) !important;}
  /* Book grid: 3 cols on phone to match page's own setting */
  .books-grid{grid-template-columns:repeat(3,1fr) !important;}
  /* Input full width in portrait forms */
  .form-row{grid-template-columns:1fr !important;}
  /* Publisher queue stacks vertically */
  .main{flex-direction:column !important;height:auto !important;}
  .queue{width:100% !important;max-height:240px;}
}
@media (max-width:380px){
  /* Very narrow portrait — shrink buttons further */
  .hbtn,.nbtn,.snbtn{padding:6px 8px !important;font-size:11px !important;}
  .header,.site-nav,.nav{gap:6px !important;}
}
