.admin-shell{display:grid; grid-template-columns:240px 1fr; min-height:100vh;}
.admin-side{background:var(--panel); border-right:1px solid var(--line); padding:20px; display:flex; flex-direction:column;}
.admin-side .logo{margin-bottom:34px;}
.admin-nav a{
  display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:5px;
  font-size:13.5px; color:var(--muted); margin-bottom:2px;
}
.admin-nav a.active, .admin-nav a:hover{background:var(--panel-2); color:var(--cream);}
.admin-nav .dot-ico{width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.6;}
.admin-nav-group{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.08em; color:var(--muted); text-transform:uppercase; margin:22px 0 8px 12px;}
.admin-nav-group:first-child{margin-top:0;}

.admin-main{padding:34px 40px; overflow-x:hidden;}
.admin-topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:30px;}
.admin-topbar h1{font-size:26px;}
.admin-topbar .who{display:flex; align-items:center; gap:10px; font-size:13px; color:var(--muted);}
.admin-avatar{width:32px; height:32px; border-radius:50%; background:var(--walnut);}

.kpi-row{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:30px;}
.kpi-card{padding:20px;}
.kpi-label{font-size:12px; color:var(--muted); font-family:'IBM Plex Mono',monospace; margin-bottom:10px;}
.kpi-value{font-family:'Fraunces',serif; font-size:28px;}
.kpi-delta{font-size:12px; margin-top:6px;}
.kpi-delta.up{color:var(--teal);}
.kpi-delta.down{color:#D97757;}

.admin-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:18px; margin-bottom:18px;}
.panel-block{padding:22px;}
.panel-block h3{font-size:16px; margin-bottom:16px;}
.chart-fake{height:180px; display:flex; align-items:flex-end; gap:8px;}
.chart-fake .bar{flex:1; background:linear-gradient(180deg,var(--oak),var(--oak-dim)); border-radius:3px 3px 0 0;}

.pipeline{display:grid; grid-template-columns:repeat(5,1fr); gap:10px;}
.pipe-col{background:var(--panel-2); border-radius:5px; padding:12px;}
.pipe-col h4{font-size:11.5px; color:var(--muted); font-family:'IBM Plex Mono',monospace; margin-bottom:10px; text-transform:uppercase;}
.pipe-card{background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:10px; font-size:12px; margin-bottom:8px;}
.pipe-card .pname{color:var(--cream); margin-bottom:4px;}
.pipe-card .pmeta{color:var(--muted); font-size:11px;}

table.admin-table{width:100%; border-collapse:collapse; font-size:13px;}
table.admin-table th{text-align:left; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; padding:10px 12px; border-bottom:1px solid var(--line);}
table.admin-table td{padding:12px; border-bottom:1px solid var(--line); color:var(--cream);}
.status-pill{font-size:11px; padding:4px 10px; border-radius:20px; font-family:'IBM Plex Mono',monospace;}
.status-pill.new{background:rgba(63,182,168,.15); color:var(--teal);}
.status-pill.review{background:rgba(192,138,82,.18); color:var(--oak);}
.status-pill.scheduled{background:rgba(154,145,134,.15); color:var(--muted);}

.chat-widget{padding:18px; height:100%;}
.chat-thread{display:flex; flex-direction:column; gap:8px; margin-bottom:12px;}

@media(max-width:1000px){
  .admin-shell{grid-template-columns:1fr;}
  .kpi-row, .admin-grid, .pipeline{grid-template-columns:1fr;}
  .admin-side{display:none;}
}

/* ── shared CRUD page patterns ─────────────────────────────── */
.form-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-bottom:18px;}
.form-grid.full{grid-template-columns:1fr;}
.field label{display:block; font-size:12px; color:var(--muted); margin-bottom:6px;}
.field input, .field select, .field textarea{
  width:100%; background:var(--panel-2); border:1px solid var(--line); color:var(--cream);
  padding:9px 10px; border-radius:4px; font-size:13px; font-family:inherit;
}
.field textarea{resize:vertical; min-height:70px;}
.row-actions{display:flex; gap:8px;}
.list-empty{color:var(--muted); font-size:13px; padding:20px 0; text-align:center;}
.toggle-pill{font-size:11px; padding:4px 10px; border-radius:20px; font-family:'IBM Plex Mono',monospace; cursor:pointer; border:1px solid var(--line);}
.toggle-pill.on{background:rgba(63,182,168,.15); color:var(--teal); border-color:var(--teal);}
.toggle-pill.off{color:var(--muted);}
.page-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:22px;}
.page-head h1{font-size:24px;}
.save-note{font-size:12px; color:var(--teal); display:none; margin-top:8px;}
.thumb-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px;}
.thumb-cell{aspect-ratio:1; background:var(--panel-2); border:1px solid var(--line); border-radius:5px; display:flex; align-items:center; justify-content:center; font-size:10.5px; color:var(--muted); overflow:hidden; position:relative;}
.thumb-cell img{width:100%; height:100%; object-fit:cover;}
