@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Cinzel:wght@500;600;700&family=Cormorant+Garamond:ital@0;1&family=Noto+Serif+TC:wght@500;600;700&display=swap');

html.admin-guard-hide{
  visibility:hidden;
}

:root{
  /* Shopify-like palette */
  --admin-shell-bg:#f6f6f7;
  --admin-side-bg:#ffffff;
  --admin-surface:#ffffff;
  --admin-surface-2:#fbfbfc;
  --admin-border:#e5e7eb;
  --admin-border-soft:#eef2f7;
  --admin-accent:#111827;
  --admin-accent-strong:#0f172a;
  --admin-text:#0f172a;
  --admin-muted:#64748b;
  --admin-success:#059669;
  --admin-danger:#dc2626;
  --admin-shadow:0 18px 40px rgba(15,23,42,.08);
  --admin-shadow-soft:0 10px 22px rgba(15,23,42,.06);
  --admin-radius:16px;
  --admin-radius-lg:20px;
}

.admin-shell{
  display:flex;
  min-height:100vh;
  background:var(--admin-shell-bg);
}

.admin-sidebar{
  width:260px;
  padding:22px 16px 18px;
  background:var(--admin-side-bg);
  border-right:1px solid var(--admin-border);
  color:var(--admin-text);
  display:flex;
  flex-direction:column;
  gap:14px;
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
  overscroll-behavior:contain;
}

.admin-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:"Space Grotesk", "Segoe UI", system-ui, sans-serif;
}
.admin-brand-link{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:inherit;
}

.admin-brand-logo{
  width:44px;
  height:44px;
  border-radius:12px;
  object-fit:cover;
  background:transparent;
  padding:0;
  box-shadow:0 10px 25px rgba(15,23,42,0.12);
}

