/* =====================================================================
   Six Yards Strong — Organiser console
   ===================================================================== */
body.admin{background:var(--slate-50)}
.admin-shell{display:grid;grid-template-columns:224px 1fr;min-height:100vh;transition:grid-template-columns .2s ease}

/* Sidebar */
.admin-side{background:var(--navy-950);color:#fff;padding:1rem .55rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.admin-brand{display:flex;align-items:center;gap:.5rem;font-weight:800;color:#fff;font-size:.88rem;padding:.25rem .45rem .85rem;font-family:var(--font-display);letter-spacing:.02em}
.admin-brand img{height:31px;width:auto;flex:0 0 auto}
.admin-brand small{display:block;font-family:var(--font-sans);font-size:.53rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-400);font-weight:600}
.admin-nav{display:flex;flex-direction:column;gap:.15rem}
.admin-nav a{display:flex;align-items:center;gap:.6rem;color:rgba(255,255,255,.78);padding:.46rem .7rem;border-radius:var(--r-sm);font-weight:600;font-size:.85rem}
.admin-nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.admin-nav a.active{background:var(--magenta-600);color:#fff}
.admin-nav .sep{margin:.7rem .6rem .25rem;font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.4)}

/* Collapsed (icons-only) sidebar — desktop only */
@media(min-width:821px){
  body.sidebar-collapsed .admin-shell{grid-template-columns:64px 1fr}
  body.sidebar-collapsed .admin-side{padding:1.2rem .4rem}
  body.sidebar-collapsed .admin-brand{justify-content:center;gap:0;font-size:0;padding:.3rem 0 1rem}
  body.sidebar-collapsed .admin-brand small{display:none}
  body.sidebar-collapsed .admin-nav a{justify-content:center;gap:0;font-size:0;padding:.6rem 0}
  body.sidebar-collapsed .admin-nav a .wg-icon{width:20px;height:20px}
  body.sidebar-collapsed .admin-nav .sep{font-size:0;height:1px;margin:.6rem .4rem;background:rgba(255,255,255,.14)}
}

