/* ==========================================================
   admin.css — staff console.
   Back-office tooling: cooler and denser than the customer
   site, sharing its orange accent. Scoped under .adm so none
   of it leaks into the booking flow.
   ========================================================== */

.adm{
  --a-bg:#f4f5f8;
  --a-panel:#ffffff;
  --a-ink:#0f1320;
  --a-ink-2:#5b6478;
  --a-ink-3:#8a93a6;
  --a-line:#e6e9f0;
  --a-line-2:#d4d9e4;
  --a-sunk:#f1f3f7;
  --a-brand:#CE3D0D;
  --a-brand-soft:#FFF0EA;
  --a-green:#12a366;
  --a-green-soft:#e6f7f0;
  --a-amber:#b7791f;
  --a-amber-soft:#fdf5e6;
  --a-red:#d3455b;
  --a-red-soft:#fdecef;
  --a-r:12px;
  --a-r-sm:8px;

  /* above the site nav (80) and modals (120) — the console is a
     full takeover, nothing from the site should float over it */
  position:fixed; inset:0; z-index:300;
  background:var(--a-bg); color:var(--a-ink);
  display:grid; grid-template-columns:236px minmax(0,1fr);
  font-family:Inter,-apple-system,"Segoe UI",sans-serif;
  overflow:hidden;
}

