  /* --- help --- */
  .help{position:fixed; inset:0; z-index:55; display:none; align-items:center; justify-content:center;
    background:rgba(10,10,10,.88); padding:var(--s-lg)}
  body.help-open .help{display:flex}
  .help-card{width:min(520px,100%); max-height:82vh; overflow:auto; background:var(--surface-card);
    border:1px solid var(--hairline); border-radius:var(--r-lg); padding:var(--s-xl)}
  .help-card h2{margin:0 0 var(--s-xxs); font-size:12px; font-weight:600; letter-spacing:1.5px;
    text-transform:uppercase; color:var(--muted)}
  .help-card h3{margin:var(--s-lg) 0 var(--s-xs); font-size:12px; font-weight:600; letter-spacing:1.5px;
    text-transform:uppercase; color:var(--primary)}
  .help-row{display:flex; justify-content:space-between; gap:var(--s-md); padding:var(--s-xs) 0;
    font-size:14px; border-bottom:1px solid var(--hairline)}
  .help-row span:first-child{font-family:var(--mono); font-size:13px; color:var(--on-dark); white-space:nowrap}
  .help-row span:last-child{color:var(--muted); text-align:right; word-break:keep-all}

  /* --- session summary --- */
  .summary{position:fixed; inset:0; z-index:58; display:none; align-items:center; justify-content:center;
    background:rgba(10,10,10,.92); padding:var(--s-lg)}
  body.summary-open .summary{display:flex}
  .sum-card{width:min(680px,100%); max-height:88vh; overflow:auto; background:var(--surface-card);
    border:1px solid var(--hairline); border-radius:var(--r-lg); padding:var(--s-xl)}
  .sum-card .eyebrow{font-size:12px; font-weight:600; letter-spacing:1.5px;
    text-transform:uppercase; color:var(--primary)}
  .sum-card h2{margin:var(--s-xs) 0 var(--s-lg); font-size:40px; font-weight:700; line-height:1.15;
    letter-spacing:-1.5px; color:var(--on-dark); word-break:keep-all}
  .sum-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s-sm); margin-bottom:var(--s-lg)}
  .sum-cell{background:var(--surface-elevated); border-radius:var(--r-lg); padding:var(--s-md)}
  .sum-cell b{display:block; font-family:var(--mono); font-size:32px; font-weight:700;
    line-height:1; letter-spacing:-1px; color:var(--primary); margin-bottom:6px}
  .sum-cell span{font-size:12px; font-weight:600; letter-spacing:1.5px;
    text-transform:uppercase; color:var(--muted)}
  .sum-cell.ok b{color:var(--emerald)} .sum-cell.hold b{color:var(--blue)} .sum-cell.fix b{color:var(--rose)}
  .sum-h{font-size:12px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase;
    color:var(--muted); margin:0 0 var(--s-xs)}
  .sum-list{margin:0 0 var(--s-lg); padding:0; list-style:none; font-size:14px}
  .sum-list li{display:flex; justify-content:space-between; gap:var(--s-md); padding:var(--s-xs) 0;
    border-bottom:1px solid var(--hairline); color:var(--body)}
  .sum-list li b{color:var(--on-dark); font-family:var(--mono); font-size:13px; font-weight:600}
  .sum-foot{display:flex; gap:var(--s-xs); align-items:center; flex-wrap:wrap}

  /* --- presenting (audience view) --- */
  body.presenting .hud, body.presenting .rail,
  body.clean .hud, body.clean .rail{opacity:0; pointer-events:none}
  body.clean .dock{opacity:0; pointer-events:none}
  body.clean.drawing .dock{opacity:1; pointer-events:auto}
  .live{position:fixed; top:var(--s-sm); left:var(--s-md); z-index:21; display:none;
    align-items:center; gap:8px; border:0; background:transparent; cursor:pointer; padding:0;
    font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:1.5px;
    color:var(--rose); text-transform:uppercase}
  body.presenting .live{display:flex}
  .live::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--rose);
    animation:blip 1.4s infinite}

  /* --- language switcher --- */
  .langbox{position:relative}
  .langmenu{position:absolute; top:48px; right:0; min-width:150px; background:var(--surface-card);
    border:1px solid var(--hairline); border-radius:var(--r-lg); padding:var(--s-xxs);
    display:none; flex-direction:column; z-index:26}
  .langbox.open .langmenu{display:flex}
  .langmenu button{height:36px; padding:0 var(--s-sm); border:0; border-radius:var(--r-md);
    background:transparent; color:var(--body); font-size:14px; font-weight:500;
    text-align:left; cursor:pointer; font-family:var(--sans)}
  .langmenu button:hover{background:var(--surface-elevated); color:var(--on-dark)}
  .langmenu button[aria-pressed="true"]{color:var(--primary); font-weight:600}
  .langmenu button:first-child{font-family:var(--mono); font-size:12px; letter-spacing:1.5px;
    text-transform:uppercase; color:var(--muted-soft)}
  .langmenu button:disabled{cursor:default; background:transparent}
  .menu-note{display:block; padding:var(--s-xs) var(--s-sm) var(--s-xxs); max-width:190px;
    border-top:1px solid var(--hairline); margin-top:var(--s-xxs);
    font-size:11.5px; line-height:1.55; color:var(--muted-soft); word-break:keep-all}


  /* The transition control has no key, so its row shows the button itself
     rather than a keycap. Sized to sit on the same line as the letters. */
  .help-icon{display:inline-flex; align-items:center}
  .help-icon svg{width:17px; height:17px; fill:currentColor; display:block}