/* Main */
.admin-main{display:flex;flex-direction:column;min-width:0}
.admin-top{background:#fff;border-bottom:1px solid var(--border);padding:.7rem 1.3rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}
.admin-top h1{font-size:1.12rem;margin:0;font-family:var(--font-sans);letter-spacing:-.01em}
.admin-user{display:flex;align-items:center;gap:.6rem;font-size:.8rem}
.admin-user .avatar{width:32px;height:32px;font-size:.85rem;border-radius:50%;background:var(--magenta-100);color:var(--magenta-700);display:grid;place-items:center;font-weight:800}
.admin-content{padding:1.15rem 1.4rem;max-width:none;width:100%}

/* KPI cards */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.85rem;margin-bottom:1.15rem}
@media(max-width:1000px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.kpi-grid{grid-template-columns:1fr}}
.kpi{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1rem 1.05rem;box-shadow:var(--sh-sm)}
.kpi .label{color:var(--muted);font-size:.71rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.kpi .value{font-family:var(--font-sans);font-weight:800;font-size:1.5rem;color:var(--primary-dark);margin-top:.25rem;line-height:1}
.kpi .sub{font-size:.74rem;color:var(--muted);margin-top:.3rem}
.kpi.accent{background:linear-gradient(135deg,var(--navy-900),var(--magenta-700));border:0;color:#fff}
.kpi.accent .label{color:rgba(255,255,255,.8)}
.kpi.accent .value{color:#fff}
.kpi.accent .sub{color:rgba(255,255,255,.8)}

/* Panels & charts */
.panel{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1.05rem 1.15rem;box-shadow:var(--sh-sm);margin-bottom:1.05rem}
.panel h3{font-size:.97rem;margin:0 0 .7rem}
.chart-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:1rem}
@media(max-width:900px){.chart-grid{grid-template-columns:1fr}}
.chart-box{position:relative;height:250px}
.chart-box.sm{height:210px}

/* Dashboard analytics — condensed to 2 rows */
.dash-charts-3{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:1rem;margin-bottom:1rem;align-items:start}
.dash-charts-4{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:start}
@media(max-width:1100px){.dash-charts-3,.dash-charts-4{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.dash-charts-3,.dash-charts-4{grid-template-columns:1fr}}
.dash-charts-3 .panel,.dash-charts-4 .panel{padding:.85rem .95rem;margin-bottom:0}
.dash-charts-3 .panel h3,.dash-charts-4 .panel h3{font-size:.85rem;margin:0 0 .5rem}
.dash-charts-3 .chart-box{height:170px}
.dash-charts-4 .chart-box{height:130px}

/* Filters */
body.admin .filters{display:flex;gap:.45rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:0;
  padding-bottom:.15rem}
body.admin .filters .field{margin:0;flex:0 0 auto}
/* Compact filter controls so the whole bar sits on one line */
body.admin .filters .field label{font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;
  margin-bottom:.1rem;color:var(--muted);white-space:nowrap}
body.admin .filters select,body.admin .filters input{padding:.34rem .5rem;font-size:.8rem;height:auto}
body.admin .filters select{min-width:auto}
body.admin .filters .field .input{min-width:100px;width:auto}
.filters .field[style]{flex:0 0 auto!important;min-width:160px!important}
body.admin .filters .btn{padding:.36rem .7rem;font-size:.8rem;flex:0 0 auto;white-space:nowrap;line-height:1.2}
/* Slim filter panel — cut the wrapper padding and trailing margin */
.panel:has(.filters){padding:.55rem .9rem}
.panel:has(.filters) .filters{margin-bottom:0}

/* Compact data tables in the admin console (public site tables untouched) */
.admin table.data th,.admin table.data td{padding:.42rem .55rem;font-size:.8rem}
.admin table.data th{font-size:.66rem}
.admin table.data td.nowrap,.admin table.data th.nowrap{white-space:nowrap}

/* Login */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--navy-950),var(--navy-800));padding:1.5rem}
.login-card{background:#fff;border-radius:var(--r-xl);padding:2.5rem;width:100%;max-width:420px;box-shadow:var(--sh-lg)}
.login-card .admin-brand{color:var(--primary-dark);justify-content:center;padding-bottom:1.5rem;text-align:center}
.login-card .admin-brand img{height:56px}
.login-card .admin-brand small{color:var(--primary)}

/* Status badges reuse .badge-* */
.status-paid{background:var(--success-bg);color:var(--success)}
.status-created{background:var(--warning-bg);color:var(--warning)}
.status-failed{background:var(--danger-bg);color:var(--danger)}
.status-refunded{background:var(--slate-100);color:var(--slate-500)}

/* Sidebar toggle — collapse on desktop, drawer on mobile */
.admin-burger{display:inline-flex;align-items:center;background:none;border:0;cursor:pointer;color:var(--primary-dark)}
@media(max-width:820px){
  .admin-shell{grid-template-columns:1fr}
  .admin-side{position:fixed;left:0;top:0;width:230px;z-index:60;transform:translateX(-100%);transition:transform .25s}
  .admin-side.open{transform:none}
}
.tools{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

/* Nav SVG icons */
.admin-nav a .wg-icon{flex:0 0 auto;opacity:.85}
.admin-nav a.active .wg-icon,.admin-nav a:hover .wg-icon{opacity:1}
.admin-user{text-decoration:none}
.admin-user:hover .avatar{background:var(--magenta-600);color:#fff}
/* Profile card */
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;align-items:start}
@media(max-width:820px){.profile-grid{grid-template-columns:1fr}}

/* Settings: section header with Edit button + locked (read-only) fields */
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.7rem}
.sec-head h3{margin:0}
.sec-actions{display:flex;gap:.5rem;margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--slate-100)}
.settings-section input:disabled,
.settings-section select:disabled{background:var(--slate-50);color:var(--slate-700);
  border-color:var(--slate-200);opacity:1;cursor:default;-webkit-text-fill-color:var(--slate-700)}

/* Pagination */
.pager{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;margin-top:.9rem;justify-content:center}
.pager .pg{min-width:30px;height:30px;display:inline-grid;place-items:center;padding:0 .5rem;border-radius:var(--r-sm);
  border:1px solid var(--border);color:var(--slate-700);font-weight:600;font-size:.83rem;text-decoration:none}