/* ── sidebar ───────────────────────────────────────────── */
.adm-side{
  background:var(--a-panel); border-right:1px solid var(--a-line);
  display:flex; flex-direction:column; padding:20px 14px; overflow-y:auto;
}
.adm-brand{
  display:flex; align-items:center; gap:8px; padding:4px 10px 20px;
  font-family:Outfit,sans-serif; font-weight:700; font-size:17px; text-transform:uppercase; letter-spacing:.01em;
}
.adm-brand i{ width:7px; height:7px; border-radius:50%; background:#FF5A1F; display:block; }
.adm-brand span{ font-size:10px; font-weight:600; color:var(--a-ink-3); letter-spacing:.1em; margin-left:2px }
.adm-nav{ display:flex; flex-direction:column; gap:2px }
.adm-nav button{
  display:flex; align-items:center; gap:11px; width:100%; text-align:left;
  padding:10px 12px; border-radius:var(--a-r-sm); border:none; background:none; cursor:pointer;
  font-size:14px; color:var(--a-ink-2); transition:background .16s, color .16s;
}
.adm-nav button svg{ width:17px; height:17px; flex-shrink:0 }
.adm-nav button:hover{ background:#f7f8fb; color:var(--a-ink) }
.adm-nav button.on{ background:var(--a-brand-soft); color:var(--a-brand); font-weight:600 }
.adm-side-foot{ margin-top:auto; padding-top:16px; border-top:1px solid var(--a-line) }
.adm-side-foot .adm-who{ padding:8px 12px; font-size:12.5px; color:var(--a-ink-3) }
.adm-side-foot .adm-who b{ display:block; color:var(--a-ink); font-size:13.5px; font-weight:600 }

/* ── main ──────────────────────────────────────────────── */
.adm-main{ overflow-y:auto; padding:26px 30px 60px }
.adm-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:24px; flex-wrap:wrap }
.adm-head h1{ font-family:Outfit,sans-serif; font-size:25px; font-weight:600; letter-spacing:-.02em; margin:0 }
.adm-head p{ margin:5px 0 0; color:var(--a-ink-2); font-size:13.5px }

.adm-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 18px; border-radius:var(--a-r-sm); border:1px solid transparent; cursor:pointer;
  font-size:13.5px; font-weight:500; background:var(--a-brand); color:#fff; transition:filter .16s, background .16s;
}
.adm-btn svg{ width:15px; height:15px }
.adm-btn:hover{ filter:brightness(1.08) }
.adm-btn:disabled{ opacity:.45; cursor:not-allowed; filter:none }
.adm-btn.ghost{ background:#fff; border-color:var(--a-line-2); color:var(--a-ink) }
.adm-btn.ghost:hover{ background:#f7f8fb; filter:none }
.adm-btn.dark{ background:var(--a-ink); color:#fff }
.adm-btn.danger{ background:#fff; border-color:var(--a-line-2); color:var(--a-red) }
.adm-btn.danger:hover{ background:var(--a-red-soft); border-color:var(--a-red) }
.adm-btn.sm{ padding:7px 13px; font-size:12.5px }
.adm-btn.block{ width:100% }

/* ── cards + stats ─────────────────────────────────────── */
.adm-card{ background:var(--a-panel); border:1px solid var(--a-line); border-radius:var(--a-r); padding:20px }
.adm-card h3{ font-family:Outfit,sans-serif; font-size:15px; font-weight:600; margin:0 0 16px }
.adm-grid{ display:grid; gap:16px }
.adm-stats{ grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); margin-bottom:18px }
.adm-stat{ background:var(--a-panel); border:1px solid var(--a-line); border-radius:var(--a-r); padding:18px }
.adm-stat.lead{ background:var(--a-brand); border-color:var(--a-brand); color:#fff }
.adm-stat .k{ font-size:10.5px; text-transform:uppercase; letter-spacing:.09em; color:var(--a-ink-3); font-weight:600 }
.adm-stat.lead .k{ color:rgba(255,255,255,.75) }
.adm-stat .v{ font-family:Outfit,sans-serif; font-size:27px; font-weight:600; margin-top:7px; letter-spacing:-.02em }
.adm-stat .s{ font-size:12px; color:var(--a-ink-3); margin-top:3px }
.adm-stat.lead .s{ color:rgba(255,255,255,.8) }

/* ── table ─────────────────────────────────────────────── */
.adm-table{ width:100%; border-collapse:collapse; font-size:13.5px }
.adm-table th{
  text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.08em;
  color:var(--a-ink-3); font-weight:600; padding:0 12px 10px; border-bottom:1px solid var(--a-line); white-space:nowrap;
}
.adm-table td{ padding:12px; border-bottom:1px solid var(--a-line); vertical-align:middle }
.adm-table tr:last-child td{ border-bottom:none }
.adm-table tbody tr:hover{ background:#fafbfd }
.adm-table .film{ display:flex; align-items:center; gap:10px; min-width:0 }
.adm-table .film img{ width:32px; border-radius:5px; flex-shrink:0 }
.adm-table .film b{ font-weight:600; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:190px }
.adm-table .mono{ font-family:"Courier New",monospace; font-weight:700; letter-spacing:.06em }
.adm-wrap-x{ overflow-x:auto }

.adm-pill{ display:inline-flex; align-items:center; padding:3px 9px; border-radius:999px; font-size:11px; font-weight:600 }
.adm-pill.paid{ background:var(--a-green-soft); color:var(--a-green) }
.adm-pill.due{ background:var(--a-amber-soft); color:var(--a-amber) }
.adm-pill.used{ background:#eef0f4; color:var(--a-ink-3) }
.adm-pill.fmt{ background:var(--a-brand-soft); color:var(--a-brand) }

/* ── forms ─────────────────────────────────────────────── */
.adm-field{ margin-bottom:18px }
.adm-field > label{ display:block; font-size:12px; font-weight:600; color:var(--a-ink-2); margin-bottom:8px }
.adm-input{
  width:100%; padding:10px 13px; border-radius:var(--a-r-sm); border:1px solid var(--a-line-2);
  background:#fff; font-size:14px; color:var(--a-ink); transition:border-color .16s, box-shadow .16s;
}
.adm-input:focus{ outline:none; border-color:var(--a-brand); box-shadow:0 0 0 3px var(--a-brand-soft) }
.adm-input::placeholder{ color:var(--a-ink-3) }

/* multi-select chips — dates, times, formats, venues */
.adm-chips{ display:flex; flex-wrap:wrap; gap:7px }
.adm-chip{
  padding:8px 13px; border-radius:var(--a-r-sm); border:1px solid var(--a-line-2); background:#fff;
  font-size:13px; cursor:pointer; transition:.15s; color:var(--a-ink-2); line-height:1.3; text-align:center;
}
.adm-chip:hover{ border-color:var(--a-brand); color:var(--a-brand) }
.adm-chip.on{ background:var(--a-brand); border-color:var(--a-brand); color:#fff; font-weight:500 }
.adm-chip.date{ min-width:62px }
.adm-chip.date .d{ display:block; font-family:Outfit,sans-serif; font-size:16px; font-weight:600 }
.adm-chip.date .m{ display:block; font-size:10.5px; opacity:.75 }

/* movie search results */
.adm-results{ display:grid; gap:8px; max-height:340px; overflow-y:auto; margin-top:12px }
.adm-result{
  display:flex; align-items:center; gap:12px; padding:9px; border-radius:var(--a-r-sm);
  border:1px solid var(--a-line); background:#fff; cursor:pointer; text-align:left; transition:.15s; width:100%;
}
.adm-result:hover{ border-color:var(--a-brand); background:var(--a-brand-soft) }
.adm-result.on{ border-color:var(--a-brand); background:var(--a-brand-soft) }
.adm-result img{ width:38px; border-radius:5px; flex-shrink:0 }
.adm-result .t{ font-weight:600; font-size:13.5px }
.adm-result .s{ font-size:12px; color:var(--a-ink-3); margin-top:2px }

.adm-picked{
  display:flex; align-items:center; gap:14px; padding:14px;
  background:var(--a-brand-soft); border:1px solid var(--a-brand); border-radius:var(--a-r); margin-bottom:18px;
}
.adm-picked img{ width:48px; border-radius:6px }
.adm-picked .t{ font-weight:600; font-size:15px }
.adm-picked .s{ font-size:12.5px; color:var(--a-ink-2); margin-top:3px }

.adm-summary{
  background:var(--a-ink); color:#fff; border-radius:var(--a-r); padding:18px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
}
.adm-summary .n{ font-family:Outfit,sans-serif; font-size:22px; font-weight:600 }
.adm-summary .d{ font-size:12.5px; color:rgba(255,255,255,.65); margin-top:2px }

.adm-empty{ text-align:center; padding:50px 20px; color:var(--a-ink-3) }
.adm-empty h4{ font-size:15px; color:var(--a-ink); margin:0 0 6px; font-weight:600 }
.adm-empty p{ margin:0 0 18px; font-size:13.5px }

.adm-two{ display:grid; grid-template-columns:1fr 1fr; gap:16px }
.adm-note{
  font-size:12.5px; color:var(--a-ink-2); background:#f7f8fb; border:1px solid var(--a-line);
  border-radius:var(--a-r-sm); padding:11px 13px; line-height:1.55;
}

/* ── staff gate ────────────────────────────────────────── */
/* The gate element carries .adm too, so it inherits the console's
   "sidebar + main" columns and the card would otherwise be squeezed
   into the 236px sidebar track. It is a single centred panel. */
.adm-gate{ position:fixed; inset:0; z-index:301; background:var(--a-bg);
  display:grid; grid-template-columns:minmax(0,1fr); place-items:center; padding:20px }
.adm-gate .box{ width:100%; max-width:360px; background:#fff; border:1px solid var(--a-line); border-radius:14px; padding:30px }
.adm-gate h2{ font-family:Outfit,sans-serif; font-size:20px; margin:0 0 6px; font-weight:600 }
.adm-gate p{ margin:0 0 22px; font-size:13.5px; color:var(--a-ink-2) }

/* ── responsive ────────────────────────────────────────── */
@media (max-width:900px){
  .adm{ grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr) }
  .adm-side{ flex-direction:row; align-items:center; gap:10px; padding:10px 12px; overflow-x:auto; border-right:none; border-bottom:1px solid var(--a-line) }
  .adm-brand{ padding:0 8px 0 4px; font-size:15px }
  .adm-brand span{ display:none }
  .adm-nav{ flex-direction:row; gap:4px }
  .adm-nav button{ white-space:nowrap; padding:8px 12px; font-size:13px }
  .adm-nav button svg{ display:none }
  .adm-side-foot{ margin-top:0; padding-top:0; border-top:none; margin-left:auto }
  .adm-side-foot .adm-who{ display:none }
  .adm-main{ padding:18px 16px 50px }
  .adm-two{ grid-template-columns:1fr }
}

/* ── dashboard additions ─────────────────────────────────
   A live/offline badge, a secondary stat size, status tags
   and a table that scrolls inside itself rather than pushing
   the console sideways on a laptop screen. */
.adm-live{ font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:10.5px;
  padding:2px 7px; border-radius:5px; vertical-align:1px }
.adm-live.on{ background:#E4F5EC; color:#0F7B4F }
.adm-live.off{ background:#F1EFEB; color:#6E7482 }

.adm-stat.sm .v{ font-size:22px }
.adm-stat.sm{ padding:14px 16px }

.adm-tablewrap{ overflow-x:auto; margin:0 -4px }
.adm-tablewrap .adm-table{ min-width:640px }

.adm-tag{ display:inline-block; padding:3px 9px; border-radius:6px; font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.05em }
.adm-tag.paid{ background:#E4F5EC; color:#0F7B4F }
.adm-tag.due{ background:#FFF0EA; color:#CE3D0D }
.adm-tag.used{ background:#EEF1F7; color:#4A5266 }

/* ── sign-in gate ────────────────────────────────────────
   Real credentials now, so the gate needs an error line and
   a provider row rather than a single name field. */
.adm-gate-err{ background:#FFF0EA; border:1px solid rgba(206,61,13,.25); color:#A8320B;
  border-radius:8px; padding:10px 12px; font-size:13px; margin-bottom:12px }
.adm-gate-err[hidden]{ display:none !important }



/* ── bookings: filters, void rows, cancel ──────────────── */
/* Filter chips are pills with a count badge. Scoped to .adm-filters: the
   same rules applied to every .adm-chip laid the schedule screen's two-line
   date chips out side by side and turned venue areas into count badges. */
.adm-filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px }
.adm-filters .adm-chip{ display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:999px;
  border:1px solid var(--a-line); background:var(--a-panel); color:var(--a-ink-2);
  font-size:13px; font-weight:500; min-height:36px }
.adm-filters .adm-chip span{ font-size:11px; font-weight:700; padding:1px 6px; border-radius:99px;
  background:var(--a-sunk); color:var(--a-ink-3) }
.adm-filters .adm-chip.on span{ background:rgba(255,255,255,.24); color:#fff }

.adm-pill.cancelled{ background:#fdecec; color:#b42318 }
/* A cancelled row still has to be readable — it is a record, not a
   deletion — so it recedes rather than being struck out to illegibility. */
.adm-table tr.is-void td{ opacity:.55 }
.adm-table tr.is-void .film b{ text-decoration:line-through }
.adm-fine{ font-size:11px; color:var(--a-ink-3) }
.adm-btn.sm{ min-height:30px; padding:5px 11px; font-size:12.5px }
.adm-btn.danger{ background:#b42318; border-color:#b42318; color:#fff }
.adm-btn.danger:hover{ background:#8f1d13 }

/* ── console-scoped modal ──────────────────────────────
   Above the console's own 300 so it can never open behind the panel
   that called it. */
.adm-modal-host{ position:fixed; inset:0; z-index:340; display:grid; place-items:center;
  padding:20px; background:rgba(16,18,22,.5); backdrop-filter:blur(3px) }
.adm-modal{ width:100%; max-width:440px; background:var(--a-panel); border-radius:14px;
  border:1px solid var(--a-line); padding:24px; box-shadow:0 24px 60px rgba(16,18,22,.28);
  max-height:88vh; overflow-y:auto }
.adm-modal h3{ margin:0 0 8px; font-size:17px }
.adm-lead{ color:var(--a-ink-2); font-size:13.5px; margin:0 0 14px; line-height:1.55 }
.adm-modal-actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:18px; flex-wrap:wrap }
.adm-modal-actions .adm-btn{ flex:0 1 auto }
.adm-note{ background:var(--a-sunk); border:1px solid var(--a-line); border-radius:9px;
  padding:11px 13px; font-size:13px; color:var(--a-ink-2); margin-bottom:14px }
.adm-err{ color:#b42318; font-size:13px; margin:-2px 0 10px }

/* ── staff ─────────────────────────────────────────────── */
.adm-role-line{ display:flex; align-items:center; gap:12px; padding:9px 0;
  border-top:1px solid var(--a-line); font-size:13.5px; color:var(--a-ink-2) }
.adm-role-line:first-of-type{ border-top:none }
.adm-input.sm{ min-height:32px; padding:4px 9px; font-size:13px; width:auto }

@media (max-width:560px){
  .adm-modal{ padding:20px }
  .adm-modal-actions{ flex-direction:column-reverse }
  .adm-modal-actions .adm-btn{ width:100% }
}

/* ── pilot console ─────────────────────────────────────────
   New booking, check-in, programme search, films and the film editor. */
.adm-sub{ display:block; font-size:12px; color:var(--a-ink-3); font-weight:400 }
label .adm-sub{ display:inline; margin-left:4px }
.adm-card-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; flex-wrap:wrap }
.adm-card-head h3{ margin:0 }
.adm-head .adm-btn.sm{ margin-bottom:8px }

.adm-side-foot{ display:grid; gap:4px }
.adm-side-foot .adm-btn{ justify-content:flex-start; gap:10px }
.adm-side-foot .adm-btn svg{ width:16px; height:16px; flex-shrink:0 }

/* toolbar: search and options above a list */
.adm-toolbar{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:12px }
.adm-search{ position:relative; flex:1 1 280px; max-width:420px; display:block }
.adm-search svg{ position:absolute; left:12px; top:50%; width:16px; height:16px; transform:translateY(-50%); color:var(--a-ink-3); pointer-events:none }
.adm-search .adm-input{ padding-left:36px }
.adm-check{ display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--a-ink-2); cursor:pointer; min-height:36px }
.adm-check input{ width:16px; height:16px; accent-color:var(--a-brand) }

/* segmented control: channel, film status */
.adm-seg{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:6px; margin-bottom:16px }
.adm-seg button{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left;
  padding:10px 12px; border:1px solid var(--a-line-2); border-radius:var(--a-r-sm); background:#fff;
  cursor:pointer; color:var(--a-ink); font-size:13.5px; min-height:44px; transition:.15s }
.adm-seg button span{ font-size:11.5px; color:var(--a-ink-3) }
.adm-seg button:hover{ border-color:var(--a-brand) }
.adm-seg button.on{ border-color:var(--a-brand); background:var(--a-brand-soft); box-shadow:inset 0 0 0 1px var(--a-brand) }
.adm-seg button.on b, .adm-seg button.on span{ color:var(--a-brand) }
.adm-seg.sm{ grid-auto-columns:max-content; margin:0 }
.adm-seg.sm button{ padding:6px 11px; min-height:32px; font-size:12.5px; align-items:center }
.adm-seg button:disabled{ opacity:.55; cursor:progress }

/* pills */
.adm-pill.soon{ background:#EEF1F7; color:#4A5266; margin-left:6px }
.adm-pill.ch-online{ background:#EAF2FF; color:#1D4ED8 }
.adm-pill.ch-counter{ background:#E4F5EC; color:#0F7B4F }
.adm-pill.ch-call{ background:#FDF3E3; color:#8A5A00 }
.adm-fine.warn{ color:#8A5A00; margin-top:6px }
.adm-table tr.is-past td{ color:var(--a-ink-3) }

/* a film name as a button, in tables */
.adm-filmlink{ display:flex; align-items:center; gap:10px; background:none; border:0; padding:0; cursor:pointer;
  text-align:left; color:inherit; font:inherit; min-height:40px; max-width:320px }
.adm-filmlink img{ width:32px; height:48px; object-fit:cover; border-radius:5px; flex-shrink:0; background:var(--a-sunk) }
.adm-filmlink b{ font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.adm-filmlink:hover b, .adm-filmlink:focus-visible b{ color:var(--a-brand); text-decoration:underline; text-underline-offset:2px }
.adm-table .film img{ height:48px; object-fit:cover; background:var(--a-sunk) }

/* new booking */
.adm-sell-pick .adm-field{ margin-bottom:14px }
.adm-sell-pick .adm-field:last-child{ margin-bottom:0 }
.adm-sell-pick select.adm-input{ max-width:420px }
.adm-sell{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; margin-top:16px; align-items:start }
.adm-sell-map{ min-width:0; overflow:hidden }
.adm-sell-screen{ text-align:center; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--a-ink-3); padding:8px 0 14px; border-top:3px solid var(--a-brand); border-radius:40% 40% 0 0 / 14px 14px 0 0; margin:0 10% 12px }
.adm-sell-map .seat-scroll{ overflow-x:auto; padding-bottom:6px }
.adm-sell-legend{ display:flex; gap:16px; flex-wrap:wrap; font-size:12px; color:var(--a-ink-3); margin-top:12px; justify-content:center }
.adm-sell-legend span{ display:inline-flex; align-items:center; gap:6px }
.adm-sell-legend .k{ width:14px; height:12px; border-radius:3px; background:#C9CCD4 }
.adm-sell-legend .k.on{ background:#FF5A1F }
.adm-sell-legend .k.gone{ background:transparent; box-shadow:inset 0 0 0 1.5px rgba(20,22,28,.18) }
.adm-sell-order{ position:sticky; top:0 }
.adm-sell-order h3{ margin:0 0 12px }
.adm-sell-line{ display:flex; justify-content:space-between; gap:12px; font-size:13px; color:var(--a-ink-2); padding:6px 0 }
.adm-sell-line b{ color:var(--a-ink); text-align:right }
.adm-sell-total{ display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid var(--a-line);
  margin:8px 0 14px; padding-top:12px; font-size:14px }
.adm-sell-total b{ font-family:Outfit,sans-serif; font-size:24px }
.adm-code{ font-family:"Courier New",monospace; font-weight:700; font-size:40px; letter-spacing:.2em; text-align:center;
  padding:14px; margin:6px 0 12px; background:var(--a-sunk); border-radius:var(--a-r-sm) }

/* check in */
.adm-verify{ max-width:560px }
.adm-verify > .adm-btn{ margin-bottom:14px }
#admScanBox{ margin-bottom:14px; display:grid; gap:8px }
#admScanBox[hidden]{ display:none }
#admCam{ width:100%; border-radius:var(--a-r-sm); background:#000; aspect-ratio:4/3; object-fit:cover }
.adm-code-input{ font-size:26px; letter-spacing:.3em; text-align:center; margin-bottom:10px; min-height:54px }
.adm-verdict{ border-radius:var(--a-r-sm); padding:12px 14px; font-size:14px; font-weight:600; margin:14px 0 10px;
  background:var(--a-sunk); color:var(--a-ink-2) }
.adm-verdict.good{ background:#E4F5EC; color:#0F7B4F }
.adm-verdict.bad{ background:#FDECEF; color:#A12A3B }
.adm-verdict.warn{ background:#FDF3E3; color:#8A5A00; font-weight:500 }
.adm-found{ border:1px solid var(--a-line); border-radius:var(--a-r); padding:16px; margin-top:10px }
.adm-found-head{ display:flex; gap:12px; align-items:flex-start; margin-bottom:14px }
.adm-found-head img{ width:48px; height:72px; object-fit:cover; border-radius:6px; background:var(--a-sunk) }
.adm-found-head .grow{ flex:1; min-width:0; display:grid; gap:2px }
.adm-found-head .grow span{ font-size:12.5px; color:var(--a-ink-3) }
.adm-found-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px }
.adm-found-grid span{ display:block; font-size:11.5px; color:var(--a-ink-3) }
.adm-found-grid b{ font-size:14.5px }
.adm-found .adm-btn.block{ min-height:48px; font-size:15px }

/* film editor */
.adm-film-form{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:16px; margin-bottom:16px; align-items:start }
.adm-film-poster{ display:grid; gap:12px }
.adm-film-poster img{ width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:var(--a-r-sm); background:var(--a-sunk) }
.adm-film-poster .adm-field{ margin:0 }
.adm-upload{ position:relative; overflow:hidden }
.adm-upload input{ position:absolute; inset:0; opacity:0; cursor:pointer }
.adm-upload:focus-within{ box-shadow:0 0 0 3px var(--a-brand-soft) }
textarea.adm-input{ resize:vertical; min-height:96px; font:inherit; line-height:1.5 }
.adm-edit-shows .adm-input.sm{ min-width:0 }
.adm-edit-shows td{ vertical-align:top }
.adm-err[hidden]{ display:none }

@media (max-width:900px){
  .adm-side-foot{ display:flex; gap:4px }
  .adm-side-foot .adm-btn{ padding:8px 10px }
  .adm-side-foot .adm-btn span{ display:none }
  .adm-sell{ grid-template-columns:minmax(0,1fr) }
  .adm-sell-order{ position:static }
  .adm-film-form{ grid-template-columns:minmax(0,1fr) }
  .adm-film-poster img{ max-width:180px; margin:0 auto }
}
@media (max-width:560px){
  .adm-head{ gap:10px; margin-bottom:16px }
  .adm-head h1{ font-size:21px }
  .adm-card{ padding:14px }
  .adm-seg{ grid-auto-flow:row; grid-auto-columns:auto }
  .adm-seg.sm{ grid-auto-flow:column }
  .adm-code{ font-size:30px }
  .adm-search{ max-width:none }
}

/* ── console on a phone ────────────────────────────────────
   Seven tabs don't fit in one row at 375px. Scrolled sideways, the current
   tab and Log out were off-screen with nothing to say they were there. On a
   phone the brand and the two actions take the first row and every tab sits
   in a grid below — all of it visible, nothing to discover by swiping. */
@media (max-width:560px){
  .adm-side{ flex-wrap:wrap; overflow:visible; row-gap:8px; padding:10px 10px 8px }
  .adm-brand{ order:1 }
  .adm-side-foot{ order:2 }
  .adm-nav{ order:3; width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px }
  .adm-nav button{ flex-direction:column; justify-content:center; gap:3px; padding:7px 2px; min-height:52px;
    font-size:11px; line-height:1.15; text-align:center; white-space:normal }
  .adm-nav button svg{ display:block; width:18px; height:18px }
  .adm-side-foot .adm-btn{ min-height:38px; min-width:40px }
}
