/* /admin dashboard. Page-scoped; shared .acct-* components come from /acct/acct.css. */

.pg-admin [hidden]{display:none !important}
.pg-admin .adm{overflow-wrap:anywhere}
.pg-admin .adm input,.pg-admin .adm select,.pg-admin .adm textarea{max-width:100%; min-width:0}
.pg-admin .adm-stat,.pg-admin .adm-bk,.pg-admin .adm-bk-meta>div,.pg-admin .adm-type,
.pg-admin .adm-day,.pg-admin .adm-bl-t,.pg-admin .adm-set-grid>*{min-width:0}

.pg-admin .adm-gate{display:flex; align-items:center; gap:10px; padding:40px 0; color:var(--ink-2)}
.pg-admin .adm-gate .acct-alert{flex:1}
.pg-admin .adm-loading{display:flex; align-items:center; gap:10px; padding:22px 0; color:var(--muted)}

/* header */
.pg-admin .adm-head{display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:12px 20px}
.pg-admin .adm-head-t{flex:1 1 320px}
.pg-admin .adm-badges{display:flex; flex-wrap:wrap; gap:8px; padding-top:8px}
.pg-admin #adm-mode-note{margin:0 0 18px}
/* UAT: loud on purpose, a confirmed booking here moved no money */
.pg-admin .adm-uat-banner{margin:0; border-inline-start-width:5px; font-size:15px}
.pg-admin .adm-uat-banner p{margin:0 0 4px}
.pg-admin .adm-uat-banner strong{font-size:17px; color:var(--warn)}
.pg-admin .adm-h2{font-size:18px; margin:26px 0 6px}

/* stats */
.pg-admin .adm-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr)); gap:10px; margin:14px 0 22px}
.pg-admin .adm-stat{background:var(--surface); border:1px solid var(--rule); border-radius:10px;
  padding:14px 16px; display:flex; flex-direction:column; gap:4px}
