/* meeting/meeting.css — THE HELD LINE grammar, componentized (MM-A1 P2).
   Base: dev-cass3's TP-029R winner (night-observatory: deep green-black field, bone text,
   jade structure, amber = the honesty lane only). Fraunces = meeting language;
   IBM Plex Mono = machine truth. Class-based (components), not id-based (demo). */
html.mh-fixture,body.mh-fixture{margin:0;padding:0;background:#050807;min-height:100%}
.mh-stage{
  --mh-field:#090d0c; --mh-panel:#0f1513; --mh-panel2:#121a17; --mh-hair:#1d2823; --mh-hair2:#27352f;
  --mh-bone:#e9e6dd; --mh-mut:#8b958d; --mh-dim:#5c665f;
  --mh-jade:#7fd4b4; --mh-jade-deep:#153d2f; --mh-jade-glow:rgba(127,212,180,.35);
  --mh-amber:#e8b45a; --mh-amber-deep:#3a2c14;
  --mh-slate:#8fb6d9; --mh-cyan:#7fd0d4; --mh-emerald:#4ade80;
  --mh-ser:"Fraunces",serif; --mh-mono:"IBM Plex Mono",monospace; --mh-sans:"IBM Plex Sans",sans-serif;
}

.mh-stage{position:relative;width:390px;height:844px;max-height:100dvh;margin:0 auto;background:
  radial-gradient(120% 90% at 50% -10%,#101816 0%,var(--mh-field) 55%),var(--mh-field);
  overflow:hidden;display:flex;flex-direction:column;box-shadow:0 0 80px rgba(0,0,0,.8);
  color:var(--mh-bone);font-family:var(--mh-sans)}
@media (max-width:420px){ .mh-stage{width:100vw;box-shadow:none} }
.mh-stage::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}

/* ── HUD strip ── */
.mh-strip{position:relative;z-index:5;display:flex;align-items:center;gap:8px;padding:14px 64px 10px 12px}
.mh-led{width:9px;height:9px;border-radius:50%;background:var(--mh-cyan);box-shadow:0 0 10px var(--mh-cyan);animation:mh-ledbreath 3.4s ease-in-out infinite}
.mh-active .mh-led{background:var(--mh-emerald);box-shadow:0 0 12px var(--mh-emerald);animation:mh-ledpulse 1s ease-in-out infinite}
@keyframes mh-ledbreath{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes mh-ledpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}
.mh-micro{font:500 10.5px/1 var(--mh-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mh-mut);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
.mh-strip .sp{flex:1}
.mh-clock{font:400 11px var(--mh-mono);color:var(--mh-dim)}
.mh-capchip{font:500 9px/1 var(--mh-mono);letter-spacing:.1em;color:var(--mh-amber);border:1px solid #4a3a1c;border-radius:99px;padding:4px 6px;text-transform:uppercase;white-space:nowrap;flex:0 0 auto}
.mh-capchip.off{color:var(--mh-dim);border-color:var(--mh-hair)}

/* ── the held line ── */
.mh-lineblock{position:relative;z-index:4;padding:16px 26px 6px}
.mh-mtitle{font:500 21px/1.2 var(--mh-ser);letter-spacing:.01em;opacity:.94;margin-bottom:3px}
.mh-msub{font:400 10.5px var(--mh-mono);color:var(--mh-dim);letter-spacing:.06em;margin-bottom:14px}
.mh-breath,.wave-slot{position:relative;height:24px;display:flex;align-items:center;justify-content:center;margin-top:4px;overflow:hidden}
.mh-wave-canvas,#audioRibbon{display:block;width:50%;height:24px;margin-inline:auto}
.mh-breath .mh-flat{opacity:.35}
/* TP-072 a1: canvas is the live instrument — static flat/bars must not mask it */
.wave-slot .mh-flat,.wave-slot .mh-bars{display:none !important}
.wave-slot #audioRibbon,.wave-slot .mh-wave-canvas{opacity:1}
.mh-breath .mh-wave-canvas{position:relative;z-index:2}
.mh-flat{position:absolute;left:0;right:0;top:50%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--mh-jade) 18%,var(--mh-jade) 82%,transparent);
  box-shadow:0 0 18px var(--mh-jade-glow);animation:mh-breathe 4.2s ease-in-out infinite;transform-origin:center}
@keyframes mh-breathe{0%,100%{transform:scaleX(.62);opacity:.5}50%{transform:scaleX(1);opacity:1}}
.mh-flat.tick{animation:none;transform:scaleX(1);opacity:1;box-shadow:0 0 30px var(--mh-jade-glow)}
.mh-bars{display:none;gap:3px;align-items:center;height:40px}
.mh-active .mh-bars{display:flex}
.mh-active .mh-flat{display:none}
.mh-bars i{width:3px;border-radius:2px;background:var(--mh-emerald);height:4px;opacity:.9}
.mh-speaking .mh-bars i{animation:mh-wave .62s ease-in-out infinite alternate}
@keyframes mh-wave{from{height:3px}to{height:var(--h,26px)}}
.mh-whisper{height:32px;margin-top:6px;text-align:center;overflow:hidden}
.mh-whisper .w{font:400 11.5px var(--mh-mono);color:var(--mh-dim);opacity:0;transform:translateY(8px);transition:all .5s}
.mh-whisper .w.on{opacity:.85;transform:none}
.mh-whisper .w b{color:var(--mh-mut);font-weight:500}
.mh-whisper .w .rl{color:var(--mh-jade)}
/* the silence-beat (graft 1): a deliberate, VISIBLE silence — the law made felt */
.mh-whisper .w.silence{color:var(--mh-dim);letter-spacing:.18em;font-style:italic}

/* ── docket rail (graft 2) ── */
.mh-docket{position:relative;z-index:4;display:flex;align-items:center;gap:5px;padding:4px 16px 10px;overflow:hidden}
.mh-docket .step{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.mh-docket .step + .step::before{content:"";width:7px;height:1px;background:var(--mh-hair2);margin:0 4px}
.mh-docket .lamp{width:7px;height:7px;border-radius:50%;background:var(--mh-hair2);transition:all .4s}
.mh-docket .lbl{font:500 8.5px/1 var(--mh-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mh-dim);transition:color .4s}
.mh-docket .step.on .lamp{background:var(--mh-jade);box-shadow:0 0 8px var(--mh-jade-glow);animation:mh-ledbreath 2.2s ease-in-out infinite}
.mh-docket .step.on .lbl{color:var(--mh-jade)}
.mh-docket .step.on[data-s="holding"] .lamp,.mh-docket .step.on[data-s="raised"] .lamp{background:var(--mh-amber);box-shadow:0 0 8px rgba(232,180,90,.5)}
.mh-docket .step.on[data-s="holding"] .lbl,.mh-docket .step.on[data-s="raised"] .lbl{color:var(--mh-amber)}
.mh-docket .step.done .lamp{background:var(--mh-mut);animation:none;box-shadow:none}
.mh-docket .step.done .lbl{color:var(--mh-mut)}
.mh-docket .sp{flex:1}
.mh-counts{display:flex;gap:7px;font:400 10px var(--mh-mono);color:var(--mh-dim);white-space:nowrap}
.mh-counts b{color:var(--mh-mut);font-weight:500}

/* ── card stream (cards fall from the line) ── */
.mh-stream{position:relative;z-index:3;flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 16px 120px;scrollbar-width:none}
.mh-stream::-webkit-scrollbar{display:none}
.mcard{background:linear-gradient(180deg,var(--mh-panel2),var(--mh-panel));border:1px solid var(--mh-hair);
  border-radius:11px;padding:12px 14px 11px;margin-bottom:10px;opacity:0;transform:translateY(-14px);
  transition:opacity .45s,transform .45s;position:relative}
.mcard.on{opacity:1;transform:none}
.mcard{padding:9px 12px 9px;margin-bottom:8px}
.mcard .card-head{margin:0 0 3px;color:var(--mh-bone);line-height:1.25}
.mcard .card-tag,.mcard .tag{font:500 7.2px/1 var(--mh-mono);letter-spacing:.13em;text-transform:uppercase;color:var(--mh-mut);
  display:inline-flex;min-height:17px;margin:0 5px 0 0;padding:3px 5px 2px;vertical-align:top;align-items:center;
  border:1px solid var(--mh-hair2);border-radius:3px}
.mcard .card-head h3,.mcard h3.card-title,.mcard .card-head h3{display:inline;font:500 14.5px/1.35 var(--mh-ser);color:var(--mh-bone);margin:0}
.mcard > h3{font:500 14.5px/1.35 var(--mh-ser);color:var(--mh-bone);margin-bottom:4px} /* legacy non-head cards */
.mcard p{font:400 12px/1.5 var(--mh-sans);color:var(--mh-mut);overflow-wrap:break-word;margin:0}
.mcard p{font:400 12px/1.5 var(--mh-sans);color:var(--mh-mut);overflow-wrap:break-word}
.mcard .prov{margin-top:7px;display:flex;flex-wrap:wrap;gap:5px}
.mcard .prov::before{content:"◈";color:var(--mh-jade);opacity:.7;font-size:10px;align-self:center}
.mcard .pvchip{font:400 9.5px var(--mh-mono);color:var(--mh-dim);letter-spacing:.03em;border:1px solid var(--mh-hair);border-radius:99px;padding:2px 8px}
.mcard .chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.mcard .chip{font:500 10px var(--mh-mono);color:var(--mh-mut);border:1px solid var(--mh-hair2);border-radius:99px;padding:3px 9px}
.mcard .chip.j{color:var(--mh-jade);border-color:var(--mh-jade-deep)}
.mcard .chip.a{color:var(--mh-amber);border-color:var(--mh-amber-deep)}
.mcard .chip.s{color:var(--mh-slate);border-color:#24384a}
.mcard.decision{border-left:3px solid var(--mh-jade)}
.mcard.decision .tag{color:var(--mh-jade);border-color:var(--mh-jade-deep)}
.mcard.memory{border-left:3px solid #2c4a63}
.mcard.memory .tag{color:var(--mh-slate);border-color:#24384a}
.mcard.flag{border-left:3px solid var(--mh-amber)}
.mcard.flag .tag{color:var(--mh-amber);border-color:var(--mh-amber-deep)}
.mcard.notice{border:1px solid #4a3a1c;background:linear-gradient(180deg,#181307,var(--mh-panel))}
.mcard.notice .tag{color:var(--mh-amber);border-color:var(--mh-amber-deep)}
.mcard.suggest{border:1px solid var(--mh-jade-deep)}
.mcard.suggest.pulse{animation:mh-ring 1s ease-out 3}
@keyframes mh-ring{0%{box-shadow:0 0 0 0 var(--mh-jade-glow)}70%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 0 transparent}}
.mcard.suggest .tag{color:var(--mh-jade);border-color:var(--mh-jade-deep)}
.mcard.folded{opacity:.55}
.mcard.folded h3{color:var(--mh-mut)}
.mcard .rlabel{display:inline-block;font:500 10px var(--mh-mono);color:var(--mh-jade);border:1px dashed var(--mh-jade-deep);
  border-radius:99px;padding:3px 9px;margin-top:8px}

/* ── speech bubble (mounts ONLY in ACTIVE — in silent there is no speech path at all) ── */
.mh-bubble{position:absolute;z-index:6;left:26px;right:26px;top:196px;background:linear-gradient(180deg,#12241c,#0e1a15);
  border:1px solid var(--mh-jade-deep);border-radius:14px 14px 14px 3px;padding:13px 15px;display:none;
  box-shadow:0 12px 40px rgba(0,0,0,.5)}
.mh-active .mh-bubble.on{display:block}
.mh-bubble .who{font:500 9px/1 var(--mh-mono);letter-spacing:.18em;color:var(--mh-jade);text-transform:uppercase;margin-bottom:6px}
.mh-bubble .say{font:400 14px/1.5 var(--mh-ser);color:var(--mh-bone)}
.mh-bubble .cut{color:var(--mh-dim)}

/* ── bottom bar: the mute-slot dial ── */
.mh-bottom{position:absolute;z-index:7;left:0;right:0;bottom:0;padding:12px 16px 16px;
  background:linear-gradient(180deg,transparent,rgba(5,8,7,.92) 30%);display:flex;align-items:center;gap:10px}
.mh-dial{flex:1;display:flex;background:var(--mh-panel);border:1px solid var(--mh-hair2);border-radius:99px;padding:4px;cursor:pointer;user-select:none}
.mh-dial.glow{box-shadow:0 0 0 1px var(--mh-jade-deep),0 0 22px var(--mh-jade-glow)}
.mh-dial .seg{flex:1;text-align:center;font:500 10.5px/1 var(--mh-mono);letter-spacing:.16em;padding:11px 0;border-radius:99px;color:var(--mh-dim);transition:all .3s}
.mh-dial .seg .g{margin-right:5px}
.mh-dial .seg.sel{background:var(--mh-jade-deep);color:var(--mh-jade)}
.mh-active .mh-dial .seg.sel{background:#123524;color:var(--mh-emerald)}
.mh-cbtn{width:46px;height:42px;border-radius:99px;background:var(--mh-panel);border:1px solid var(--mh-hair2);
  display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--mh-mut);cursor:pointer}
.mh-cbtn.lit{color:var(--mh-jade);border-color:var(--mh-jade-deep)}
.mh-cbtn.x{color:#e08a8a}

/* ── SCRIBE sheet ── */
.mh-shandle{position:absolute;z-index:6;left:50%;transform:translateX(-50%);bottom:78px;
  font:500 9px/1 var(--mh-mono);letter-spacing:.2em;color:var(--mh-dim);cursor:pointer;padding:6px 14px;text-transform:uppercase}
.mh-shandle::before{content:"";display:block;width:34px;height:3px;border-radius:3px;background:var(--mh-hair2);margin:0 auto 5px}
.mh-scribe{position:absolute;z-index:9;left:0;right:0;bottom:0;top:9%;background:linear-gradient(180deg,#101614,#0b100e);
  border-radius:18px 18px 0 0;border-top:1px solid var(--mh-hair2);transform:translateY(104%);transition:transform .55s cubic-bezier(.3,.9,.3,1);
  display:flex;flex-direction:column;box-shadow:0 -20px 60px rgba(0,0,0,.6)}
.mh-scribe.open{transform:none}
.mh-scribe header{padding:16px 22px 10px;border-bottom:1px solid var(--mh-hair)}
.mh-scribe header .k{font:500 9px/1 var(--mh-mono);letter-spacing:.22em;color:var(--mh-jade);text-transform:uppercase}
.mh-scribe header h2{font:500 19px/1.25 var(--mh-ser);margin-top:5px}
.mh-scribe header .m{font:400 10px var(--mh-mono);color:var(--mh-dim);margin-top:4px}
.mh-scribe .sbody{flex:1;overflow-y:auto;padding:14px 22px 30px;scrollbar-width:none}
.mh-scribe .sbody::-webkit-scrollbar{display:none}
.mscribe-body .sec{margin-bottom:16px}
.mscribe-body .sk{font:500 9px/1 var(--mh-mono);letter-spacing:.2em;color:var(--mh-mut);text-transform:uppercase;margin-bottom:8px}
.mscribe-body .ln{font:400 12.5px/1.55 var(--mh-sans);color:var(--mh-bone);padding:7px 0;border-bottom:1px solid var(--mh-hair);display:flex;gap:9px;align-items:baseline}
.mscribe-body .ln:last-child{border-bottom:0}
.mscribe-body .mk{font:500 10px var(--mh-mono);color:var(--mh-jade);min-width:22px}
.mscribe-body .mk.a{color:var(--mh-amber)}
.mscribe-body .mk.d{color:var(--mh-dim)}
.mscribe-body .sp{flex:1}
.mscribe-body .mono{font:400 10px var(--mh-mono);color:var(--mh-dim)}

/* ── phases: voice-first setup / prep ── */
.mh-phase{position:absolute;inset:0;z-index:10;background:
  radial-gradient(120% 90% at 50% -10%,#101816 0%,var(--mh-field) 55%),var(--mh-field);
  display:flex;flex-direction:column;padding:54px 26px 40px;transition:opacity .6s,visibility .6s;overflow-y:auto}
.mh-phase.gone{opacity:0;visibility:hidden;pointer-events:none}
.mh-phase .pk{font:500 9.5px/1 var(--mh-mono);letter-spacing:.24em;color:var(--mh-jade);text-transform:uppercase}
.mh-phase h1{font:500 26px/1.2 var(--mh-ser);margin:10px 0 4px}
.mh-phase .psub{font:400 11px var(--mh-mono);color:var(--mh-dim);margin-bottom:22px}
.mh-orb{width:74px;height:74px;border-radius:50%;margin:6px auto 14px;position:relative;
  background:radial-gradient(circle at 38% 32%,#1d4a39,#0d201a 70%);border:1px solid var(--mh-jade-deep)}
.mh-orb::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid var(--mh-jade-deep);animation:mh-orb 2.1s ease-out infinite}
@keyframes mh-orb{from{transform:scale(.82);opacity:.9}to{transform:scale(1.28);opacity:0}}
.mh-orb .mic{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--mh-jade)}
.mh-heard{min-height:52px;text-align:center;font:400 13.5px/1.55 var(--mh-ser);color:var(--mh-mut);font-style:italic;padding:0 6px}
.mh-heard b{color:var(--mh-bone);font-weight:500}
.mh-form{margin-top:14px;display:flex;flex-direction:column;gap:9px}
.mh-f{background:var(--mh-panel);border:1px solid var(--mh-hair);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;
  opacity:0;transform:translateY(8px);transition:all .45s}
.mh-f.on{opacity:1;transform:none}
.mh-f .fl{font:500 8.5px/1 var(--mh-mono);letter-spacing:.16em;color:var(--mh-dim);text-transform:uppercase;min-width:66px}
.mh-f .fv{flex:1;font:400 13px var(--mh-sans);color:var(--mh-bone)}
.mh-f .fv .chip{margin-right:4px}
/* per-field mic redo (graft 6): the glyph, and the "hot" flash on the active field */
.mh-f .fm{color:var(--mh-dim);font-size:12px;cursor:pointer;flex:0 0 auto}
.mh-f.redo{border-color:var(--mh-jade-deep);box-shadow:0 0 14px rgba(127,212,180,.12)}
.mh-f.redo .fm{color:var(--mh-jade);animation:mh-ledbreath 1s infinite}
.mh-tog{width:34px;height:20px;border-radius:99px;background:var(--mh-jade-deep);position:relative;flex:0 0 auto}
.mh-tog::after{content:"";position:absolute;top:2.5px;left:17px;width:15px;height:15px;border-radius:50%;background:var(--mh-jade)}
.mh-tog.off{background:var(--mh-hair2)}
.mh-tog.off::after{left:2.5px;background:var(--mh-dim)}
.mh-go{margin-top:14px;background:var(--mh-jade-deep);border:1px solid #1d5741;color:var(--mh-jade);
  font:500 12px/1 var(--mh-mono);letter-spacing:.2em;text-transform:uppercase;border-radius:10px;padding:15px;text-align:center;opacity:0;transition:opacity .5s}
.mh-go.on{opacity:1}
.mh-prow{background:var(--mh-panel);border:1px solid var(--mh-hair);border-radius:10px;padding:11px 13px;margin-bottom:9px;
  opacity:0;transform:translateY(8px);transition:all .45s}
.mh-prow.on{opacity:1;transform:none}
.mh-prow h4{font:500 13.5px/1.3 var(--mh-ser)}
.mh-prow .pv{font:400 10px var(--mh-mono);color:var(--mh-dim);margin-top:4px}
/* gap-ask receipt (graft 5): channel + ticket ref, answer folded into the brief */
.mh-prow.ask{border-color:#2c4a63}
.mh-prow.ask h4{color:var(--mh-slate)}
.mh-prow .receipt{display:inline-block;margin-top:6px;font:500 9.5px var(--mh-mono);color:var(--mh-slate);border:1px solid #24384a;border-radius:99px;padding:2px 9px}

.mh-v2tease{position:absolute;top:96px;right:12px;z-index:4;font:500 8.5px/1 var(--mh-mono);letter-spacing:.14em;
  color:var(--mh-dim);border:1px dashed var(--mh-hair2);border-radius:99px;padding:3px 9px;text-transform:uppercase;background:rgba(9,13,12,.7)}

/* Alex live r3: the redo-selected field is visibly highlighted */
.mh-f.sel{border-color:var(--mh-jade);box-shadow:0 0 0 1px var(--mh-jade),0 0 14px var(--mh-jade-glow,rgba(110,220,170,.25));background:var(--mh-panel2)}
.mh-f.sel .fl{color:var(--mh-jade)}

/* participants rail (Scope A) — held-line grammar: one chip per speaker, breathing while
   speaking, jade ring = floor. Cassia is a chip (dimmed listening / lit participating /
   pulse). The closed edge-strip reuses the same jade/amber vars. */
.prail{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0;align-items:center}
/* the simple-session host of the SAME rail (Alex 075235Z): a quiet row under the session bar */
.prail-session{padding:4px 12px 2px}
.prail-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;
  border:1px solid var(--mh-hair2);background:rgba(255,255,255,.02);font:500 12px var(--mh-sans);color:var(--mh-dim)}
.prail-chip.bound{color:var(--mh-bone)}
.prail-chip .prail-dot{width:7px;height:7px;border-radius:50%;background:var(--mh-dim);flex:0 0 auto}
.prail-chip.speaking{color:var(--mh-bone);border-color:var(--mh-jade-deep)}
.prail-chip.speaking .prail-dot{background:var(--mh-jade);animation:mh-ledbreath 1s infinite}
.prail-chip.floor{border-color:var(--mh-jade);box-shadow:0 0 12px var(--mh-jade-glow)}
/* Cassia chip: dimmed in listening, lit in participating, pulse while speaking */
.prail-chip.cassia{border-style:dashed}
.prail-chip.cassia.listening{opacity:.55}
.prail-chip.cassia.participating{opacity:1;color:var(--mh-jade);border-color:var(--mh-jade-deep)}
.prail-chip.cassia.participating .prail-dot{background:var(--mh-jade)}
.prail-chip.cassia.speaking .prail-dot{animation:mh-ledpulse .9s infinite}
/* closed edge-strip: one dot per speaker; Cassia's dot amber ONLY when active */
/* F3: #meetingStrip is a fixed sibling with an author-origin display:flex, which beats the UA
   [hidden] rule — so hide it explicitly at author origin, or a chips.length=0 strip stays visible. */
#meetingStrip[hidden]{display:none}
/* F8: the strip lives OUTSIDE .mh-stage (fixed, top-right), where the --mh-* vars are unscoped and
   resolve to nothing (transparent dots). Every strip color carries an explicit literal fallback. */
.prail-strip{display:flex;gap:5px;align-items:center;padding:3px 0}
.prail-sdot{width:6px;height:6px;border-radius:50%;background:var(--mh-dim,#5c665f)}
.prail-sdot.speaking{background:var(--mh-jade,#7fd4b4);animation:mh-ledbreath 1s infinite}
.prail-sdot.floor{box-shadow:0 0 6px var(--mh-jade-glow,rgba(127,212,180,.35))}
.prail-sdot.cassia{border:1px solid var(--mh-hair2,#27352f);background:transparent}
.prail-sdot.cassia.amber{background:var(--mh-amber,#e8b45a);border-color:var(--mh-amber-deep,#3a2c14)}

/* Scope B — the landing last-meeting card (small, under the sessions list) */
.lastmeet{margin-top:8px;padding:8px 10px;border:1px solid var(--mh-hair2,#27352f);border-radius:10px;background:rgba(127,212,180,.03)}
.lastmeet-title{font:600 13px var(--mh-sans,system-ui);color:var(--mh-bone,#e9e6dd)}
.lastmeet-line{font:400 12px var(--mh-sans,system-ui);color:var(--mh-dim,#5c665f);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lastmeet-minutes{margin-top:6px;font:500 11px var(--mh-mono,monospace);letter-spacing:.05em;color:var(--mh-jade,#7fd4b4);background:none;border:1px solid var(--mh-jade-deep,#153d2f);border-radius:8px;padding:3px 8px;cursor:pointer}

/* START-NEW wizard (zero-buttons fix): actionable per-step buttons, held-line grammar */
.wz{display:flex;flex-direction:column;gap:8px}
.wz-step{display:flex;flex-direction:column;gap:8px}
.wz-label{font:600 14px var(--mh-sans,system-ui);color:var(--mh-bone,#e9e6dd)}
.wz-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wz-btn{font:500 13px var(--mh-sans,system-ui);padding:7px 14px;border-radius:99px;cursor:pointer;
  border:1px solid var(--mh-hair2,#27352f);background:rgba(255,255,255,.02);color:var(--mh-bone,#e9e6dd)}
.wz-btn.wz-primary{border-color:var(--mh-jade-deep,#153d2f);color:var(--mh-jade,#7fd4b4)}
.wz-btn.wz-same{align-self:flex-start;color:var(--mh-dim,#5c665f)}
.wz-input{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--mh-hair2,#27352f);
  background:rgba(0,0,0,.2);color:var(--mh-bone,#e9e6dd);font:400 13px var(--mh-sans,system-ui)}


/* ═══════════════════════════════════════════════════════════════════════════
   TP-069 fused overlay — tabs · chat · summary · heartbeat · a11y
   Spec: 2026-07-23-meeting-overlay-fused-spec.md (§1b/§1c/§3/§4c). Phone-primary.
   ═══════════════════════════════════════════════════════════════════════════ */

/* tab bar — BOTH modes; hide only when ended (§4c rendered-visibility law) */
.meeting-tabs{
  position:relative;z-index:5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  min-height:42px;padding:4px 12px 5px;gap:4px;
  background:rgba(9,13,12,.96);border-bottom:1px solid var(--mh-hair);
}
.mh-stage[data-ended="true"] .meeting-tabs,
.meeting-shell[data-ended="true"] .meeting-tabs{display:none}
.meeting-tab{
  position:relative;min-height:34px;padding:6px 4px;border:1px solid transparent;border-radius:8px;
  background:transparent;color:var(--mh-dim);font:600 9px/1 var(--mh-mono);letter-spacing:.14em;
  text-transform:uppercase;cursor:pointer;
}
.meeting-tab .tab-count{display:inline-block;margin-left:4px;color:var(--mh-dim);font-weight:500;letter-spacing:.04em}
.meeting-tab[aria-selected="true"]{
  color:var(--mh-jade);border-color:var(--mh-jade-deep);background:rgba(21,61,47,.35);
}
.meeting-tab[aria-selected="true"] .tab-count{color:var(--mh-jade)}

.meeting-content{position:relative;z-index:3;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:78px}
/* compose must sit above the absolute .mh-bottom dock (z-index 7) — not under the mic */
.chat-compose{position:relative;z-index:8}
.meeting-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.meeting-panel[hidden],.meeting-panel[aria-hidden="true"]{display:none !important}
#livePanel .mh-stream{padding-bottom:96px}

/* CHAT */
.chat-thread{
  list-style:none;margin:0;padding:10px 14px 8px;flex:1;overflow-y:auto;overflow-x:hidden;
  display:flex;flex-direction:column;gap:10px;scrollbar-width:none;
}
.chat-thread::-webkit-scrollbar{display:none}
.chat-turn{display:grid;width:min(88%,520px);gap:3px}
.chat-turn.self{margin-left:auto;justify-items:end}
.chat-turn.cassia .chat-bubble{
  background:linear-gradient(180deg,#12241c,#0e1a15);border-color:var(--mh-jade-deep);
}
.chat-meta{
  display:flex;min-height:17px;padding-inline:5px;align-items:center;gap:6px;
  color:var(--mh-dim);font:500 7px/1 var(--mh-mono);letter-spacing:.09em;text-transform:uppercase;
}
.chat-bubble{
  padding:9px 11px;border-radius:12px;border:1px solid var(--mh-hair2);
  background:linear-gradient(180deg,var(--mh-panel2),var(--mh-panel));
  color:var(--mh-bone);font:400 12.5px/1.45 var(--mh-sans);
}
.chat-turn.self .chat-bubble{border-radius:12px 12px 3px 12px}
.chat-turn[data-private="true"] .chat-bubble{
  box-shadow:inset 2px 0 rgba(127,212,180,.42);
  background:linear-gradient(180deg,rgba(18,36,28,.9),#111c18);
}
.chat-copy{margin:0}
.aside-chip{
  display:inline-flex;min-height:17px;padding:2px 5px;align-items:center;gap:4px;
  color:var(--mh-jade);border:1px solid var(--mh-jade-deep);border-radius:99px;
  background:rgba(21,61,47,.44);letter-spacing:.04em;text-transform:none;font:500 8px/1 var(--mh-mono);
}
.aside-chip svg{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:1.4}
.chat-compose{position:relative;z-index:8;padding:8px 12px 10px;border-top:1px solid var(--mh-hair);background:rgba(9,13,12,.96)}
.compose-semantic{margin-bottom:5px;color:var(--mh-dim);font:500 8px/1 var(--mh-mono);letter-spacing:.08em;text-transform:uppercase}
.compose-row{display:flex;gap:8px;align-items:center}
.chat-input{
  flex:1;min-height:38px;padding:8px 11px;border-radius:10px;border:1px solid var(--mh-hair2);
  background:var(--mh-panel);color:var(--mh-bone);font:400 13px/1.35 var(--mh-sans);
}
.chat-input:focus{outline:1px solid var(--mh-jade)}
.chat-send{
  min-height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--mh-jade-deep);
  background:rgba(21,61,47,.45);color:var(--mh-jade);font:600 10px/1 var(--mh-mono);
  letter-spacing:.12em;text-transform:uppercase;cursor:pointer;
}
.mh-stage[data-mode="active"] .compose-semantic{color:var(--mh-mut)}

/* SUMMARY */
.summary-host{flex:1;overflow-y:auto;padding:0 12px 90px;scrollbar-width:none}
.summary-host::-webkit-scrollbar{display:none}
.summary-section{border-top:1px solid var(--mh-hair2)}
.summary-section:last-child{border-bottom:1px solid var(--mh-hair)}
.summary-head{
  display:grid;width:100%;min-height:43px;padding:8px 3px;
  grid-template-columns:24px minmax(0,1fr) auto 13px;align-items:baseline;gap:5px;
  color:var(--mh-bone);border:0;background:transparent;cursor:pointer;text-align:left;
}
.summary-number{color:var(--mh-jade);font:500 7.7px/1 var(--mh-mono);letter-spacing:.08em}
.summary-name{font:600 9px/1 var(--mh-mono);letter-spacing:.16em;text-transform:uppercase}
.summary-meta{color:var(--mh-dim);font:400 7.7px/1 var(--mh-mono)}
.summary-caret{color:var(--mh-dim);font-size:9px;transition:transform .22s ease}
.summary-section[data-open="false"] .summary-caret{transform:rotate(-90deg)}
.summary-body{padding:0 28px 12px;overflow:hidden}
.summary-section[data-open="false"] .summary-body{display:none}
.summary-list{margin:0;padding-left:16px;color:var(--mh-mut);font:400 12.5px/1.45 var(--mh-sans)}
.summary-empty{margin:0;color:var(--mh-dim);font:400 12px/1.4 var(--mh-mono)}
.summary-save-state{
  margin:8px 14px 0;padding:8px 10px;border-radius:8px;border:1px solid var(--mh-jade-deep);
  color:var(--mh-jade);font:500 10px/1.3 var(--mh-mono);letter-spacing:.06em;
  background:rgba(21,61,47,.3);
}

/* worth-interrupting heartbeat (visual only; SILENT stays absolute) */
.mcard.heartbeat{position:relative}
.mcard.heartbeat::after{
  content:"";position:absolute;inset:-1px;border-radius:12px;border:1px solid rgba(127,212,180,.22);
  box-shadow:0 0 0 0 rgba(127,212,180,0);pointer-events:none;
  animation:interrupt-heartbeat 3.4s ease-out infinite;
}
@keyframes interrupt-heartbeat{
  0%,68%,100%{border-color:rgba(127,212,180,.22);box-shadow:0 0 0 0 rgba(127,212,180,0)}
  74%{border-color:rgba(127,212,180,.48);box-shadow:0 0 0 3px rgba(127,212,180,.055)}
  81%{border-color:rgba(127,212,180,.30);box-shadow:0 0 0 1px rgba(127,212,180,.03)}
}

/* a11y card-extra */
.card-extra-toggle{
  margin-top:6px;padding:2px 8px;border-radius:99px;border:1px dashed var(--mh-hair2);
  background:transparent;color:var(--mh-dim);font:500 9px/1 var(--mh-mono);cursor:pointer;
}
.card-extra{margin-top:6px;color:var(--mh-mut);font:400 12px/1.45 var(--mh-sans)}
.card-extra[hidden]{display:none !important}

/* end-X already top-right via .mh-close; ensure dock has no end control */
.mh-bottom #endMeeting{display:none}

/* stage is a column so content fills between header and dock */
.mh-stage{
  display:flex;flex-direction:column;
}
