/* People and mics · page styles (B3, 2026-10-16, Rick).
   Tokens only (tokens.css). Page-local tokens are prefixed --local-* and built FROM tokens (no raw hex):
   --local-primary-deep  the darker-downward stop of the tactile primary (light: --primary-hover; dark: --primary-active)
   --local-glow          the selected glow (Hub Blue α .45 light, Sky α .5 dark)
   --local-dir           +1 LTR / −1 RTL, multiplies every horizontal translate so thumbs mirror
   --local-scrim         ink veil for text on media / the field (dark mode deepens the A8 field) */
:root,[data-theme="light"]{
  --local-primary-deep: var(--primary-hover);
  --local-glow: color-mix(in srgb, var(--primary) 45%, transparent);
  --local-key-hi: color-mix(in srgb, var(--ph-white) 90%, transparent);
  --local-key-lo: color-mix(in srgb, var(--ph-ink) 9%, transparent);
  --local-key-drop: 0 1px 2px color-mix(in srgb, var(--ph-ink) 16%, transparent), 0 6px 14px color-mix(in srgb, var(--ph-ink) 9%, transparent);
  --local-field-veil: transparent;
  --local-dir: 1;
}
[data-theme="dark"]{
  --local-primary-deep: var(--primary-active);
  --local-glow: color-mix(in srgb, var(--ph-sky) 50%, transparent);
  --local-key-hi: color-mix(in srgb, var(--ph-white) 10%, transparent);
  --local-key-lo: color-mix(in srgb, var(--ph-ink) 60%, transparent);
  --local-key-drop: 0 0 0 transparent;
  --local-field-veil: color-mix(in srgb, var(--ph-ink) 48%, transparent);
}
[dir="rtl"]{ --local-dir: -1; }

