:root{
  --primary:#2B4C7E;--secondary:#567EBB;--accent:#88AADD;--background:#F7F9FC;--surface:#FFFFFF;
  --text_primary:#1A2230;--text_secondary:#5A6578;--sidebar:#152238;--border:#DCE3EE;
  --success:#2E7D32;--warning:#B26A00;--danger:#B00020;--info:#145DA0;
  --button_radius:14px;--card_radius:22px;
}
*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--background);color:var(--text_primary)}
a{text-decoration:none;color:inherit} code{background:#eef2f7;padding:.1rem .35rem;border-radius:8px}
.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar-shell{background:var(--sidebar);color:#fff;position:sticky;top:0;height:100vh;padding:1rem .85rem;overflow:hidden}
.sidebar-brand{padding:.35rem .4rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1rem}
.brand-title{font-size:1.25rem;font-weight:800;letter-spacing:.01em}.brand-subtitle{font-size:.85rem;color:rgba(255,255,255,.76);margin-top:.15rem}
.sidebar-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}.sidebar-badge{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:999px;background:rgba(255,255,255,.12);font-size:.72rem}.sidebar-badge--muted{background:rgba(255,255,255,.08);color:#d7e2f7}
.sidebar-nav{height:calc(100vh - 165px);overflow:auto;padding-right:.2rem;scroll-behavior:smooth}.sidebar-nav::-webkit-scrollbar{width:10px}.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:999px}
.nav-group{margin-bottom:.75rem}.nav-group-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;color:#d9e7ff;border:none;padding:.5rem .65rem;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;cursor:pointer}
.nav-group-title{display:flex;align-items:center;gap:.55rem}.nav-icon{width:1.1rem;text-align:center;opacity:.92}.chevron{transition:transform .18s ease}.nav-group.is-open .chevron{transform:rotate(180deg)}
.nav-group-items{display:grid;gap:.35rem;padding:.1rem .1rem .35rem}.nav-link{display:flex;align-items:center;gap:.55rem;padding:.72rem .8rem;border-radius:16px;color:#f4f8ff;background:transparent;font-size:.96rem}.nav-link:hover,.nav-link.is-active{background:rgba(255,255,255,.12)}
.sidebar-footer{padding:.85rem .35rem 0;color:rgba(255,255,255,.65);font-size:.75rem}
.main-shell{display:flex;flex-direction:column;min-width:0}.main-shell--auth{grid-column:1/-1}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.4rem;border-bottom:1px solid var(--border);background:rgba(255,255,255,.72);backdrop-filter:blur(8px);position:sticky;top:0;z-index:9}
.topbar h1{margin:0;font-size:1.8rem}.topbar p{margin:.3rem 0 0;color:var(--text_secondary)}.topbar-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;padding:.45rem .8rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.85rem}.pill--muted{color:var(--text_secondary)}
.page-shell{padding:1.35rem;display:grid;gap:1rem}.page-footer{padding:0 1.35rem 1.2rem;color:var(--text_secondary)}
.alert,.notice{padding:.95rem 1rem;border-radius:16px;border:1px solid var(--border);font-weight:600;background:#fff}.alert-success,.notice.success{background:#edf8ef;color:#1f5f24}.alert-error,.alert-danger,.notice.error{background:#fff1f1;color:#8d1023}.alert-warning,.notice.warning{background:#fff5e7;color:#8d5a00}.notice.info{background:#f1f7ff;color:#145DA0}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:0}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.stack-form{display:grid;gap:8px}.filters .stack-form{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filters .stack-form label{min-width:150px}
.stack-form label,.field{display:flex;flex-direction:column;gap:6px;font-weight:600;color:var(--text_primary)}
.stack-form input,.stack-form select,.stack-form textarea,.field input,.field select,.field textarea,.inline-filters input,.inline-filters select,.filters input,.filters select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text_primary)}
.checkbox-row{display:flex !important;flex-direction:row !important;align-items:center;gap:8px}.checkbox-row input{width:auto}
.btn,.button-link,button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.72rem 1rem;border-radius:var(--button_radius);border:1px solid transparent;cursor:pointer;font-weight:700;background:var(--primary);color:#fff}
.btn-secondary,.button-link,.subtle-button{background:var(--surface);border-color:var(--border);color:var(--text_primary)}.btn-sm,.button-link.small,button.small{padding:.5rem .7rem;font-size:.86rem}
.card,.card-panel,.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card_radius);padding:1.15rem;box-shadow:0 10px 30px rgba(18,40,70,.05)}.auth-card{max-width:560px;margin:5rem auto}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.card-grid.two-up{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-2,.grid-3{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-grid{display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:18px}.stack{display:flex;flex-direction:column;gap:16px}
.eyebrow{margin:0;color:var(--text_secondary);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.metric-value,.kpi-value,.stat-value{font-size:28px;font-weight:800;margin:10px 0 6px;color:var(--text_primary)}.kpi-card.ok{border-color:#bfe1c4;background:linear-gradient(180deg,#ffffff 0%,#f6fbf6 100%)}.kpi-card.warn{border-color:#edd8aa;background:linear-gradient(180deg,#ffffff 0%,#fffaf1 100%)}.kpi-card.danger{border-color:#f0c1be;background:linear-gradient(180deg,#ffffff 0%,#fff5f5 100%)}.kpi-card.neutral{background:linear-gradient(180deg,#ffffff 0%,#f9fbfa 100%)}
.data-table,.table{width:100%;border-collapse:collapse}.data-table th,.data-table td,.table th,.table td{padding:.85rem .75rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.data-table th,.table th{font-size:.85rem;text-transform:uppercase;color:var(--text_secondary)}.table-wrap{overflow-x:auto}.compact-list,.summary-list{margin:0;padding-left:1.1rem;display:grid;gap:.5rem}
.actions-cell,.form-actions{display:flex;flex-wrap:wrap;gap:.45rem}.inline-form{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}.mono{font-family:Consolas,Menlo,Monaco,monospace}.empty-state{padding:16px;border:1px dashed var(--border);border-radius:14px;background:#fbfcfb;color:var(--text_secondary)}
.inline-status{display:inline-flex;align-items:center;gap:6px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%}.dot.ok{background:#2E7D32}.dot.warn{background:#B26A00}.dot.danger{background:#B00020}
@media (max-width:1100px){.catalog-grid{grid-template-columns:1fr}}
@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar-shell{position:static;height:auto}.sidebar-nav{height:auto;overflow:visible}.grid-2,.grid-3{grid-template-columns:1fr}.filters .stack-form{flex-direction:column;align-items:stretch}.topbar{padding:1rem}.page-shell{padding:1rem}}

.nav-group-toggle:hover{background:rgba(255,255,255,.06);border-radius:12px}.nav-group-items[hidden]{display:none}.nav-link{transition:background .16s ease,color .16s ease}.nav-link span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* admin_fix_003 additions merged safely */
.theme-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; }
.theme-tile { display:block; border:1px solid var(--border,#dce3ee); border-radius:16px; padding:14px; background:var(--surface,#fff); cursor:pointer; }
.theme-tile input { margin-right:8px; }
.theme-tile.is-active { box-shadow:0 0 0 2px var(--accent,#88AADD) inset; }
.theme-tile__body { display:flex; flex-direction:column; gap:4px; }
.meta-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }
.meta-list div { display:flex; justify-content:space-between; gap:12px; font-size:14px; }