.pg-admin .adm-stat-n{font-size:22px; font-weight:700; color:var(--ink); line-height:1.3}
.pg-admin .adm-stat-l{font-size:13px; color:var(--muted)}
.pg-admin .adm-stat-alert{border-color:var(--bad)}
.pg-admin .adm-stat-alert .adm-stat-n{color:var(--bad)}
/* paid bookings still waiting for a time: a to-do, not an error */
.pg-admin .adm-stat-warn{border-color:var(--warn)}
.pg-admin .adm-stat-warn .adm-stat-n{color:var(--warn)}
.pg-admin .adm-stat-sub{align-self:flex-start; margin-top:2px; padding:0; border:0; background:none; font:inherit;
  font-size:12px; color:var(--muted); text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.pg-admin .adm-stat-sub:hover{color:var(--brass)}
.pg-admin .adm-stat-sub:focus-visible{outline:2px solid var(--brass); outline-offset:2px; border-radius:4px}

.pg-admin .adm-panel{padding-top:16px}
.pg-admin .adm-panel:focus{outline:none}
.pg-admin .adm-panel:focus-visible{outline:2px solid var(--brass); outline-offset:4px; border-radius:6px}

/* small button variant */
.pg-admin .btn.adm-btn-sm{min-height:36px; height:auto; padding:5px 14px; font-size:14px}
.pg-admin .btn:disabled,.pg-admin .btn[aria-disabled="true"]{opacity:.5; cursor:not-allowed}
.pg-admin .btn.adm-danger{color:var(--bad)}
.pg-admin .btn.adm-danger:hover{border-color:var(--bad)}

/* filter chips */
.pg-admin .adm-chips{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:16px}
.pg-admin .adm-chip{display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 13px;
  border-radius:999px; border:1px solid var(--rule); background:transparent; color:var(--ink-2);
  font-size:14px; font-family:inherit}
.pg-admin .adm-chip:hover{border-color:var(--brass); color:var(--ink)}
.pg-admin .adm-chip.is-on{background:var(--brass-soft); border-color:var(--brass); color:var(--brass)}
.pg-admin .adm-chip-n{font-size:12px; color:var(--muted)}
.pg-admin .adm-chip.is-on .adm-chip-n{color:inherit}
.pg-admin .adm-reload{margin-inline-start:auto}

/* booking cards */
.pg-admin .adm-bk-list{display:flex; flex-direction:column; gap:14px}
.pg-admin .adm-bk{display:flex; flex-direction:column; gap:12px}
.pg-admin .adm-bk.adm-st-needs_attention{border-color:var(--bad)}
.pg-admin .adm-bk.is-past{opacity:.92}
.pg-admin .adm-bk.is-due{border-color:var(--warn)}
.pg-admin .adm-bk-h{display:flex; flex-direction:column; gap:4px}
.pg-admin .adm-bk-who{display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px}
.pg-admin .adm-bk-name{font-size:17px; margin:0}
.pg-admin .adm-bk-when{margin:0; color:var(--ink-2)}
.pg-admin .adm-bk-when.is-unset{font-weight:600}
.pg-admin .adm-bk-when.is-due{color:var(--warn)}
.pg-admin .adm-bk-meta{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr)); gap:10px 18px; margin:0}
.pg-admin .adm-bk-meta dt{font-size:12px; color:var(--muted); margin-bottom:2px}
.pg-admin .adm-bk-meta dd{margin:0; font-size:14px; line-height:1.7}
.pg-admin .adm-tx{font-family:var(--mo); font-size:12px; color:var(--ink-2)}
.pg-admin .adm-tx bdi{font-family:var(--mo)}
.pg-admin .adm-wa{font-size:13px}
.pg-admin .adm-bk-block{background:var(--surface-2); border:1px solid var(--rule-2); border-radius:8px; padding:10px 12px}
.pg-admin .adm-bk-block h4{margin:0 0 4px; font-size:12px; color:var(--muted); font-weight:500}
.pg-admin .adm-bk-note{border-color:var(--warn)}
/* the customer's preferred days/times lead the card while no time is set */
.pg-admin .adm-bk-pref.is-lead{border-color:var(--brass); background:var(--brass-soft)}
.pg-admin .adm-bk-pref.is-lead h4{color:var(--brass); font-weight:600; font-size:13px}
.pg-admin .adm-bk-pref.is-lead .adm-pre{color:var(--ink); font-size:15px}
.pg-admin .adm-pre{white-space:pre-line; margin:0; line-height:1.8}
/* system-written payment lines: quieter than her own note, which follows */
.pg-admin .adm-log{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px;
  font-size:13px; line-height:1.7; color:var(--muted)}
.pg-admin .adm-attn{margin:0; font-size:14px}
.pg-admin .adm-attn p{margin:0 0 6px}
.pg-admin .adm-hint{margin:0}
.pg-admin .adm-hint-due{color:var(--ink-2); padding:8px 12px; border-radius:6px; border-inline-start:3px solid var(--warn);
  background:color-mix(in srgb,var(--warn) 9%,var(--surface))}
.pg-admin .adm-slot-note{padding:8px 12px; border-radius:6px; border-inline-start:3px solid var(--brass);
  background:var(--brass-soft); color:var(--ink-2)}
.pg-admin .adm-panel>.adm-slot-note{margin:0 0 8px}
.pg-admin .acct-card>.adm-slot-note{margin-bottom:14px}