.pager .pg:hover{border-color:var(--primary);color:var(--primary)}
.pager .pg.active{background:var(--primary);border-color:var(--primary);color:#fff}
.pager .pg-gap{padding:0 .3rem;color:var(--slate-400)}
.pager .is-disabled{opacity:.4;pointer-events:none}

/* Event image upload preview */
.img-preview{max-height:90px;max-width:220px;border-radius:var(--r-sm);border:1px solid var(--border);
  margin-bottom:.5rem;display:block;object-fit:cover}

/* Event editor: section jump-nav */
.editor-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.6rem 0 .2rem}
.editor-nav span{font-size:.82rem;color:var(--muted);font-weight:600}
.editor-nav a{font-size:.85rem;font-weight:600;color:var(--primary);background:var(--magenta-50);
  border:1px solid var(--magenta-100);padding:.3rem .8rem;border-radius:var(--r-pill);text-decoration:none}
.editor-nav a:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.panel h3[id]{scroll-margin-top:90px}

/* =====================================================================
   Compact console — trims the public-site type scale and spacing
   (theme.css is tuned for the marketing pages; the console is dense data).
   Scoped to body.admin so nothing on the public site is affected.
   ===================================================================== */
body.admin{font-size:15px}
body.admin .admin-content h2{font-size:1.1rem;margin-bottom:.5em}
body.admin .admin-content h3{font-size:.97rem}
body.admin .lead{font-size:.95rem}
body.admin .card{border-radius:var(--r-md)}
body.admin .card-body{padding:1.05rem 1.15rem}
body.admin .card-media{border-radius:var(--r-md) var(--r-md) 0 0}

/* forms */
body.admin .field{margin-bottom:.8rem}
body.admin .field label{font-size:.82rem;margin-bottom:.25rem}
body.admin .input,body.admin select,body.admin textarea{padding:.5rem .65rem;font-size:.88rem;border-width:1px}
body.admin .input:focus,body.admin select:focus,body.admin textarea:focus{box-shadow:0 0 0 3px var(--magenta-100)}
body.admin .help{font-size:.75rem;margin-top:.2rem}

/* buttons + chips */
body.admin .btn{font-size:.86rem;padding:.5rem .9rem;gap:.4rem}
body.admin .btn-sm{font-size:.78rem;padding:.34rem .62rem}
body.admin .btn-lg{font-size:.92rem;padding:.6rem 1.15rem}
body.admin .badge{font-size:.7rem}
body.admin .chip{font-size:.76rem;padding:.22rem .6rem}

/* grid + utility gaps */
body.admin .grid{gap:.9rem}
body.admin .mt-2{margin-top:.7rem}
body.admin .mb-2{margin-bottom:.7rem}

@media(max-width:820px){
  body.admin .admin-content{padding:.9rem 1rem}
}

/* Settings: the four core sections sit two per row */
/* Two columns that pack tight — a plain grid would leave a hole under the
   shorter card in each row, so the sections flow as balanced columns. */
.settings-grid{column-count:2;column-gap:1.05rem}
.settings-grid .settings-section{display:block;break-inside:avoid;-webkit-column-break-inside:avoid;
  page-break-inside:avoid;min-width:0;margin:0 0 1.05rem}
.settings-grid .panel{margin-bottom:0}
.settings-grid .panel>p.text-muted{margin-bottom:.7rem}
.settings-grid .field:last-of-type{margin-bottom:0}
.settings-grid .form-row{gap:.75rem}
@media(max-width:1080px){.settings-grid{grid-template-columns:1fr}}
/* The Edit-lock script toggles the `hidden` attribute, but a class rule with
   `display:flex/inline-flex` outranks the UA `[hidden]` rule — so the Save/Cancel
   row and the Edit button stayed on screen in every locked section. */
.sec-actions[hidden]{display:none}
body.admin .btn[hidden]{display:none}

/* Capacity fill can list every distance of every edition — keep the panel the
   height of its neighbours and scroll inside instead of stretching the row. */
.cap-list{max-height:230px;overflow-y:auto;padding-right:.35rem}
.cap-list::-webkit-scrollbar{width:6px}
.cap-list::-webkit-scrollbar-thumb{background:var(--slate-200);border-radius:3px}