/* ── frame scaffold: one mini booking step per option ── */
.frame.pm{display:flex;flex-direction:column;gap:16px}
.pm .kicker{margin:0;font-size:var(--fs-label);font-weight:600;color:var(--fg-subtle);letter-spacing:.02em}
.pm h2{margin-top:-8px}
.pm .hint{margin:-10px 0 0;font-size:var(--fs-ui);color:var(--fg-muted)}
[dir="rtl"] .pm h2,[dir="rtl"] .pm .kicker{font-family:var(--font-arabic);font-stretch:normal;letter-spacing:0}
.pm button{font:inherit;color:inherit;margin:0;-webkit-tap-highlight-color:transparent;cursor:pointer;touch-action:manipulation}
.pm .ic{width:20px;height:20px;flex:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
.caphint{margin:0;display:flex;gap:8px;align-items:center;min-height:24px;font-size:var(--fs-ui);color:var(--fg-muted)}
.caphint .ic{color:var(--primary-ink)}
.caphint span{transition:opacity var(--d-180) var(--ease-brand)}
.caphint.swap span{opacity:0}
.summary{margin-top:auto;display:flex;gap:10px;align-items:center;min-height:56px;padding:12px 16px;border-radius:var(--r-tile);background:var(--surface);border:1px solid var(--line-subtle);box-shadow:var(--shadow-1);font-size:var(--fs-ui);font-weight:600;line-height:1.35}
.summary .ic{color:var(--primary-ink)}
[data-theme="dark"] .summary{background:var(--surface-raised);border-color:var(--line)}
bdi{unicode-bidi:isolate}

/* ── shared press physics (transform only; the shadow swaps as a state, never transitions) ── */
.chip,.step-btn,.seg-btn,.gcard,.pp-btn,.key{transition:transform var(--d-180) var(--ease-brand),background-color var(--d-180) var(--ease-brand),border-color var(--d-180) var(--ease-brand),color var(--d-180) var(--ease-brand)}
.chip:active,.step-btn:active:not(:disabled),.seg-btn:active,.gcard:active,.pp-btn:active{transform:scale(var(--press-scale));transition-duration:var(--d-120)}

/* ═════ Option 1 · Mic chips ═════ */
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 8px;padding:4px 0}
.chip{display:inline-flex;align-items:center;gap:7px;height:52px;padding:0 14px 0 10px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1)}
[dir="rtl"] .chip{padding:0 10px 0 14px}
[data-theme="dark"] .chip{background:var(--surface-raised);border-color:var(--line-strong)}
.chip::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(120% 100% at 50% 0%,color-mix(in srgb,var(--ph-white) 55%,transparent),transparent 62%)}
.chip .dot{width:20px;height:20px;flex:none;border-radius:50%;border:1.5px solid var(--line-strong);display:grid;place-items:center;transition:background-color var(--d-180),border-color var(--d-180)}
.chip .dot svg{width:14px;height:14px;stroke:var(--primary-fill);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.4);transition:transform var(--d-260) var(--ease-brand),opacity var(--d-180)}
.chip .n{font:700 18px/1 var(--font-display);font-stretch:var(--font-display-stretch);min-width:12px;text-align:center}
.chip .mics{display:flex;color:var(--fg-muted)}
.chip .mics svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;fill:none;margin-inline-start:-5px}
.chip .mics svg:first-child{margin-inline-start:0}
.chip[aria-checked="true"]{background:linear-gradient(180deg,var(--primary-fill),var(--local-primary-deep));border-color:transparent;color:var(--primary-on);box-shadow:var(--tactile-shadow)}
.chip[aria-checked="true"]::before{opacity:.22}
.chip[aria-checked="true"] .dot{background:var(--primary-on);border-color:var(--primary-on)}
.chip[aria-checked="true"] .dot svg{opacity:1;transform:none}
.chip[aria-checked="true"] .mics{color:var(--primary-on)}
.chip[aria-checked="true"] .mics svg{fill:currentColor;animation:mic-pop var(--d-400) var(--ease-brand) both;animation-delay:calc(var(--i) * 45ms)}
.chip.lit::before{animation:sheen 640ms var(--ease-brand)}
@keyframes sheen{0%{opacity:0}30%{opacity:1}100%{opacity:.22}}
@keyframes mic-pop{from{transform:translateY(5px) scale(.6);opacity:.2}to{transform:none;opacity:1}}