/* meet */
.pg-admin .adm-meet{border-top:1px solid var(--rule); padding-top:12px; display:flex; flex-direction:column; gap:6px}
.pg-admin .adm-meet-l{font-size:14px; font-weight:600}
.pg-admin .adm-meet-row{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.pg-admin .adm-meet-in{flex:1 1 240px; font-family:var(--mo); font-size:14px; text-align:left}
.pg-admin .adm-meet-in[aria-invalid="true"]{border-color:var(--bad)}
.pg-admin .adm-meet-help,.pg-admin .adm-meet-sent,.pg-admin .adm-meet-wait{margin:0}
.pg-admin .adm-meet-wait{color:var(--warn)}
.pg-admin .adm-meet-sent{color:var(--ok)}
.pg-admin .adm-meet-ro{margin:0}
.pg-admin .adm-sent-q{display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; padding:8px 10px;
  border:1px solid var(--brass); border-radius:8px; background:var(--brass-soft)}
.pg-admin .adm-sent-q-t{font-weight:600; font-size:14px}

.pg-admin .adm-bk-acts{display:flex; flex-wrap:wrap; gap:8px}

/* collapsible extras */
.pg-admin .adm-more{border-top:1px solid var(--rule); padding-top:10px}
.pg-admin .adm-more>summary{cursor:pointer; color:var(--ink-2); font-size:14px; padding:4px 0; width:max-content; max-width:100%}
.pg-admin .adm-more>summary:hover{color:var(--brass)}
.pg-admin .adm-more[open]>summary{margin-bottom:10px}
.pg-admin .adm-more form+form{margin-top:14px}
.pg-admin .adm-resched{display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end}
.pg-admin .adm-resched .acct-field{flex:1 1 150px}
.pg-admin .adm-resched .acct-actions{flex:0 0 auto}
.pg-admin .adm-resched-help{flex:1 1 100%}
/* account actions (block / unblock): rare, so quieter than the booking's own controls */
.pg-admin .adm-acct>summary{color:var(--muted)}
.pg-admin .adm-acct-t{margin:0 0 8px}

/* prices */
.pg-admin .adm-types{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); gap:14px; margin:12px 0 18px}
.pg-admin .adm-type{display:flex; flex-direction:column; gap:10px}
.pg-admin .adm-type-h{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px}
.pg-admin .adm-type-h h3{margin:0; font-size:16px}
.pg-admin .adm-type-opts{align-items:flex-end}
.pg-admin .adm-sort{flex:0 1 110px}
.pg-admin .adm-check{display:inline-flex; align-items:center; gap:8px; min-height:44px; cursor:pointer}
.pg-admin .adm-check input{width:18px; height:18px; accent-color:var(--brass)}
.pg-admin output[data-prev]{color:var(--brass); font-weight:600}
.pg-admin .adm-add{border:1px dashed var(--rule); border-radius:10px; padding:10px 14px}
.pg-admin .adm-add>summary{color:var(--brass); font-weight:600}

/* weekly schedule */
.pg-admin .adm-week{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(290px,100%),1fr)); gap:12px; margin-top:12px}
.pg-admin .adm-day{display:flex; flex-direction:column; gap:10px}
.pg-admin .adm-day.has-err{border-color:var(--bad)}
.pg-admin .adm-day-h{display:flex; align-items:center; justify-content:space-between; gap:8px}
.pg-admin .adm-day-h h3{margin:0; font-size:16px}
.pg-admin .adm-wins{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px}
.pg-admin .adm-win{display:flex; flex-wrap:wrap; align-items:center; gap:8px}
.pg-admin .adm-win-f{display:inline-flex; align-items:center; gap:6px; flex:1 1 110px}
.pg-admin .adm-win-f span{font-size:13px; color:var(--muted)}
.pg-admin .adm-win-f select{flex:1 1 auto; width:auto}
.pg-admin .adm-day-err{margin:0; color:var(--bad); font-size:13px}
.pg-admin .adm-day-err:empty{display:none}
.pg-admin .adm-day>.btn{align-self:flex-start}
.pg-admin .adm-week-bar{margin:16px 0 8px; align-items:center}

/* blackouts */
.pg-admin .adm-bl{list-style:none; margin:12px 0; padding:0; display:flex; flex-direction:column; gap:8px}
.pg-admin .adm-bl-i{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 14px}
.pg-admin .adm-bl-i.is-past{opacity:.7}
.pg-admin .adm-bl-t{flex:1 1 220px}
.pg-admin .adm-bl-t p{margin:4px 0 0; color:var(--ink-2); font-size:14px}
.pg-admin .adm-bl-add{display:flex; flex-direction:column; gap:10px; margin-top:12px}
.pg-admin .adm-bl-add h3{margin:0; font-size:16px}
.pg-admin .adm-bl-dates{display:flex; flex-wrap:wrap; gap:10px}
.pg-admin .adm-bl-dates .acct-field{flex:1 1 160px}

/* blocked accounts (settings tab); items reuse the blackout row layout */
.pg-admin .adm-blocked{margin-top:12px}
.pg-admin .adm-blk .adm-bl-t p.acct-muted{color:var(--muted)}