.admin-brand .badge{
  width:36px;
  height:36px;
  border-radius:12px;
  background:linear-gradient(135deg, #0f172a, #334155);
  color:#fff;
  font-weight:800;
  display:grid;
  place-items:center;
  letter-spacing:.6px;
}

.admin-brand .title{
  font-size:16px;
  font-weight:700;
  letter-spacing:.3px;
}

.admin-brand .subtitle{
  font-size:12px;
  color:var(--admin-muted);
}

.admin-nav{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.admin-nav-links{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.admin-nav-group{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.admin-nav-group__title{
  font-size:11px;
  color:var(--admin-muted);
  font-weight:800;
  letter-spacing:.6px;
  text-transform:uppercase;
  padding:6px 10px 2px;
}

.admin-nav a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
  color:var(--admin-text);
  border:1px solid transparent;
  background:var(--admin-surface-2);
  font-weight:700;
  font-size:13px;
  transition:all .18s ease;
}
.admin-nav .nav-toggle{
  display:none;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid transparent;
  background:#f8fafc;
  color:var(--admin-text);
  font-weight:700;
  font-size:13px;
  cursor:pointer;
  transition:all .18s ease;
}
.admin-nav .nav-toggle:hover{
  border-color:#fed7aa;
  background:#fff7ed;
}
.admin-nav .nav-icon{font-size:16px;line-height:1;}
.admin-nav .nav-label{font-size:13px;}

.admin-nav a:hover{
  border-color:var(--admin-border);
  background:var(--admin-surface);
  box-shadow:var(--admin-shadow-soft);
}

.admin-nav a.active{
  border-color:rgba(15,23,42,.18);
  color:var(--admin-accent-strong);
  background:var(--admin-surface);
  box-shadow:var(--admin-shadow-soft);
}

.admin-foot{
  margin-top:auto;
  padding-top:12px;
  border-top:1px dashed #e2e8f0;
  font-size:12px;
  color:var(--admin-muted);
}

.admin-main{
  flex:1;
  min-width:0;
  padding:24px 28px;
}

.admin-shell-applied .btn{
  appearance:none;
  border:1px solid var(--admin-border);
  background:var(--admin-surface-2);
  color:var(--admin-text);
  border-radius:999px;
  padding:9px 14px;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.admin-shell-applied .btn:hover{
  background:var(--admin-surface);
  box-shadow:var(--admin-shadow-soft);
  transform:translateY(-1px);
}
.admin-shell-applied .btn:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
.admin-shell-applied .btn.primary{
  background:#111827;
  color:#fff;
  border-color:#111827;
}
.admin-shell-applied .btn.primary:hover{
  background:#0f172a;
  border-color:#0f172a;
}
.admin-shell-applied .btn.gold{
  background:#fff7ed;
  border-color:#fed7aa;
  color:#9a3412;
}

.admin-main .wrap{
  max-width:1560px;
  width:100%;
  margin:0 auto;
}

.admin-shell-applied .page{
  max-width:1200px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.admin-shell-applied .page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.admin-shell-applied .page-title h1{
  margin:0;
  font-size:22px;
  line-height:1.2;
  font-weight:800;
}
.admin-shell-applied .page-sub{
  margin-top:6px;
  font-size:13px;
  color:var(--admin-muted);
}
.admin-shell-applied .page-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.admin-shell-applied .page-body{
  display:grid;
  gap:12px;
}
.admin-shell-applied .panel{
  background:var(--admin-surface);
  border:1px solid var(--admin-border);
  border-radius:var(--admin-radius);
  box-shadow:var(--admin-shadow-soft);
  padding:14px;
}
.admin-shell-applied .kpi-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}
.admin-shell-applied .kpi-card{
  background:var(--admin-surface);
  border:1px solid var(--admin-border);
  border-radius:14px;
  padding:12px;
}
.admin-shell-applied .kpi-title{
  font-size:12px;
  color:var(--admin-muted);
  font-weight:700;
}
.admin-shell-applied .kpi-value{
  font-size:22px;
  font-weight:800;
  margin-top:6px;
}
.admin-shell-applied .kpi-sub{
  font-size:12px;
  color:var(--admin-muted);
  margin-top:4px;
}
.admin-shell-applied .health-box{
  display:grid;
  gap:8px;
}
.admin-shell-applied .health-item{
  border-radius:12px;
  padding:10px 12px;
  border:1px solid var(--admin-border);
  background:var(--admin-surface);
}
.admin-shell-applied .health-item.ok{border-color:rgba(22,163,74,.35);}
.admin-shell-applied .health-item.warn{border-color:rgba(234,179,8,.45);}
.admin-shell-applied .health-item.err{border-color:rgba(239,68,68,.45);}
.admin-shell-applied .health-item .en{
  display:block;
  font-size:12px;
  color:var(--admin-muted);
  margin-top:4px;
}
.admin-shell-applied .ab-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.admin-shell-applied .ab-controls{
  display:flex;
  align-items:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.admin-shell-applied .ab-rows{
  display:grid;
  gap:8px;
}
.admin-shell-applied .ab-row{
  border:1px solid var(--admin-border-soft);
  border-radius:12px;
  padding:10px 12px;
  background:var(--admin-surface-2);
}
.admin-shell-applied .ab-label{
  font-size:12px;
  color:var(--admin-muted);
  margin-bottom:8px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}
.admin-shell-applied .ab-note{
  font-size:11px;
  font-weight:600;
  color:var(--admin-muted);
}
.admin-shell-applied .ab-bars{
  display:grid;
  gap:6px;
}
.admin-shell-applied .ab-bar-line{
  display:grid;
  grid-template-columns:22px minmax(0,1fr) 168px;
  align-items:center;
  gap:8px;
}
.admin-shell-applied .ab-tag{
  font-size:12px;
  font-weight:800;
  color:var(--admin-muted);
}
.admin-shell-applied .ab-val{
  font-size:12px;
  text-align:right;
  color:var(--admin-text);
  font-weight:700;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
}
.admin-shell-applied .ab-warn{
  font-size:11px;
  color:#b45309;
  font-weight:700;
}
.admin-shell-applied .ab-bar{
  display:block;
  height:10px;
  border-radius:999px;
  min-width:4px;
}
.admin-shell-applied .ab-a{
  background:linear-gradient(90deg, #2563eb, #60a5fa);
}
.admin-shell-applied .ab-b{
  background:linear-gradient(90deg, #10b981, #34d399);
}
.admin-shell-applied .table-wrap{
  overflow:auto;
  border:1px solid var(--admin-border-soft);
  border-radius:12px;
  background:var(--admin-surface);
}
.admin-shell-applied table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size:13px;
}
.admin-shell-applied thead th{
  position:sticky;
  top:0;
  background:var(--admin-surface-2);
  z-index:2;
  text-align:left;
  padding:10px 12px;
  border-bottom:1px solid var(--admin-border);
  color:var(--admin-muted);
  font-weight:800;
  letter-spacing:.2px;
}
.admin-shell-applied tbody td{
  padding:12px;
  border-bottom:1px solid var(--admin-border-soft);
  vertical-align:top;
  color:var(--admin-text);
  font-weight:600;
}
.admin-shell-applied tbody tr:hover td{
  background:#fbfbfc;
}

.admin-shell .wrap{
  font-family:"Space Grotesk", "Segoe UI", system-ui, sans-serif;
}

.admin-shell-applied .backLink{display:none;}
.admin-shell-applied .wrap > h1{margin-top:0;}

.admin-shell-applied .entry-hero{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
  gap:16px;
  margin-bottom:18px;
  padding:22px;
  border:1px solid var(--admin-border);
  border-radius:var(--admin-radius-lg);
  background:
    radial-gradient(circle at top right, rgba(249,115,22,.10), transparent 32%),
    linear-gradient(180deg, #ffffff, #fbfbfc);
  box-shadow:var(--admin-shadow-soft);
}
.admin-shell-applied .entry-hero-text{
  min-width:0;
  display:grid;
  gap:12px;
  align-content:start;
}
.admin-shell-applied .entry-eyebrow{
  font-size:11px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--admin-muted);
}
.admin-shell-applied .entry-hero h1{
  margin:0;
  font-size:40px;
  line-height:1.08;
  letter-spacing:-.03em;
  color:var(--admin-accent-strong);
}
.admin-shell-applied .entry-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.admin-shell-applied .pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  background:#f8fafc;
  border:1px solid var(--admin-border);
  color:var(--admin-text);
  font-size:12px;
  font-weight:800;
  text-decoration:none;
}
.admin-shell-applied .pill.alt{
  background:#fff7ed;
  border-color:#fed7aa;
  color:#9a3412;
}
.admin-shell-applied .entry-actions{
  display:grid;
  gap:10px;
  align-content:start;
}
.admin-shell-applied .entry-action{
  display:grid;
  gap:4px;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid var(--admin-border);
  background:var(--admin-surface);
  color:var(--admin-text);
  text-decoration:none;
  box-shadow:var(--admin-shadow-soft);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.admin-shell-applied .entry-action:hover{
  transform:translateY(-1px);
  border-color:#cbd5e1;
  background:#ffffff;
}
.admin-shell-applied .entry-action.primary{
  background:linear-gradient(135deg, #111827, #1f2937);
  border-color:#111827;
  color:#ffffff;
}
.admin-shell-applied .entry-action.primary:hover{
  border-color:#0f172a;
  background:linear-gradient(135deg, #0f172a, #111827);
}
.admin-shell-applied .entry-action .action-title{
  font-size:15px;
  font-weight:800;
  line-height:1.2;
}
.admin-shell-applied .entry-action .action-sub{
  font-size:12px;
  line-height:1.4;
  color:inherit;
  opacity:.78;
}
.admin-shell-applied .entry-section{
  display:grid;
  gap:14px;
  margin-bottom:18px;
}
.admin-shell-applied .section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.admin-shell-applied .section-head h2{
  margin:0;
  font-size:18px;
  font-weight:800;
  color:var(--admin-accent-strong);
}
.admin-shell-applied .data-grid.single{
  grid-template-columns:minmax(0,1fr);
}
.admin-shell-applied .data-stack{
  display:grid;
  gap:16px;
}
.admin-shell-applied .flow-grid{
  grid-template-columns:repeat(2, minmax(0,1fr));
}
.admin-shell-applied .stat-accent{
  color:#ea580c;
  font-weight:800;
}

.admin-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:var(--admin-surface);
  border:1px solid var(--admin-border);
  border-radius:var(--admin-radius);
  padding:12px 16px;
  box-shadow:var(--admin-shadow-soft);
  margin-bottom:16px;
}
.admin-topbar-title{
  font-weight:800;
  font-size:15px;
  color:#0f172a;
  white-space:nowrap;
  line-height:1.2;
}
.admin-topbar-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.admin-topbar-actions-primary,
.admin-topbar-actions-secondary{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  width:100%;
}
.admin-topbar-actions a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid var(--admin-border);
  background:var(--admin-surface-2);
  color:#0f172a;
  text-decoration:none;
  font-weight:700;
  font-size:11px;
}
.admin-topbar-user{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  justify-content:center;
  gap:2px;
  padding:6px 10px;
  border-radius:14px;
  border:1px solid var(--admin-border);
  background:var(--admin-surface);
  min-width:138px;
}
.admin-topbar-user__name{
  font-weight:800;
  font-size:11px;
  color:#0f172a;
  line-height:1.2;
  max-width:240px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-topbar-user__meta{
  font-size:10px;
  color:#64748b;
  line-height:1.2;
}
.admin-topbar-logout{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid rgba(220,38,38,.24);
  background:#fff1f2;
  color:#b91c1c;
  font-weight:800;
  font-size:11px;
  cursor:pointer;
}
.admin-topbar-logout:disabled{
  opacity:.6;
  cursor:not-allowed;
}

@media(max-width:900px){
  .admin-shell-applied .entry-hero{
    grid-template-columns:minmax(0,1fr);
  }
  .admin-shell-applied .flow-grid{
    grid-template-columns:minmax(0,1fr);
  }
  .admin-sidebar{
    width:100%;
    position:static;
    height:auto;
    border-right:none;
    border-bottom:1px solid #e5e7eb;
  }
  .admin-shell{
    flex-direction:column;
  }
  .admin-main{
    padding:18px 14px;
  }
  .admin-shell-applied .page-head{
    flex-direction:column;
    align-items:stretch;
  }
  .admin-shell-applied .page-actions{
    justify-content:flex-start;
  }
  .admin-shell-applied .kpi-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* ================================
   Page: /admin/audit-logs
   Keep scoped to avoid side effects
================================ */
.admin-shell-applied [data-admin-page="audit-logs"] .bar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin:14px 0;
}
.admin-shell-applied [data-admin-page="audit-logs"] .bar input,
.admin-shell-applied [data-admin-page="audit-logs"] .bar select{
  appearance:none;
  background:var(--admin-surface);
  border:1px solid var(--admin-border);
  border-radius:14px;
  padding:10px 12px;
  color:var(--admin-text);
  font-weight:700;
  font-size:13px;
  min-height:40px;
}
.admin-shell-applied [data-admin-page="audit-logs"] .bar input{
  min-width:220px;
}
.admin-shell-applied [data-admin-page="audit-logs"] .bar .muted{
  color:var(--admin-muted);
  font-size:12px;
  font-weight:600;
}
.admin-shell-applied [data-admin-page="audit-logs"] .btn{
  appearance:none;
  border:1px solid var(--admin-border);
  background:var(--admin-surface-2);
  color:var(--admin-text);
  border-radius:999px;
  padding:9px 14px;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.admin-shell-applied [data-admin-page="audit-logs"] .btn:hover{
  background:var(--admin-surface);
  box-shadow:var(--admin-shadow-soft);
  transform:translateY(-1px);
}
.admin-shell-applied [data-admin-page="audit-logs"] .btn:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
.admin-shell-applied [data-admin-page="audit-logs"] .card{
  background:var(--admin-surface);
  border:1px solid var(--admin-border);
  border-radius:var(--admin-radius);
  box-shadow:var(--admin-shadow-soft);
  padding:12px;
}
.admin-shell-applied [data-admin-page="audit-logs"] .audit-table-scroll{
  overflow:auto;
  max-height:70vh;
}
.admin-shell-applied [data-admin-page="audit-logs"] table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size:13px;
}
.admin-shell-applied [data-admin-page="audit-logs"] .audit-col-time,
.admin-shell-applied [data-admin-page="audit-logs"] .audit-col-action{
  min-width:180px;
}
.admin-shell-applied [data-admin-page="audit-logs"] .audit-col-actor,
.admin-shell-applied [data-admin-page="audit-logs"] .audit-col-target{
  min-width:240px;
}
.admin-shell-applied [data-admin-page="audit-logs"] .audit-col-meta{
  min-width:320px;
}
.admin-shell-applied [data-admin-page="audit-logs"] thead th{
  position:sticky;
  top:0;
  background:var(--admin-surface);
  z-index:2;
  text-align:left;
  padding:10px 12px;
  border-bottom:1px solid var(--admin-border);
  color:var(--admin-muted);
  font-weight:800;
  letter-spacing:.2px;
}
.admin-shell-applied [data-admin-page="audit-logs"] tbody td{
  padding:12px;
  border-bottom:1px solid var(--admin-border-soft);
  vertical-align:top;
  color:var(--admin-text);
  font-weight:600;
}
.admin-shell-applied [data-admin-page="audit-logs"] tbody tr:hover td{
  background:#fbfbfc;
}

/* ================================
   Page: /admin/line-logs
   Keep scoped to avoid side effects
================================ */
.admin-shell-applied [data-admin-page="line-logs"] .bar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom:12px;
}
.admin-shell-applied [data-admin-page="line-logs"] .bar input,
.admin-shell-applied [data-admin-page="line-logs"] .bar select{
  min-width:160px;
}
.admin-shell-applied [data-admin-page="line-logs"] .table-box{
  overflow:auto;
  max-height:72vh;
}
.admin-shell-applied [data-admin-page="line-logs"] table{
  width:100%;
  border-collapse:collapse;
}
.admin-shell-applied [data-admin-page="line-logs"] th,
.admin-shell-applied [data-admin-page="line-logs"] td{
  border-bottom:1px solid #e5e7eb;
  padding:8px 10px;
  text-align:left;
  vertical-align:top;
  font-size:13px;
}
.admin-shell-applied [data-admin-page="line-logs"] th{
  position:sticky;
  top:0;
  background:#fff;
  z-index:1;
  font-weight:800;
}
.admin-shell-applied [data-admin-page="line-logs"] .ok{
  color:#047857;
  font-weight:700;
}
.admin-shell-applied [data-admin-page="line-logs"] .fail{
  color:#b91c1c;
  font-weight:700;
}
.admin-shell-applied [data-admin-page="line-logs"] .mono{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:12px;
  white-space:pre-wrap;
  word-break:break-word;
}
.admin-shell-applied [data-admin-page="line-logs"] .line-col-time{ min-width:170px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-source{ min-width:130px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-kind{ min-width:80px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-result{ min-width:90px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-order{ min-width:140px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-member,
.admin-shell-applied [data-admin-page="line-logs"] .line-col-name{ min-width:160px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-request-id{ min-width:180px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-status-code{ min-width:120px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-error{ min-width:200px; }
.admin-shell-applied [data-admin-page="line-logs"] .line-col-preview{ min-width:420px; }

@media(max-width:980px){
  .admin-shell{flex-direction:column;}
  .admin-sidebar{
    width:100%;
    height:auto;
    position:sticky;
    top:0;
    z-index:999;
    gap:8px;
    padding:10px 12px 8px;
    border-bottom:1px solid rgba(148,163,184,0.18);
    border-right:none;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(10px);
    box-shadow:0 10px 22px rgba(15,23,42,0.08);
  }
  .admin-brand{justify-content:flex-start;gap:10px;}
  .admin-brand .badge{width:30px;height:30px;border-radius:10px;font-size:13px;}
  .admin-brand .title{font-size:14px;}
  .admin-brand .subtitle{display:none;}
  .admin-nav{
    display:flex;
    flex-direction:column;
    overflow:visible;
    padding:0;
  }
  /* Backward compatibility: if old admin-shell.js is cached and links are direct children,
     keep them collapsed by default instead of rendering a huge vertical list. */
  .admin-nav > a{
    display:none;
  }
  .admin-nav > .admin-nav-group{
    display:none;
  }
  .admin-nav .nav-toggle{
    order:-1;
  }
  .admin-nav.is-expanded{
    display:flex;
    flex-direction:column;
    width:100%;
    gap:8px;
    padding:6px 2px 2px;
    animation:adminNavDrop .18s ease-out;
  }
  .admin-nav-links{
    display:none;
  }
  .admin-nav.is-expanded .admin-nav-links{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .admin-nav-group{
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .admin-nav-group__title{
    display:block;
    font-size:10px;
    color:var(--admin-muted);
    font-weight:800;
    letter-spacing:.7px;
    text-transform:uppercase;
    padding:2px 4px 4px;
    border-bottom:1px solid var(--admin-border-soft);
    margin-bottom:2px;
  }
  /* 工作台: 3-col stacked cards */
  .admin-nav-group[data-group="main"]{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
  }
  .admin-nav-group[data-group="main"] > .admin-nav-group__title{grid-column:1/-1;}
  .admin-nav-group[data-group="main"] > a{
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:4px;
    min-height:62px;
    padding:10px 4px;
    border-radius:12px;
    background:var(--admin-surface-2);
    white-space:normal;
  }
  .admin-nav-group[data-group="main"] .nav-icon{font-size:18px;}
  .admin-nav-group[data-group="main"] .nav-label{font-size:11px;line-height:1.25;text-align:center;}
  /* 營運: 2-col compact rows */
  .admin-nav-group[data-group="primary"]{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4px;
  }
  .admin-nav-group[data-group="primary"] > .admin-nav-group__title{grid-column:1/-1;}
  .admin-nav-group[data-group="primary"] > a{
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    gap:6px;
    min-height:32px;
    padding:6px 8px;
    border-radius:10px;
    background:var(--admin-surface-2);
    white-space:nowrap;
  }
  .admin-nav-group[data-group="primary"] .nav-icon{font-size:13px;}
  .admin-nav-group[data-group="primary"] .nav-label{font-size:11px;overflow:hidden;text-overflow:ellipsis;}
  /* 設定: 2-col ultra-compact */
  .admin-nav-group[data-group="extra"]{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:3px;
  }
  .admin-nav-group[data-group="extra"] > .admin-nav-group__title{grid-column:1/-1;}
  .admin-nav-group[data-group="extra"] > a{
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    gap:5px;
    min-height:28px;
    padding:4px 6px;
    border-radius:8px;
    background:var(--admin-surface-2);
    white-space:nowrap;
  }
  .admin-nav-group[data-group="extra"] .nav-icon{font-size:12px;}
  .admin-nav-group[data-group="extra"] .nav-label{font-size:10px;overflow:hidden;text-overflow:ellipsis;}
  .admin-nav a.active{background:var(--admin-surface);}
  .admin-nav .nav-toggle{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    min-height:44px;
    padding:8px 12px;
    border-radius:12px;
    border:1px solid var(--admin-border);
    background:#f8fafc;
    white-space:nowrap;
    box-shadow:var(--admin-shadow-soft);
  }
  .admin-nav.is-expanded .nav-toggle{
    grid-column:1 / -1;
  }
  .admin-nav.is-expanded .nav-toggle{
    border-color:rgba(15,23,42,.18);
    color:var(--admin-accent-strong);
    background:var(--admin-surface);
  }
  .admin-foot{display:none;}
  .admin-main{padding:14px 12px 24px;}
  .admin-sidebar > .admin-topbar{
    margin:0;
    padding:10px 12px;
    border-radius:14px;
  }
  .admin-sidebar > .admin-topbar .admin-topbar-title{
    font-size:14px;
    white-space:nowrap;
  }
  .admin-sidebar > .admin-topbar .admin-topbar-actions{
    width:100%;
    gap:4px;
  }
  .admin-sidebar > .admin-topbar .admin-topbar-actions-primary{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
  }
  .admin-sidebar > .admin-topbar .admin-topbar-actions-secondary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .admin-sidebar > .admin-topbar .admin-topbar-actions-secondary a,
  .admin-sidebar > .admin-topbar .admin-topbar-logout{
    justify-content:center;
    min-height:34px;
    font-size:11px;
  }
  .admin-sidebar > .admin-topbar .admin-topbar-user{
    min-width:0;
    padding:5px 9px;
  }
  .admin-shell-applied .kpi-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  @keyframes adminNavDrop{
    from{opacity:0;transform:translateY(-6px);}
    to{opacity:1;transform:translateY(0);}
  }
}
@media(max-width:640px){
  .admin-shell-applied .kpi-grid{
    grid-template-columns:repeat(1, minmax(0, 1fr));
  }
}
@media(max-width:720px){
  .admin-nav .nav-toggle{min-height:44px;}
  .admin-brand .title{font-size:15px;}
  .admin-stat-card{padding:10px 12px;}
  .admin-stat-value{font-size:18px;}
}
@media(max-width:420px){
  .admin-nav-group[data-group="main"] > a{min-height:56px;padding:8px 2px;}
  .admin-nav-group[data-group="main"] .nav-icon{font-size:16px;}
  .admin-nav .nav-toggle{min-height:42px;padding:6px 8px;}
}

.admin-shell-applied .topbar{display:none;}
.admin-shell-applied .backLink{margin:8px 0 0;}

/* Force mobile nav UI even when Safari uses desktop viewport width */
html.admin-force-mobile-nav .admin-shell{
  flex-direction:column;
}
html.admin-force-mobile-nav .admin-sidebar{
  width:100%;
  height:auto;
  position:sticky;
  top:0;
  z-index:999;
  gap:8px;
  padding:10px 12px 8px;
  border-bottom:1px solid rgba(148,163,184,0.18);
  border-right:none;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(10px);
  box-shadow:0 10px 22px rgba(15,23,42,0.08);
}
html.admin-force-mobile-nav .admin-brand{
  justify-content:flex-start;
  gap:10px;
}
html.admin-force-mobile-nav .admin-brand .subtitle{
  display:none;
}
html.admin-force-mobile-nav .admin-nav{
  display:flex;
  flex-direction:column;
  overflow:visible;
  padding:0;
}
html.admin-force-mobile-nav .admin-nav > a,
html.admin-force-mobile-nav .admin-nav > .admin-nav-group,
html.admin-force-mobile-nav .admin-nav-links{
  display:none;
}
html.admin-force-mobile-nav .admin-nav .nav-toggle{
  display:flex;
  order:-1;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  min-height:44px;
  padding:8px 12px;
  border-radius:12px;
  border:1px solid var(--admin-border);
  background:#f8fafc;
  white-space:nowrap;
  box-shadow:var(--admin-shadow-soft);
}
html.admin-force-mobile-nav .admin-nav.is-expanded{
  display:flex;
  flex-direction:column;
  width:100%;
  gap:8px;
  padding:6px 2px 2px;
}
html.admin-force-mobile-nav .admin-nav-links{
  display:none;
}
html.admin-force-mobile-nav .admin-nav.is-expanded .admin-nav-links{
  display:flex;
  flex-direction:column;
  gap:8px;
}
html.admin-force-mobile-nav .admin-nav-group{
  display:flex;
  flex-direction:column;
  gap:4px;
}
html.admin-force-mobile-nav .admin-nav-group__title{
  display:block;
  font-size:10px;
  color:var(--admin-muted);
  font-weight:800;
  letter-spacing:.7px;
  text-transform:uppercase;
  padding:2px 4px 4px;
  border-bottom:1px solid var(--admin-border-soft);
  margin-bottom:2px;
}
html.admin-force-mobile-nav .admin-nav-group[data-group="main"]{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
}
html.admin-force-mobile-nav .admin-nav-group[data-group="main"] > .admin-nav-group__title{grid-column:1/-1;}
html.admin-force-mobile-nav .admin-nav-group[data-group="main"] > a{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:4px;
  min-height:62px;
  padding:10px 4px;
  border-radius:12px;
  background:var(--admin-surface-2);
  white-space:normal;
}
html.admin-force-mobile-nav .admin-nav-group[data-group="main"] .nav-icon{font-size:18px;}
html.admin-force-mobile-nav .admin-nav-group[data-group="main"] .nav-label{font-size:11px;line-height:1.25;text-align:center;}
html.admin-force-mobile-nav .admin-nav-group[data-group="primary"]{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px;
}
html.admin-force-mobile-nav .admin-nav-group[data-group="primary"] > .admin-nav-group__title{grid-column:1/-1;}
html.admin-force-mobile-nav .admin-nav-group[data-group="primary"] > a{
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  text-align:left;
  gap:6px;
  min-height:32px;
  padding:6px 8px;
  border-radius:10px;
  background:var(--admin-surface-2);
  white-space:nowrap;
}
html.admin-force-mobile-nav .admin-nav-group[data-group="primary"] .nav-icon{font-size:13px;}
html.admin-force-mobile-nav .admin-nav-group[data-group="primary"] .nav-label{font-size:11px;overflow:hidden;text-overflow:ellipsis;}
html.admin-force-mobile-nav .admin-nav-group[data-group="extra"]{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:3px;
}
html.admin-force-mobile-nav .admin-nav-group[data-group="extra"] > .admin-nav-group__title{grid-column:1/-1;}
html.admin-force-mobile-nav .admin-nav-group[data-group="extra"] > a{
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  text-align:left;
  gap:5px;
  min-height:28px;
  padding:4px 6px;
  border-radius:8px;
  background:var(--admin-surface-2);
  white-space:nowrap;
}
html.admin-force-mobile-nav .admin-nav-group[data-group="extra"] .nav-icon{font-size:12px;}
html.admin-force-mobile-nav .admin-nav-group[data-group="extra"] .nav-label{font-size:10px;overflow:hidden;text-overflow:ellipsis;}
html.admin-force-mobile-nav .admin-main{
  padding:14px 12px 24px;
}
html.admin-force-mobile-nav .admin-sidebar > .admin-topbar{
  margin:0;
  padding:10px 12px;
  border-radius:14px;
}
html.admin-force-mobile-nav .admin-sidebar > .admin-topbar .admin-topbar-title{
  font-size:14px;
  white-space:nowrap;
}
html.admin-force-mobile-nav .admin-sidebar > .admin-topbar .admin-topbar-actions{
  width:100%;
  gap:4px;
}
html.admin-force-mobile-nav .admin-sidebar > .admin-topbar .admin-topbar-actions-primary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
}
html.admin-force-mobile-nav .admin-sidebar > .admin-topbar .admin-topbar-actions-secondary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}
html.admin-force-mobile-nav .admin-sidebar > .admin-topbar .admin-topbar-actions-secondary a,
html.admin-force-mobile-nav .admin-sidebar > .admin-topbar .admin-topbar-logout{
  justify-content:center;
  min-height:34px;
  font-size:11px;
}
html.admin-force-mobile-nav .admin-sidebar > .admin-topbar .admin-topbar-user{
  min-width:0;
  padding:5px 9px;
}
html.admin-force-mobile-nav .admin-foot{
  display:none;
}
@media (max-width:420px){
  html.admin-force-mobile-nav .admin-nav-group[data-group="main"] > a{min-height:56px;padding:8px 2px;}
  html.admin-force-mobile-nav .admin-nav-group[data-group="main"] .nav-icon{font-size:16px;}
}

.admin-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
  margin-bottom:18px;
}
.admin-stat-card{
  background:var(--admin-surface);
  border:1px solid var(--admin-border);
  border-radius:var(--admin-radius);
  padding:14px 14px;
  color:var(--admin-text);
  box-shadow:var(--admin-shadow-soft);
}
.admin-stat-title{
  font-size:12px;
  color:var(--admin-muted);
  font-weight:700;
}
.admin-stat-value{
  font-size:22px;
  font-weight:900;
  margin-top:6px;
  letter-spacing:.2px;
}
.admin-stat-sub{
  font-size:12px;
  color:var(--admin-muted);
  margin-top:4px;
}

.report-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.report-tools{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.report-updated{
  font-size:12px;
  color:var(--admin-muted);
  font-weight:600;
}
.tag.neutral{
  background:rgba(148,163,184,0.18);
  color:#334155;
}
.report-list .muted{
  color:var(--admin-muted);
}
.report-detail-btn{
  border:none;
  cursor:pointer;
  padding:6px 12px;
  border-radius:999px;
  font-weight:700;
}
.report-detail-dialog{
  border:none;
  padding:0;
  background:transparent;
  width:min(840px, 94vw);
}
.report-detail-dialog::backdrop{
  background:rgba(15,23,42,.45);
  backdrop-filter:blur(4px);
}
.report-detail-card{
  background:var(--admin-surface);
  border:1px solid var(--admin-border);
  border-radius:18px;
  box-shadow:var(--admin-shadow);
  padding:18px;
}
.report-detail-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.report-detail-head h3{
  margin:0;
  font-size:18px;
  font-weight:800;
}
.report-detail-close{
  border:none;
  background:var(--admin-surface-2);
  width:34px;
  height:34px;
  border-radius:999px;
  cursor:pointer;
  font-weight:700;
}
.report-detail-tabs{
  display:flex;
  gap:8px;
  margin:14px 0 10px;
}
.report-detail-tab{
  border:1px solid var(--admin-border);
  background:var(--admin-surface-2);
  border-radius:999px;
  padding:6px 14px;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
.report-detail-tab.active{
  background:var(--admin-accent-soft);
  color:var(--admin-accent-strong);
  border-color:rgba(37,99,235,.25);
}
.report-detail-list{
  display:grid;
  gap:10px;
  max-height:55vh;
  overflow:auto;
  padding-right:6px;
}
.report-detail-item{
  border:1px solid var(--admin-border);
  border-radius:14px;
  padding:12px 14px;
  background:var(--admin-surface-2);
}
.report-detail-item .row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.report-detail-item .title{
  font-weight:800;
}
.report-detail-item .meta{
  margin-top:6px;
  font-size:12px;
  color:var(--admin-muted);
  line-height:1.5;
}
.report-detail-footer{
  display:flex;
  justify-content:flex-end;
  margin-top:12px;
}

/* Global mobile rescue for all /admin pages */
@media (max-width:980px){
  html,body{
    max-width:100%;
    overflow-x:hidden;
  }
  .admin-shell-applied .admin-main,
  .admin-shell-applied .admin-main .wrap,
  .admin-shell-applied .admin-main .wrap > *{
    min-width:0 !important;
  }
  .admin-shell-applied .wrap{
    width:100% !important;
    max-width:100% !important;
    padding-left:12px !important;
    padding-right:12px !important;
    box-sizing:border-box;
  }
  .admin-shell-applied .card,
  .admin-shell-applied .panel,
  .admin-shell-applied .entry-section,
  .admin-shell-applied .data-card{
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box;
  }
  .admin-shell-applied img,
  .admin-shell-applied canvas,
  .admin-shell-applied video,
  .admin-shell-applied svg{
    max-width:100% !important;
    height:auto;
  }
  .admin-shell-applied input,
  .admin-shell-applied select,
  .admin-shell-applied textarea,
  .admin-shell-applied button,
  .admin-shell-applied .btn{
    max-width:100% !important;
  }
  .admin-shell-applied input[style*="width:"],
  .admin-shell-applied select[style*="width:"],
  .admin-shell-applied textarea[style*="width:"]{
    width:100% !important;
    max-width:100% !important;
  }
  .admin-shell-applied input[style*="min-width"],
  .admin-shell-applied select[style*="min-width"],
  .admin-shell-applied textarea[style*="min-width"],
  .admin-shell-applied button[style*="min-width"],
  .admin-shell-applied .btn[style*="min-width"]{
    min-width:0 !important;
  }

  .admin-shell-applied .lookup,
  .admin-shell-applied .toolbar,
  .admin-shell-applied .bar,
  .admin-shell-applied .filters,
  .admin-shell-applied .list-tools,
  .admin-shell-applied .page-actions,
  .admin-shell-applied .entry-card-actions,
  .admin-shell-applied .actions,
  .admin-shell-applied .status-tabs,
  .admin-shell-applied .tabs{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    align-items:stretch;
  }
  .admin-shell-applied .status-tabs > *,
  .admin-shell-applied .tabs > *{
    flex:1 1 calc(50% - 8px);
    min-width:0 !important;
    max-width:100%;
  }

  .admin-shell-applied .table-wrap,
  .admin-shell-applied .table-scroll,
  .admin-shell-applied .list{
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
  .admin-shell-applied table{
    width:100%;
    max-width:100%;
  }
  .admin-shell-applied th,
  .admin-shell-applied td{
    word-break:break-word;
  }
}

@media (max-width:640px){
  .admin-shell-applied .entry-hero{
    padding:18px;
  }
  .admin-shell-applied .entry-hero h1{
    font-size:32px;
  }
  .admin-shell-applied .status-tabs > *,
  .admin-shell-applied .tabs > *{
    flex:1 1 100%;
  }
  .admin-shell-applied .admin-nav.is-expanded,
  html.admin-force-mobile-nav .admin-nav.is-expanded{
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  }
  .admin-shell-applied .admin-nav a,
  html.admin-force-mobile-nav .admin-nav a{
    text-align:center !important;
  }
}
.btn.small{
  padding:8px 14px;
  font-size:12px;
  border-radius:999px;
}

/* Subtle normalization for common admin pages */
.admin-shell-applied .wrap p.muted{color:var(--admin-muted);}
.admin-shell-applied .wrap .card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow-soft);}
.admin-shell-applied .wrap table{border-collapse:separate;border-spacing:0;}
.admin-shell-applied .wrap table th{background:var(--admin-surface-2);}
.admin-shell-applied .wrap input,.admin-shell-applied .wrap select,.admin-shell-applied .wrap textarea{border-radius:12px;}

/* ================================
   Page: /admin/schema-monitor
================================ */
.admin-shell-applied [data-admin-page="schema-monitor"] .page-actions{
  align-items:center;
}
.admin-shell-applied [data-admin-page="schema-monitor"] .page-actions label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--admin-muted);
  font-weight:700;
}
.admin-shell-applied [data-admin-page="schema-monitor"] .page-actions select{
  min-width:84px;
  min-height:36px;
  padding:6px 10px;
  border:1px solid var(--admin-border);
  background:var(--admin-surface);
  color:var(--admin-text);
  font-weight:700;
}
.admin-shell-applied [data-admin-page="schema-monitor"] .schema-monitor-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  flex-wrap:wrap;
}
.admin-shell-applied [data-admin-page="schema-monitor"] code{
  background:#f1f5f9;
  border:1px solid #e2e8f0;
  border-radius:8px;
  padding:3px 7px;
  font-size:12px;
  font-weight:700;
}
.admin-shell-applied [data-admin-page="schema-monitor"] .schema-flag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:66px;
  border-radius:999px;
  padding:4px 10px;
  font-size:12px;
  font-weight:800;
  border:1px solid transparent;
}
.admin-shell-applied [data-admin-page="schema-monitor"] .schema-flag.ok{
  background:rgba(16,185,129,.1);
  color:#065f46;
  border-color:rgba(16,185,129,.25);
}
.admin-shell-applied [data-admin-page="schema-monitor"] .schema-flag.notice{
  background:rgba(245,158,11,.12);
  color:#92400e;
  border-color:rgba(245,158,11,.3);
}
.admin-shell-applied [data-admin-page="schema-monitor"] .schema-flag.warn{
  background:rgba(239,68,68,.1);
  color:#991b1b;
  border-color:rgba(239,68,68,.24);
}

/* ═══════════════════════════════════════════════════════════════
   Global mobile UX — comprehensive improvements
   Appended LAST so these take cascade authority over all
   page-specific CSS files (which load before admin-ui.css).
   All rules scoped to .admin-shell-applied.
═══════════════════════════════════════════════════════════════ */

/* ── ≤980px: action/page-action buttons → 2-col flex ──
   .actions already has display:flex !important from above.
   Setting flex on child .btn gives us reliable 2-col layout.   */
@media(max-width:980px){
  .admin-shell-applied .actions > .btn,
  .admin-shell-applied .page-actions > .btn{
    flex:1 1 calc(50% - 4px);
    min-width:0;
  }
  /* primary / danger / lone button → always full row */
  .admin-shell-applied .actions > .btn.primary,
  .admin-shell-applied .actions > .btn.danger,
  .admin-shell-applied .actions > .btn:only-child,
  .admin-shell-applied .page-actions > .btn.primary,
  .admin-shell-applied .page-actions > .btn.danger,
  .admin-shell-applied .page-actions > .btn:only-child{
    flex:1 1 100%;
  }
  /* lookup / toolbar / bar inputs: always expand to fill width */
  .admin-shell-applied .lookup input,
  .admin-shell-applied .lookup select,
  .admin-shell-applied .toolbar input,
  .admin-shell-applied .toolbar select,
  .admin-shell-applied .bar input,
  .admin-shell-applied .bar select{
    width:100%;
    min-width:0 !important;
    flex:1 1 auto;
  }
  /* table headers with hardcoded inline min-width → let table be responsive */
  .admin-shell-applied th[style*="min-width"]{
    min-width:0 !important;
    white-space:normal;
  }
}

/* ── ≤760px: shrink page h1, keep kpi-grid at 2-col ── */
@media(max-width:760px){
  /* main page title (direct child of .wrap or .page-head) */
  .admin-shell-applied .wrap > h1,
  .admin-shell-applied .page-head > h1{
    font-size:20px !important;
    letter-spacing:-.01em;
    line-height:1.2;
    margin-bottom:10px;
  }
  /* kpi-grid: override the 640px→1-col collapse; keep 2-col down to 480px */
  .admin-shell-applied .kpi-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
  /* page-head: tighter vertical gap on phone */
  .admin-shell-applied .page-head{
    gap:8px;
  }
  /* admin-main: tighter horizontal padding */
  .admin-shell-applied .admin-main{
    padding:12px 10px 24px;
  }
}

/* ── ≤480px: extra-small phones ── */
@media(max-width:480px){
  .admin-shell-applied .wrap > h1,
  .admin-shell-applied .page-head > h1{
    font-size:17px !important;
  }
  /* kpi-grid: 1-col only at ≤480px */
  .admin-shell-applied .kpi-grid{
    grid-template-columns:1fr !important;
  }
  /* action buttons: smaller touch targets still comfortable */
  .admin-shell-applied .actions > .btn,
  .admin-shell-applied .page-actions > .btn{
    font-size:12px;
    min-height:36px;
    padding:7px 9px;
  }
  /* admin-main: tightest padding */
  .admin-shell-applied .admin-main{
    padding:10px 8px 20px !important;
  }
}

/* ── Page: /admin/dashboard ── */
@media(max-width:760px){
  /* slot-controls: stack labels + inputs vertically */
  .admin-shell-applied [data-admin-page="dashboard"] .slot-controls{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:8px !important;
  }
  .admin-shell-applied [data-admin-page="dashboard"] .slot-controls label{
    display:flex;
    flex-direction:column;
    gap:4px;
    font-size:13px;
    font-weight:600;
    color:var(--admin-muted);
  }
  .admin-shell-applied [data-admin-page="dashboard"] .slot-controls select,
  .admin-shell-applied [data-admin-page="dashboard"] .slot-controls input[type="text"]{
    width:100%;
    min-width:0 !important;
  }
  .admin-shell-applied [data-admin-page="dashboard"] .slot-controls .btn{
    align-self:flex-start;
  }
  /* ab-head: stack h2 + controls vertically */
  .admin-shell-applied [data-admin-page="dashboard"] .ab-head{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-bottom:10px;
  }
  .admin-shell-applied [data-admin-page="dashboard"] .ab-controls{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
  }
  /* table: allow wrap */
  .admin-shell-applied [data-admin-page="dashboard"] th,
  .admin-shell-applied [data-admin-page="dashboard"] td{
    white-space:normal;
    word-break:break-word;
    font-size:12px;
    padding:7px 8px;
  }
  .admin-shell-applied [data-admin-page="dashboard"] th{
    font-size:11px;
  }
  /* panel h2 sizing */
  .admin-shell-applied [data-admin-page="dashboard"] .panel h2{
    font-size:16px !important;
  }
}

/* ── Page: /admin/audit-logs — mobile ── */
@media(max-width:760px){
  /* override scoped min-width:220px so inputs go full-width */
  .admin-shell-applied [data-admin-page="audit-logs"] .bar input,
  .admin-shell-applied [data-admin-page="audit-logs"] .bar select{
    min-width:0 !important;
    width:100%;
    flex:1 1 100%;
  }
  .admin-shell-applied [data-admin-page="audit-logs"] .bar .btn{
    flex:1 1 calc(50% - 4px);
  }
  .admin-shell-applied [data-admin-page="audit-logs"] .audit-table-scroll{
    max-height:none !important;
    overflow:visible !important;
  }
  .admin-shell-applied [data-admin-page="audit-logs"] thead th{
    white-space:normal;
    font-size:11px;
    padding:8px;
  }
  .admin-shell-applied [data-admin-page="audit-logs"] tbody td{
    white-space:normal;
    word-break:break-word;
    font-size:12px;
    padding:8px;
  }
}

/* ── Page: /admin/mail-logs — mobile ── */
@media(max-width:760px){
  .admin-shell-applied [data-admin-page="mail-logs"] .bar input,
  .admin-shell-applied [data-admin-page="mail-logs"] .bar select{
    min-width:0 !important;
    width:100%;
    flex:1 1 100%;
  }
  .admin-shell-applied [data-admin-page="mail-logs"] .bar .btn{
    flex:1 1 calc(50% - 4px);
  }
  /* remove inline max-height:70vh */
  .admin-shell-applied [data-admin-page="mail-logs"] .card div[style*="max-height"]{
    max-height:none !important;
    overflow:visible !important;
  }
}

/* ── Page: /admin/line-logs — mobile ── */
@media(max-width:760px){
  /* the bar has flex-wrap already; just make buttons stack 2-up */
  .admin-shell-applied [data-admin-page="line-logs"] .bar .btn{
    flex:1 1 calc(50% - 4px);
  }
  .admin-shell-applied [data-admin-page="line-logs"] .bar input,
  .admin-shell-applied [data-admin-page="line-logs"] .bar select{
    min-width:0 !important;
    flex:1 1 100%;
  }
}

@media(max-width:768px){
  .admin-shell-applied [data-admin-page="line-logs"] .table-box{
    max-height:none;
  }
  .admin-shell-applied [data-admin-page="line-logs"] table,
  .admin-shell-applied [data-admin-page="line-logs"] thead,
  .admin-shell-applied [data-admin-page="line-logs"] tbody,
  .admin-shell-applied [data-admin-page="line-logs"] th,
  .admin-shell-applied [data-admin-page="line-logs"] td,
  .admin-shell-applied [data-admin-page="line-logs"] tr{
    display:block;
  }
  .admin-shell-applied [data-admin-page="line-logs"] thead{
    display:none;
  }
  .admin-shell-applied [data-admin-page="line-logs"] tr{
    border:1px solid #e5e7eb;
    border-radius:12px;
    padding:8px;
    margin-bottom:10px;
    background:#fff;
  }
  .admin-shell-applied [data-admin-page="line-logs"] td{
    border:0;
    padding:4px 0;
  }
  .admin-shell-applied [data-admin-page="line-logs"] td::before{
    content:attr(data-label);
    display:block;
    color:#64748b;
    font-size:11px;
    font-weight:700;
    margin-bottom:2px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Unalome Spiritual admin redesign (2026-06-13) — dual theme.
   Replaces the earlier flat gold retheme. Two switchable themes via
   <html data-admin-theme="parchment|sanctum"> (set by admin-shell.js):
   · parchment = warm temple parchment + gold ink (light, default)
   · sanctum   = midnight sanctum + gold leaf (dark)
   Motifs: unalome glyph (mask url logo.svg), Cinzel display headers,
   Cormorant italic subtitles, sacred-gold accents. Targets the real
   admin shell classes built by admin-shell.js.
   ═══════════════════════════════════════════════════════════════ */

/* ---- theme tokens ---- */
:root, html[data-admin-theme="parchment"]{
  --admin-shell-bg:#ece2cc; --admin-side-bg:#fbf4e3;
  --admin-surface:#fdf8ec; --admin-surface-2:#f6edd8;
  --admin-border:#e0d2b0; --admin-border-soft:#ece0c4;
  --admin-accent:#3a2c14; --admin-accent-strong:#2c2010;
  --admin-text:#43331a; --admin-muted:#8a7650;
  --admin-shadow:0 22px 50px rgba(120,90,40,.16); --admin-shadow-soft:0 12px 26px rgba(120,90,40,.12);
  --ulm-gold:#c79a3a; --ulm-gold-2:#a3781f; --ulm-glyph:#8a6420;
  --ulm-hero-bg:linear-gradient(135deg,#fefaf0,#f7ecd4);
  --ulm-primary:linear-gradient(135deg,#3a2c14,#241a0c); --ulm-primary-ink:#f3e3c0; --ulm-primary-bd:#241a0c;
  --ulm-pill:#f1e8d4; --ulm-pill-bd:#e0d2b0; --ulm-pill-ink:#5d4f37;
  --ulm-row-hover:#fbf4e2; --ulm-glow:rgba(199,154,58,.16);
}
html[data-admin-theme="sanctum"]{
  --admin-shell-bg:#141009; --admin-side-bg:#0f0c07;
  --admin-surface:#1e1810; --admin-surface-2:#191309;
  --admin-border:#3a2f1c; --admin-border-soft:#2a2114;
  --admin-accent:#f3e7cb; --admin-accent-strong:#f7eed6;
  --admin-text:#efe2c6; --admin-muted:#a9966f;
  --admin-shadow:0 24px 60px rgba(0,0,0,.55); --admin-shadow-soft:0 12px 30px rgba(0,0,0,.4);
  --ulm-gold:#e3b54e; --ulm-gold-2:#b78a2e; --ulm-glyph:#e3b54e;
  --ulm-hero-bg:linear-gradient(135deg,#1c1610,#13100a);
  --ulm-primary:linear-gradient(135deg,#f4d98a,#e3b54e 45%,#b78a2e); --ulm-primary-ink:#241a08; --ulm-primary-bd:#b78a2e;
  --ulm-pill:rgba(255,247,224,.06); --ulm-pill-bd:#3a2f1c; --ulm-pill-ink:#cdbb95;
  --ulm-row-hover:rgba(227,181,78,.06); --ulm-glow:rgba(227,181,78,.12);
}

/* ---- shell surface + sacred glow ---- */
body{ background:var(--admin-shell-bg); }
.admin-shell{
  background:
    radial-gradient(1100px 520px at 80% -8%, var(--ulm-glow), transparent 58%),
    radial-gradient(800px 460px at -4% 104%, var(--ulm-glow), transparent 55%),
    var(--admin-shell-bg);
}
.admin-sidebar{ background:var(--admin-side-bg); border-right:1px solid var(--admin-border); }

/* ---- brand ---- */
.admin-brand-logo{ box-shadow:0 10px 24px var(--ulm-glow); }
.admin-brand .title{ font-family:'Cinzel',serif; font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:15px; color:var(--admin-accent-strong); }
.admin-brand .subtitle{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:14px; color:var(--ulm-gold-2); letter-spacing:.04em; }

/* ---- nav ---- */
.admin-nav-group__title{ font-family:'Noto Serif TC',serif; letter-spacing:.16em; color:var(--ulm-gold-2); }
.admin-nav a{ background:transparent; color:var(--admin-text); }
.admin-nav a:hover{ border-color:color-mix(in srgb, var(--ulm-gold) 42%, transparent); background:var(--ulm-glow); box-shadow:none; }
.admin-nav a.active{
  position:relative; color:var(--admin-accent-strong);
  background:linear-gradient(135deg, var(--ulm-glow), transparent);
  border-color:color-mix(in srgb, var(--ulm-gold) 55%, transparent);
  box-shadow:0 10px 24px var(--ulm-glow);
}
.admin-nav a.active::before{
  content:""; position:absolute; left:-16px; top:8px; bottom:8px; width:4px;
  border-radius:0 4px 4px 0; background:linear-gradient(180deg, var(--ulm-gold), var(--ulm-gold-2));
}
.admin-foot{ font-family:'Noto Serif TC',serif; color:var(--ulm-gold-2); border-top:1px dashed var(--admin-border); }

/* ---- topbar as a spiritual banner with unalome watermark ---- */
.admin-shell-applied .admin-topbar{
  position:relative; overflow:hidden;
  padding:22px 26px; border:1px solid color-mix(in srgb, var(--ulm-gold) 32%, transparent);
  border-radius:22px; background:var(--ulm-hero-bg); box-shadow:var(--admin-shadow);
  margin-bottom:18px;
}
.admin-shell-applied .admin-topbar::after{
  content:""; position:absolute; right:-30px; top:50%; transform:translateY(-50%);
  width:200px; height:200px; pointer-events:none; opacity:.12;
  -webkit-mask:url(/img/logo.svg) center/contain no-repeat; mask:url(/img/logo.svg) center/contain no-repeat;
  background:radial-gradient(circle, var(--ulm-glyph), transparent 72%);
}
.admin-topbar-title{ font-family:'Cinzel',serif; font-weight:700; letter-spacing:.02em; font-size:30px; color:var(--admin-accent-strong); }

/* ---- KPI ---- */
.admin-shell-applied .kpi-card{
  position:relative; overflow:hidden; background:var(--admin-surface);
  border:1px solid color-mix(in srgb, var(--ulm-gold) 28%, transparent); box-shadow:var(--admin-shadow-soft);
}
.admin-shell-applied .kpi-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg, var(--ulm-gold), var(--ulm-gold-2));
}
.admin-shell-applied .kpi-value{ font-family:'Cinzel',serif; color:var(--ulm-gold-2); }

/* ---- tables ---- */
.admin-shell-applied .table-wrap{ border:1px solid color-mix(in srgb, var(--ulm-gold) 26%, transparent); background:var(--admin-surface); }
.admin-shell-applied thead th{ background:var(--admin-surface-2); border-bottom:1px solid color-mix(in srgb, var(--ulm-gold) 40%, transparent); color:var(--admin-muted); letter-spacing:.1em; font-family:'Noto Serif TC',serif; }
.admin-shell-applied tbody td{ color:var(--admin-text); border-bottom:1px solid var(--admin-border-soft); }
.admin-shell-applied tbody tr:hover td{ background:var(--ulm-row-hover); }

/* ---- pills ---- */
.admin-shell-applied .pill{ background:var(--ulm-pill); border:1px solid var(--ulm-pill-bd); color:var(--ulm-pill-ink); }
.admin-shell-applied .pill.alt{ background:linear-gradient(135deg, color-mix(in srgb,var(--ulm-gold) 30%, transparent), color-mix(in srgb,var(--ulm-gold) 14%, transparent)); border:1px solid color-mix(in srgb,var(--ulm-gold) 55%, transparent); color:var(--ulm-gold-2); }

/* ---- buttons ---- */
.admin-shell-applied .btn{ background:var(--admin-surface-2); border-color:var(--admin-border); color:var(--admin-text); }
.admin-shell-applied .btn:hover{ background:var(--ulm-glow); box-shadow:var(--admin-shadow-soft); }
.admin-shell-applied .btn.primary{ background:var(--ulm-primary); border-color:var(--ulm-primary-bd); color:var(--ulm-primary-ink); }
.admin-shell-applied .btn.primary:hover{ filter:brightness(1.05); }
.admin-shell-applied .btn.gold{ background:linear-gradient(135deg,#ffb347,#d97706); border-color:rgba(166,96,20,.6); color:#fff; }
html[data-admin-theme="sanctum"] .admin-shell-applied .btn.gold{ background:transparent; border:1px solid color-mix(in srgb,var(--ulm-gold) 55%, transparent); color:var(--ulm-gold); }

/* ---- theme toggle (injected by admin-shell.js) ---- */
.admin-theme-toggle{
  appearance:none; cursor:pointer; font-family:'Noto Serif TC',serif; font-weight:700; font-size:12.5px;
  padding:7px 13px; border-radius:999px; border:1px solid color-mix(in srgb,var(--ulm-gold) 50%, transparent);
  background:var(--ulm-glow); color:var(--ulm-gold-2); transition:all .18s ease;
}
.admin-theme-toggle:hover{ box-shadow:0 8px 18px var(--ulm-glow); transform:translateY(-1px); }

/* ---- topbar secondary links warm ---- */
.admin-topbar-link{ color:var(--ulm-gold-2); }
.admin-topbar-user{ border-color:color-mix(in srgb,var(--ulm-gold) 35%, transparent); background:var(--ulm-glow); }

/* ---- logout + user chip + secondary links (fit the theme) ---- */
.admin-shell-applied .admin-topbar-logout{
  border:1px solid color-mix(in srgb, var(--ulm-gold) 42%, transparent);
  background:transparent; color:var(--ulm-gold-2); border-radius:999px; font-weight:800;
}
.admin-shell-applied .admin-topbar-logout:hover{ background:var(--ulm-glow); }
.admin-topbar-user__name{ color:var(--admin-text); }
.admin-topbar-user__meta{ color:var(--ulm-gold-2); }
.admin-topbar-link{ color:var(--ulm-gold-2); font-weight:700; }
.admin-topbar-link:hover{ color:var(--admin-accent-strong); }