/* ═════ Option 2 · Stepper + seats ═════ */
.stepper{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line-subtle);box-shadow:var(--shadow-1)}
[data-theme="dark"] .stepper{background:var(--surface-raised);border-color:var(--line)}
.step-btn{width:var(--t-button-lg);height:var(--t-button-lg);flex:none;border-radius:50%;border:1px solid var(--line);background:var(--canvas);display:grid;place-items:center;color:var(--fg)}
.step-btn svg{width:24px;height:24px;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.step-btn[data-d="1"]{background:linear-gradient(180deg,var(--primary-fill),var(--local-primary-deep));color:var(--primary-on);border-color:transparent;box-shadow:var(--tactile-shadow)}
.step-btn:active:not(:disabled)[data-d="1"]{box-shadow:var(--tactile-pressed)}
.step-btn:disabled{cursor:not-allowed;background:var(--surface-sunken);color:var(--fg-disabled);border-color:var(--line-subtle);box-shadow:none}
.step-val{display:flex;align-items:baseline;justify-content:center;gap:8px;min-width:0}
.step-val .num{font:700 44px/1 var(--font-display);font-stretch:var(--font-display-stretch);display:inline-block}
.step-val .num.bump{animation:bump var(--d-260) var(--ease-brand)}
@keyframes bump{from{transform:scale(.86);opacity:.4}to{transform:none;opacity:1}}
.step-val .unit{font-size:var(--fs-body);font-weight:600;color:var(--fg-muted)}
.table{position:relative;padding:4px 6px 0}
.seats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.seat{display:flex;flex-direction:column;align-items:center;gap:2px}
.seat .bust{width:44px;height:44px;stroke-width:1.5;stroke-linejoin:round;transition:color var(--d-260),fill var(--d-260)}
.seat .bust{color:var(--line-strong);fill:transparent;stroke:currentColor;opacity:.75}
.seat .smic{width:24px;height:24px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;fill:currentColor;color:var(--primary-ink);opacity:0;transform:translateY(10px) scale(.5);transition:transform var(--d-400) var(--ease-brand),opacity var(--d-260)}
.seat.on .bust{color:var(--primary-ink);fill:var(--primary-muted);opacity:1}
.seat .spot{width:6px;height:6px;border-radius:50%;background:var(--line-strong);margin-top:-15px;transition:opacity var(--d-180)}
.seat.on .spot{opacity:0}
.seat.on .smic{opacity:1;transform:none}
.seat.pop .bust{animation:seat-pop var(--d-400) var(--ease-brand)}
@keyframes seat-pop{0%{transform:scale(.7)}60%{transform:scale(1.08)}100%{transform:none}}
.desk{position:absolute;left:0;right:0;bottom:-4px;height:26px;border-radius:var(--r-chip);background:var(--surface-sunken);border:1px solid var(--line-subtle)}
[data-capline].at-max{color:var(--fg)}
[data-capline].at-max .ic{color:var(--accent)}

/* ═════ Option 3 · Segmented ═════ */
.seg{position:relative;display:grid;grid-template-columns:repeat(5,1fr);padding:4px;height:60px;border-radius:var(--r-pill);background:var(--surface-sunken);border:1px solid var(--line-subtle)}
.seg-thumb{position:absolute;top:4px;bottom:4px;inset-inline-start:4px;width:calc((100% - 8px) / 5);border-radius:var(--r-pill);background:var(--surface-raised);box-shadow:var(--shadow-2);transform:translateX(calc(var(--i, 0) * 100% * var(--local-dir)));transition:transform var(--d-260) var(--ease-brand)}
[data-theme="dark"] .seg-thumb{background:var(--surface-active);border:1px solid var(--line-strong)}
.seg-btn{position:relative;z-index:1;border:0;background:transparent;border-radius:var(--r-pill);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:var(--t-min);color:var(--fg-muted)}
.seg-btn .n{font:700 20px/1.1 var(--font-display);font-stretch:var(--font-display-stretch)}
.seg-btn[aria-checked="true"]{color:var(--primary-ink)}
.rooms-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:var(--fs-ui);font-weight:600}
.rooms-count{font-weight:500;color:var(--fg-muted)}
.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.room{position:relative;display:flex;flex-direction:column;border-radius:var(--r-tile);background:var(--surface);border:1px solid var(--line-subtle);overflow:hidden;box-shadow:var(--shadow-1);transition:opacity var(--d-260) var(--ease-brand),transform var(--d-260) var(--ease-brand)}
[data-theme="dark"] .room{background:var(--surface-raised);border-color:var(--line)}
.room .av{display:block;width:100%;height:56px;object-fit:cover;transition:filter var(--d-260),opacity var(--d-260)}
.room .mono{display:grid;place-items:center;background:var(--field-gradient);color:var(--primary-on);font:700 22px/1 var(--font-display);font-stretch:var(--font-display-stretch)}
.room .rbody{display:flex;flex-direction:column;padding:6px 10px 8px;line-height:1.25}
.room .rname{font-size:var(--fs-ui);font-weight:600}
.room .seats-n{font-size:var(--fs-ui);color:var(--fg-muted)}
.room .ok{position:absolute;top:6px;inset-inline-end:6px;width:24px;height:24px;border-radius:50%;background:var(--success);display:grid;place-items:center;box-shadow:0 0 0 2px var(--surface);transition:transform var(--d-260) var(--ease-brand),opacity var(--d-180)}
.room .ok svg{width:14px;height:14px;stroke:var(--fg-inverse);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;fill:none}
[data-theme="dark"] .room .ok svg{stroke:var(--ph-ink)}
.room.no{background:transparent;border-style:dashed;border-color:var(--line-strong);box-shadow:none;transform:scale(.96)}
.room.no .av{filter:grayscale(1);opacity:.45}
.room.no .ok{opacity:0;transform:scale(.4)}
.room.no .rname{color:var(--fg-muted)}
.room.no .seats-n{color:var(--fg-muted)}