/* settings */
.pg-admin .adm-settings{display:flex; flex-direction:column; gap:14px}
.pg-admin .adm-set-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:14px}
.pg-admin .adm-num{max-width:160px}
.pg-admin .adm-accept{border-inline-start:4px solid var(--muted)}
.pg-admin .adm-accept.is-on{border-inline-start-color:var(--ok)}
.pg-admin .adm-accept .acct-help{margin:8px 0 0}
.pg-admin .adm-accept .adm-uat-hint{color:var(--warn); font-weight:600}
.pg-admin .adm-switch input:disabled+.adm-switch-ui{opacity:.6}

/* payment method */
.pg-admin .adm-pay{display:flex; flex-direction:column; gap:16px}
.pg-admin .adm-fs{border:0; margin:0; padding:0; min-width:0; display:flex; flex-direction:column; gap:10px}
.pg-admin .adm-legend{padding:0; margin-bottom:6px; font-size:16px; font-weight:600; color:var(--ink)}
.pg-admin .adm-radio{display:flex; align-items:flex-start; gap:10px; padding:10px 12px; cursor:pointer;
  border:1px solid var(--rule); border-radius:8px}
.pg-admin .adm-radio:has(input:checked){border-color:var(--brass); background:var(--brass-soft)}
.pg-admin .adm-radio input{flex:none; width:18px; height:18px; margin:4px 0 0; accent-color:var(--brass)}
.pg-admin .adm-radio-t{display:flex; flex-direction:column; gap:2px; min-width:0}
.pg-admin .adm-radio-l{font-weight:600}
.pg-admin .adm-radio .acct-help{margin:0}
.pg-admin .adm-phone{font-family:var(--mo); text-align:left}
/* the manual details are still saved in gateway mode, just not in use */
.pg-admin .adm-pay.is-gateway .adm-pay-manual{opacity:.65}

/* switch */
.pg-admin .adm-switch{display:inline-flex; align-items:center; gap:12px; cursor:pointer; position:relative; min-height:44px}
.pg-admin .adm-switch input{position:absolute; inset-inline-start:0; top:50%; width:52px; height:30px;
  margin:-15px 0 0; opacity:0; cursor:pointer}
.pg-admin .adm-switch-ui{flex:none; width:52px; height:30px; border-radius:999px; background:var(--surface-3);
  border:1px solid var(--rule); position:relative; transition:background .15s,border-color .15s}
.pg-admin .adm-switch-ui::after{content:""; position:absolute; top:3px; inset-inline-start:3px; width:22px; height:22px;
  border-radius:50%; background:var(--muted); transition:inset-inline-start .15s,background .15s}
.pg-admin .adm-switch input:checked+.adm-switch-ui{background:var(--ok); border-color:var(--ok)}
.pg-admin .adm-switch input:checked+.adm-switch-ui::after{inset-inline-start:25px; background:var(--surface)}
.pg-admin .adm-switch input:focus-visible+.adm-switch-ui{outline:2px solid var(--brass); outline-offset:2px}
.pg-admin .adm-switch-l{font-size:17px; font-weight:600}

@media (max-width:560px){
  .pg-admin .adm-stat{padding:12px}
  .pg-admin .adm-stat-n{font-size:18px}
  .pg-admin .adm-meet-row .btn,.pg-admin .adm-bk-acts .btn,.pg-admin .adm-sent-q .btn{flex:1 1 auto; justify-content:center}
  .pg-admin .adm-sent-q-t{flex-basis:100%}
  .pg-admin .adm-reload{margin-inline-start:0}
  .pg-admin .adm-num{max-width:none}
}
@media (prefers-reduced-motion:reduce){
  .pg-admin .adm-switch-ui,.pg-admin .adm-switch-ui::after{transition:none}
}

/* enrolment staff note editor (reuses .adm-bk-block) */
.pg-admin .adm-ennote > summary{cursor:pointer; font-size:13px; font-weight:600; color:var(--ink-2)}
.pg-admin .adm-ennote > summary:hover{color:var(--ink)}
.pg-admin .adm-ennote[open] > summary{margin-bottom:10px}
.pg-admin .adm-ennote-t{width:100%}