/* ═════ Option 4 · Glass cards over the A8 field ═════ */
.frame.field{border-color:transparent;background:
  var(--grain),
  linear-gradient(var(--local-field-veil),var(--local-field-veil)),
  radial-gradient(60% 40% at 85% 62%,color-mix(in srgb,var(--ph-white) 55%,transparent),transparent 70%),
  radial-gradient(45% 30% at 12% 88%,color-mix(in srgb,var(--ph-sky) 90%,transparent),transparent 70%),
  linear-gradient(170deg,var(--primary-active) 0%,var(--primary-fill) 52%,var(--ph-sky) 100%)} /* text sits on the deep top: white ≥5.9:1 */
.field .on-field{color:var(--primary-on)}
.field .hint.on-field{color:var(--primary-on)}
.gcards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gcard,.glass{background:var(--glass-fill);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));border:1px solid var(--glass-stroke);box-shadow:var(--glass-shadow)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.gcard,.glass{background:var(--surface)}}
.gcard{position:relative;text-align:start;border-radius:20px;padding:14px;display:flex;flex-direction:column;gap:6px;min-height:150px;color:var(--fg)}
.gcard .g-name{font:700 18px/1.2 var(--font-display);font-stretch:var(--font-display-stretch);padding-inline-end:28px}
[dir="rtl"] .gcard .g-name{font-family:var(--font-arabic);font-stretch:normal}
.gcard .g-ppl{font-size:var(--fs-ui);color:var(--fg-muted)}
.gcard .g-mics{display:flex;gap:2px;color:var(--primary-ink);margin-top:2px}
.gcard .g-mics svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;fill:none}
.gcard .g-mics svg.opt{opacity:.45;stroke-dasharray:2 2}
.gcard .g-rooms{margin-top:auto;font-size:var(--fs-ui);font-weight:600;line-height:1.3}
.gcard .badge{position:absolute;top:12px;inset-inline-end:12px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--fg-subtle);background:transparent;transition:background-color var(--d-180),border-color var(--d-180)}
.gcard .badge svg{width:16px;height:16px;stroke:var(--primary-on);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:0;transform:scale(.4);transition:transform var(--d-260) var(--ease-brand),opacity var(--d-180)}
.gcard[aria-checked="true"]{background:var(--surface);border-color:transparent;box-shadow:0 0 0 2px var(--primary),0 0 24px 2px var(--local-glow);transform:translateY(-2px)}
[data-theme="dark"] .gcard[aria-checked="true"]{background:var(--surface-raised);box-shadow:0 0 0 2px var(--ph-sky),0 0 24px 2px var(--local-glow)}
.gcard[aria-checked="true"] .badge{background:var(--primary-fill);border-color:var(--primary-fill)}
.gcard[aria-checked="true"] .badge svg{opacity:1;transform:none}
.gcard[aria-checked="true"] .g-mics svg:not(.opt){fill:currentColor}
.panel-pick{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--d-260) var(--ease-brand),opacity var(--d-260);opacity:0;margin-top:-16px}
.panel-pick.open{grid-template-rows:1fr;opacity:1;margin-top:0}
.panel-inner{overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:0}
.panel-pick.open .panel-inner{padding:6px 6px 6px 16px;border-radius:var(--r-pill);background:var(--glass-fill);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));border:1px solid var(--glass-stroke)}
[dir="rtl"] .panel-pick.open .panel-inner{padding:6px 16px 6px 6px}
.panel-q{font-size:var(--fs-ui);font-weight:600}
.pp{display:flex;gap:6px}
.pp-btn{min-height:var(--t-min);min-width:var(--t-min);padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);font-weight:600;font-size:var(--fs-ui);display:inline-flex;gap:6px;align-items:center}
[data-theme="dark"] .pp-btn{background:var(--surface-raised);border-color:var(--line-strong)}
.pp-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;display:none}
.pp-btn[aria-checked="true"]{background:var(--primary-fill);color:var(--primary-on);border-color:transparent}
.pp-btn[aria-checked="true"] svg{display:block}
.field .summary.glass{color:var(--fg);box-shadow:var(--glass-shadow)}

/* ═════ Option 5 · Tactile keys + rolling numeral ═════ */
.readout{display:flex;align-items:center;gap:14px;padding:4px 4px 0}
.roll{display:inline-flex;font:700 88px/1 var(--font-display);font-stretch:var(--font-display-stretch);color:var(--primary-ink);height:1em;overflow:hidden;letter-spacing:-.02em}
.roll .strip{display:flex;flex-direction:column;transform:translateY(calc(var(--n, 0) * -1em));transition:transform 520ms var(--ease-brand)}
.roll .strip span{display:block;height:1em;line-height:1}
.readout-txt{display:flex;flex-direction:column;gap:2px}
.readout-unit{font:700 var(--fs-h2)/1.1 var(--font-display);font-stretch:var(--font-display-stretch)}
[dir="rtl"] .readout-unit{font-family:var(--font-arabic);font-stretch:normal}
.readout-sub{font-size:var(--fs-ui);color:var(--fg-muted)}
.keys{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding-bottom:4px}
.key{position:relative;height:72px;border-radius:18px;border:1px solid var(--line-subtle);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:linear-gradient(180deg,var(--surface-raised),var(--surface-hover));
  box-shadow:inset 0 1px 0 var(--local-key-hi),inset 0 -3px 0 var(--local-key-lo),var(--local-key-drop)}
[data-theme="dark"] .key{border-color:var(--line-strong);background:linear-gradient(180deg,var(--surface-active),var(--surface-raised))}
.key .n{font:700 24px/1 var(--font-display);font-stretch:var(--font-display-stretch)}
.key .led{width:16px;height:16px;display:grid;place-items:center}
.key .led::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid var(--line-strong)}
.key .led svg{display:none;width:16px;height:16px;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none}
.key:active{transform:translateY(2px) scale(var(--press-scale));box-shadow:inset 0 2px 6px var(--local-key-lo);transition-duration:var(--d-120)}
.key[aria-checked="true"]{background:linear-gradient(180deg,var(--primary-fill),var(--local-primary-deep));color:var(--primary-on);border-color:transparent;box-shadow:var(--tactile-shadow)}
.key[aria-checked="true"]:active{box-shadow:var(--tactile-pressed)}
.key[aria-checked="true"] .led::before{display:none}
.key[aria-checked="true"] .led svg{display:block}
.key.lit::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(90% 80% at 50% 0%,color-mix(in srgb,var(--ph-white) 60%,transparent),transparent 65%);animation:keylit 600ms var(--ease-brand) forwards}
@keyframes keylit{0%{opacity:0}30%{opacity:1}100%{opacity:.18}}

/* ── reduced motion: decoration off, state stays (L22) ── */
@media (prefers-reduced-motion:reduce){
  .frame.pm *,.frame.pm *::before,.frame.pm *::after{animation:none!important;transition:none!important}
}

/* ── lab shell at a 390 px phone: the shell's 16 px side padding + a 390 px column overflow the screen by 32 px.
   Page-local override (the shell file is not ours to edit): the column runs edge to edge on a phone. ── */
@media (max-width:421px){
  .options{padding-inline:0;grid-template-columns:390px;justify-content:start}
  .option .label{padding-inline:16px}
}

/* label: the technique line on its own row */
.option .label code{display:block;margin-top:6px;line-height:1.5}
