/*
 * Program Podz — app stylesheet (BLI-0000383 tokens/themes + BLI-0000384 responsive grid).
 * Mobile-first. Consumes the authoritative token layer (tokens.css). Zero layout shift
 * on theme switch: only colors are theme-dependent; spacing/type/radius are constants.
 *
 * The build step (bin/build-css) copies design-system/tokens/tokens.css -> here so this
 * file is always in sync with the design-system source of truth.
 */
@import "tokens.css";

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font: inherit; cursor: pointer; }

.pp-body {
  background: var(--pp-paper);
  color: var(--pp-ink);
  font-family: var(--pp-font-sans);
  font-size: var(--pp-fs-base);
  line-height: var(--pp-lh-normal);
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  transition: background var(--pp-motion-theme) ease, color var(--pp-motion-theme) ease;
}
.pp-mono { font-family: var(--pp-font-mono); letter-spacing: var(--pp-ls-mono); }

/* Respect reduced motion. */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ---------- Accessibility ---------- */
.pp-skip-link {
  position: absolute; left: var(--pp-sp-2); top: -3rem;
  background: var(--pp-riot); color: var(--pp-riot-ink);
  padding: var(--pp-sp-2) var(--pp-sp-4); border-radius: var(--pp-r-pill);
  z-index: 100; transition: top .15s ease;
}
.pp-skip-link:focus { top: var(--pp-sp-2); }
:where(a, button, [tabindex]):focus-visible {
  outline: var(--pp-b-bold) solid var(--pp-focus-ring);
  outline-offset: 2px; border-radius: 4px;
}

/* ---------- Layout container + responsive grid (BLI-384) ----------
   Mobile-first breakpoints: base < 640, sm 640, md 768, lg 1024, xl 1280. */
.pp-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--pp-sp-4);
  padding-inline: max(var(--pp-sp-4), env(safe-area-inset-left));
  max-width: 72rem;
}
@media (min-width: 640px) { .pp-container { padding-inline: var(--pp-sp-6); } }
@media (min-width: 1024px){ .pp-container { padding-inline: var(--pp-sp-8); } }

.pp-grid { display: grid; gap: var(--pp-sp-4); grid-template-columns: 1fr; }
@media (min-width: 640px)  { .pp-grid--cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .pp-grid--cards { grid-template-columns: repeat(4, 1fr); gap: var(--pp-sp-6); } }

.pp-main { flex: 1 0 auto; }
.pp-section { padding-block: var(--pp-sp-12); }
.pp-section__title {
  font-family: var(--pp-font-display); font-size: var(--pp-fs-xl);
  margin: 0 0 var(--pp-sp-6);
}

/* ---------- Header ---------- */
.pp-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--pp-paper) 88%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: var(--pp-b-hairline) solid var(--pp-line);
}
.pp-header__bar {
  display: flex; align-items: center; gap: var(--pp-sp-4);
  min-height: 3.5rem; justify-content: space-between;
}
.pp-brand { display: inline-flex; align-items: center; gap: var(--pp-sp-2); text-decoration: none; }
.pp-brand__mark { color: var(--pp-riot); font-size: var(--pp-fs-lg); }
.pp-brand__word { font-family: var(--pp-font-display); letter-spacing: .02em; font-size: var(--pp-fs-base); }
.pp-nav { display: none; gap: var(--pp-sp-4); }
@media (min-width: 768px) { .pp-nav { display: flex; } }
.pp-nav__link { text-decoration: none; color: var(--pp-ink-dim); }
.pp-nav__link:hover { color: var(--pp-ink); }
.pp-header__actions { display: flex; align-items: center; gap: var(--pp-sp-2); }

/* Small, quiet theme toggle — de-emphasized so it isn't a focal point (Buster 2026-08-02). */
.pp-theme-toggle {
  min-height: 26px; padding: 0 7px; line-height: 24px;
  background: transparent; color: var(--pp-ink-dim);
  border: 1px solid var(--pp-line); border-radius: 0;
  font-family: var(--pp-font-mono); font-size: 10.5px; letter-spacing: .02em;
  opacity: .7; cursor: pointer; transition: opacity .12s ease, border-color .12s ease, color .12s ease;
}
.pp-theme-toggle:hover { opacity: 1; color: var(--pp-ink); border-color: var(--pp-riot); }

/* ---------- Hero ---------- */
.pp-hero { padding-block: var(--pp-sp-16) var(--pp-sp-12); border-bottom: var(--pp-b-hairline) solid var(--pp-line); }
.pp-eyebrow { color: var(--pp-ink-dim); margin: 0 0 var(--pp-sp-4); }
.pp-hero__title {
  font-family: var(--pp-font-display);
  font-size: var(--pp-fs-display); line-height: var(--pp-lh-tight);
  letter-spacing: var(--pp-ls-display); margin: 0 0 var(--pp-sp-6);
}
.pp-hero__lede { max-width: 46ch; color: var(--pp-ink-dim); font-size: var(--pp-fs-lg); margin: 0 0 var(--pp-sp-8); }
.pp-hl-human { color: var(--pp-riot); }
.pp-hl-agent { color: var(--pp-circuit); }

.pp-cta-row { display: flex; flex-wrap: wrap; gap: var(--pp-sp-4); }
.pp-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 0 var(--pp-sp-6);
  font-family: var(--pp-font-display); text-decoration: none;
  border-radius: var(--pp-r-pill); border: var(--pp-b-bold) solid transparent;
}
.pp-btn--human { background: var(--pp-riot); color: var(--pp-riot-ink); box-shadow: var(--pp-sticker-shadow); }
.pp-btn--human:hover { transform: translateY(-1px); }
.pp-btn--ghost { background: transparent; color: var(--pp-ink); border-color: var(--pp-line); }
.pp-btn--ghost:hover { border-color: var(--pp-riot); }

/* ---------- Cards ---------- */
.pp-card {
  background: var(--pp-paper-2);
  border: var(--pp-b-hairline) solid var(--pp-line);
  border-radius: 14px; padding: var(--pp-sp-6);
}
.pp-card__title { font-family: var(--pp-font-display); font-size: var(--pp-fs-lg); margin: 0 0 var(--pp-sp-2); }
.pp-card__body { color: var(--pp-ink-dim); margin: 0; }

/* ---------- Footer ---------- */
.pp-footer { border-top: var(--pp-b-hairline) solid var(--pp-line); padding-block: var(--pp-sp-8); margin-top: var(--pp-sp-16); }
.pp-footer__bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pp-sp-4); justify-content: space-between; color: var(--pp-ink-dim); }
.pp-footer__links { display: flex; gap: var(--pp-sp-4); }
.pp-footer__links a { color: var(--pp-ink-dim); text-decoration: none; }
.pp-footer__links a:hover { color: var(--pp-ink); }

/* ---------- Error pages ---------- */
.pp-error { text-align: center; padding-block: var(--pp-sp-16); max-width: 40rem; }
.pp-error__code { color: var(--pp-riot); font-size: var(--pp-fs-2xl); margin: 0; }
.pp-error__title { font-family: var(--pp-font-display); font-size: var(--pp-fs-xl); margin: var(--pp-sp-4) 0; }
.pp-error__lede { color: var(--pp-ink-dim); }
.pp-error__ref { color: var(--pp-ink-dim); font-size: var(--pp-fs-sm); }

/* ================= Accounts / Auth / Onboarding (Sprint 31) ================= */
.pp-btn--sm { min-height: 38px; padding: 0 var(--pp-sp-4); font-size: var(--pp-fs-sm); }
.pp-btn--block { width: 100%; }
.pp-inline-form { display: inline; margin: 0; }

/* Flash */
.pp-flash { padding: var(--pp-sp-3) 0; font-weight: 600; }
.pp-flash--success { background: color-mix(in srgb, var(--pp-circuit) 22%, var(--pp-paper)); color: var(--pp-ink); }
.pp-flash--error   { background: color-mix(in srgb, var(--pp-danger) 22%, var(--pp-paper)); color: var(--pp-ink); }

/* Auth cards */
.pp-auth { display: flex; justify-content: center; padding-block: var(--pp-sp-16); }
.pp-auth__card {
  width: 100%; max-width: 26rem;
  background: var(--pp-paper-2); border: var(--pp-b-hairline) solid var(--pp-line);
  border-radius: 0; padding: var(--pp-sp-8);
}
/* Squared theme on the auth pages — signup/login/forgot card, inputs + button (Buster 2026-08-05).
   Scoped to .pp-auth so no other .pp-btn / .pp-input elsewhere is affected. */
.pp-auth .pp-input, .pp-auth .pp-btn { border-radius: 0; }
.pp-auth__title { font-family: var(--pp-font-display); font-size: var(--pp-fs-xl); margin: 0 0 var(--pp-sp-2); }
.pp-auth__lede { color: var(--pp-ink-dim); margin: 0 0 var(--pp-sp-6); }
.pp-auth__alt { margin-top: var(--pp-sp-6); color: var(--pp-ink-dim); font-size: var(--pp-fs-sm); }
.pp-auth__alt a { color: var(--pp-riot); }

/* Forms */
.pp-form { display: flex; flex-direction: column; gap: var(--pp-sp-4); }
.pp-field { display: flex; flex-direction: column; gap: var(--pp-sp-2); }
.pp-field__label { font-size: var(--pp-fs-sm); font-weight: 600; }
.pp-field__hint { font-size: var(--pp-fs-xs); color: var(--pp-ink-dim); }
.pp-input {
  min-height: 46px; padding: 0 var(--pp-sp-4);
  background: var(--pp-paper); color: var(--pp-ink);
  border: var(--pp-b-bold) solid var(--pp-line); border-radius: 10px;
  font: inherit;
}
.pp-input:focus { border-color: var(--pp-riot); outline: none; }
.pp-input:disabled { opacity: .6; }

/* Avatar + presence */
.pp-avatar {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--pp-riot); color: var(--pp-riot-ink);
  font-family: var(--pp-font-display); border-radius: var(--pp-r-pill);
}
.pp-avatar--sm { width: 32px; height: 32px; font-size: var(--pp-fs-sm); }
.pp-avatar--lg { width: 64px; height: 64px; font-size: var(--pp-fs-xl); }
.pp-presence { margin-left: var(--pp-sp-2); font-size: var(--pp-fs-xs); text-transform: uppercase; letter-spacing: .08em; }
.pp-presence::before { content: "● "; }
.pp-presence--online  { color: var(--pp-circuit); }
.pp-presence--away    { color: var(--pp-volt); }
.pp-presence--offline { color: var(--pp-ink-dim); }
.pp-chip { display: inline-block; padding: 2px 10px; margin-right: 6px; border-radius: var(--pp-r-pill); background: var(--pp-paper-3); font-size: var(--pp-fs-xs); }

/* Account */
.pp-account { padding-block: var(--pp-sp-12); }
.pp-account__head { display: flex; gap: var(--pp-sp-4); align-items: center; margin-bottom: var(--pp-sp-8); }
.pp-account__title { font-family: var(--pp-font-display); font-size: var(--pp-fs-xl); margin: 0; }
.pp-account__meta { color: var(--pp-ink-dim); margin: var(--pp-sp-1) 0; }
.pp-account__grid { grid-template-columns: 1fr; }
@media (min-width: 768px) { .pp-account__grid { grid-template-columns: 1fr 1fr; } }

/* Onboarding wizard */
.pp-wizard { max-width: 34rem; padding-block: var(--pp-sp-16); }
.pp-wizard__progress { height: 8px; background: var(--pp-paper-3); border-radius: var(--pp-r-pill); overflow: hidden; }
.pp-wizard__bar { height: 100%; background: var(--pp-riot); transition: width .3s ease; }
.pp-wizard__count { color: var(--pp-ink-dim); margin: var(--pp-sp-3) 0 var(--pp-sp-6); }
.pp-wizard__title { font-family: var(--pp-font-display); font-size: var(--pp-fs-2xl); margin: 0 0 var(--pp-sp-4); }
.pp-wizard__lede { color: var(--pp-ink-dim); margin: 0 0 var(--pp-sp-6); }
.pp-wizard__skip { margin-top: var(--pp-sp-8); }
.pp-wizard__skip a { color: var(--pp-ink-dim); font-size: var(--pp-fs-sm); }

/* Supplements — classes referenced by views (Sprint 30/31 polish) */
.pp-account__roles { display: flex; flex-wrap: wrap; gap: var(--pp-sp-2); margin: var(--pp-sp-3) 0 0; }
.pp-footer__legal { font-size: var(--pp-fs-sm); }
.pp-footer__meta  { font-size: var(--pp-fs-xs); color: var(--pp-ink-dim); }

/* ================= The Room (Sprint 33) ================= */
.pp-room { padding-block: var(--pp-sp-8); }
.pp-room__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--pp-sp-4); flex-wrap: wrap; margin-bottom: var(--pp-sp-6); }
.pp-room__title { font-family: var(--pp-font-display); font-size: var(--pp-fs-xl); margin: 0; }
.pp-room__status { display: flex; align-items: center; gap: var(--pp-sp-3); }
.pp-room-create { max-width: 34rem; }
.pp-room-card { text-decoration: none; display: block; }

/* Presence tiles */
.pp-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: var(--pp-sp-3); margin-bottom: var(--pp-sp-8); }
.pp-tile { display: flex; flex-direction: column; align-items: center; gap: var(--pp-sp-1); padding: var(--pp-sp-3); background: var(--pp-paper-2); border: var(--pp-b-hairline) solid var(--pp-line); border-radius: 14px; text-align: center; }
.pp-tile__name { font-size: var(--pp-fs-xs); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-tile__voice { font-size: var(--pp-fs-sm); }

/* Room grid: live view + task board + decisions */
.pp-room__grid { display: grid; gap: var(--pp-sp-6); grid-template-columns: 1fr; }
@media (min-width: 900px) { .pp-room__grid { grid-template-columns: 1fr 1fr; } .pp-live { grid-column: 1 / -1; } }

/* Live View + Feed */
.pp-live__note { font-size: var(--pp-fs-sm); }
.pp-feed { list-style: none; margin: var(--pp-sp-4) 0 0; padding: 0; max-height: 16rem; overflow-y: auto; display: flex; flex-direction: column; gap: var(--pp-sp-2); }
.pp-feed__item { display: flex; justify-content: space-between; gap: var(--pp-sp-3); font-size: var(--pp-fs-sm); padding-bottom: var(--pp-sp-2); border-bottom: var(--pp-b-hairline) solid var(--pp-line); }
.pp-feed__kind { color: var(--pp-circuit); }
.pp-feed__meta { color: var(--pp-ink-dim); font-size: var(--pp-fs-xs); }

/* Task Board */
.pp-task-add { flex-direction: row; gap: var(--pp-sp-2); margin: var(--pp-sp-4) 0; }
.pp-task-add .pp-input { flex: 1; }
.pp-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--pp-sp-3); }
.pp-board__col { background: var(--pp-paper); border: var(--pp-b-hairline) solid var(--pp-line); border-radius: 12px; padding: var(--pp-sp-3); min-height: 6rem; }
.pp-board__title { font-size: var(--pp-fs-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--pp-ink-dim); margin: 0 0 var(--pp-sp-2); }
.pp-board__card { background: var(--pp-paper-2); border: var(--pp-b-hairline) solid var(--pp-line); border-radius: 10px; padding: var(--pp-sp-2) var(--pp-sp-3); margin-bottom: var(--pp-sp-2); font-size: var(--pp-fs-sm); cursor: pointer; }
.pp-board__card:hover { border-color: var(--pp-riot); }

/* Decision Cards */
.pp-decision-add { flex-direction: row; gap: var(--pp-sp-2); margin: var(--pp-sp-4) 0; }
.pp-decision-add .pp-input { flex: 1; }
.pp-decision-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--pp-sp-2); }
.pp-decision { display: flex; align-items: center; justify-content: space-between; gap: var(--pp-sp-3); padding: var(--pp-sp-3); background: var(--pp-paper); border: var(--pp-b-hairline) solid var(--pp-line); border-radius: 10px; }
.pp-decision--approved { border-color: var(--pp-circuit); }
.pp-decision--rejected { opacity: .6; }
.pp-decision__actions { display: flex; gap: var(--pp-sp-2); }

/* AI Crew panel (Sprint 34) */
.pp-btn--agent { background: var(--pp-circuit); color: var(--pp-volt-ink); }
.pp-btn--agent:hover { transform: translateY(-1px); }
.pp-crew-run { flex-direction: row; flex-wrap: wrap; gap: var(--pp-sp-2); margin-bottom: var(--pp-sp-3); }
.pp-crew-run .pp-input[type=text] { flex: 1; min-width: 12rem; }
.pp-crew-dial { max-width: 12rem; }
.pp-crew__meter { font-family: var(--pp-font-mono); font-size: var(--pp-fs-xs); color: var(--pp-ink-dim); margin: 0 0 var(--pp-sp-2); }

/* ============ Login — Concept 03 (Doc 15) ============ */
.lg-page{max-width:1240px;margin-inline:auto;padding:0 var(--pp-sp-6);min-height:100dvh;display:flex;flex-direction:column}
.lg-top{display:flex;align-items:center;gap:var(--pp-sp-4);padding:var(--pp-sp-4) 0;border-bottom:var(--pp-b-bold) solid var(--pp-ink);flex-wrap:wrap}
.lg-brand{font-family:var(--pp-font-display);font-size:22px;letter-spacing:-.01em;white-space:nowrap;text-decoration:none;color:var(--pp-ink)}
.lg-brand .dot{color:var(--pp-riot)}
.lg-tagsub{font-family:var(--pp-font-mono);font-size:11px;letter-spacing:.08em;color:var(--pp-ink-dim);text-transform:uppercase;line-height:1.5}
.lg-top .pp-theme-toggle{margin-left:auto}
.lg-grid{flex:1;display:grid;grid-template-columns:1.05fr 1fr 300px;gap:34px;align-items:center;padding:44px 0}
.lg-card{max-width:440px}
.lg-sticker{display:inline-block;font-family:var(--pp-font-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;background:var(--pp-riot);color:var(--pp-riot-ink);transform:rotate(-1.5deg);box-shadow:var(--pp-sticker-shadow);margin-bottom:18px}
.lg-h1{font-family:var(--pp-font-display);font-size:clamp(30px,3.6vw,46px);line-height:1.03;margin:0}
.lg-h1 .cy{color:var(--pp-circuit)}
.lg-h1 .pk{color:var(--pp-riot)}
.lg-sub{margin-top:14px;font-family:var(--pp-font-mono);font-size:12.5px;color:var(--pp-ink-dim);line-height:1.7}
.lg-form{margin-top:22px}
.lg-f{margin-top:14px}
.lg-form label{display:block;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--pp-ink-dim);margin-bottom:6px}
.lg-input{width:100%;height:44px;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:14px;padding:0 12px;outline:none}
.lg-input:focus{outline:3px solid var(--pp-riot);outline-offset:1px}
.lg-btn{display:block;width:100%;margin-top:18px;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:14px;text-transform:uppercase;letter-spacing:.04em;padding:13px;cursor:pointer;box-shadow:3px 3px 0 rgba(0,0,0,.45)}
.lg-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 rgba(0,0,0,.45)}
.lg-or{display:flex;align-items:center;gap:12px;margin:16px 0;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.14em;color:var(--pp-ink-dim);text-transform:uppercase}
.lg-or::before,.lg-or::after{content:"";flex:1;height:1px;background:var(--pp-line)}
.lg-ghost{display:block;width:100%;text-align:center;border:var(--pp-b-bold) solid var(--pp-ink);background:transparent;color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:13px;padding:12px;text-decoration:none}
.lg-ghost:hover{background:var(--pp-paper-2)}
.lg-alt{margin-top:18px;font-size:13px;color:var(--pp-ink-dim)}
.lg-alt a{color:var(--pp-riot);font-weight:700;text-decoration:none}
.lg-alt a:hover{text-decoration:underline}
.lg-mid{display:flex;justify-content:center}
.lg-pod{position:relative;width:230px;height:230px;border:3px solid var(--pp-ink);background:var(--pp-paper);display:flex;align-items:center;justify-content:center;box-shadow:10px 10px 0 var(--pp-circuit)}
.lg-pp{font-family:var(--pp-font-display);font-size:64px;color:var(--pp-ink);line-height:1}
.lg-pp .d{color:var(--pp-riot)}
.lg-tape{position:absolute;bottom:-15px;left:50%;transform:translateX(-50%) rotate(-2deg);background:var(--pp-volt);color:var(--pp-volt-ink);font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;box-shadow:var(--pp-sticker-shadow);white-space:nowrap}
.lg-side{display:flex;flex-direction:column;gap:12px}
.lg-chip{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper);padding:11px 13px}
.lg-chip b{display:block;font-family:var(--pp-font-display);font-size:13px;text-transform:uppercase;letter-spacing:.02em}
.lg-chip .rooms{color:var(--pp-riot)}
.lg-chip .agents{color:var(--pp-circuit)}
.lg-chip span{display:block;font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim);margin-top:4px;line-height:1.5}
.lg-bar{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-circuit);color:var(--pp-volt-ink);font-family:var(--pp-font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;text-align:center;font-weight:700}
.lg-status{font-family:var(--pp-font-mono);font-size:10.5px;color:var(--pp-ink-dim);line-height:1.9;margin-top:6px}
.lg-status b{color:var(--pp-circuit);font-weight:400}
@media (max-width:900px){
  .lg-grid{grid-template-columns:1fr;gap:26px;padding:26px 0}
  .lg-card{max-width:none}
  .lg-mid{order:3}
  .lg-side{order:2}
  .lg-tagsub{display:none}
}

/* ============ Home — Lobby-First (Doc 17 / Concept A) ============ */
.hm{min-height:100dvh;display:flex;flex-direction:column}
.hm-nav{display:flex;align-items:center;gap:18px;padding:12px 20px;border-bottom:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-3);flex-wrap:wrap}
.hm-brand{font-family:var(--pp-font-display);font-size:18px;letter-spacing:-.01em;text-decoration:none;color:var(--pp-ink);white-space:nowrap}
.hm-brand .dot{color:var(--pp-riot)}
.hm-links{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.hm-links a{font-family:var(--pp-font-display);font-size:15px;text-transform:uppercase;letter-spacing:.03em;color:var(--pp-ink);opacity:.6;text-decoration:none;padding:6px 2px;line-height:1}
.hm-links a:hover{color:var(--pp-riot);opacity:1}
.hm-links a.on{color:var(--pp-ink);opacity:1;border-bottom:3px solid var(--pp-riot)}
@media(max-width:640px){.hm-links{gap:16px}.hm-links a{font-size:13px}}
.hm-right{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hm-mayday{background:var(--pp-danger);color:#fff;border:var(--pp-b-bold) solid var(--pp-ink);font-family:var(--pp-font-display);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:7px 12px;box-shadow:var(--pp-sticker-shadow);text-decoration:none}
/* Mayday pinned to the top-right of the "Find Your CREW" card (Buster 2026-08-02). */
.hm-mayday--crew{margin-left:auto;font-size:9.5px;padding:4px 9px;line-height:1.2}
.hm-grid{flex:1;display:grid;grid-template-columns:300px minmax(0,1.25fr) minmax(0,0.75fr);gap:0;max-width:100%;overflow-x:hidden}
/* New 3-column lobby: narrow Podz (left) · Maestro+Live Code (center) · Crew+Board (right, equal to center) */
.hm-col{min-width:0}
.hm-col--podz{border-right:var(--pp-b-bold) solid var(--pp-ink);padding:14px 12px;background:var(--pp-paper);display:flex;flex-direction:column;gap:10px;min-width:0}
.hm-col--mid{padding:18px 20px;background:var(--pp-paper-2);min-width:0}
.hm-col--side{border-left:var(--pp-b-bold) solid var(--pp-ink);padding:16px;background:var(--pp-paper);min-width:0}
/* Podz column pieces */
.pod-new{display:block;text-align:center;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:11px 12px;text-decoration:none;box-shadow:var(--pp-sticker-shadow)}
.pod-new:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 rgba(0,0,0,.4)}
.pod-scroll{display:flex;flex-direction:column;gap:10px;overflow-y:auto;max-height:calc(100vh - 230px);padding-right:2px}
.pod-card{display:block;border:2px solid var(--pp-ink);background:var(--pp-paper);box-shadow:2px 2px 0 rgba(0,0,0,.3);text-decoration:none;color:inherit;padding:9px 10px}
.pod-card:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 rgba(0,0,0,.4);border-color:var(--pp-riot)}
.pod-card__t{display:block;font-weight:700;font-size:12.5px;line-height:1.25;color:var(--pp-ink)}
.pod-card__m{display:block;margin-top:5px;font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim)}
.hm-left{border-right:var(--pp-b-bold) solid var(--pp-ink);padding:16px;background:var(--pp-paper);min-width:0}
.hm-mid{padding:18px 20px;background:var(--pp-paper-2);min-width:0}
.hm-right{border-left:var(--pp-b-bold) solid var(--pp-ink);padding:16px;background:var(--pp-paper);margin-left:0}
.hm-zone{font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px;color:var(--pp-ink)}
/* jump-back-in pods */
.hm-pod{border:var(--pp-b-bold) solid var(--pp-riot);background:var(--pp-paper-2);padding:12px;box-shadow:var(--pp-sticker-shadow);margin-bottom:12px}
.hm-pod--calm{border-color:var(--pp-ink)}
.hm-pod__name{font-family:var(--pp-font-display);font-size:14px}
.hm-pod__bli{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-circuit);margin-top:4px;line-height:1.4}
.hm-bar{height:8px;border:1.5px solid var(--pp-ink);background:var(--pp-paper);margin-top:8px;position:relative}
.hm-bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--pp-circuit),var(--pp-volt))}
.hm-pod__meta{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim);margin-top:6px}
.hm-pod__go{display:inline-block;margin-top:8px;font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-riot);font-weight:700;text-decoration:none}
.hm-new{display:block;text-align:center;border:2px dashed var(--pp-line);background:transparent;color:var(--pp-ink-dim);font-family:var(--pp-font-mono);font-size:11.5px;padding:11px;text-decoration:none;margin-top:4px}
.hm-new:hover{border-color:var(--pp-riot);color:var(--pp-riot)}
/* lobby center */
.hm-lobbyhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.hm-h2{font-family:var(--pp-font-display);font-size:clamp(22px,3vw,34px);text-transform:uppercase;letter-spacing:-.01em;margin:0}
.hm-note{font-family:var(--pp-font-mono);font-size:12px;color:var(--pp-ink-dim);margin:8px 0 16px;line-height:1.6}
.hm-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--pp-font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border:1.5px solid var(--pp-line);padding:3px 9px;color:var(--pp-ink-dim);background:var(--pp-paper)}
.hm-pill i{width:7px;height:7px;border-radius:50%;background:var(--pp-circuit);display:inline-block}
.hm-pill--live i{background:var(--pp-riot)}
.hm-rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hm-room{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper);box-shadow:3px 3px 0 rgba(0,0,0,.35);text-decoration:none;color:inherit;display:block}
.hm-room:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 rgba(0,0,0,.4)}
.hm-thumb{height:88px;position:relative;border-bottom:var(--pp-b-bold) solid var(--pp-ink);overflow:hidden;background:var(--pp-paper-2)}
.hm-thumb::before{content:"";position:absolute;top:10px;left:10px;right:40%;height:8px;background:var(--pp-riot);opacity:.85}
.hm-thumb::after{content:"";position:absolute;top:26px;left:10px;right:22%;bottom:10px;background:repeating-linear-gradient(0deg,var(--pp-line),var(--pp-line) 2px,transparent 2px,transparent 9px)}
.hm-thumb.hm-t2::before{background:var(--pp-circuit)}
.hm-thumb.hm-t3::before{background:var(--pp-volt)}
.hm-room__b{padding:10px 12px}
.hm-room__t{font-weight:700;font-size:13.5px;line-height:1.3}
.hm-room__m{margin-top:7px;font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* rituals + circles */
.hm-event{border:2px dashed var(--pp-ink);padding:11px;margin-bottom:12px;background:var(--pp-paper-2)}
.hm-event__when{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-circuit);letter-spacing:.08em}
.hm-event__name{font-family:var(--pp-font-display);font-size:13.5px;margin-top:4px}
.hm-event__sub{font-size:12px;color:var(--pp-ink-dim);margin-top:3px}
.hm-people{display:flex;flex-wrap:wrap;gap:6px}
.hm-av{width:30px;height:30px;border:2px solid var(--pp-ink);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--pp-font-display);font-size:10px;background:var(--pp-paper-3)}
.hm-av--more{border-radius:4px;color:var(--pp-circuit);border-color:var(--pp-circuit);background:var(--pp-paper)}
/* status footer + tagline */
.hm-status{display:flex;align-items:center;gap:16px;border-top:var(--pp-b-bold) solid var(--pp-ink);padding:10px 20px;background:var(--pp-paper-3);font-family:var(--pp-font-mono);font-size:10.5px;color:var(--pp-ink-dim);flex-wrap:wrap}
.hm-status b{color:var(--pp-circuit);font-weight:400}
.hm-tag{margin-left:auto;color:var(--pp-ink)}
.hm-tag b{color:var(--pp-riot);font-weight:700}
@media (max-width:960px){
  .hm-grid{grid-template-columns:1fr}
  .hm-rooms{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hm-left{border-right:none;border-bottom:var(--pp-b-bold) solid var(--pp-ink)}
  .hm-right{border-left:none;border-top:var(--pp-b-bold) solid var(--pp-ink)}
  /* stacked order on mobile: Maestro first, then Podz, then Crew/Board */
  .hm-col--podz{border-right:none;border-bottom:var(--pp-b-bold) solid var(--pp-ink);order:2}
  .hm-col--mid{order:1}
  .hm-col--side{border-left:none;border-top:var(--pp-b-bold) solid var(--pp-ink);order:3}
  .pod-scroll{max-height:none}
  .hm-tag{margin-left:0;flex-basis:100%}
}

/* ---- Lobby-First home: Doc 17 exact-content additions ---- */
.hm-headrow{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.hm-sticker{display:inline-block;font-family:var(--pp-font-display);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;background:var(--pp-riot);color:var(--pp-riot-ink);transform:rotate(-2deg);box-shadow:var(--pp-sticker-shadow)}
/* Big funky section header (Find Your CREW / Posted to the BOARD) */
.hm-sticker--head{font-size:19px;line-height:1.05;padding:8px 14px;letter-spacing:.02em;font-style:italic;transform:rotate(-2.5deg) skewX(-4deg);border:2.5px solid var(--pp-ink);box-shadow:4px 4px 0 rgba(0,0,0,.45);text-shadow:1.5px 1.5px 0 rgba(0,0,0,.25)}
.hm-sticker--head:hover{transform:rotate(-1deg) skewX(-4deg) scale(1.03)}
.hm-sticker--cyan{background:var(--pp-circuit);color:var(--pp-volt-ink);transform:rotate(-1deg)}
.hm-tape{display:inline-block;font-family:var(--pp-font-display);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;background:var(--pp-volt);color:var(--pp-volt-ink);transform:rotate(-1.2deg);box-shadow:var(--pp-sticker-shadow);margin-bottom:14px}
.hm-resume{display:inline-block;margin-top:10px;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:7px 14px;text-decoration:none;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.hm-podrow{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 2px;border-bottom:1px dashed var(--pp-line);font-size:13px;font-weight:700}
.hm-podrow b{font-family:var(--pp-font-mono);font-size:10px;font-weight:400;color:var(--pp-ink-dim);white-space:nowrap}
.hm-newpod{display:inline-block;margin-top:14px;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-volt);color:var(--pp-volt-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:9px 14px;text-decoration:none;box-shadow:var(--pp-sticker-shadow)}
.hm-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--pp-font-mono);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;border:1.5px solid var(--pp-line);padding:2px 8px;color:var(--pp-ink-dim)}
.hm-chip--live{border-color:var(--pp-riot);color:var(--pp-riot)}
.hm-browse{display:inline-block;margin-top:14px;font-family:var(--pp-font-mono);font-size:12px;color:var(--pp-ink-dim);text-decoration:none}
.hm-browse:hover{color:var(--pp-riot)}
.hm-av--pink{background:var(--pp-riot);color:var(--pp-riot-ink);border-color:var(--pp-riot)}
.hm-av--more{width:auto;border-radius:4px;padding:0 10px;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.04em;color:var(--pp-ink-dim);border-color:var(--pp-line);background:var(--pp-paper)}
.hm-count{color:var(--pp-volt-ink);background:var(--pp-volt);padding:1px 6px;font-weight:700}
.hm-navr{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---- Home nav: hamburger menu (top-right) ---- */
.hm-menu{position:relative}
.hm-menu summary{list-style:none;cursor:pointer}
.hm-menu summary::-webkit-details-marker{display:none}
.hm-burger{display:inline-flex;align-items:center;justify-content:center;width:40px;height:36px;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);color:var(--pp-ink);font-size:18px;line-height:1;box-shadow:var(--pp-sticker-shadow)}
.hm-burger:hover{background:var(--pp-volt);color:var(--pp-volt-ink)}
.hm-menu[open] .hm-burger{background:var(--pp-riot);color:var(--pp-riot-ink);border-color:var(--pp-ink)}
.hm-menu__panel{position:absolute;top:calc(100% + 8px);right:0;z-index:80;min-width:230px;max-height:calc(100vh - 96px);overflow-y:auto;overscroll-behavior:contain;background:var(--pp-paper-2);border:var(--pp-b-bold) solid var(--pp-ink);box-shadow:6px 6px 0 rgba(0,0,0,.45);padding:8px}
[data-theme="xerox"] .hm-menu__panel,[data-theme="light"] .hm-menu__panel{box-shadow:6px 6px 0 rgba(25,22,33,.2)}
.hm-menu__who{font-family:var(--pp-font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--pp-ink-dim);padding:6px 10px 8px;border-bottom:1px dashed var(--pp-line);margin-bottom:6px}
.hm-menu__who b{color:var(--pp-ink);font-weight:700}
.hm-menu__panel a{display:block;font-family:var(--pp-font-mono);font-size:12.5px;text-decoration:none;color:var(--pp-ink);padding:9px 10px}
.hm-menu__panel a:hover{background:var(--pp-riot);color:var(--pp-riot-ink)}
.hm-menu__div{height:1px;background:var(--pp-line);margin:6px 4px}
.hm-menu__form{margin:0}
.hm-menu__signout{width:100%;text-align:left;cursor:pointer;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.hm-menu__signout:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 rgba(0,0,0,.4)}
.hm-menu__signin{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-volt);color:var(--pp-volt-ink);font-weight:700;text-align:center}
.hm-menu__signin:hover{background:var(--pp-volt);color:var(--pp-volt-ink);filter:brightness(1.05)}

/* ---- Section pages: My Podz / Board / Playbooks ---- */
.pg-main{padding:22px 24px 60px;max-width:1180px;margin:0 auto;width:100%}
.pg-h1{font-family:var(--pp-font-display);font-size:clamp(22px,3vw,34px);text-transform:uppercase;letter-spacing:-.01em}
.pg-note{color:var(--pp-ink-dim);max-width:720px;margin:2px 0 22px;font-size:14px;line-height:1.6}

/* My Podz shelf */
.pz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.pz-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.pz-badge{font-family:var(--pp-font-mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--pp-line);color:var(--pp-ink-dim);padding:2px 8px}
.pz-badge--live{border-color:var(--pp-riot);color:var(--pp-riot)}
.pz-badge--cyan{border-color:var(--pp-circuit);color:var(--pp-circuit)}
.pz-badge--volt{border-color:var(--pp-volt-ink);background:var(--pp-volt);color:var(--pp-volt-ink)}
.pz-when{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim)}
.pz-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;text-decoration:none;border:var(--pp-b-bold) dashed var(--pp-line);background:var(--pp-paper-2);color:var(--pp-ink);padding:22px;min-height:150px}
/* My Podz hero — intro left, free-trial Starter card top-right; smaller +Podz opposite corner (Buster 2026-07-21) */
.pz-hero{display:grid;grid-template-columns:1fr minmax(280px,360px);gap:20px;align-items:start;margin-bottom:18px}
.pz-trial{display:flex;flex-direction:column;gap:7px;text-decoration:none;border:var(--pp-b-bold) solid var(--pp-riot);background:var(--pp-paper-2);color:var(--pp-ink);border-radius:0;padding:16px 18px;box-shadow:var(--pp-sticker-shadow)}
.pz-trial:hover{box-shadow:0 8px 22px rgba(194,24,91,.20)}
.pz-trial__tag{align-self:flex-start;font-family:var(--pp-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;background:var(--pp-riot);color:#fff;border-radius:0;padding:3px 10px}
.pz-trial__h{font-family:var(--pp-font-display);font-size:19px;line-height:1.15}
.pz-trial__s{font-size:12.5px;color:var(--pp-ink-dim);line-height:1.5}
.pz-trial__cta{margin-top:2px;font-weight:800;color:var(--pp-riot);font-size:13px}
.pz-new--sm{min-height:118px;padding:14px}
.pz-new--sm .pz-new__plus{width:34px;height:34px;font-size:22px}
.pz-new--sm .pz-new__t{font-size:13px}
@media(max-width:760px){.pz-hero{grid-template-columns:1fr}}
.pz-new:hover{border-color:var(--pp-volt);background:var(--pp-paper-3)}
.pz-new__plus{font-family:var(--pp-font-display);font-size:30px;color:var(--pp-volt-ink);background:var(--pp-volt);width:44px;height:44px;display:flex;align-items:center;justify-content:center;box-shadow:var(--pp-sticker-shadow)}
.pz-new__t{font-family:var(--pp-font-display);font-size:14px;text-transform:uppercase;margin-top:6px}
.pz-new__s{font-family:var(--pp-font-mono);font-size:10.5px;color:var(--pp-ink-dim)}

/* Board wall */
.bd-wrap{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}
.bd-post{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);padding:16px;box-shadow:var(--pp-sticker-shadow);display:flex;flex-direction:column;gap:10px;position:sticky;top:16px}
.bd-label{font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.bd-input{width:100%;border:1.5px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:13px;padding:9px 10px;outline:none}
.bd-input:focus{outline:2px solid var(--pp-riot);outline-offset:1px}
.bd-textarea{resize:vertical;min-height:70px}
.bd-postbtn{cursor:pointer;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:10px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.bd-hint{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim)}
.bd-main{display:flex;flex-direction:column;gap:6px;min-width:0}
/* The Board shows ONE listing at a time; ‹ › arrows flank the card (Buster 2026-07-21) */
.pf-slider{position:relative;padding:0 48px;min-width:0}
/* ONE card visible at a time; ‹ › arrows on each side flip through them. No scrollbar. */
.bd-list{display:block;min-width:0;overflow:visible}
.bd-list > .bd-item{width:100%;max-width:none}
/* CRITICAL: .bd-item{display:flex} beats the [hidden] attribute — force hidden cards OFF so the
   slider truly shows ONE at a time (never a vertical stack). Buster 2026-07-21. */
.bd-item[hidden]{display:none!important}
.pf-slider__nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:46px;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;border:2px solid var(--pp-ink);background:var(--pp-paper-2);color:var(--pp-ink);border-radius:10px;cursor:pointer;box-shadow:var(--pp-sticker-shadow);z-index:2}
.pf-slider__nav--prev{left:0}
.pf-slider__nav--next{right:0}
.pf-slider__nav:hover:not(:disabled){border-color:var(--pp-riot);color:var(--pp-riot)}
.pf-slider__nav:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}
.pf-slider__lbl{text-align:center;font-family:var(--pp-font-mono);font-size:12px;color:var(--pp-ink-dim);margin-top:8px}
/* One BIG detailed card that fits on screen — the description scrolls INSIDE the card, page never grows */
.pf-filters--board{margin:2px 0 14px}
.pf-slider .bd-item{align-items:flex-start;padding:18px 20px;min-height:clamp(220px,40vh,400px);max-height:calc(100vh - 250px)}
.pf-slider .bd-item__b{display:flex;flex-direction:column;min-height:0;overflow:auto}
.pf-slider .bd-item__t{font-size:20px;line-height:1.25}
.pf-slider .bd-item__x{font-size:14px;margin-top:12px;line-height:1.65;color:var(--pp-ink);flex:1;min-height:0}
.pf-slider .bd-item__m{margin-top:14px}
.pf-slider .bd-votes{transform:scale(1.15);transform-origin:top center}
.bd-empty{border:var(--pp-b-bold) dashed var(--pp-line);background:var(--pp-paper-2);padding:26px;text-align:center}
.bd-empty__t{font-family:var(--pp-font-display);font-size:15px;text-transform:uppercase}
.bd-empty__s{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim);margin-top:6px}
.bd-item{display:flex;gap:14px;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);padding:12px 14px}
.bd-votes{display:flex;flex-direction:column;align-items:center;font-family:var(--pp-font-mono);font-size:12px;color:var(--pp-ink-dim);min-width:28px}
.bd-arrow{color:var(--pp-riot);font-size:13px;line-height:1}
.bd-n{font-weight:700;color:var(--pp-ink)}
.bd-item__b{flex:1}
.bd-item__t{font-weight:700;font-size:14.5px;line-height:1.3}
.bd-item__x{font-size:12.5px;color:var(--pp-ink-dim);margin-top:5px;line-height:1.5}
.bd-item__m{margin-top:8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bd-flair{font-family:var(--pp-font-mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--pp-circuit);color:var(--pp-circuit);padding:1px 7px}
.bd-meta{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim)}

/* Playbooks library */
.pb-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.pb-chip{font-family:var(--pp-font-mono);font-size:11px;letter-spacing:.03em;border:1.5px solid var(--pp-line);color:var(--pp-ink-dim);padding:5px 11px;cursor:default}
.pb-chip.on{border-color:var(--pp-ink);background:var(--pp-ink);color:var(--pp-paper);font-weight:700}
.pb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.pb-card{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);overflow:hidden}
.pb-thumb{height:96px;border-bottom:var(--pp-b-bold) solid var(--pp-ink);position:relative}
.pb-t1{background:linear-gradient(135deg,var(--pp-riot),var(--pp-paper-3))}
.pb-t2{background:linear-gradient(135deg,var(--pp-circuit),var(--pp-paper-3))}
.pb-t3{background:linear-gradient(135deg,var(--pp-volt),var(--pp-paper-3))}
.pb-body{padding:12px 14px}
.pb-title{font-family:var(--pp-font-display);font-size:15px;line-height:1.15}
.pb-by{font-family:var(--pp-font-mono);font-size:10.5px;color:var(--pp-ink-dim);margin-top:6px}
.pb-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.pb-price{font-family:var(--pp-font-display);font-size:14px;background:var(--pp-volt);color:var(--pp-volt-ink);padding:2px 9px}
.pb-price.pb-free{background:var(--pp-circuit)}
.pb-go{font-family:var(--pp-font-mono);font-size:12px;text-decoration:none;color:var(--pp-riot);font-weight:700}
.pb-card--sell{display:flex;align-items:center;justify-content:center;background:var(--pp-paper-3);border-style:dashed}
.pb-sell{padding:18px;text-align:center}
.pb-sell__t{font-family:var(--pp-font-display);font-size:15px;text-transform:uppercase}
.pb-sell__s{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim);margin-top:8px;line-height:1.6}

@media(max-width:820px){ .bd-wrap{grid-template-columns:1fr} .bd-post{position:static} }

/* ---- Board sample-data note ---- */
.bd-samplenote{font-family:var(--pp-font-mono);font-size:10.5px;color:var(--pp-ink-dim);border:1px dashed var(--pp-line);background:var(--pp-paper-2);padding:8px 10px;margin-bottom:4px}

/* ---- Pod / Build Room (deep mocked screen) ---- */
.rm-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;border-bottom:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-3)}
.rm-back{font-family:var(--pp-font-mono);font-size:11px;text-decoration:none;color:var(--pp-ink-dim)}
.rm-back:hover{color:var(--pp-riot)}
.rm-title{font-family:var(--pp-font-display);font-size:18px}
.rm-bli{font-family:var(--pp-font-mono);font-size:10.5px;color:var(--pp-circuit)}
.rm-head .rec{margin-left:auto}
.rm-grid{display:grid;grid-template-columns:240px 1fr 240px;min-height:60vh}
.rm-zone{font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--pp-ink-dim);margin-bottom:12px}
.rm-feed{border-right:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper);padding:14px;display:flex;flex-direction:column;gap:10px}
.rm-fi{border-left:3px solid var(--pp-line);padding-left:10px}
.rm-fi--agent{border-left-color:var(--pp-circuit)}
.rm-fi--human{border-left-color:var(--pp-riot)}
.rm-fi__from{font-family:var(--pp-font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--pp-ink-dim)}
.rm-fi__t{font-size:12.5px;line-height:1.5;margin-top:2px}
.rm-stage{display:flex;flex-direction:column;background:var(--pp-paper-2)}
.rm-tabs{display:flex;border-bottom:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-3)}
.rm-tab{font-family:var(--pp-font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:9px 16px;border-right:1.5px solid var(--pp-line);color:var(--pp-ink-dim)}
.rm-tab.on{background:var(--pp-paper-2);color:var(--pp-ink);font-weight:700}
.rm-canvas{padding:16px;display:flex;flex-direction:column;gap:14px}
.rm-preview{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper);box-shadow:var(--pp-sticker-shadow);max-width:460px}
.rm-pv__bar{display:flex;align-items:center;gap:5px;padding:8px 10px;border-bottom:1.5px solid var(--pp-ink);background:var(--pp-paper-3)}
.rm-pv__bar i{width:9px;height:9px;border-radius:50%;background:var(--pp-line);display:block}
.rm-pv__bar i:nth-child(1){background:var(--pp-riot)}.rm-pv__bar i:nth-child(2){background:var(--pp-volt)}.rm-pv__bar i:nth-child(3){background:var(--pp-circuit)}
.rm-pv__url{margin-left:8px;font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim)}
.rm-pv__body{padding:16px}
.rm-pv__h{font-family:var(--pp-font-display);font-size:16px;text-transform:uppercase;margin-bottom:12px}
.rm-pv__row{height:12px;background:var(--pp-paper-3);border:1px solid var(--pp-line);margin-bottom:8px}
.rm-pv__row--short{width:55%}
.rm-pv__btn{display:inline-block;margin-top:6px;background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;padding:8px 14px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.rm-board{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rm-lane{border:1.5px solid var(--pp-line);background:var(--pp-paper);padding:8px;min-height:90px}
.rm-lane__h{font-family:var(--pp-font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--pp-ink-dim);margin-bottom:8px}
.rm-card{border:1.5px solid var(--pp-ink);background:var(--pp-paper-2);padding:7px 8px;margin-bottom:7px;box-shadow:1.5px 1.5px 0 rgba(0,0,0,.35)}
.rm-card__bli{font-family:var(--pp-font-mono);font-size:9px;color:var(--pp-circuit)}
.rm-card__t{font-size:11.5px;font-weight:600;line-height:1.25;margin-top:2px}
.rm-rail{border-left:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper);padding:14px;display:flex;flex-direction:column;gap:12px}
.rm-person{display:flex;align-items:center;gap:9px}
.rm-av--agent{background:var(--pp-paper);color:var(--pp-circuit);border-color:var(--pp-circuit);border-radius:4px}
.rm-person__b{display:flex;flex-direction:column}
.rm-who{font-size:12.5px;font-weight:600;line-height:1.2}
.rm-st{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim)}
.rm-st--work{color:var(--pp-circuit)}
.rm-meter{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);padding:10px}
.rm-meter__row{display:flex;justify-content:space-between;font-family:var(--pp-font-mono);font-size:10.5px;margin-bottom:6px}
.rm-meter__bar{height:9px;border:1.5px solid var(--pp-ink);background:var(--pp-paper);position:relative}
.rm-meter__bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--pp-circuit),var(--pp-volt))}
.rm-meter__cap{font-family:var(--pp-font-mono);font-size:9px;color:var(--pp-ink-dim);margin-top:5px}
.rm-decision{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);padding:12px;box-shadow:var(--pp-sticker-shadow)}
.rm-decision__t{font-family:var(--pp-font-display);font-size:14px;margin-top:8px}
.rm-decision__p{font-size:12px;color:var(--pp-ink-dim);line-height:1.5;margin-top:6px}
.rm-decision__btns{display:flex;gap:8px;margin-top:10px}
.rm-approve{flex:1;text-align:center;text-decoration:none;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;padding:9px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.rm-later{text-decoration:none;border:1.5px solid var(--pp-ink);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:11px;padding:9px 12px}
@media(max-width:900px){ .rm-grid{grid-template-columns:1fr} .rm-feed,.rm-rail{border:none;border-top:var(--pp-b-bold) solid var(--pp-ink)} .rm-board{grid-template-columns:repeat(2,1fr)} }

/* ---- Crew wall (idea #4: 90s ID-badge activity list) ---- */
.cw-ticker{display:flex;align-items:center;gap:0;border-bottom:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-3);overflow:hidden}
.cw-ticker__live{flex:none;font-family:var(--pp-font-display);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--pp-riot-ink);background:var(--pp-riot);padding:7px 12px;border-right:var(--pp-b-bold) solid var(--pp-ink)}
.cw-ticker__track{flex:1;overflow:hidden;white-space:nowrap}
.cw-ticker__run{display:inline-block;white-space:nowrap;padding:7px 0;animation:cw-marquee 34s linear infinite}
.cw-ticker__it{font-family:var(--pp-font-mono);font-size:11.5px;color:var(--pp-ink-dim);padding:0 26px;border-right:1px dashed var(--pp-line)}
@keyframes cw-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.cw-ticker__run{animation:none}}

.cw-count{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim);margin-left:auto}
.cw-list{display:flex;flex-direction:column;gap:14px}
.cw-row{display:grid;grid-template-columns:230px 1fr;gap:16px;align-items:stretch}

/* the laminated badge */
.cw-badge{position:relative;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:0 0 10px;transform:rotate(-.6deg)}
.cw-badge__clip{position:absolute;top:-9px;left:50%;transform:translateX(-50%);width:44px;height:12px;border:2px solid var(--pp-ink);border-radius:3px;background:var(--pp-paper-3)}
.cw-badge__head{font-family:var(--pp-font-display);font-size:11px;letter-spacing:.06em;text-align:center;padding:9px 6px 7px;border-bottom:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-ink);color:var(--pp-paper)}
.cw-badge__head span{color:var(--pp-riot)}
.cw-badge--circuit .cw-badge__head span{color:var(--pp-circuit)}
.cw-badge--volt .cw-badge__head span{color:var(--pp-volt)}
.cw-badge__body{display:flex;gap:10px;padding:12px 12px 8px}
.cw-badge__photo{position:relative;width:52px;height:52px;flex:none;border:2px solid var(--pp-ink);background:var(--pp-paper-3);display:flex;align-items:center;justify-content:center;font-family:var(--pp-font-display);font-size:18px;color:var(--pp-ink)}
.cw-badge__dot{position:absolute;right:-5px;bottom:-5px;width:12px;height:12px;border-radius:50%;border:2px solid var(--pp-paper-2)}
.cw-dot--building{background:var(--pp-circuit)}
.cw-dot--online{background:var(--pp-riot)}
.cw-dot--idle{background:var(--pp-line)}
.cw-badge__id{min-width:0}
.cw-badge__name{font-family:var(--pp-font-display);font-size:13px;line-height:1.15}
.cw-badge__role{font-size:11px;color:var(--pp-ink);margin-top:3px;line-height:1.3}
.cw-badge__meta{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim);margin-top:4px}
.cw-badge__foot{display:flex;flex-direction:column;gap:6px;padding:0 12px}
.cw-badge__no{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:.04em;color:var(--pp-ink-dim)}
.cw-badge__bar{height:16px;background:repeating-linear-gradient(90deg,var(--pp-ink) 0 2px,transparent 2px 4px,var(--pp-ink) 4px 5px,transparent 5px 9px);opacity:.85}

/* their post */
.cw-post{display:flex;gap:14px;align-items:flex-start;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);padding:14px 16px;text-decoration:none;color:var(--pp-ink)}
.cw-post:hover{background:var(--pp-paper-3)}
.cw-post__vote{display:flex;flex-direction:column;align-items:center;font-family:var(--pp-font-mono);font-size:12px;color:var(--pp-ink-dim);min-width:30px}
.cw-post__arrow{color:var(--pp-riot);font-size:14px;line-height:1}
.cw-post__n{font-weight:700;color:var(--pp-ink)}
.cw-post__b{flex:1;min-width:0}
.cw-post__t{font-size:14.5px;font-weight:600;line-height:1.4}
.cw-post__m{margin-top:9px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-family:var(--pp-font-mono);font-size:10.5px;color:var(--pp-ink-dim)}
.cw-flair{font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--pp-line);padding:1px 8px;color:var(--pp-ink-dim)}
.cw-flair--riot{border-color:var(--pp-riot);color:var(--pp-riot)}
.cw-flair--circuit{border-color:var(--pp-circuit);color:var(--pp-circuit)}
.cw-flair--volt{border-color:var(--pp-volt-ink);background:var(--pp-volt);color:var(--pp-volt-ink)}

@media(max-width:760px){ .cw-row{grid-template-columns:1fr} .cw-badge{max-width:260px} }

/* ---- Lobby right rail: Maestro + live code look (idea #1/#2) ---- */
.hm-right--maestro{display:flex;flex-direction:column;gap:14px;align-items:stretch;flex-wrap:nowrap;width:100%;min-width:0}
.hm-right--maestro>*{min-width:0;max-width:100%}
/* Maestro ask box */
.mx-ask{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:12px}
.mx-ask__head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.mx-mark{font-family:var(--pp-font-display);font-size:13px;color:var(--pp-riot-ink);background:var(--pp-riot);border:2px solid var(--pp-ink);padding:5px 7px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.mx-mark span{color:var(--pp-volt)}
.mx-ask__title{font-family:var(--pp-font-display);font-size:15px;line-height:1}
.mx-ask__sub{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim);margin-top:3px}
.mx-form{display:flex;border:2px solid var(--pp-ink)}
.mx-input{flex:1;min-width:0;border:none;background:var(--pp-paper);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:12px;padding:9px 10px;outline:none}
.mx-input:focus{outline:2px solid var(--pp-riot);outline-offset:-2px}
.mx-send{border:none;border-left:2px solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:0 13px;cursor:pointer}
.mx-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mx-chip{font-family:var(--pp-font-mono);font-size:10px;border:1.5px solid var(--pp-line);background:var(--pp-paper);color:var(--pp-ink-dim);padding:4px 8px;cursor:pointer}
.mx-chip:hover{border-color:var(--pp-riot);color:var(--pp-riot)}
.mx-scope{font-family:var(--pp-font-mono);font-size:9px;color:var(--pp-ink-dim);margin-top:9px}
/* the live code window */
.mx-code{border:var(--pp-b-bold) solid var(--pp-ink);background:#0B0A0F;box-shadow:var(--pp-sticker-shadow);display:flex;flex-direction:column;overflow:hidden;min-height:480px}
.mx-code__bar{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-bottom:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-3)}
.mx-live{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--pp-circuit)}
.mx-toggle{display:inline-flex;align-items:center;gap:5px;font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim);cursor:pointer;user-select:none}
.mx-toggle input{accent-color:var(--pp-riot);cursor:pointer}
.mx-code__win{height:430px;overflow:hidden;position:relative}
.mx-code__run{padding:6px 0;animation:mx-scroll 12s linear infinite}
.mx-code:hover .mx-code__run{animation-play-state:paused}
@keyframes mx-scroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@media (prefers-reduced-motion:reduce){.mx-code__run{animation:none}}
.mx-line{display:flex;gap:0;padding:1px 0;align-items:baseline}
.mx-ln{flex:none;width:34px;text-align:right;padding-right:10px;font-family:var(--pp-font-mono);font-size:10px;color:#4c4766;user-select:none;border-right:1px solid #211e2e}
.mx-code__cell{flex:1;min-width:0;padding-left:11px}
.mx-line code{display:block;font-family:var(--pp-font-mono);font-size:11px;line-height:1.65;color:#B9B4CC;white-space:pre-wrap;word-break:break-word}
.mx-line code .cy{color:#2EE6D6}.mx-line code .pk{color:#FF2E7E}.mx-line code .yl{color:#F7E11E}
.mx-tip{display:inline-block;margin-top:4px;font-family:var(--pp-font-mono);font-size:9px;line-height:1.4;color:var(--pp-volt-ink);background:var(--pp-volt);padding:2px 6px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.mx-code:has(.mx-toggle input:not(:checked)) .mx-tip{display:none}
.mx-code__foot{font-family:var(--pp-font-mono);font-size:9px;color:#8d88a0;padding:7px 10px;border-top:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-3)}
.mx-code__foot b{color:var(--pp-circuit)}
/* tucked-away tonight/circle */
.mx-more{border:1.5px dashed var(--pp-line);background:var(--pp-paper);padding:8px 10px}
.mx-more summary{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim);cursor:pointer;list-style:none}
.mx-more summary::-webkit-details-marker{display:none}
.mx-more[open] summary{margin-bottom:8px;color:var(--pp-ink)}

/* ---- Street Team / Builder-Invite admin panel ---- */
.st-badge{margin-left:auto;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--pp-danger);color:var(--pp-danger);padding:3px 9px}
.st-flow{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);padding:14px;box-shadow:var(--pp-sticker-shadow)}
.st-step{display:flex;align-items:center;gap:9px;flex:1;min-width:150px}
.st-step__n{width:24px;height:24px;flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--pp-font-display);font-size:12px;background:var(--pp-riot);color:var(--pp-riot-ink);border:2px solid var(--pp-ink)}
.st-step__name{font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase}
.st-step__sub{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim);margin-top:2px}
.st-arrow{display:flex;align-items:center;color:var(--pp-ink-dim);font-size:16px}
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.st-card{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:14px;display:flex;flex-direction:column}
.st-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.st-card__name{font-family:var(--pp-font-display);font-size:15px;line-height:1.1}
.st-type{display:inline-block;margin-top:6px;font-family:var(--pp-font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;border:1.5px solid var(--pp-line);color:var(--pp-ink-dim);padding:1px 7px}
.st-type--api{border-color:var(--pp-circuit);color:var(--pp-circuit)}
.st-type--manual{border-color:var(--pp-volt-ink);background:var(--pp-volt);color:var(--pp-volt-ink)}
.st-status{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim);white-space:nowrap}
.st-card__best{font-size:12.5px;color:var(--pp-ink-dim);line-height:1.5;margin-top:10px;flex:1}
.st-card__meta{display:flex;justify-content:space-between;gap:8px;margin-top:12px;font-family:var(--pp-font-mono);font-size:10px}
.st-price{color:var(--pp-volt-ink);background:var(--pp-volt);padding:1px 7px;font-weight:700}
.st-field{color:var(--pp-ink-dim)}
.st-connect{margin-top:12px;border-top:1px dashed var(--pp-line);padding-top:10px}
.st-connect summary{list-style:none}
.st-connect summary::-webkit-details-marker{display:none}
.st-connect__btn{cursor:pointer;display:block;text-align:center;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:9px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.st-connect[open] .st-connect__btn{background:var(--pp-ink);color:var(--pp-paper)}
.st-connect__body{margin-top:10px}
.st-lbl{font-family:var(--pp-font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--pp-ink-dim)}
.st-input{width:100%;margin-top:5px;border:1.5px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:12px;padding:8px 10px}
.st-connect__row{display:flex;align-items:center;gap:10px;margin-top:9px;flex-wrap:wrap}
.st-save{cursor:not-allowed;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-circuit);color:var(--pp-volt-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;padding:8px 12px;opacity:.7}
.st-hint{font-family:var(--pp-font-mono);font-size:9px;color:var(--pp-ink-dim)}
.st-rails{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.st-rail{border:1.5px solid var(--pp-line);background:var(--pp-paper-2);padding:11px 13px}
.st-rail b{display:block;font-size:12.5px}
.st-rail span{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim);margin-top:3px;display:block;line-height:1.5}
@media(max-width:700px){ .st-flow{flex-direction:column} .st-arrow{transform:rotate(90deg)} }

/* ---- Owner-only Admin link in header ---- */
.hm-admin{display:inline-flex;align-items:center;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-danger);color:#fff;font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:6px 11px;text-decoration:none;box-shadow:var(--pp-sticker-shadow);white-space:nowrap}
.hm-admin:hover{transform:translate(-1px,-1px)}

/* ---- Lobby: build-bucket lanes under the Maestro ask box ---- */
.mx-kicker{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--pp-ink-dim);margin:12px 0 8px}
.mx-buckets{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.mx-bucket{display:flex;align-items:center;gap:13px;min-width:0;min-height:66px;overflow:hidden;text-align:left;cursor:pointer;border:2px solid var(--pp-ink);background:var(--pp-paper);padding:16px 16px;box-shadow:2px 2px 0 rgba(0,0,0,.28);transition:transform .1s,background .1s,box-shadow .1s}
.mx-bucket:hover{background:var(--pp-paper-2);transform:translate(-1px,-1px);box-shadow:3px 3px 0 rgba(0,0,0,.4)}
.mx-bucket[aria-selected="true"]{border-color:var(--pp-riot);box-shadow:2px 2px 0 var(--pp-riot)}
.mx-bucket__ico{font-size:26px;line-height:1;flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--pp-ink)}
.mx-bucket__ico svg{width:28px;height:28px;display:block}
.mx-bucket:hover .mx-bucket__ico{color:var(--pp-riot)}
.mx-bucket__tx{display:flex;flex-direction:column;min-width:0}
.mx-bucket__nm{font-family:var(--pp-font-display);font-size:12px;line-height:1.1;color:var(--pp-ink)}
.mx-bucket__tg{font-family:var(--pp-font-mono);font-size:8.5px;color:var(--pp-ink-dim);margin-top:3px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-oneliner{font-size:11px;line-height:1.5;color:var(--pp-ink-dim);margin:11px 0 0;font-style:italic}
@media(max-width:520px){.mx-buckets{grid-template-columns:1fr}}

/* ---- Lobby: DevTools (F12) style code look ---- */
.mx-dt{display:flex;align-items:center;gap:12px;padding:6px 10px;background:#151320;border-bottom:1px solid #2a2740}
.mx-dt__dots{display:inline-flex;gap:6px;flex:none}
.mx-dt__dots i{width:9px;height:9px;border-radius:50%;background:#3a3652}
.mx-dt__dots i:nth-child(1){background:#ff5f56}.mx-dt__dots i:nth-child(2){background:#ffbd2e}.mx-dt__dots i:nth-child(3){background:#27c93f}
.mx-dt__tabs{display:flex;gap:14px;flex:1;overflow:hidden}
.mx-dt__tabs span{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.02em;color:#6f6a86;padding-bottom:2px;white-space:nowrap}
.mx-dt__tabs span.on{color:#e6e3f2;border-bottom:2px solid var(--pp-circuit)}
.mx-file{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;background:#0f0d18;border-bottom:1px solid #2a2740}
.mx-file__tab{font-family:var(--pp-font-mono);font-size:10.5px;color:#cfcbe0;background:#1d1a2c;border-top:2px solid var(--pp-circuit);padding:5px 12px;white-space:nowrap}
.mx-caret{color:var(--pp-circuit);font-weight:700;margin-right:2px}

/* ---- Lobby: click-to-narrate code view ---- */
.mx-code.is-frozen .mx-code__run{animation-play-state:paused}
.mx-line{cursor:pointer;border-left:2px solid transparent}
.mx-line:hover{background:#1a1728;border-left-color:var(--pp-circuit)}
.mx-line:focus-visible{outline:2px solid var(--pp-circuit);outline-offset:-2px}
.mx-line.is-active{background:#241b30;border-left-color:var(--pp-riot)}
.mx-hint{font-family:var(--pp-font-mono);font-size:9.5px;color:#8681a0;white-space:nowrap}

/* Maestro "narrating" takeover */
.mx-narrate{border:2px solid var(--pp-circuit);background:var(--pp-paper);box-shadow:2px 2px 0 rgba(0,0,0,.4);padding:11px;margin-bottom:11px}
.mx-narrate__tag{display:flex;align-items:center;gap:6px;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.03em;text-transform:uppercase;color:var(--pp-circuit)}
.mx-narrate__mic{font-size:12px}
.mx-narrate__code{font-family:var(--pp-font-mono);font-size:11px;color:#e6e3f2;background:#0B0A0F;border:1px solid #2a2740;padding:7px 9px;margin:9px 0;overflow-x:auto;white-space:pre-wrap;word-break:break-word}
.mx-narrate__code .cy{color:#2EE6D6}.mx-narrate__code .pk{color:#FF2E7E}.mx-narrate__code .yl{color:#F7E11E}
.mx-narrate__text{font-size:13px;line-height:1.55;color:var(--pp-ink);margin:0 0 11px}
.mx-narrate__resume{cursor:pointer;border:2px solid var(--pp-ink);background:var(--pp-circuit);color:var(--pp-volt-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.mx-narrate__resume:hover{transform:translate(-1px,-1px)}
/* Maestro wakes up while narrating */
.mx-ask.is-narrating{outline:2px solid var(--pp-circuit);outline-offset:2px}
.mx-ask.is-narrating .mx-mark{background:var(--pp-circuit);color:var(--pp-volt-ink);animation:mx-pulse 1.1s ease-in-out infinite}
@keyframes mx-pulse{0%,100%{box-shadow:2px 2px 0 rgba(0,0,0,.4)}50%{box-shadow:2px 2px 0 rgba(0,0,0,.4),0 0 0 4px rgba(46,230,214,.25)}}
@media (prefers-reduced-motion:reduce){.mx-ask.is-narrating .mx-mark{animation:none}}

/* ---- Brand pod-mark logo (nav + Maestro badge) ---- */
.hm-brand{display:inline-flex;align-items:center;gap:10px}
.hm-brand__mark{height:38px;width:auto;display:block;image-rendering:auto}
.hm-brand__wm{font-family:var(--pp-font-display);font-size:18px;letter-spacing:-.01em;line-height:1}
@media(max-width:640px){.hm-brand__wm{display:none}.hm-brand__mark{height:34px}}
.mx-mark--img{background:transparent;border:none;box-shadow:none;padding:0;display:inline-flex;align-items:center;justify-content:center}
.mx-mark--img img{height:38px;width:auto;display:block}

/* ================= Connect-AI CTA + Start-a-Pod + Connect page ================= */
.mx-bucket{text-decoration:none}

/* Glowing 90s "Connect AI" nav button */
.hm-nav{position:relative}
/* In-flow, auto-margins center it between the links and the right chips — no overlap */
.ai-navcta{margin-left:auto;margin-right:auto;z-index:3;
  display:inline-flex;align-items:center;white-space:nowrap;font-family:var(--pp-font-display);font-size:13px;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;
  color:#000;text-shadow:0 1px 0 rgba(255,255,255,.7),0 -1px 0 rgba(255,255,255,.45);-webkit-text-stroke:.35px rgba(0,0,0,.35);
  padding:8px 18px;border:var(--pp-b-bold) solid var(--pp-ink);
  background:linear-gradient(100deg,var(--pp-volt) 0%,#fff6 20%,var(--pp-volt) 40%,var(--pp-riot) 75%,var(--pp-circuit) 100%);background-size:220% 100%;
  box-shadow:2px 2px 0 rgba(0,0,0,.5);animation:ai-shine 3.2s linear infinite, ai-pulse 1.8s ease-in-out infinite}
.ai-navcta:hover{transform:translateY(-1px)}
.ai-navcta.on{outline:2px solid var(--pp-circuit);outline-offset:2px}
@media(max-width:1000px){
  .ai-navcta{order:5;margin:6px auto 0;font-size:12px}
}
@keyframes ai-shine{from{background-position:0 0}to{background-position:220% 0}}
@keyframes ai-pulse{0%,100%{box-shadow:2px 2px 0 rgba(0,0,0,.5),0 0 6px 1px rgba(247,225,30,.45)}50%{box-shadow:2px 2px 0 rgba(0,0,0,.5),0 0 16px 4px rgba(255,46,126,.6)}}
@media (prefers-reduced-motion:reduce){.ai-navcta{animation:none}}

/* generic page main used by start/connect */
.pg-main{padding:22px 26px;max-width:1100px}
.pg-h1{font-family:var(--pp-font-display);font-size:26px;line-height:1}
.pg-note{color:var(--pp-ink-dim);font-size:13.5px;line-height:1.6;max-width:70ch;margin:10px 0 20px}

/* Start a New Pod — lane picker */
.sp-lanes{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.sp-lane{display:flex;flex-direction:column;gap:4px;text-decoration:none;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:16px;transition:transform .1s}
.sp-lane:hover{transform:translate(-2px,-2px);border-color:var(--pp-riot)}
.sp-lane__ico{font-size:26px}
.sp-lane__nm{font-family:var(--pp-font-display);font-size:16px;color:var(--pp-ink)}
.sp-lane__tg{font-family:var(--pp-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--pp-riot)}
.sp-lane__eg{font-size:12px;color:var(--pp-ink-dim);line-height:1.5;margin-top:4px}
.sp-back{display:inline-block;font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim);text-decoration:none;margin-bottom:12px}
.sp-back:hover{color:var(--pp-riot)}
.sp-hero{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.sp-hero__ico{font-size:40px}
.sp-hero__k{font-family:var(--pp-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--pp-ink-dim)}
.sp-hero__tg{color:var(--pp-ink-dim);font-size:12.5px;margin:0}
.sp-planhead{display:flex;align-items:center;gap:10px;margin:22px 0 10px}
.sp-planhead b{font-family:var(--pp-font-display);font-size:14px}
.sp-sub{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim);margin-top:2px}
.sp-plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.sp-sprint{border:2px solid var(--pp-line);background:var(--pp-paper-2);padding:12px 14px}
.sp-sprint__t{font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;color:var(--pp-ink)}
.sp-bli{display:block;font-size:12.5px;color:var(--pp-ink-dim);padding:4px 0;line-height:1.4}
.sp-bli__id{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-circuit);margin-right:4px}
.sp-actions{display:flex;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}
.sp-primary{cursor:pointer;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-riot);color:var(--pp-riot-ink);font-family:var(--pp-font-display);font-size:13px;text-transform:uppercase;letter-spacing:.04em;padding:11px 18px;box-shadow:var(--pp-sticker-shadow)}
.sp-primary:hover{transform:translate(-1px,-1px)}
.sp-hint{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim)}

/* Connect-AI inline CTA (on the start page) */
.ai-cta{display:flex;align-items:center;gap:14px;text-decoration:none;border:var(--pp-b-bold) solid var(--pp-ink);padding:14px 16px;
  background:linear-gradient(100deg,var(--pp-volt),#fff2 30%,var(--pp-riot) 80%,var(--pp-circuit));background-size:200% 100%;animation:ai-shine 3.5s linear infinite;box-shadow:var(--pp-sticker-shadow)}
.ai-cta--inline{margin:0 0 22px}
.ai-cta__bolt{font-size:26px}
.ai-cta__tx{display:flex;flex-direction:column;color:#180d00}
.ai-cta__tx b{font-family:var(--pp-font-display);font-size:15px}
.ai-cta__tx small{font-size:11.5px;opacity:.85}
.ai-cta__go{margin-left:auto;font-family:var(--pp-font-display);font-size:13px;color:#180d00;white-space:nowrap}

/* Connect page — 90s shiny hero */
.ai-hero{position:relative;overflow:hidden;border:var(--pp-b-bold) solid var(--pp-ink);background:#0b0a0f;padding:34px 28px;box-shadow:var(--pp-sticker-shadow);margin-bottom:22px}
.ai-hero__glow{position:absolute;inset:-40%;background:radial-gradient(circle at 30% 30%,rgba(255,46,126,.35),transparent 40%),radial-gradient(circle at 75% 60%,rgba(46,230,214,.30),transparent 45%),radial-gradient(circle at 50% 90%,rgba(247,225,30,.25),transparent 40%);animation:ai-drift 8s ease-in-out infinite alternate;pointer-events:none}
@keyframes ai-drift{from{transform:translate(-6%,-4%) scale(1)}to{transform:translate(6%,4%) scale(1.1)}}
@media (prefers-reduced-motion:reduce){.ai-hero__glow{animation:none}}
.ai-hero__badge{position:relative;display:inline-block;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-volt-ink);background:var(--pp-volt);padding:4px 10px;transform:rotate(-1deg)}
.ai-hero__h1{position:relative;font-family:var(--pp-font-display);font-size:44px;line-height:1;margin:14px 0 8px;color:#fff;text-shadow:2px 2px 0 var(--pp-riot),4px 4px 0 rgba(46,230,214,.6)}
.ai-hero__p{position:relative;color:#cfcbe0;font-size:14px;line-height:1.6;max-width:60ch}
.ai-hero__p b{color:#fff}
.ai-hero__steps{position:relative;display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ai-step{font-family:var(--pp-font-mono);font-size:11px;color:#e6e3f2;border:1.5px solid #3a3652;padding:5px 10px}
.ai-step b{color:var(--pp-circuit);margin-right:5px}

.ai-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.ai-card{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:14px;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.ai-card__top{display:flex;align-items:center;gap:11px}
.ai-card__ico{font-size:26px}
.ai-card__nm{font-family:var(--pp-font-display);font-size:15px}
.ai-card__st{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim)}
.ai-card__best{font-size:12.5px;color:var(--pp-ink-dim);line-height:1.5;margin:11px 0;flex:1}
.ai-connect{border-top:1px dashed var(--pp-line);padding-top:10px}
.ai-connect summary{list-style:none}.ai-connect summary::-webkit-details-marker{display:none}
.ai-connect__btn{cursor:pointer;display:block;text-align:center;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-circuit);color:var(--pp-volt-ink);font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:9px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.ai-connect[open] .ai-connect__btn{background:var(--pp-ink);color:var(--pp-paper)}
.ai-connect__body{margin-top:10px}
.ai-lbl{font-family:var(--pp-font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--pp-ink-dim)}
.ai-input{width:100%;margin-top:5px;border:1.5px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:12px;padding:8px 10px}
.ai-connect__row{display:flex;align-items:center;gap:10px;margin-top:9px;flex-wrap:wrap}
.ai-save{cursor:not-allowed;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-volt);color:var(--pp-volt-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;padding:8px 12px;opacity:.7}
.ai-hint{font-family:var(--pp-font-mono);font-size:9px;color:var(--pp-ink-dim)}
.ai-foot{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim);margin-top:18px;line-height:1.6}

/* ---- Lobby: real Maestro answer box ---- */
.mx-answer{border:2px solid var(--pp-line);background:var(--pp-paper);padding:11px 12px;margin-top:10px;font-size:13px;line-height:1.55;color:var(--pp-ink);max-height:320px;overflow:auto}
.mx-answer__think{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim)}
.mx-answer--warn{border-color:var(--pp-volt-ink);background:var(--pp-volt);color:var(--pp-volt-ink)}
.mx-answer a{color:var(--pp-riot);font-weight:700;text-decoration:underline}

/* ---- Connect page: AI Meter ---- */
.ai-meter{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:14px;margin:18px 0}
.ai-meter__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.ai-meter__title{font-family:var(--pp-font-display);font-size:15px;color:var(--pp-ink)}
.ai-meter__sub{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim)}
.ai-meter__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.ai-meter__cell{border:2px solid var(--pp-line);background:var(--pp-paper);padding:11px 13px;display:flex;flex-direction:column;gap:3px}
.ai-meter__k{font-family:var(--pp-font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--pp-ink-dim)}
.ai-meter__cell b{font-family:var(--pp-font-display);font-size:22px;color:var(--pp-volt-ink);background:var(--pp-volt);align-self:flex-start;padding:1px 8px;line-height:1.25}
.ai-meter__cell span:last-child{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-dim)}
.ai-meter__by{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ai-meter__pill{font-family:var(--pp-font-mono);font-size:10px;border:1.5px solid var(--pp-circuit);color:var(--pp-ink);padding:4px 9px}

/* ---- Connect: provider toggle switch + role + nav meter chip ---- */
.ai-card__id{flex:1;min-width:0}
.ai-tag-exp{font-family:var(--pp-font-mono);font-size:8px;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--pp-line);color:var(--pp-ink-dim);padding:1px 5px;margin-left:4px}
.ai-switch{position:relative;display:inline-block;width:42px;height:23px;flex:none;cursor:pointer}
.ai-switch input{opacity:0;width:0;height:0;position:absolute}
.ai-switch__slider{position:absolute;inset:0;background:var(--pp-line);border:2px solid var(--pp-ink);transition:background .15s}
.ai-switch__slider::before{content:"";position:absolute;left:2px;top:2px;width:15px;height:15px;background:var(--pp-paper);border:2px solid var(--pp-ink);transition:transform .15s}
.ai-switch input:checked + .ai-switch__slider{background:var(--pp-circuit)}
.ai-switch input:checked + .ai-switch__slider::before{transform:translateX(19px)}
.ai-role{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:8px 0 4px;min-width:0}
.ai-role .ai-lbl{margin:0}
.ai-select{width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:1.5px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:11px;padding:6px 8px}
.ai-model{font-family:var(--pp-font-mono);font-size:9px;color:var(--pp-ink-dim);margin-top:8px}
.ai-model code{color:var(--pp-circuit)}

/* nav meter chip (always-visible live spend) */
.hm-meterchip{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;text-decoration:none;font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-volt-ink);background:var(--pp-volt);border:2px solid var(--pp-ink);padding:5px 9px;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.hm-meterchip b{font-family:var(--pp-font-display)}
.hm-meterchip:hover{transform:translate(-1px,-1px)}

/* ---- Lobby Ask box: provider picker + answered-by tag ---- */
.mx-picker{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.mx-picker__lbl{font-family:var(--pp-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--pp-ink-dim)}
.mx-picker__sel{flex:1;min-width:120px;border:1.5px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:11px;padding:6px 8px}
.mx-picker__connect{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-riot);text-decoration:none}
.mx-picker__connect:hover{text-decoration:underline}
.mx-answer{margin-top:10px;border:1.5px solid var(--pp-line);background:var(--pp-paper);padding:11px 12px;font-size:13px;line-height:1.55;color:var(--pp-ink)}
.mx-answer--warn{border-color:var(--pp-riot);color:var(--pp-ink)}
.mx-answer__think{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim)}
.mx-answer__by{font-family:var(--pp-font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--pp-circuit);margin-bottom:7px}
.mx-answer__by span{color:var(--pp-ink-dim);text-transform:none;letter-spacing:0}
.mx-answer__reply{white-space:normal}

/* ============================================================
   Setup Concierge (setup.php) — Maestro-guided 3rd-party setup
   ============================================================ */
.sc-cta{display:flex;align-items:center;gap:14px;margin:14px 0;padding:16px 18px;border-radius:14px;
  text-decoration:none;color:var(--pp-ink);border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(100deg,rgba(0,209,255,.12),rgba(255,45,149,.10));
  transition:transform .12s ease,box-shadow .12s ease}
.sc-cta:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(0,209,255,.18)}
.sc-cta__ico{font-size:30px;line-height:1}
.sc-cta__tx{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.sc-cta__tx b{font-size:15px}
.sc-cta__tx small{color:var(--pp-ink-dim);font-size:12px}
.sc-cta__go{font-family:var(--pp-mono,monospace);font-size:12px;font-weight:700;color:var(--pp-circuit);white-space:nowrap}

.sc-head{display:flex;gap:16px;align-items:flex-start;margin:6px 0 14px}
.sc-head__mark{flex:0 0 auto;padding:6px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.sc-head__k{font-family:var(--pp-mono,monospace);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pp-circuit)}
.sc-head__p{color:var(--pp-ink-dim);font-size:13.5px;max-width:66ch;margin:6px 0 0}

.sc-overall{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.sc-overall__bar{flex:1;height:10px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.sc-overall__bar>span{display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,var(--pp-circuit),var(--pp-volt));transition:width .3s ease}
.sc-overall__txt{font-family:var(--pp-mono,monospace);font-size:12px;color:var(--pp-ink-dim);white-space:nowrap}

.sc-gpu{margin:0 0 18px;padding:14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03)}
.sc-gpu__q{display:flex;gap:12px;align-items:flex-start}
.sc-gpu__ico{font-size:24px}
.sc-gpu__hint{color:var(--pp-ink-dim);font-size:12.5px;margin-top:3px}
.sc-gpu__btns{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.sc-gpu__yes,.sc-gpu__no{cursor:pointer;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:var(--pp-ink)}
.sc-gpu__yes:hover{border-color:var(--pp-circuit)}
.sc-gpu__no:hover{border-color:var(--pp-volt)}
.sc-gpu__out{margin-top:12px;padding:11px 13px;border-radius:10px;font-size:13px;line-height:1.5}
.sc-gpu__out.is-yes{background:rgba(0,209,255,.10);border:1px solid rgba(0,209,255,.30)}
.sc-gpu__out.is-no{background:rgba(255,209,0,.10);border:1px solid rgba(255,209,0,.30)}

.sc-track{margin:0 0 16px;padding:16px 18px;border-radius:16px;border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.025);border-left:3px solid var(--sc-accent,var(--pp-circuit))}
.sc-track__top{display:flex;align-items:center;gap:13px}
.sc-track__ico{font-size:26px}
.sc-track__id{flex:1;min-width:0}
.sc-track__nm{font-weight:800;font-size:16px}
.sc-track__bl{color:var(--pp-ink-dim);font-size:12.5px;margin-top:1px}
.sc-track__count{font-family:var(--pp-mono,monospace);font-size:13px;color:var(--pp-ink-dim)}
.sc-track__count b{color:var(--sc-accent,var(--pp-circuit))}
.sc-track__bar{height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin:11px 0 4px}
.sc-track__bar>span{display:block;height:100%;border-radius:99px;background:var(--sc-accent,var(--pp-circuit));transition:width .3s ease}

.sc-steps{list-style:none;margin:8px 0 0;padding:0}
.sc-step{display:flex;gap:12px;padding:13px 0;border-top:1px solid rgba(255,255,255,.06)}
.sc-step:first-child{border-top:0}
.sc-step__check{position:relative;flex:0 0 auto;cursor:pointer;margin-top:2px}
.sc-step__check input{position:absolute;opacity:0;width:22px;height:22px;cursor:pointer;margin:0}
.sc-step__box{display:block;width:22px;height:22px;border-radius:7px;border:2px solid rgba(255,255,255,.25);
  transition:background .15s ease,border-color .15s ease}
.sc-step__check input:checked + .sc-step__box{background:var(--sc-accent,var(--pp-circuit));border-color:var(--sc-accent,var(--pp-circuit));
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6L9 17l-5-5'/></svg>");
  background-size:15px;background-repeat:no-repeat;background-position:center}
.sc-step__body{flex:1;min-width:0}
.sc-step__t{font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px}
.sc-step__n{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;
  font-family:var(--pp-mono,monospace);font-size:11px;background:rgba(255,255,255,.09);color:var(--pp-ink-dim)}
.sc-step__why{color:var(--pp-ink-dim);font-size:12.8px;line-height:1.55;margin:4px 0 0}
.sc-step__row{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.sc-step__cta{text-decoration:none;font-weight:700;font-size:12.5px;padding:6px 12px;border-radius:9px;
  color:#04121a;background:var(--sc-accent,var(--pp-circuit));transition:filter .12s ease}
.sc-step__cta:hover{filter:brightness(1.08)}
.sc-step__ask,.sc-step__done{cursor:pointer;font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:9px;
  border:1px solid rgba(255,255,255,.16);background:transparent;color:var(--pp-ink)}
.sc-step__ask:hover{border-color:var(--pp-circuit)}
.sc-step__done:hover{border-color:var(--pp-volt)}
.sc-step.is-done{opacity:.62}
.sc-step.is-done .sc-step__t{text-decoration:line-through;text-decoration-color:rgba(255,255,255,.35)}
.sc-step__ans{margin-top:9px;padding:10px 12px;border-radius:9px;font-size:13px;line-height:1.55;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);white-space:pre-wrap}
.sc-step__ans.is-think{color:var(--pp-ink-dim);font-style:italic}
.sc-step__ans.is-warn{background:rgba(255,209,0,.08);border-color:rgba(255,209,0,.28)}

.sc-stuck{margin:22px 0 8px;padding:16px 18px;border-radius:16px;border:1px dashed rgba(255,255,255,.16);
  background:rgba(255,255,255,.02)}
.sc-stuck__head{font-size:14px;margin-bottom:11px}
.sc-stuck__ico{margin-right:4px}
.sc-stuck__form{display:flex;gap:10px;flex-wrap:wrap}
.sc-stuck__in{flex:1;min-width:220px;padding:11px 14px;border-radius:11px;font-size:14px;
  background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.14);color:var(--pp-ink)}
.sc-stuck__in:focus{outline:none;border-color:var(--pp-circuit)}
.sc-stuck__btn{cursor:pointer;font-weight:800;font-size:13.5px;padding:11px 20px;border-radius:11px;border:0;
  color:#04121a;background:linear-gradient(90deg,var(--pp-circuit),var(--pp-volt))}
.sc-stuck__ans{margin-top:13px;padding:12px 14px;border-radius:11px;font-size:13.5px;line-height:1.6;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);white-space:pre-wrap}
.sc-stuck__ans.is-think{color:var(--pp-ink-dim);font-style:italic}
.sc-stuck__ans.is-warn{background:rgba(255,209,0,.08);border-color:rgba(255,209,0,.28)}
.sc-stuck__note{margin-top:11px;font-size:12.5px;color:var(--pp-ink-dim)}
.sc-by{font-family:var(--pp-mono,monospace);font-size:11px;color:var(--pp-circuit);margin-bottom:5px}
.sc-reply{white-space:pre-wrap}

/* ============================================================
   Services & Tools vault (connect.php) + Setup badge (my-podz)
   ============================================================ */
.svc-wrap{margin:26px 0 6px;padding-top:22px;border-top:1px solid rgba(255,255,255,.10)}
.svc-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.svc-head__ico{font-size:28px;line-height:1}
.svc-head__h2{font-size:20px;font-weight:800;margin:0}
.svc-head__p{color:var(--pp-ink-dim);font-size:13px;max-width:70ch;margin:4px 0 0}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.svc-card{padding:15px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.025)}
.svc-card__top{display:flex;align-items:center;gap:11px}
.svc-card__ico{font-size:23px}
.svc-card__id{flex:1;min-width:0}
.svc-card__nm{font-weight:700;font-size:15px}
.svc-card__st{font-size:11.5px;color:var(--pp-ink-dim)}
.svc-card__bl{color:var(--pp-ink-dim);font-size:12.5px;line-height:1.5;margin:9px 0 11px}
.svc-card__links{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.svc-card__links a{font-size:12px;color:var(--pp-circuit);text-decoration:none}
.svc-card__links a:hover{text-decoration:underline}
.svc-forget{cursor:pointer;font-size:11.5px;color:var(--pp-ink-dim);background:none;border:0;text-decoration:underline}
.svc-forget:hover{color:var(--pp-riot)}

.pz-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.pz-setup{font-family:var(--pp-mono,monospace);font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;
  border:1px solid rgba(255,255,255,.16);color:var(--pp-ink-dim);white-space:nowrap}
.pz-setup.is-partial{color:var(--pp-volt);border-color:rgba(255,209,0,.4)}
.pz-setup.is-done{color:var(--pp-circuit);border-color:rgba(0,209,255,.45);background:rgba(0,209,255,.08)}

/* ---- Connected-services nav chip + Concierge auto-check badge ---- */
.hm-svcchip{display:inline-flex;align-items:center;gap:5px;text-decoration:none;font-size:12px;
  padding:5px 11px;border-radius:0;color:var(--pp-ink);border:1px solid rgba(0,209,255,.35);
  background:rgba(0,209,255,.08);white-space:nowrap}
.hm-svcchip b{color:var(--pp-circuit)}
.hm-svcchip:hover{border-color:var(--pp-circuit)}
.sc-auto{display:inline-block;margin-left:8px;font-family:var(--pp-mono,monospace);font-size:10px;font-weight:700;
  padding:1px 7px;border-radius:99px;color:var(--pp-circuit);background:rgba(0,209,255,.10);border:1px solid rgba(0,209,255,.30)}
.sc-step.is-auto .sc-step__box{box-shadow:0 0 0 3px rgba(0,209,255,.18)}

/* ---- Pod Setup Health panel + guided Deploy ---- */
.rm-health{margin-top:14px;padding:13px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.025)}
.rm-health__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rm-health__manage{font-size:11.5px;color:var(--pp-circuit);text-decoration:none}
.rm-health__manage:hover{text-decoration:underline}
.rm-health__empty{color:var(--pp-ink-dim);font-size:12px;line-height:1.5}
.rm-hi{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}
.rm-hi:first-child{border-top:0}
.rm-hi__dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.rm-hi.is-ok .rm-hi__dot{background:var(--pp-circuit);box-shadow:0 0 6px rgba(0,209,255,.6)}
.rm-hi.is-miss .rm-hi__dot{background:rgba(255,255,255,.22)}
.rm-hi__l{flex:1;font-size:12.5px}
.rm-hi__s{font-family:var(--pp-mono,monospace);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.rm-hi.is-ok .rm-hi__s{color:var(--pp-circuit)}
.rm-hi.is-miss .rm-hi__s{color:var(--pp-ink-dim)}
.rm-deploy{margin-top:12px;width:100%;cursor:pointer;font-weight:800;font-size:13.5px;padding:10px 14px;border-radius:11px;border:0;
  color:#04121a;background:linear-gradient(90deg,var(--pp-circuit),var(--pp-volt))}
.rm-deploy:hover{filter:brightness(1.06)}
.rm-deploy:disabled{opacity:.6;cursor:default}
.rm-deploy__out{margin-top:10px;padding:10px 12px;border-radius:10px;font-size:12.5px;line-height:1.5;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09)}
.rm-deploy__out.is-think{color:var(--pp-ink-dim);font-style:italic}
.rm-deploy__out.is-ok{background:rgba(0,209,255,.08);border-color:rgba(0,209,255,.28)}
.rm-deploy__out.is-warn{background:rgba(255,209,0,.08);border-color:rgba(255,209,0,.28)}
.rm-deploy__out ol{margin:6px 0 0;padding-left:18px}
.rm-deploy__out li{margin:2px 0}
.rm-deploy__url{margin-top:8px;font-family:var(--pp-mono,monospace);color:var(--pp-circuit)}
.rm-deploy__note{margin-top:7px;color:var(--pp-ink-dim);font-size:11.5px}
.rm-deploy__out a{color:var(--pp-circuit)}

/* ---- Per-Pod Bug Tracker ---- */
.rm-bugs{margin-top:14px;padding:13px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.025)}
.rm-bugs__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rm-bugs__counts{display:flex;gap:6px}
.rm-bc{font-family:var(--pp-mono,monospace);font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:99px;white-space:nowrap}
.rm-bc--open{color:var(--pp-riot);background:rgba(255,45,149,.12)}
.rm-bc--fixing{color:var(--pp-volt);background:rgba(255,209,0,.12)}
.rm-bc--fixed{color:var(--pp-circuit);background:rgba(0,209,255,.12)}
.rm-bugs__form{margin-bottom:11px}
.rm-bugs__in{width:100%;padding:9px 11px;border-radius:9px;font-size:12.5px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.14);color:var(--pp-ink)}
.rm-bugs__in:focus{outline:none;border-color:var(--pp-riot)}
.rm-bugs__row{display:flex;gap:8px;margin-top:8px}
.rm-bugs__sev{flex:1;padding:8px 10px;border-radius:9px;font-size:12px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.14);color:var(--pp-ink)}
.rm-bugs__add{cursor:pointer;font-weight:800;font-size:12.5px;padding:8px 14px;border-radius:9px;border:0;color:#fff;background:var(--pp-riot)}
.rm-bugs__add:hover{filter:brightness(1.08)}
.rm-bugs__empty{color:var(--pp-ink-dim);font-size:12px}
.rm-bug{padding:9px 0;border-top:1px solid rgba(255,255,255,.06)}
.rm-bug:first-child{border-top:0}
.rm-bug__top{display:flex;align-items:center;gap:7px;margin-bottom:3px}
.rm-bug__sev{font-family:var(--pp-mono,monospace);font-size:9px;text-transform:uppercase;font-weight:700;padding:1px 6px;border-radius:99px}
.rm-bug__sev--low{color:var(--pp-ink-dim);background:rgba(255,255,255,.08)}
.rm-bug__sev--medium{color:var(--pp-volt);background:rgba(255,209,0,.12)}
.rm-bug__sev--high{color:var(--pp-riot);background:rgba(255,45,149,.14)}
.rm-bug__by{font-size:11px}
.rm-bug__badge{margin-left:auto;font-family:var(--pp-mono,monospace);font-size:9px;text-transform:uppercase;color:var(--pp-ink-dim)}
.rm-bug__t{font-size:12.5px;line-height:1.4}
.rm-bug--fixed .rm-bug__t{text-decoration:line-through;opacity:.6}
.rm-bug__next{margin-top:6px;cursor:pointer;font-size:11px;font-weight:600;padding:4px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.16);background:transparent;color:var(--pp-ink)}
.rm-bug__next:hover{border-color:var(--pp-circuit)}

/* ---- START YOUR BUILD banner (Lobby, above Maestro) ---- */
.mx-startbanner{display:block;text-align:center;text-decoration:none;margin:0 0 12px;padding:11px 14px;border-radius:0;
  font-family:var(--pp-font-display);font-size:15px;letter-spacing:.06em;color:#04121a;border:var(--pp-b-bold) solid var(--pp-ink);
  background:linear-gradient(100deg,var(--pp-volt) 0%,#fff7 22%,var(--pp-volt) 44%,var(--pp-riot) 78%,var(--pp-circuit) 100%);background-size:220% 100%;
  box-shadow:2px 2px 0 rgba(0,0,0,.5);animation:ai-shine 3.4s linear infinite}
.mx-startbanner:hover{transform:translateY(-1px)}

/* ---- Planning workspace ---- */
.pl-head{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.pl-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
@media(max-width:900px){.pl-grid{grid-template-columns:1fr}}
.pl-brief,.pl-out{padding:16px 18px;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow)}
.pl-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.pl-lbl{font-family:var(--pp-mono,monospace);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-ink-dim);display:block;margin-bottom:6px}
.pl-ai{padding:8px 12px;font-size:13px;background:var(--pp-paper);border:2px solid var(--pp-ink);color:var(--pp-ink)}
.pl-connect{font-size:12px;color:var(--pp-circuit);text-decoration:none}
.pl-brieftext{width:100%;padding:12px 14px;font-size:14px;line-height:1.5;background:var(--pp-paper);border:2px solid var(--pp-ink);color:var(--pp-ink);resize:vertical;font-family:inherit}
.pl-brieftext:focus{outline:2px solid var(--pp-riot);outline-offset:-2px;border-color:var(--pp-ink)}
.pl-actions{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.pl-plan{cursor:pointer;font-weight:800;font-size:13.5px;padding:10px 18px;border:2px solid var(--pp-ink);color:#04121a;background:linear-gradient(90deg,var(--pp-circuit),var(--pp-volt));box-shadow:2px 2px 0 var(--pp-ink)}
.pl-plan:hover{filter:brightness(1.06)}
.pl-plan:disabled{opacity:.6;cursor:default}
.pl-save{cursor:pointer;font-weight:600;font-size:13px;padding:10px 14px;border:2px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink)}
.pl-save:hover{border-color:var(--pp-riot);box-shadow:2px 2px 0 var(--pp-ink)}
.pl-msg{font-size:12.5px;color:var(--pp-ink-dim)}
.pl-out__head{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.pl-by{font-family:var(--pp-mono,monospace);font-size:11px;color:var(--pp-circuit);margin-left:auto}
.pl-plan__body{min-height:220px;padding:13px 14px;background:var(--pp-paper);border:2px solid var(--pp-ink);font-size:13.5px;line-height:1.6;white-space:pre-wrap}
.pl-empty{color:var(--pp-ink-dim)}
.pl-topod{display:inline-block;margin-top:12px;font-weight:700;font-size:13px;color:var(--pp-circuit);text-decoration:none}
.pl-topod:hover{text-decoration:underline}

/* ---- Add-a-model card + remove custom model ---- */
.ai-card--add{border-style:dashed;background:rgba(255,255,255,.02)}
.ai-remove{margin-top:10px;cursor:pointer;font-size:12px;font-weight:600;color:var(--pp-ink-dim);background:transparent;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:6px 12px}
.ai-remove:hover{color:var(--pp-riot);border-color:var(--pp-riot)}

/* ---- Per-card price line + collapsed by-model meter ---- */
.ai-price{font-family:var(--pp-mono,monospace);font-size:10.5px;color:var(--pp-ink-dim);margin-top:5px}
.ai-price__u{opacity:.7}
.ai-meter__more{margin-top:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:8px}
.ai-meter__more>summary{cursor:pointer;font-family:var(--pp-mono,monospace);font-size:11px;color:var(--pp-ink-dim);list-style:none}
.ai-meter__more[open]>summary{color:var(--pp-circuit)}
.ai-meter__models{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.ai-meter__mrow{display:flex;justify-content:space-between;gap:10px;font-family:var(--pp-mono,monospace);font-size:11px}
.ai-meter__mrow code{color:var(--pp-ink)}
.ai-meter__mrow span{color:var(--pp-ink-dim);white-space:nowrap}

/* ---- Shared collapsible panel (summary header + detail on click) ---- */
.rm-fold{margin-top:14px;padding:0;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.025);overflow:hidden}
.rm-fold__head{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px}
.rm-fold__head::-webkit-details-marker{display:none}
.rm-fold__head::after{content:'▸';color:var(--pp-ink-dim);font-size:11px;transition:transform .15s ease;margin-left:auto}
.rm-fold[open]>.rm-fold__head::after{transform:rotate(90deg)}
.rm-fold__sum{font-family:var(--pp-mono,monospace);font-size:11px;color:var(--pp-ink-dim);white-space:nowrap}
.rm-fold__body{padding:0 14px 14px}
/* neutralize the old standalone-panel spacing now that they're inside .rm-fold */
.rm-fold.rm-health,.rm-fold.rm-bugs{margin-top:14px}
.rm-fold .rm-health__head,.rm-fold .rm-bugs__head{display:none}
.rm-health__manage{display:inline-block;margin-bottom:8px}

/* ---- Global show/hide password eye ---- */
.pw-wrap{position:relative;display:block}
.pw-wrap>input{padding-right:40px !important}
.pw-eye{position:absolute;top:50%;right:6px;transform:translateY(-50%);cursor:pointer;border:0;background:transparent;
  font-size:15px;line-height:1;padding:4px 6px;border-radius:8px;opacity:.7}
.pw-eye:hover{opacity:1;background:rgba(255,255,255,.08)}

/* ---- Guest look-around banner + login guest link ---- */
.hm-guestbar{text-align:center;font-size:12.5px;padding:7px 14px;background:linear-gradient(90deg,rgba(255,45,149,.14),rgba(0,209,255,.12));
  border-bottom:1px solid rgba(255,255,255,.10);color:var(--pp-ink)}
.hm-guestbar a{color:var(--pp-circuit);font-weight:700;text-decoration:none}
.hm-guestbar a:hover{text-decoration:underline}

/* ---- Guest-mode "Sign up free" nav CTA ---- */
.hm-signup{display:inline-flex;align-items:center;text-decoration:none;font-family:var(--pp-font-display,inherit);font-size:12px;letter-spacing:.03em;
  padding:6px 14px;border-radius:99px;color:#fff;border:0;white-space:nowrap;
  background:linear-gradient(90deg,var(--pp-riot),var(--pp-circuit));box-shadow:0 2px 8px rgba(255,45,149,.35)}
.hm-signup:hover{transform:translateY(-1px);filter:brightness(1.06)}

/* Lobby advanced sidebar — collapsible Crew/Board folds with count badges (BLI ad-hoc) */
.hm-fold{border:0;margin:0}
.hm-foldhead{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:6px 0}
.hm-foldhead::-webkit-details-marker{display:none}
.hm-fold__link{flex:1;min-width:0;text-decoration:none;cursor:pointer}
.hm-foldhead:hover .hm-fold__link,.hm-foldhead:focus-within .hm-fold__link{color:#F7E11E}
.hm-fold__badge{font-size:10px;font-weight:800;color:#04121a;border-radius:99px;padding:2px 7px;white-space:nowrap}
.hm-fold__chev{color:#8f8aa0;transition:transform .15s ease}
.hm-fold:not([open]) .hm-fold__chev{transform:rotate(-90deg)}

/* ── Maestro "explain this line" modal (home live-code section) ────────────── */
body.mx-modal-open{ overflow:hidden; }
.mx-modal{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; }
.mx-modal[hidden]{ display:none; }
.mx-modal__backdrop{ position:absolute; inset:0; background:rgba(6,8,15,.66); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); animation:mxFade .18s ease; }
.mx-modal__card{ position:relative; width:min(560px,94vw); max-height:88vh; overflow:auto; background:#0f1421; color:#e8edf7; border:1px solid rgba(120,140,200,.28); border-radius:16px; box-shadow:0 24px 70px rgba(0,0,0,.55); padding:22px 22px 18px; animation:mxPop .2s cubic-bezier(.2,.9,.3,1.2); }
.mx-modal__x{ position:absolute; top:12px; right:14px; width:30px; height:30px; border:none; border-radius:8px; background:rgba(255,255,255,.06); color:#cdd6ea; font-size:20px; line-height:1; cursor:pointer; }
.mx-modal__x:hover{ background:rgba(255,255,255,.14); }
.mx-modal__head{ display:flex; gap:12px; align-items:center; margin-bottom:14px; padding-right:34px; }
.mx-modal__mic{ font-size:24px; filter:drop-shadow(0 0 8px rgba(120,160,255,.5)); }
.mx-modal__title{ font-weight:700; font-size:16px; }
.mx-modal__sub{ font-size:12px; color:#8ea0c4; }
.mx-modal__code{ background:#070b14; border:1px solid rgba(120,140,200,.2); border-radius:10px; padding:12px 14px; margin:0 0 14px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px; color:#e6c07b; overflow-x:auto; white-space:pre-wrap; word-break:break-word; }
.mx-modal__text{ margin:0 0 16px; font-size:15px; line-height:1.55; color:#dbe4f5; min-height:1.5em; }
.mx-modal__foot{ display:flex; justify-content:flex-end; }
.mx-modal__resume{ background:linear-gradient(135deg,#6d7cff,#8a5cff); color:#fff; border:none; border-radius:10px; padding:10px 18px; font-weight:600; font-size:14px; cursor:pointer; }
.mx-modal__resume:hover{ filter:brightness(1.08); }
@keyframes mxFade{ from{opacity:0} to{opacity:1} }
@keyframes mxPop{ from{opacity:0; transform:translateY(12px) scale(.97)} to{opacity:1; transform:none} }

/* ── Pricing hub (Sprint-0000053) ──────────────────────────────────────────── */
/* Pricing hub restyled to match the site's zine art style: hard borders, sticker labels,
   hard offset shadows, display font — no soft AI-gradient look. Uses theme tokens. */
.pr-toggle{ display:inline-flex; gap:0; background:var(--pp-paper-2,#12121a); border:var(--pp-b-bold,2px) solid var(--pp-ink,#efeaff); border-radius:0; padding:3px; margin:14px 0 22px; box-shadow:3px 3px 0 rgba(0,0,0,.4); }
.pr-toggle__btn{ border:none; background:transparent; color:var(--pp-ink-dim,#9aa4b2); font-family:var(--pp-font-display,inherit); text-transform:uppercase; letter-spacing:.04em; font-size:12px; padding:8px 16px; border-radius:0; cursor:pointer; }
.pr-toggle__btn.on{ background:var(--pp-riot,#FF2E7E); color:var(--pp-riot-ink,#0b0a10); }
.pr-save{ font-size:10px; color:var(--pp-circuit,#00D1FF); margin-left:6px; text-transform:none; }
.pr-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:8px 0 8px; }
.pr-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:720px; }
@media (max-width:900px){ .pr-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } .pr-grid--2{ grid-template-columns:1fr; } }
@media (max-width:560px){ .pr-grid{ grid-template-columns:1fr; } }
.pr-card{ position:relative; background:var(--pp-paper-2,#12121a); border:var(--pp-b-bold,2px) solid var(--pp-ink,#efeaff); border-radius:0; padding:20px 18px; display:flex; flex-direction:column; box-shadow:4px 4px 0 rgba(0,0,0,.4); }
.pr-card--hero{ border-color:var(--pp-riot,#FF2E7E); box-shadow:5px 5px 0 var(--pp-riot,#FF2E7E); }
.pr-card--alt{ background:var(--pp-paper-3,#0d0d14); }
.pr-badge{ position:absolute; top:-13px; left:16px; background:var(--pp-riot,#FF2E7E); color:var(--pp-riot-ink,#0b0a10); font-family:var(--pp-font-display,inherit); font-size:10px; letter-spacing:.06em; text-transform:uppercase; font-weight:700; padding:4px 10px; border-radius:0; transform:rotate(-2deg); box-shadow:var(--pp-sticker-shadow,2px 2px 0 rgba(0,0,0,.4)); }
.pr-card__name{ font-family:var(--pp-font-display,inherit); text-transform:uppercase; letter-spacing:.02em; font-weight:700; font-size:15px; color:var(--pp-ink,#efeaff); margin-bottom:8px; }
.pr-price{ display:flex; align-items:baseline; gap:4px; margin:2px 0 10px; }
.pr-amt{ font-family:var(--pp-font-display,inherit); font-size:32px; font-weight:800; color:var(--pp-ink,#fff); line-height:1; }
.pr-per{ font-size:12px; color:var(--pp-ink-dim,#9aa4b2); font-family:var(--pp-font-mono,monospace); }
.pr-card__blurb{ font-size:13px; line-height:1.5; color:var(--pp-ash,#c2cee6); margin:0 0 12px; flex:1; }
.pr-card__pods{ font-size:11px; color:var(--pp-ink-dim,#9aa4b2); font-family:var(--pp-font-mono,monospace); text-transform:uppercase; letter-spacing:.04em; margin-bottom:12px; }
.pr-card__row{ display:flex; flex-direction:column; gap:8px; }
.pr-btn{ display:inline-block; text-align:center; background:var(--pp-paper,#12121a); color:var(--pp-ink,#efeaff); border:var(--pp-b-bold,2px) solid var(--pp-ink,#efeaff); border-radius:0; padding:9px 16px; font-family:var(--pp-font-display,inherit); text-transform:uppercase; letter-spacing:.03em; font-size:12px; cursor:pointer; text-decoration:none; box-shadow:2px 2px 0 rgba(0,0,0,.4); transition:transform .1s,box-shadow .1s; }
.pr-btn:hover{ transform:translate(-1px,-1px); box-shadow:3px 3px 0 rgba(0,0,0,.4); }
.pr-btn:active{ transform:translate(1px,1px); box-shadow:1px 1px 0 rgba(0,0,0,.4); }
.pr-btn--hero{ background:var(--pp-riot,#FF2E7E); color:var(--pp-riot-ink,#0b0a10); border-color:var(--pp-ink,#efeaff); }
.pr-btn--ghost{ background:transparent; }
.pr-h2{ margin:34px 0 6px; font-family:var(--pp-font-display,inherit); text-transform:uppercase; letter-spacing:.01em; font-size:20px; color:var(--pp-ink,#efeaff); }
.pr-chips{ display:flex; flex-wrap:wrap; gap:10px; margin:8px 0; }
.pr-passchip{ background:var(--pp-paper-2,#12121a); border:var(--pp-b-bold,2px) solid var(--pp-ink,#efeaff); color:var(--pp-ink,#efeaff); border-radius:0; padding:11px 16px; font-size:13px; cursor:pointer; box-shadow:2px 2px 0 rgba(0,0,0,.4); }
.pr-passchip:hover{ border-color:var(--pp-riot,#FF2E7E); transform:translate(-1px,-1px); }
.pr-addons{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:8px 0; }
@media (max-width:640px){ .pr-addons{ grid-template-columns:1fr; } }
.pr-addon{ background:var(--pp-paper-3,#0d0d14); border:var(--pp-b-bold,2px) solid var(--pp-line,#2a2731); border-radius:0; padding:14px 16px; box-shadow:2px 2px 0 rgba(0,0,0,.35); }
.pr-addon__top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:4px; color:var(--pp-ink,#efeaff); font-family:var(--pp-font-display,inherit); }
.pr-addon p{ margin:0; font-size:13px; color:var(--pp-ash,#aebbd6); }
.pr-fees{ margin:6px 0; padding-left:20px; color:var(--pp-ash,#c2cee6); font-size:14px; line-height:1.9; }

/* ── 🧭 AI Concierge (Connect page) — Sprint: Connect-AI Concierge ───────────── */
.cx-wrap{margin:0 0 24px;padding:20px;border:1px solid var(--pp-line,#2a2f3a);border-radius:16px;
  background:linear-gradient(180deg,rgba(88,166,255,.06),rgba(88,166,255,.01));}
.cx-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px;}
.cx-head__ico{font-size:28px;line-height:1;}
.cx-head__h2{margin:0 0 4px;font-size:1.15rem;color:var(--pp-ink,#e8ecf2);}
.cx-head__p{margin:0;color:var(--pp-ink-dim,#9aa4b2);font-size:.92rem;max-width:60ch;}
.cx-ask{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.cx-input{flex:1 1 320px;min-width:0;padding:11px 14px;border-radius:10px;border:1px solid var(--pp-line,#2a2f3a);
  background:var(--pp-paper,#0f1420);color:var(--pp-ink,#e8ecf2);font-size:.95rem;}
.cx-input:focus{outline:none;border-color:var(--pp-circuit,#58a6ff);box-shadow:0 0 0 3px rgba(88,166,255,.2);}
.cx-go{padding:11px 18px;border:0;border-radius:10px;font-weight:700;cursor:pointer;white-space:nowrap;
  background:var(--pp-circuit,#58a6ff);color:#04121f;}
.cx-go:disabled{opacity:.6;cursor:wait;}
.cx-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px;}
.cx-chip{padding:7px 12px;border-radius:999px;border:1px solid var(--pp-line,#2a2f3a);cursor:pointer;
  background:transparent;color:var(--pp-ink-dim,#9aa4b2);font-size:.85rem;transition:all .15s;}
.cx-chip:hover{border-color:var(--pp-circuit,#58a6ff);color:var(--pp-ink,#e8ecf2);}
.cx-chip.on{background:var(--pp-circuit,#58a6ff);border-color:var(--pp-circuit,#58a6ff);color:#04121f;font-weight:700;}
.cx-results{margin-top:16px;}
.cx-empty{color:var(--pp-ink-dim,#9aa4b2);font-style:italic;}
.cx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;}
.cx-card{position:relative;padding:16px;border:1px solid var(--pp-line,#2a2f3a);border-radius:14px;
  background:var(--pp-paper,#0f1420);}
.cx-card--top{border-color:var(--pp-circuit,#58a6ff);box-shadow:0 0 0 1px rgba(88,166,255,.35);}
.cx-badge{position:absolute;top:-10px;left:14px;padding:2px 10px;border-radius:999px;font-size:.72rem;font-weight:800;
  background:var(--pp-circuit,#58a6ff);color:#04121f;}
.cx-card__top{display:flex;gap:10px;align-items:center;margin-bottom:8px;}
.cx-ico{font-size:24px;line-height:1;}
.cx-nm{font-weight:700;color:var(--pp-ink,#e8ecf2);}
.cx-model{font-size:.78rem;color:var(--pp-ink-dim,#9aa4b2);}
.cx-model code{font-family:var(--pp-font-mono,monospace);}
.cx-cost{margin-left:auto;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap;}
.cx-cost--free{background:rgba(63,185,80,.16);color:#3fb950;}
.cx-cost--paid{background:rgba(210,153,34,.16);color:#d29922;}
.cx-pitch{margin:6px 0;color:var(--pp-ink,#e8ecf2);font-size:.9rem;}
.cx-why{font-size:.82rem;color:var(--pp-circuit,#58a6ff);margin-bottom:8px;}
.cx-how{margin:8px 0;border-top:1px dashed var(--pp-line,#2a2f3a);padding-top:8px;}
.cx-how summary{cursor:pointer;font-size:.85rem;color:var(--pp-ink-dim,#9aa4b2);}
.cx-steps{margin:8px 0 6px;padding-left:20px;color:var(--pp-ink-dim,#c3ccd8);font-size:.85rem;}
.cx-steps li{margin:3px 0;}
.cx-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;}
.cx-link{font-size:.82rem;color:var(--pp-circuit,#58a6ff);text-decoration:none;}
.cx-link:hover{text-decoration:underline;}
.cx-link--pay{color:#d29922;font-weight:700;}
.cx-actions{display:flex;align-items:center;gap:10px;margin-top:10px;}
.cx-setup{padding:9px 14px;border:0;border-radius:9px;font-weight:700;cursor:pointer;
  background:var(--pp-circuit,#58a6ff);color:#04121f;font-size:.85rem;}
.cx-conn{font-size:.78rem;color:#3fb950;}
.ai-card--flash{box-shadow:0 0 0 2px var(--pp-circuit,#58a6ff),0 0 22px rgba(88,166,255,.5)!important;transition:box-shadow .3s;}

/* 🧭 Concierge first-timer nudge */
.cx-wrap--nudge{border-color:var(--pp-circuit,#58a6ff);box-shadow:0 0 0 1px rgba(88,166,255,.35),0 0 30px rgba(88,166,255,.12);}
.cx-nudge{position:relative;display:flex;align-items:center;gap:8px;margin:-4px 0 14px;padding:10px 40px 10px 14px;
  border:1px solid var(--pp-circuit,#58a6ff);border-radius:10px;background:rgba(88,166,255,.10);
  color:var(--pp-ink,#e8ecf2);font-size:.9rem;}
.cx-nudge b{color:var(--pp-circuit,#58a6ff);}
.cx-nudge__dot{width:9px;height:9px;border-radius:50%;background:var(--pp-circuit,#58a6ff);flex:0 0 auto;
  box-shadow:0 0 0 0 rgba(88,166,255,.6);animation:cxpulse 1.8s infinite;}
@keyframes cxpulse{0%{box-shadow:0 0 0 0 rgba(88,166,255,.6);}70%{box-shadow:0 0 0 8px rgba(88,166,255,0);}100%{box-shadow:0 0 0 0 rgba(88,166,255,0);}}
.cx-nudge__x{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;
  color:var(--pp-ink-dim,#9aa4b2);font-size:20px;line-height:1;cursor:pointer;padding:2px 6px;}
.cx-nudge__x:hover{color:var(--pp-ink,#e8ecf2);}
@media (prefers-reduced-motion:reduce){.cx-nudge__dot{animation:none;}}

/* Board filters (home left sidebar) */
.hm-bfilter{display:flex;flex-wrap:wrap;gap:5px;margin:2px 0 8px;}
.hm-bfilter__chip{font-size:10px;padding:3px 9px;border-radius:999px;cursor:pointer;
  border:1px solid rgba(255,255,255,.14);background:transparent;color:#8f8aa0;transition:all .12s;}
.hm-bfilter__chip:hover{color:#efeaff;border-color:#FF2E7E;}
.hm-bfilter__chip.on{background:#FF2E7E;border-color:#FF2E7E;color:#0b0a10;font-weight:700;}

/* 🎙 In-panel "explain this line" modal — contained inside the live-code box, no page blur */
.mx-code{position:relative;}
.mx-modal--inpanel{position:absolute;inset:0;z-index:30;padding:14px;}
.mx-modal--inpanel .mx-modal__backdrop{position:absolute;inset:0;background:rgba(8,11,20,.42);
  -webkit-backdrop-filter:none;backdrop-filter:none;animation:mxFade .14s ease;border-radius:inherit;}
.mx-modal--inpanel .mx-modal__card{width:auto;max-width:100%;max-height:100%;margin:0;
  box-shadow:0 10px 34px rgba(0,0,0,.5);animation:mxPop .16s cubic-bezier(.2,.9,.3,1.2);}
.mx-modal--inpanel .mx-modal__code{font-size:12px;padding:10px 12px;}
.mx-modal--inpanel .mx-modal__text{font-size:13.5px;margin-bottom:12px;}

/* ── Global site footer (brand · copyright · info links) — every screen ─────── */
.site-foot{ border-top:var(--pp-b-bold,2px) solid var(--pp-line,#2a2731); background:var(--pp-paper,#0e0d13);
  padding:26px 20px 30px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px; }
.site-foot__brand{ font-family:var(--pp-font-display,inherit); font-size:18px; letter-spacing:.02em; color:var(--pp-ink,#efeaff); text-transform:uppercase; }
.site-foot__brand .dot{ color:var(--pp-riot,#FF2E7E); }
.site-foot__copy{ font-size:12px; color:var(--pp-ink-dim,#8f8aa0); font-family:var(--pp-font-mono,monospace); }
.site-foot__nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 22px; margin-top:6px; }
.site-foot__nav a{ font-size:13px; color:var(--pp-ash,#b9b4cc); text-decoration:none; padding:2px 0; }
.site-foot__nav a:hover{ color:var(--pp-riot,#FF2E7E); text-decoration:underline; }
/* Condensed footer (Buster 2026-08-05): brand title + tagline removed, 🌐 language picker moved into
   the ☰ menu — footer sized just a bit taller than the copyright + links rows it now holds. */
.site-foot--compact{ padding:12px 20px; gap:5px; }
.site-foot--compact .site-foot__nav{ margin-top:2px; }
/* 🌐 Language picker in its new home inside the hamburger menu panel. */
.hm-menu__lang{ padding:8px 12px; }
.hm-menu__lang .langpick{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin-top:0; }
.hm-menu__lang .langpick__note{ max-width:220px; margin-top:4px; }

/* Info / legal pages */
.info-page{ max-width:820px; }
.info-body{ color:var(--pp-ash,#c9c4dc); line-height:1.7; font-size:15px; }
.info-body h3{ font-family:var(--pp-font-display,inherit); text-transform:uppercase; letter-spacing:.01em; color:var(--pp-ink,#efeaff); font-size:16px; margin:22px 0 6px; }
.info-body a{ color:var(--pp-circuit,#00D1FF); }
.info-body p{ margin:0 0 12px; }
.info-steps,.info-faq{ margin:0; padding-left:0; }
.info-steps li{ margin:0 0 12px 20px; }
.info-plain{ background:rgba(0,209,255,.08); border-left:3px solid var(--pp-circuit,#00D1FF); padding:10px 14px; border-radius:0; }
.info-flag{ background:rgba(255,46,126,.08); border-left:3px solid var(--pp-riot,#FF2E7E); padding:10px 14px; font-size:13px; }
.info-meta{ font-family:var(--pp-font-mono,monospace); font-size:12px; color:var(--pp-ink-dim,#8a8a99); margin:0 0 10px; }
.info-contact{ margin:14px 0; }

/* ── Maestro "Start Your Build" panel — text bump (2026-07-14, per Buster) ──
   Bigger + bolder TEXT ONLY. No padding/margin/width changes → containers keep
   their exact sizes; only font-size & font-weight are nudged up. */
/* Rocket removed + "Start Your Build" text made bigger & bolder; vertical padding trimmed
   so the tab keeps the same height as before (Buster 2026-08-03). */
.mx-startbanner{font-size:21px;font-weight:900;padding-top:7px;padding-bottom:7px}
.mx-ask__title{font-size:17px;font-weight:800}
.mx-ask__sub{font-size:11px;font-weight:600}
.mx-input{font-size:13px;font-weight:500}
.mx-input::placeholder{font-weight:500;opacity:.85}
.mx-send{font-size:12px;font-weight:800}
.mx-picker__lbl{font-size:11px;font-weight:700}
.mx-picker__sel{font-size:12px;font-weight:600}
.mx-picker__connect{font-size:11px;font-weight:700}
.mx-kicker{font-size:11px;font-weight:700}
.mx-bucket__nm{font-size:16px;font-weight:700}
.mx-bucket__tg{font-size:10.5px;font-weight:600}
.mx-oneliner{font-size:12px;font-weight:500}
.mx-scope{font-size:10px;font-weight:600}

/* ── Setup Concierge "What are you setting up?" picker — zine cards (2026-07-14, per Buster).
   The .sc-pick cards had NO css → they collapsed to a text line. Give them the same
   square/ink-border/hard-shadow zine card look as the home lanes. ── */
.sc-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:18px}
.sc-pick__card{display:flex;flex-direction:column;gap:4px;text-decoration:none;cursor:pointer;
  padding:16px 16px 14px;background:var(--pp-paper-2);color:var(--pp-ink);
  border:var(--pp-b-bold) solid var(--pp-ink);box-shadow:var(--pp-sticker-shadow);
  transition:transform .1s ease,box-shadow .1s ease}
.sc-pick__card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--pp-ink)}
.sc-pick__card:active{transform:translate(0,0);box-shadow:2px 2px 0 var(--pp-ink)}
.sc-pick__ico{font-size:30px;line-height:1}
.sc-pick__nm{font-family:var(--pp-font-display);font-size:18px;font-weight:800;line-height:1.1;text-transform:uppercase}
.sc-pick__tk{font-family:var(--pp-font-mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--pp-ink-dim)}
@media(max-width:560px){.sc-pick{grid-template-columns:1fr 1fr}}

/* Connect-AI nav CTA — completely hidden (removed from layout) while an AI is connected (2026-07-14). */
.ai-navcta[hidden]{display:none!important}

/* Home right sidebar (2026-07-14): CREW + BOARD as two distinct boxed containers, each its
   own scroller when the list is long; friendly placeholder until the first real person posts. */
/* The sidebar is a full-height flex column so the two panels stretch to the bottom of the row,
   matching the center (Maestro + live-code) column height. */
.hm-col--side{display:flex;flex-direction:column;gap:14px}
.hm-col--side .hm-fold{flex:1 1 0;min-height:0;display:flex;flex-direction:column;margin:0 !important;border:2px solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:10px 12px}
.hm-col--side .hm-fold__body{flex:1;min-height:0;display:flex;flex-direction:column}
/* Always-open, non-collapsible: the header can't be clicked shut, chevron hidden, so the
   panels never collapse into an ugly short strip when empty. */
.hm-col--side .hm-fold > summary{pointer-events:none;cursor:default;list-style:none}
.hm-col--side .hm-fold > summary::-webkit-details-marker{display:none}
.hm-col--side .hm-fold__chev{display:none}
/* Rows fill the panel and scroll when there's more than fits; both panels stay equal size. */
.hm-col--side #hm-crewrows,.hm-col--side #hm-boardrows{flex:1;min-height:120px;overflow-y:auto}
.hm-side-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:12px;line-height:1.55;color:var(--pp-ink-dim);padding:16px 14px;border:1px dashed var(--pp-line,#c9c2b2)}
.hm-side-empty a{color:var(--pp-riot);font-weight:800;text-decoration:none}
.hm-side-empty a:hover{text-decoration:underline}

/* ── Living, Playable Pane — Sprint 61 (BLIs 621–630) ───────────────────── */
.mx-code--daily .mx-code__run{animation:none}                 /* daily → typed, not marquee */
.mx-dt__tab{appearance:none;background:none;border:0;cursor:pointer;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.02em;color:#6f6a86;padding:2px 0 3px;white-space:nowrap;border-bottom:2px solid transparent}
.mx-dt__tab:hover{color:#cfcbe0}
.mx-dt__tab.on{color:#e6e3f2;border-bottom-color:var(--pp-circuit)}
.mx-dt__tab:focus-visible{outline:2px solid var(--pp-circuit);outline-offset:2px}
.mx-daily-hdr{display:flex;align-items:center;gap:12px;font-family:var(--pp-font-mono);font-size:10px}
.mx-flame,.mx-count{color:#e6e3f2;white-space:nowrap}
.mx-flame b{color:#FF9F1C}.mx-count b{color:var(--pp-circuit)}
.mx-cursor{display:inline-block;color:var(--pp-circuit);font-weight:700;animation:mx-blink 1s steps(1) infinite}
@keyframes mx-blink{50%{opacity:0}}
.mx-pane[hidden]{display:none}
.mx-panebody{height:430px;overflow-y:auto;padding:16px 18px;font-family:var(--pp-font-mono);font-size:12px;color:#B9B4CC;line-height:1.7}
.mx-el-chip{display:inline-block;color:#04121a;font-weight:800;font-size:11px;letter-spacing:.04em;padding:5px 12px;border-radius:99px;margin-bottom:12px}
.mx-el-note{color:#cfcbe0;line-height:1.7}.mx-el-note b{color:#fff}
.mx-console .mx-con-line{padding:3px 0;color:#9b97a8}
.mx-con-caret{color:var(--pp-circuit);font-weight:700}
.mx-net-row{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.mx-net-row a{color:var(--pp-circuit);text-decoration:none}.mx-net-row a:hover{text-decoration:underline}
.mx-dot-on{display:inline-block;width:8px;height:8px;border-radius:50%;background:#53D97A;box-shadow:0 0 0 3px rgba(83,217,122,.25);margin-right:4px}
.mx-answerbar{padding:14px 16px;background:#0f0d18;border-top:1px solid #2a2740}
.mx-q{font-family:var(--pp-font-mono);font-size:12px;color:#e6e3f2;margin-bottom:10px;line-height:1.5}
.mx-q a,.mx-remix{color:var(--pp-circuit);text-decoration:none;font-weight:700}.mx-q a:hover,.mx-remix:hover{text-decoration:underline}
.mx-opts{display:flex;flex-wrap:wrap;gap:8px}
.mx-opts--ln{gap:6px}
.mx-opt{appearance:none;cursor:pointer;font-family:var(--pp-font-mono);font-size:12px;color:#efeaff;background:#1d1a2c;border:1px solid #34304a;border-radius:8px;padding:9px 13px;transition:border-color .15s,background .15s}
.mx-opt--ln{padding:7px 10px;min-width:40px;text-align:center}
.mx-opt:hover:not(:disabled){border-color:var(--pp-circuit);background:#241f36}
.mx-opt:focus-visible{outline:2px solid var(--pp-circuit);outline-offset:2px}
.mx-opt.is-picked{border-color:var(--pp-circuit);background:#241b30;color:#fff}
.mx-opt:disabled{opacity:.55;cursor:default}
.mx-res{font-family:var(--pp-font-mono);font-size:13px;font-weight:700;color:#cfcbe0;padding:4px 0}
.mx-res.ok{color:#53D97A}.mx-res.no{color:#FF9F1C}
.mx-dist{margin:10px 0 4px}
.mx-dbar{display:flex;align-items:center;gap:8px;font-family:var(--pp-font-mono);font-size:10px;color:#9b97a8;margin:4px 0}
.mx-dbar span{flex:0 0 120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-dbar i{flex:1;height:8px;background:linear-gradient(90deg,var(--pp-circuit),#8A7CFF);border-radius:99px;min-width:2px}
.mx-dbar b{flex:0 0 34px;text-align:right;color:#e6e3f2}
.mx-res-cta{margin-top:10px}
.mx-signin{font-family:var(--pp-font-mono);font-size:12px;color:#e6e3f2;line-height:1.6}
.mx-signin a{color:var(--pp-circuit);text-decoration:none;font-weight:800}.mx-signin a:hover{text-decoration:underline}
@media (prefers-reduced-motion:reduce){.mx-cursor{animation:none}}

/* ── Human Ties + Polish — Sprint 62 (BLIs 631–637) ─────────────────────── */
.mx-ties{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;border-top:1px dashed #34304a}
.mx-tie{display:block;font-family:var(--pp-font-mono);font-size:11.5px;color:#cfcbe0;text-decoration:none;padding:7px 10px;border:1px solid #2a2740;border-radius:8px;background:#151320;transition:border-color .15s,background .15s}
.mx-tie:hover{border-color:var(--pp-circuit);background:#1d1a2c;color:#fff}
.mx-tie:focus-visible{outline:2px solid var(--pp-circuit);outline-offset:2px}
.mx-tie--board{border-color:color-mix(in srgb,#FF2E7E 45%,#2a2740);color:#ffd0e2}
.mx-tie--board:hover{border-color:#FF2E7E;background:#26141d;color:#fff}
.mx-pane:focus-visible{outline:2px solid var(--pp-circuit);outline-offset:-2px}
/* mobile / responsive (BLI 635) */
@media (max-width:640px){
  .mx-dt__tabs{gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .mx-daily-hdr{gap:8px;font-size:9.5px;flex-wrap:wrap}
  .mx-panebody{height:300px;padding:13px 14px;font-size:11.5px}
  .mx-code__win{height:300px}
  .mx-code{min-height:360px}
  .mx-opts{gap:6px}
  .mx-opt{flex:1 1 100%;text-align:center}
  .mx-opts--ln .mx-opt{flex:0 0 auto}
  .mx-dbar span{flex-basis:84px}
  .mx-answerbar{padding:12px}
}

/* ── Top header: always ONE clean single row (Buster) ───────────────────── */
.hm-nav{flex-wrap:nowrap}                         /* never wrap to a 2nd row */
.hm-links{flex-wrap:nowrap;min-width:0;gap:18px}  /* nav links stay inline */
.hm-navr{flex-wrap:nowrap;flex:0 0 auto}          /* right chips stay inline */
/* bold, comfortable "Connect AI" CTA — Daily tab removed, so there's room for it */
.ai-navcta{font-size:13.5px;letter-spacing:.05em;padding:8px 20px;flex:0 0 auto}
@media(max-width:1000px){
  /* keep it INLINE (don't drop it onto its own row) — just a touch smaller */
  .ai-navcta{order:0;margin:0 auto;font-size:12px;padding:6px 14px}
}
/* on genuinely narrow widths, tuck the inline nav into the ☰ menu so the bar
   still can't wrap (everything is already duplicated in the hamburger) */
@media(max-width:900px){ .hm-links{display:none} }

/* ── Live-code pane: VS-Code syntax colors (Buster — make it colorful & lively) ── */
.mx-line code .cm{color:#6A9955;font-style:italic}   /* comments — green */
.mx-line code .or{color:#FF9F1C}                     /* numbers — orange */
.mx-line code .pk{color:#FF5D8F;font-weight:600}     /* keywords — hot pink, bolder */
.mx-line code .cy{color:#37E1CE}                     /* function calls — cyan */
.mx-line code .yl{color:#F2D94E}                     /* strings — warm yellow */
.mx-code__run .mx-line code{color:#D6D2E6}           /* base text — a touch brighter */

/* ── The Build — Terminal UI (Sprint 64) ──────────────────────────────────── */
.bld-wrap{padding:28px 0 56px}
.bld-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:20px}
.bld-title{font-family:var(--pp-font-display);font-size:var(--pp-fs-2xl);letter-spacing:var(--pp-ls-display);text-transform:uppercase;margin:0}
.bld-lede{color:var(--pp-ink-dim);max-width:64ch;margin:6px 0 0;font-size:var(--pp-fs-sm)}
.bld-catalog-link{font-family:var(--pp-font-mono);font-size:var(--pp-fs-xs);color:var(--pp-circuit);text-decoration:none;border:1.5px solid var(--pp-line);padding:8px 12px;white-space:nowrap}
.bld-mono{font-family:var(--pp-font-mono)}
.bld-dim{color:var(--pp-ink-dim)}
.bld-blank{border:2px dashed var(--pp-line);padding:28px;text-align:center;color:var(--pp-ink-dim)}
.bld-stage{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}
@media(max-width:820px){.bld-stage{grid-template-columns:1fr}}
.bld-files{border:2px solid var(--pp-ink);background:var(--pp-paper-2);max-height:70vh;display:flex;flex-direction:column}
.bld-search{padding:10px;border-bottom:1.5px solid var(--pp-line)}
.bld-search--wide{border:0;padding:0 0 14px}
.bld-search input{width:100%;box-sizing:border-box;font-family:var(--pp-font-mono);font-size:var(--pp-fs-xs);padding:8px 10px;border:1.5px solid var(--pp-line);background:var(--pp-paper);color:var(--pp-ink)}
.bld-filelist{overflow:auto;padding:6px}
.bld-fileitem{display:block;width:100%;text-align:left;font-family:var(--pp-font-mono);font-size:11px;padding:6px 8px;border:0;background:transparent;color:var(--pp-ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bld-fileitem:hover{background:var(--pp-paper-3)}
.bld-fileitem.on{background:var(--pp-ink);color:var(--pp-paper)}
.bld-searchresults{padding:8px 10px;overflow:auto;font-size:11px}
.bld-sr{font-family:var(--pp-font-mono);padding:4px 0;border-bottom:1px dotted var(--pp-line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bld-term{border:2px solid var(--pp-ink);background:#0f1117;color:#d7dae0;display:flex;flex-direction:column;min-height:60vh;box-shadow:4px 4px 0 rgba(0,0,0,.35)}
.bld-term__bar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#181b23;border-bottom:1px solid #262b36}
.bld-dot{width:11px;height:11px;border-radius:50%}
.bld-dot.r{background:#ff5f56}.bld-dot.y{background:#ffbd2e}.bld-dot.g{background:#27c93f}
.bld-term__title{font-family:var(--pp-font-mono);font-size:11px;color:#9aa3b2;margin-left:8px}
.bld-live{margin-left:auto;font-family:var(--pp-font-mono);font-size:10px;color:#27c93f;letter-spacing:.08em}
.bld-term__meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid #262b36;font-size:11px}
.bld-pill{font-family:var(--pp-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;border:1.5px solid #3a4150;padding:3px 8px;color:#c8cede}
.bld-repo{font-family:var(--pp-font-mono);font-size:11px;color:#7cc5ff;text-decoration:none}
.bld-code{margin:0;padding:14px 16px;flex:1;overflow:auto;font-family:var(--pp-font-mono);font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.bld-line{min-height:1.2em;padding:0 4px}
.bld-line:hover{background:rgba(255,255,255,.04);cursor:pointer}
.bld-line.sel{background:rgba(124,197,255,.14);outline:1px solid rgba(124,197,255,.35)}
.bld-t-cm{color:#5f6b7a;font-style:italic}
.bld-t-str{color:#a5d6a7}
.bld-t-num{color:#ffcb6b}
.bld-t-kw{color:#c792ea}
.bld-t-fn{color:#82aaff}
.bld-term__foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid #262b36;font-size:10px;color:#7a8393;flex-wrap:wrap}
.bld-maestro{font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.05em;background:var(--pp-riot);color:var(--pp-riot-ink);border:0;padding:7px 12px;cursor:pointer}
.bld-vote{margin-top:22px;border:2px solid var(--pp-ink);background:var(--pp-paper-2);padding:16px}
.bld-vote__h{font-family:var(--pp-font-display);font-size:var(--pp-fs-lg);text-transform:uppercase;margin:0 0 4px}
.bld-vote__days{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.bld-daychip,.bld-votebtn{font-family:var(--pp-font-mono);font-size:11px;border:1.5px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);padding:7px 11px;cursor:pointer}
.bld-daychip:hover,.bld-votebtn:hover{background:var(--pp-ink);color:var(--pp-paper)}
.bld-ballot{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.bld-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:60;padding:20px}
.bld-modal[hidden]{display:none}
.bld-modal__card{background:var(--pp-paper);border:2px solid var(--pp-ink);max-width:560px;width:100%;box-shadow:5px 5px 0 rgba(0,0,0,.4)}
.bld-modal__head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:2px solid var(--pp-ink);font-family:var(--pp-font-display);text-transform:uppercase;font-size:13px}
.bld-modal__x{border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:var(--pp-ink)}
.bld-modal__line{margin:0;padding:10px 16px;background:var(--pp-paper-3);font-size:11px;white-space:pre-wrap;word-break:break-word;border-bottom:1px solid var(--pp-line)}
.bld-modal__body{padding:14px 16px;font-size:var(--pp-fs-sm);line-height:1.55}
.bld-cattable{width:100%;border-collapse:collapse;font-size:12px}
.bld-cattable th,.bld-cattable td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--pp-line)}
.bld-cattable th{font-family:var(--pp-font-mono);font-size:10px;text-transform:uppercase;color:var(--pp-ink-dim)}

/* ── Bug Bench (Sprint 65) ─────────────────────────────────────────────────── */
.bb-wrap{padding:28px 0 56px;max-width:820px}
.bb-head{margin-bottom:18px}
.bb-title{font-family:var(--pp-font-display);font-size:var(--pp-fs-2xl);letter-spacing:var(--pp-ls-display);text-transform:uppercase;margin:0}
.bb-lede{color:var(--pp-ink-dim);margin:6px 0 0;font-size:var(--pp-fs-sm);max-width:66ch}
.bb-mono{font-family:var(--pp-font-mono)}
.bb-dim{color:var(--pp-ink-dim)}
.bb-form.card,.bb-signin.card,.bb-post.card,.bb-reply.card{border:2px solid var(--pp-ink);background:var(--pp-paper-2);padding:16px;margin-bottom:16px;box-shadow:3px 3px 0 rgba(0,0,0,.28)}
.bb-form{display:grid;gap:10px}
.bb-inp{width:100%;box-sizing:border-box;font-family:var(--pp-font-sans);font-size:var(--pp-fs-sm);padding:9px 11px;border:1.5px solid var(--pp-line);background:var(--pp-paper);color:var(--pp-ink)}
.bb-ta{resize:vertical}
.bb-code{font-family:var(--pp-font-mono);font-size:12.5px;line-height:1.5;background:#0f1117;color:#d7dae0;border-color:#262b36}
.bb-ack{display:flex;gap:8px;align-items:flex-start;font-size:var(--pp-fs-xs);color:var(--pp-ink-dim)}
.bb-ack input{width:16px;height:16px;flex:none;margin-top:2px}
.bb-btn{justify-self:start;font-family:var(--pp-font-display);font-size:12px;text-transform:uppercase;letter-spacing:.05em;background:var(--pp-riot);color:var(--pp-riot-ink);border:0;padding:9px 16px;cursor:pointer}
.bb-signin{text-align:center;color:var(--pp-ink-dim)}
.bb-list{display:grid;gap:8px;margin-top:8px}
.bb-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1.5px solid var(--pp-line);background:var(--pp-paper-2);padding:11px 14px;text-decoration:none;color:var(--pp-ink)}
.bb-item:hover{border-color:var(--pp-ink)}
.bb-item__main{display:flex;align-items:center;gap:9px;min-width:0}
.bb-item__title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bb-item__meta{font-size:11px;white-space:nowrap}
.bb-pill{font-family:var(--pp-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;border:1.5px solid var(--pp-line);padding:2px 7px;color:var(--pp-ink-dim);flex:none}
.bb-pill.on{border-color:var(--pp-circuit);color:var(--pp-circuit)}
.bb-pill.dim{opacity:.6}
.bb-back{display:inline-block;margin-bottom:12px;color:var(--pp-circuit);text-decoration:none;font-size:12px}
.bb-post__head{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.bb-post__title{font-family:var(--pp-font-display);font-size:var(--pp-fs-lg);margin:0}
.bb-post__meta{font-size:11px;margin-bottom:10px}
.bb-post__body{white-space:pre-wrap;word-break:break-word;line-height:1.55}
.bb-codeblock{background:#0f1117;color:#d7dae0;border:1px solid #262b36;padding:12px 14px;overflow:auto;font-family:var(--pp-font-mono);font-size:12.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word;margin:10px 0 0}
.bb-post__actions{margin-top:12px;display:flex;gap:8px}
.bb-mini{font-family:var(--pp-font-mono);font-size:11px;border:1.5px solid var(--pp-line);background:var(--pp-paper);color:var(--pp-ink);padding:5px 10px;cursor:pointer}
.bb-mini:hover{border-color:var(--pp-ink)}
.bb-h2{font-family:var(--pp-font-display);font-size:var(--pp-fs-base);text-transform:uppercase;margin:22px 0 10px}
.bb-reply--solution{border-color:var(--pp-circuit);box-shadow:3px 3px 0 rgba(0,0,0,.28),0 0 0 1px var(--pp-circuit) inset}

/* ===========================================================================
 * Stage 21 · Sprint 66 — Podz View Foundation & Cockpit (BLIs 667–678)
 * Home-pane open-source tabs + the /podz cockpit. Zine/terminal aesthetic,
 * dark+light via existing tokens. Display-only surfaces.
 * ======================================================================== */

/* -- Home pane: the two always-there OS tabs -- */
.mx-dt__tab--os{color:var(--pp-circuit,#00D1FF)}
.mx-dt__tab--os.on{color:var(--pp-ink,#111)}
.mx-pane--os{padding:0}
.mx-os__bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid rgba(128,128,128,.25);font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:12px}
.mx-os__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mx-os__expand{flex:none;text-decoration:none;color:var(--pp-circuit,#00D1FF);border:1px solid currentColor;border-radius:4px;padding:2px 8px;font-size:11px}
.mx-os__expand:hover{background:var(--pp-circuit,#00D1FF);color:#000}
.mx-os__code{margin:0;padding:12px;max-height:340px;overflow:auto;white-space:pre;font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:12.5px;line-height:1.55;color:#d7e2ee;background:#0c1118}
.mx-os__foot{padding:7px 12px;border-top:1px solid rgba(128,128,128,.25);font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:11px;opacity:.85}
.mx-os__bugs{padding:8px;display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto}
.mx-os__bug{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid rgba(128,128,128,.28);border-radius:6px;text-decoration:none;color:inherit}
.mx-os__bug:hover{border-color:var(--pp-circuit,#00D1FF)}
.mx-os__bug-t{font-weight:600;font-size:13px}
.mx-os__bug-m{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:11px;opacity:.7}
.mx-os__loading,.mx-os__bugs .mx-os__loading{opacity:.6;font-size:12px;padding:8px}

/* -- The Podz cockpit (/podz) -- */
.pzv{max-width:1280px;margin:0 auto;padding:18px 16px 40px}
.pzv-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.pzv-title{font-family:var(--pp-font-display,inherit);font-size:1.9rem;text-transform:uppercase;letter-spacing:.5px;margin:0}
.pzv-sub{font-size:.9rem;opacity:.8}
.pzv-srcswitch{display:flex;gap:6px}
.pzv-src{text-decoration:none;color:inherit;border:1px solid rgba(128,128,128,.4);border-radius:6px;padding:6px 12px;font-size:.85rem}
.pzv-src.on{background:var(--pp-ink,#111);color:var(--pp-paper,#fff);border-color:var(--pp-ink,#111)}
.pzv-mono{font-family:var(--pp-font-mono,ui-monospace,monospace)}
.pzv-dim{opacity:.62}
.pzv-tag{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:10px;opacity:.6;border:1px solid currentColor;border-radius:4px;padding:1px 5px;margin-left:6px}
.pzv-cta{display:inline-block;margin-top:8px;text-decoration:none;color:var(--pp-circuit,#00D1FF);border:1px solid currentColor;border-radius:6px;padding:8px 14px}
.pzv-cta--sm{padding:5px 10px;font-size:.82rem}
.pzv-cta:hover{background:var(--pp-circuit,#00D1FF);color:#000}

/* 3-pane grid: Files | Terminal | Live/Web (BLI-0000673) */
.pzv-grid{display:grid;grid-template-columns:210px minmax(0,1fr) 300px;gap:12px;align-items:stretch}
.pzv-grid--pod{grid-template-columns:1fr}
.pzv-pane__cap{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:11px;text-transform:uppercase;letter-spacing:.6px;opacity:.7;padding:8px 10px;border-bottom:1px solid rgba(128,128,128,.25)}
.pzv-files,.pzv-term,.pzv-liveview,.pzv-webview{border:1px solid rgba(128,128,128,.3);border-radius:8px;overflow:hidden;background:var(--pp-paper,#fff)}
.pzv-filelist{max-height:520px;overflow:auto;padding:6px}
.pzv-file{display:block;width:100%;text-align:left;border:0;background:none;color:inherit;font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:12px;padding:6px 8px;border-radius:5px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pzv-file:hover{background:rgba(128,128,128,.12)}
.pzv-file.on{background:var(--pp-circuit,#00D1FF);color:#000}
.pzv-loading{opacity:.6;font-size:12px;padding:8px}

.pzv-term{display:flex;flex-direction:column;background:#0c1118;color:#d7e2ee;min-height:520px}
.pzv-term__bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.pzv-dot{width:11px;height:11px;border-radius:50%}
.pzv-dot.r{background:#ff5f56}.pzv-dot.y{background:#ffbd2e}.pzv-dot.g{background:#27c93f}
.pzv-term__file{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:12px;opacity:.85;margin-left:6px}
.pzv-live{margin-left:auto;color:#27c93f;font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:11px}
.pzv-term__meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08);font-size:11px}
.pzv-pill{background:rgba(255,255,255,.1);border-radius:20px;padding:2px 10px}
.pzv-repo{color:#7fd7ff;text-decoration:none}.pzv-repo:hover{text-decoration:underline}
.pzv-code{margin:0;padding:14px;flex:1;overflow:auto;white-space:pre;font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:12.5px;line-height:1.6}
.pzv-term__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid rgba(255,255,255,.08);font-size:11px}
.pzv-ask{background:none;border:1px solid #7fd7ff;color:#7fd7ff;border-radius:5px;padding:4px 10px;cursor:pointer;font-size:11px}
.pzv-ask:hover{background:#7fd7ff;color:#000}

.pzv-live-col{display:flex;flex-direction:column;gap:12px}
.pzv-liveview,.pzv-webview{flex:1;display:flex;flex-direction:column}
.pzv-liveview__screen{flex:1;background:#07141a;min-height:180px;padding:14px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.pzv-liveview__note{display:flex;flex-direction:column;gap:4px;color:#9fd0dd;font-size:11px}
.pzv-webview__body{padding:14px;display:flex;flex-direction:column;gap:6px;font-size:12px}

.pzv-placeholder{grid-column:1/-1;border:1px dashed rgba(128,128,128,.5);border-radius:10px;padding:34px;text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center}

/* Ask-Maestro modal */
.pzv-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);z-index:80;padding:16px}
.pzv-modal[hidden]{display:none}
.pzv-modal__card{background:var(--pp-paper,#fff);color:var(--pp-ink,#111);border:2px solid var(--pp-ink,#111);border-radius:10px;max-width:520px;width:100%;box-shadow:6px 6px 0 rgba(0,0,0,.3)}
.pzv-modal__head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(128,128,128,.3);font-weight:700}
.pzv-modal__x{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:inherit}
.pzv-modal__line{margin:0;padding:12px 14px;background:#0c1118;color:#d7e2ee;font-size:12px;white-space:pre-wrap;word-break:break-word}
.pzv-modal__body{padding:14px}

/* Responsive: stack the cockpit on narrow screens (fuller pass in Sprint 68) */
@media (max-width:900px){
  .pzv-grid{grid-template-columns:1fr}
  .pzv-files{max-height:180px}
  .pzv-filelist{max-height:150px}
  .pzv-term{min-height:360px}
}
@media (prefers-reduced-motion:reduce){
  .pzv-live{animation:none}
}

/* ===========================================================================
 * Stage 21 · Sprint 67 — Live View & Knerds of the Rectangle (BLIs 681–694)
 * ======================================================================== */

/* Header layout with source switch + full-screen toggle */
.pzv-head__r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pzv-fs{background:none;border:1px solid rgba(128,128,128,.4);border-radius:6px;padding:6px 12px;font-size:.82rem;cursor:pointer;color:inherit}
.pzv-fs[aria-pressed="true"]{background:var(--pp-ink,#111);color:var(--pp-paper,#fff);border-color:var(--pp-ink,#111)}
.pzv--fullscreen{position:fixed;inset:0;z-index:60;max-width:none;margin:0;overflow:auto;background:var(--pp-paper,#fff);padding:16px 20px 40px}
.pzv--fullscreen .pzv-grid{grid-template-columns:230px minmax(0,1fr) 340px}

/* Web View sandboxed frame */
.pzv-webframe{width:100%;height:180px;border:0;background:#07141a;border-radius:0 0 8px 8px}
.pzv-webview__note{padding:0;display:flex;flex-direction:column;gap:6px}

/* ── Knerds of the Rectangle ── */
.pzv-knerds{max-width:1280px;margin:22px auto 0;border:1px solid rgba(128,128,128,.3);border-radius:12px;padding:18px 18px 20px;background:var(--pp-paper,#fff)}
.pzv-knerds__head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.pzv-knerds__h{font-family:var(--pp-font-display,inherit);font-size:1.25rem;margin:0;text-transform:uppercase;letter-spacing:.5px}
.pzv-knerds__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pzv-knerds__chip{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:12px;background:rgba(83,217,122,.14);color:#2f9e54;border:1px solid rgba(83,217,122,.5);border-radius:20px;padding:3px 12px}
.pzv-knerds__filter{display:flex;align-items:center;gap:6px;font-size:.82rem}
.pzv-knerds__filter select{border:1px solid rgba(128,128,128,.4);border-radius:6px;padding:5px 8px;background:var(--pp-paper,#fff);color:inherit;font-size:.82rem}
.pzv-knerds__sub{margin:6px 0 14px}

/* The rectangle: 4 across on top row, 4 across bottom, host bottom-right */
.pzv-table{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:
  linear-gradient(135deg,rgba(138,124,255,.10),rgba(0,209,255,.08));
  border:2px dashed rgba(128,128,128,.4);border-radius:14px;padding:16px}
.pzv-seat{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;
  background:var(--pp-paper,#fff);border:1px solid rgba(128,128,128,.3);border-radius:10px;padding:12px 8px 10px}
.pzv-seat--host{border-color:var(--pp-riot,#FF2E7E);box-shadow:0 0 0 1px var(--pp-riot,#FF2E7E) inset}
.pzv-seat--empty{border-style:dashed;opacity:.72}
.pzv-seat__avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--pp-font-display,inherit);font-weight:700;font-size:15px;color:#000;background:var(--pp-circuit,#00D1FF)}
.pzv-seat__avatar--empty{background:transparent;border:2px dashed rgba(128,128,128,.5);color:rgba(128,128,128,.8);font-size:22px}
.pzv-seat__avatar.tint-riot{background:var(--pp-riot,#FF2E7E)}
.pzv-seat__avatar.tint-circuit{background:var(--pp-circuit,#00D1FF)}
.pzv-seat__avatar.tint-volt{background:var(--pp-volt,#F7E11E)}
.pzv-seat__dot{position:absolute;top:10px;right:calc(50% - 30px);width:11px;height:11px;border-radius:50%;border:2px solid var(--pp-paper,#fff);background:#9aa}
.pzv-seat__dot--online,.pzv-seat__dot--building{background:#53D97A}
.pzv-seat__dot--idle{background:#F7B32B}
.pzv-seat__name{font-weight:600;font-size:13px;line-height:1.2}
.pzv-seat__hostbadge{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:9px;background:var(--pp-riot,#FF2E7E);color:#fff;border-radius:4px;padding:1px 5px;vertical-align:middle}
.pzv-seat__role{font-size:10.5px;line-height:1.25}
.pzv-seat__link,.pzv-seat__invite{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:10.5px;color:var(--pp-circuit,#00D1FF);text-decoration:none;margin-top:2px}
.pzv-seat__link:hover,.pzv-seat__invite:hover{text-decoration:underline}
.pzv-knerds__foot{margin-top:12px}

@media (max-width:820px){
  .pzv-table{grid-template-columns:repeat(2,1fr)}
  .pzv-seat__dot{right:calc(50% - 26px)}
}
@media (max-width:480px){
  .pzv-table{grid-template-columns:1fr}
}

/* ===========================================================================
 * Stage 21 · Sprint 68 — Seat Streams, Polish & Gate (BLIs 697–708)
 * ======================================================================== */

/* Host control bar */
.pzv-hostbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.pzv-hostbtn{background:none;border:1px solid rgba(128,128,128,.4);border-radius:6px;padding:6px 12px;font-size:.82rem;cursor:pointer;color:inherit}
.pzv-hostbtn[aria-pressed="true"]{background:var(--pp-riot,#FF2E7E);color:#fff;border-color:var(--pp-riot,#FF2E7E)}
.pzv-hostnote{flex:1;min-width:220px;font-size:11px}
.pzv-knerds--locked .pzv-seat--empty{opacity:.4}

/* Seat live-camera tile (self-view; local only) */
.pzv-seat__stream{position:relative;width:100%;border-radius:8px;overflow:hidden;background:#000;margin-bottom:6px}
.pzv-seat__stream video{display:block;width:100%;height:88px;object-fit:cover}
.pzv-livebadge{position:absolute;top:6px;left:6px;font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:9px;
  background:rgba(0,0,0,.65);color:#fff;border-radius:4px;padding:2px 6px}
.pzv-seat--livecam{border-color:var(--pp-riot,#FF2E7E);box-shadow:0 0 0 1px var(--pp-riot,#FF2E7E) inset}
.pzv-seat--livecam .pzv-seat__avatar{display:none}

/* Polish (BLIs 704/705) — smoother seats, calmer motion */
.pzv-seat{transition:transform .12s ease,border-color .12s ease}
.pzv-seat:hover{transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){
  .pzv-seat,.pzv-seat:hover{transition:none;transform:none}
  .pzv-livebadge{animation:none}
}
@media (max-width:480px){
  .pzv-hostbar{flex-direction:column;align-items:flex-start}
  .pzv-seat__stream video{height:120px}
}

/* ===========================================================================
 * Podz View — ONE-SCREEN cockpit (owner's hand-drawn layout).
 * 100vh, no page scroll: head + [ Files│Terminal│Live/Web ] + [ Maestro·Knerds·Host ].
 * Appended last so it overrides the earlier .pzv / .pzv-grid / .pzv-knerds rules.
 * ======================================================================== */
.pzv--onescreen{height:100vh;max-height:100vh;max-width:none;margin:0;padding:8px 14px 10px;
  display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}
.pzv--onescreen *{box-sizing:border-box}
.pzv--onescreen .pzv-head{margin:0 0 6px;padding:0}
.pzv--onescreen .pzv-title{font-size:1.25rem;margin:0}
.pzv--onescreen .pzv-sub{font-size:.78rem}
.pzv--onescreen .pzv-stage{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:8px}

/* TOP — 3-pane cockpit (fills ~64% of the stage) */
.pzv--onescreen .pzv-cockpit{flex:1 1 auto;min-height:0;display:grid;
  grid-template-columns:170px minmax(0,1fr) 290px;gap:8px}
.pzv--onescreen .pzv-files,.pzv--onescreen .pzv-term,.pzv--onescreen .pzv-liveview,.pzv--onescreen .pzv-webview{min-height:0;overflow:hidden}
.pzv--onescreen .pzv-files{display:flex;flex-direction:column}
.pzv--onescreen .pzv-filelist{flex:1 1 auto;min-height:0;overflow:auto}
.pzv--onescreen .pzv-term{display:flex;flex-direction:column;min-height:0}
.pzv--onescreen .pzv-code{flex:1 1 auto;min-height:0;overflow:auto;margin:0}
.pzv--onescreen .pzv-live-col{display:flex;flex-direction:column;gap:8px;min-height:0}
.pzv--onescreen .pzv-liveview{flex:1 1 60%}
.pzv--onescreen .pzv-webview{flex:1 1 40%}
.pzv--onescreen .pzv-liveview__screen{min-height:0;height:100%;overflow:auto}

/* BOTTOM — Maestro · Knerds · Host (fixed band that fits the rest of the screen) */
.pzv--onescreen .pzv-floor{flex:0 0 33vh;min-height:0;display:grid;
  grid-template-columns:190px minmax(0,1fr) 230px;gap:8px}
.pzv--onescreen .pzv-maestro,.pzv--onescreen .pzv-host{border:1px solid rgba(128,128,128,.3);border-radius:10px;
  padding:10px;display:flex;flex-direction:column;gap:6px;min-height:0;overflow:auto;background:var(--pp-paper,#fff)}
.pzv-maestro__badge{font-family:var(--pp-font-display,inherit);font-weight:700;font-size:.95rem}
.pzv-maestro__line{font-size:11px;line-height:1.4}
.pzv-maestro__ask{margin-top:auto}
.pzv-host__cap,.pzv--onescreen .pzv-pane__cap{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:10px;text-transform:uppercase;letter-spacing:.5px;opacity:.7}
.pzv-host__me{display:flex;align-items:center;gap:8px}
.pzv-host__name{font-weight:600;font-size:13px}
.pzv--onescreen .pzv-hostbar{flex-direction:column;gap:6px;margin:0}
.pzv--onescreen .pzv-hostbtn{width:100%;font-size:11px;padding:5px 8px}
.pzv--onescreen .pzv-hostnote{font-size:9.5px;line-height:1.35}

/* Knerds table — compact 4×2 inside the floor */
.pzv--onescreen .pzv-knerds{margin:0;padding:8px 10px;display:flex;flex-direction:column;min-height:0;overflow:hidden;
  border:1px solid rgba(128,128,128,.3);border-radius:10px}
.pzv--onescreen .pzv-knerds__head{margin:0 0 6px}
.pzv--onescreen .pzv-knerds__h{font-size:.95rem}
.pzv--onescreen .pzv-knerds__sub{display:none}
.pzv--onescreen .pzv-table{flex:1 1 auto;min-height:0;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;overflow:auto}
.pzv--onescreen .pzv-seat{padding:6px 4px 5px;gap:2px}
.pzv--onescreen .pzv-seat__avatar{width:30px;height:30px;font-size:11px}
.pzv--onescreen .pzv-seat__name{font-size:10.5px}
.pzv--onescreen .pzv-seat__role{display:none}
.pzv--onescreen .pzv-seat__dot{top:6px;right:calc(50% - 20px);width:9px;height:9px}
.pzv--onescreen .pzv-seat__link,.pzv--onescreen .pzv-seat__invite{font-size:9.5px}
.pzv--onescreen .pzv-seat__stream video{height:44px}

/* Tighter on short screens; stack to scrollable on small/mobile (one-screen is a desktop promise) */
@media (max-height:640px){ .pzv--onescreen .pzv-floor{flex-basis:36vh} .pzv--onescreen .pzv-seat__avatar{width:26px;height:26px} }
@media (max-width:860px){
  .pzv--onescreen{height:auto;max-height:none;overflow:visible}
  .pzv--onescreen .pzv-cockpit{grid-template-columns:1fr;grid-auto-rows:minmax(180px,auto)}
  .pzv--onescreen .pzv-floor{grid-template-columns:1fr;flex-basis:auto}
}

/* ===========================================================================
 * Podz View — EXPAND DOWN (owner red-mark revision): give the Terminal + Live
 * View real height; let the Maestro·Knerds·Host band sit below (page scrolls).
 * Appended last → overrides the strict 100vh one-screen rules above.
 * ======================================================================== */
.pzv--onescreen{height:auto;max-height:none;overflow:visible;min-height:100vh}
.pzv--onescreen .pzv-stage{display:block;min-height:0}
.pzv--onescreen .pzv-cockpit{height:74vh;min-height:540px}          /* big terminal + live view */
.pzv--onescreen .pzv-floor{flex:none;margin-top:12px;min-height:30vh}
/* let the tall panes breathe */
.pzv--onescreen .pzv-code,.pzv--onescreen .pzv-filelist,.pzv--onescreen .pzv-liveview__screen{overflow:auto}
.pzv--onescreen .pzv-liveview{flex:1 1 62%}
.pzv--onescreen .pzv-webview{flex:1 1 38%}
@media (max-width:860px){
  .pzv--onescreen .pzv-cockpit{height:auto}
}

/* ===========================================================================
 * Podz View — Live/Web column bigger (owner red-mark #2): widen the right
 * column (reclaim the terminal's dead space) and make Live+Web fill the full
 * cockpit height so there's no empty gap.
 * ======================================================================== */
.pzv--onescreen .pzv-cockpit{grid-template-columns:160px minmax(0,1fr) 400px}
.pzv--onescreen .pzv-live-col{height:100%;min-height:0}
.pzv--onescreen .pzv-liveview,.pzv--onescreen .pzv-webview{display:flex;flex-direction:column;min-height:0}
.pzv--onescreen .pzv-liveview{flex:1 1 58%}
.pzv--onescreen .pzv-webview{flex:1 1 42%}
.pzv--onescreen .pzv-liveview__screen{flex:1 1 auto;min-height:0}
.pzv--onescreen .pzv-webview__body{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:6px}
@media (max-width:1100px){ .pzv--onescreen .pzv-cockpit{grid-template-columns:150px minmax(0,1fr) 320px} }
@media (max-width:860px){ .pzv--onescreen .pzv-cockpit{grid-template-columns:1fr} }

/* ===========================================================================
 * Podz View — v2 layout: Files(L) · Code⇄Live(center) · Knerds(R vertical) · Maestro chat(bottom)
 * Appended last → overrides the earlier .pzv--onescreen rules.
 * ======================================================================== */
.pzv--v2{height:100vh;max-height:100vh;overflow:hidden;min-height:0}
.pzv--v2 .pzv-stage{display:grid;grid-template-columns:250px minmax(0,1fr) 275px;
  grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"files center knerds" "maestro maestro maestro";
  gap:8px;height:calc(100vh - 60px);min-height:0;overflow:hidden}
.pzv--v2 .pzv-files{grid-area:files;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.pzv--v2 .pzv-filelist{flex:1 1 auto;min-height:0;overflow:auto}
.pzv--v2 .pzv-center{grid-area:center;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.pzv--v2 .pzv-center__pane{flex:1 1 auto;min-height:0;height:100%}
.pzv--v2 .pzv-center__pane[hidden]{display:none}
.pzv--v2 .pzv-term{display:flex;flex-direction:column}
.pzv--v2 .pzv-code{flex:1 1 auto;min-height:0;overflow:auto;margin:0}
.pzv--v2 .pzv-live-col{display:flex;flex-direction:column;gap:8px}
.pzv--v2 .pzv-liveview{flex:1 1 60%;display:flex;flex-direction:column;min-height:0}
.pzv--v2 .pzv-webview{flex:1 1 40%;display:flex;flex-direction:column;min-height:0}
.pzv--v2 .pzv-liveview__screen{flex:1 1 auto;min-height:0;overflow:auto}
.pzv--v2 .pzv-webview__body{flex:1 1 auto;min-height:0;overflow:auto}
.pzv--v2 .pzv-knerds{grid-area:knerds;display:flex;flex-direction:column;min-height:0;overflow:auto;margin:0;
  border:1px solid rgba(128,128,128,.3);border-radius:10px;padding:8px 10px}
.pzv--v2 .pzv-maestro-bar{grid-area:maestro}

/* Code ⇄ Live toggle */
.pzv-viewtoggle{display:flex;gap:4px;border:1px solid rgba(128,128,128,.4);border-radius:8px;padding:2px}
.pzv-vt{border:0;background:none;color:inherit;padding:5px 12px;border-radius:6px;font-size:.82rem;cursor:pointer}
.pzv-vt.on{background:var(--pp-ink,#111);color:var(--pp-paper,#fff)}

/* Knerds — vertical sidebar seats */
.pzv--v2 .pzv-knerds__head{flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:6px}
.pzv--v2 .pzv-knerds__h{font-size:1rem}
.pzv--v2 .pzv-knerds__filter{margin-bottom:8px}
.pzv--v2 .pzv-table{display:flex;flex-direction:column;gap:6px;grid-template-columns:none;padding:0;background:none;border:0;flex:1 1 auto;min-height:0;overflow:auto}
.pzv--v2 .pzv-seat{flex-direction:row;align-items:center;gap:8px;text-align:left;padding:7px 9px}
.pzv--v2 .pzv-seat__avatar{width:30px;height:30px;font-size:11px;flex:none}
.pzv--v2 .pzv-seat__name{font-size:12px;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pzv--v2 .pzv-seat__role{display:none}
.pzv--v2 .pzv-seat__dot{position:static;width:9px;height:9px;flex:none}
.pzv--v2 .pzv-seat__link,.pzv--v2 .pzv-seat__invite{flex:none}
.pzv--v2 .pzv-seat__stream video{height:60px}
.pzv--v2 .pzv-hostbar{flex-direction:row;gap:6px;margin:8px 0 0}
.pzv--v2 .pzv-hostbtn{flex:1;font-size:11px;padding:5px}
.pzv--v2 .pzv-hostnote{font-size:9px;line-height:1.35;margin:6px 0 0}

/* Maestro chat bar (big text box) */
.pzv-maestro-bar{border:1px solid rgba(128,128,128,.3);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;background:var(--pp-paper,#fff)}
.pzv-maestro__top{display:flex;align-items:center;gap:10px;font-size:12px}
.pzv-maestro__badge{font-family:var(--pp-font-display,inherit);font-weight:700}
.pzv-maestro__answer{max-height:130px;overflow:auto;font-size:13px;line-height:1.5;background:rgba(128,128,128,.08);border-radius:8px;padding:8px 10px}
.pzv-maestro__form{display:flex;gap:8px;align-items:flex-end}
.pzv-maestro__input{flex:1 1 auto;resize:vertical;min-height:46px;max-height:160px;border:1px solid rgba(128,128,128,.4);border-radius:8px;padding:9px 11px;font:inherit;background:var(--pp-paper,#fff);color:inherit}
.pzv-maestro__send{flex:none;border:0;background:var(--pp-riot,#FF2E7E);color:#fff;border-radius:8px;padding:11px 18px;font-weight:700;cursor:pointer}
.pzv-maestro__send:hover{filter:brightness(1.05)}
.pzv-term__ask{margin-left:auto;background:none;border:1px solid #7fd7ff;color:#7fd7ff;border-radius:5px;padding:3px 8px;font-size:10px;cursor:pointer}

@media (max-width:900px){
  .pzv--v2{height:auto;max-height:none;overflow:visible}
  .pzv--v2 .pzv-stage{grid-template-columns:1fr;grid-template-areas:"files" "center" "knerds" "maestro";height:auto}
  .pzv--v2 .pzv-center{min-height:60vh}
}

/* Dashboard "The Build" eye-candy caret — blinks at the stream head (Sprint 21 polish). */
.mx-os__caret{color:var(--pp-circuit,#00D1FF);font-weight:700;animation:mx-os-caret 1.05s steps(1) infinite}
@keyframes mx-os-caret{50%{opacity:0}}

/* ── E-Build tab polish (Sprint 21) ─────────────────────────────────────────
 * 1) On an open-source tab, show ONLY the E-Build pane — hide the daily-engine
 *    chrome (streak header, quiz answer bar, compiled status footer).
 * 2) Header tab strip: bigger + bolder so the views read clearly.
 * 3) The Build project name: bold + prominent (only rendered on the E-Build tab). */
.mx-code--os .mx-file,
.mx-code--os .mx-answerbar,
.mx-code--os .mx-code__foot{display:none!important}

.mx-dt__tab{font-size:13px;font-weight:700;color:#b9b4cf;padding-bottom:4px}
.mx-dt__tab:hover{color:#eceaf6}
.mx-dt__tab.on{color:#ffffff}
.mx-dt__tab--os{font-size:13.5px}

#mx-os-build-title{font-weight:800;font-size:14.5px;color:var(--pp-circuit,#00D1FF);letter-spacing:.01em}

/* 🧩 Daily Decode tab — an obvious engagement tab (games/puzzles) in the live-code strip. */
.mx-dt__tab--game{color:var(--pp-volt,#F7E11E)}
.mx-dt__tab--game.on{color:#fff;border-bottom-color:var(--pp-volt,#F7E11E)}

/* Header strip fixes (Sprint 21): keep tabs on top, stop the Maestro hint from covering them.
 * Tabs can shrink/scroll; the hint is pinned right, truncates, and hides when space is tight. */
.mx-dt__tabs{min-width:0;flex:1 1 auto}
.mx-hint{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;margin-left:auto;padding-left:10px}
@media (max-width:1200px){ .mx-hint{display:none} }

/* The Build stream: selectable text + hover-pause affordance so a reader can click a line for Maestro. */
.mx-os__code{user-select:text}
.mx-os__code.is-paused{outline:1px solid color-mix(in srgb, var(--pp-circuit,#00D1FF) 45%, transparent); outline-offset:-1px; cursor:text}

/* ── Sprint 21 cockpit polish ────────────────────────────────────────────────
 * 1) Remove the Maestro "click any line" hint that overlapped the header tabs.
 * 2) E-Build expand cockpit (data-src="build"): show ONLY Files + Code/Live + Maestro
 *    — the Knerds co-presence sidebar is dropped from this focused build view.
 * 3) Smart/live file index: the active file pulses "● working" so you can see what's
 *    being built right now. */
.mx-hint{display:none!important}

.pzv--v2[data-src="build"] .pzv-knerds{display:none}
.pzv--v2[data-src="build"] .pzv-stage{grid-template-columns:280px minmax(0,1fr);grid-template-areas:"files center" "maestro maestro"}

.pzv--v2 .pzv-file{position:relative}
.pzv--v2 .pzv-file.on{color:#fff;font-weight:700}
.pzv--v2 .pzv-file.on::after{content:"● working";margin-left:8px;font-size:9px;letter-spacing:.04em;color:var(--pp-circuit,#00D1FF);animation:pzv-live 1.4s ease-in-out infinite;vertical-align:middle}
@keyframes pzv-live{50%{opacity:.3}}

/* ── Stage 22 · Sprint 69 — Crew Mode: Solo⇄Crew + shared board ─────────────
 * Solo (default) = the clean Files·Code·Live cockpit. Crew reveals the Knerds
 * table (even in the build view) and a shared Kanban board (a 3rd center pane). */
.pzv-modeswitch{display:inline-flex;gap:2px;border:1px solid rgba(128,128,128,.3);border-radius:8px;overflow:hidden;margin-right:8px}
.pzv-mode{appearance:none;background:transparent;border:0;cursor:pointer;font:inherit;font-size:12px;font-weight:700;padding:5px 10px;color:var(--pp-ink,#ddd)}
.pzv-mode.on{background:var(--pp-circuit,#00D1FF);color:#04121a}

/* Board toggle button hidden in Solo, shown in Crew. */
.pzv-vt--crew{display:none}
.pzv--crew .pzv-vt--crew{display:inline-flex}

/* Crew mode on the build cockpit → bring the Knerds sidebar back + 3-column grid. */
.pzv--v2.pzv--crew[data-src="build"] .pzv-knerds{display:flex}
.pzv--v2.pzv--crew[data-src="build"] .pzv-stage{grid-template-columns:250px minmax(0,1fr) 275px;grid-template-areas:"files center knerds" "maestro maestro maestro"}

/* Shared task board (the 3rd center pane). */
.pzv-boardview{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.pzv-board__add{display:inline-flex;gap:6px;margin-left:auto}
.pzv-board__input{font:inherit;font-size:12px;padding:4px 8px;border:1px solid rgba(128,128,128,.35);border-radius:6px;background:var(--pp-paper,#0c1118);color:inherit;min-width:180px}
.pzv-board__btn{appearance:none;border:0;cursor:pointer;font:inherit;font-size:12px;font-weight:700;padding:4px 10px;border-radius:6px;background:var(--pp-circuit,#00D1FF);color:#04121a}
.pzv-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:1;min-height:0;overflow:auto;padding:8px}
.pzv-board__col{display:flex;flex-direction:column;min-height:0;background:rgba(128,128,128,.06);border:1px solid rgba(128,128,128,.2);border-radius:8px}
.pzv-board__colcap{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;padding:8px 10px;color:var(--pp-circuit,#00D1FF);border-bottom:1px solid rgba(128,128,128,.2)}
.pzv-board__cards{flex:1;min-height:40px;overflow:auto;padding:8px;display:flex;flex-direction:column;gap:6px}
.pzv-board__cards.drop{outline:2px dashed var(--pp-circuit,#00D1FF);outline-offset:-4px;border-radius:6px}
.pzv-card{cursor:grab;background:var(--pp-paper,#131118);border:1px solid rgba(128,128,128,.3);border-radius:6px;padding:8px 10px;font-size:12.5px;display:flex;flex-direction:column;gap:3px}
.pzv-card.dragging{opacity:.5}
.pzv-card__t{line-height:1.35}
.pzv-card__bli{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:9px;color:var(--pp-circuit,#00D1FF);letter-spacing:.04em}
.pzv-board__note{padding:6px 10px;border-top:1px solid rgba(128,128,128,.2);font-size:10px;opacity:.75}

/* ── Stage 22 · Sprint 70 — Crew approvals + live feed (in the Knerds sidebar) ─
 * Hidden in Solo; revealed in Crew. All actor/text is display-only (JS textContent). */
.pzv-approvals, .pzv-feed{display:none}
.pzv--crew .pzv-approvals, .pzv--crew .pzv-feed{display:block;margin-top:10px;border-top:1px solid rgba(128,128,128,.25);padding-top:8px}
.pzv-approvals__cap, .pzv-feed__cap{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;color:var(--pp-circuit,#00D1FF);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.pzv-approvals__add{display:flex;gap:6px;margin-bottom:6px}
.pzv-approvals__input{flex:1;min-width:0;font:inherit;font-size:12px;padding:4px 8px;border:1px solid rgba(128,128,128,.35);border-radius:6px;background:var(--pp-paper,#0c1118);color:inherit}
.pzv-approvals__btn{appearance:none;border:0;cursor:pointer;font:inherit;font-size:11px;font-weight:700;padding:4px 8px;border-radius:6px;background:var(--pp-circuit,#00D1FF);color:#04121a}
.pzv-approvals__list{display:flex;flex-direction:column;gap:6px}
.pzv-appr{background:rgba(128,128,128,.07);border:1px solid rgba(128,128,128,.22);border-radius:6px;padding:6px 8px;font-size:12px}
.pzv-appr--done{opacity:.6}
.pzv-appr__t{line-height:1.3}
.pzv-appr__ref{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:9px;color:var(--pp-circuit,#00D1FF)}
.pzv-appr__acts{display:flex;gap:5px;margin-top:5px}
.pzv-appr__act{appearance:none;border:1px solid rgba(128,128,128,.35);cursor:pointer;font:inherit;font-size:10.5px;font-weight:700;padding:3px 7px;border-radius:5px;background:transparent;color:inherit}
.pzv-appr__act.ok{border-color:var(--pp-circuit,#00D1FF);color:var(--pp-circuit,#00D1FF)}
.pzv-feed__list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow:auto}
.pzv-feedline{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;line-height:1.35;border-bottom:1px dotted rgba(128,128,128,.15);padding-bottom:3px}
.pzv-feedline__t{min-width:0}
.pzv-feedline__w{flex:none;font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:9px;opacity:.6}

/* ── Stage 22 · Sprint 71 — Record/Rewind + Crew a11y/mobile pass ──────────── */
.pzv-rr{display:inline-flex;gap:6px;align-items:center}
.pzv-rr__btn{appearance:none;border:1px solid rgba(128,128,128,.35);cursor:pointer;font:inherit;font-size:11px;font-weight:700;padding:4px 8px;border-radius:6px;background:transparent;color:inherit}
.pzv-rr__btn:hover{border-color:var(--pp-riot,#FF2E7E);color:var(--pp-riot,#FF2E7E)}
.pzv-rr__pick{font:inherit;font-size:11px;padding:4px 6px;border:1px solid rgba(128,128,128,.35);border-radius:6px;background:var(--pp-paper,#0c1118);color:inherit;max-width:150px}

/* Focus-visible rings on all Crew controls (a11y — BLI-0000731). */
.pzv-mode:focus-visible,.pzv-vt:focus-visible,.pzv-rr__btn:focus-visible,.pzv-rr__pick:focus-visible,
.pzv-appr__act:focus-visible,.pzv-board__btn:focus-visible,.pzv-approvals__btn:focus-visible{outline:2px solid var(--pp-circuit,#00D1FF);outline-offset:2px}

/* Mobile: the shared board stacks to two columns so cards stay readable. */
@media (max-width:720px){
  .pzv-board{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pzv-rr__pick{max-width:110px}
}

/* Reduced motion: still the blinking caret + card-drag transitions for people who ask for calm. */
@media (prefers-reduced-motion: reduce){
  .mx-os__caret{animation:none}
  .pzv-card.dragging{opacity:.7}
  .pzv-feedline{transition:none}
}

/* The Build — make the terminal a fixed-height viewport so the code auto-scrolls
   INSIDE the box (follows the build) instead of growing the page. Scoped to /build. */
.bld-term{max-height:78vh}
.bld-code{scroll-behavior:smooth}
@media(max-width:820px){.bld-term{max-height:72vh}}

/* Podz View — "💬 My Chat" persistent per-Pod Maestro transcript */
.pzv-chatview{display:flex;flex-direction:column;min-height:0;height:100%}
.pzv-chatlog{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:12px;max-height:78vh;scroll-behavior:smooth}
.pzv-chat-empty{color:var(--pp-muted,#8a90a0);font-size:13px;font-style:italic;padding:18px 6px}
.pzv-chatmsg{display:flex;flex-direction:column;gap:3px;max-width:88%}
.pzv-chatmsg--you{align-self:flex-end;align-items:flex-end}
.pzv-chatmsg--maestro{align-self:flex-start;align-items:flex-start}
.pzv-chatmsg__who{font-size:10.5px;font-weight:700;letter-spacing:.02em;opacity:.7;text-transform:uppercase}
.pzv-chatmsg__body{white-space:pre-wrap;word-break:break-word;font-size:13.5px;line-height:1.55;padding:9px 12px;border:2px solid var(--pp-ink,#12141a);box-shadow:2px 2px 0 rgba(0,0,0,.18)}
.pzv-chatmsg--you .pzv-chatmsg__body{background:#e73977;color:#fff}
.pzv-chatmsg--maestro .pzv-chatmsg__body{background:#0f1117;color:#d7dae0}
@media(max-width:820px){.pzv-chatlog{max-height:60vh}.pzv-chatmsg{max-width:96%}}

/* My Chat — timestamps + owner Clear button */
.pzv-chatmsg__time{font-size:10px;opacity:.55;margin-top:1px}
.pzv-chatmsg--you .pzv-chatmsg__time{align-self:flex-end}
.pzv-chatmsg--maestro .pzv-chatmsg__time{align-self:flex-start}
.pzv-chat-clear{margin-left:auto;font-size:11px;font-weight:700;color:#c02a4d;background:transparent;border:1px solid rgba(192,42,77,.5);border-radius:6px;padding:2px 8px;cursor:pointer}
.pzv-chat-clear:hover{background:rgba(192,42,77,.1)}
.pzv-chat-clear:focus-visible{outline:2px solid #c02a4d;outline-offset:2px}

/* Knerds of the Rectangle — typed casing (capital K & R only), one row, edge-to-edge */
.pzv-knerds__h{text-transform:none;letter-spacing:.1px;white-space:nowrap}
.pzv--v2 .pzv-knerds__head{align-self:stretch}
.pzv--v2 .pzv-knerds__h{font-size:1.12rem;white-space:nowrap;width:100%}
.pzv--onescreen .pzv-knerds__h{white-space:nowrap}

/* Home "Start your build" card — make the Maestro heading big & bold (Buster's request) */
.mx-ask__title{font-size:30px;font-weight:900;line-height:1.05;letter-spacing:.2px}
@media(max-width:720px){.mx-ask__title{font-size:24px}}

/* Pricing — darken washed-out plan text in LIGHT mode (xerox/light) for readability */
[data-theme="xerox"] .pr-card__blurb,
[data-theme="light"] .pr-card__blurb{color:#3f3a49}
[data-theme="xerox"] .pg-note,
[data-theme="light"] .pg-note{color:#3f3a49}
[data-theme="xerox"] .pr-card__pods,
[data-theme="light"] .pr-card__pods{color:#5a5566}

/* ============================================================================
 * Secondary-text token overrides — live in app.css (cache-busted) so they beat
 * the un-versioned @import "tokens.css" that browsers cache. Fixes washed-out
 * light-mode text everywhere (blurbs, add-on descriptions, fees, footer, notes).
 * ========================================================================== */
[data-theme="xerox"], [data-theme="light"]{
  --pp-ash:#4E4959; --pp-muted:#5A5566; --pp-ink-dim:#5A5566;
}
[data-theme="blackout"], [data-theme="dark"]{
  --pp-ash:#C2CEE6; --pp-muted:#8A90A0;   /* unchanged from before → dark mode identical */
}

/* Podz cockpit — new filters + Live-View "Pick & Fix" tool */
.pzv-board__filter,.pzv-knerds__search{font-family:var(--pp-font-mono);font-size:12px;border:2px solid var(--pp-ink);background:var(--pp-paper-2);color:var(--pp-ink);border-radius:6px;padding:5px 9px}
.pzv-board__filter{margin-left:8px;min-width:150px}
.pzv-knerds__search{width:100%;margin:6px 0 4px;box-sizing:border-box}
.pzv-board__filter:focus-visible,.pzv-knerds__search:focus-visible{outline:2px solid var(--pp-focus-ring);outline-offset:1px}
.pzv-pick{margin-left:auto;font-size:11px;font-weight:700;color:var(--pp-riot-ink);background:var(--pp-riot);border:2px solid var(--pp-ink);border-radius:6px;padding:3px 9px;cursor:pointer}
.pzv-pick[aria-pressed="true"]{background:var(--pp-volt);color:var(--pp-volt-ink);box-shadow:inset 0 0 0 2px var(--pp-ink)}
.pzv-pick:focus-visible{outline:2px solid var(--pp-focus-ring);outline-offset:2px}
.pzv-liveview--picking{cursor:crosshair;outline:2px dashed var(--pp-riot);outline-offset:-4px}
.pzv-liveview--picking *{cursor:crosshair !important}

/* Section filter tabs (Crew · Board) — always-visible tab row + search */
.pf-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 18px}
/* Page-scroll control (‹ 1 / N ›) — caps lists at N per page instead of infinite scroll */
.pf-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin:16px 0 4px}
.pf-pager__btn{font-family:var(--pp-font-mono);font-size:18px;line-height:1;border:2px solid var(--pp-ink);background:var(--pp-paper-2);color:var(--pp-ink);border-radius:0;padding:5px 14px;cursor:pointer;box-shadow:var(--pp-sticker-shadow)}
.pf-pager__btn:hover:not(:disabled){border-color:var(--pp-riot);color:var(--pp-riot)}
.pf-pager__btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}
.pf-pager__lbl{font-family:var(--pp-font-mono);font-size:12px;color:var(--pp-ink-dim);min-width:84px;text-align:center}
.pf-tab{font-family:var(--pp-font-mono);font-size:12.5px;font-weight:700;color:var(--pp-ink);background:var(--pp-paper-2);border:2px solid var(--pp-ink);border-radius:0;padding:6px 14px;cursor:pointer;transition:transform .08s}
.pf-tab:hover{transform:translateY(-1px)}
.pf-tab.on{background:var(--pp-riot);color:var(--pp-riot-ink)}
.pf-tab:focus-visible{outline:2px solid var(--pp-focus-ring);outline-offset:2px}
.pf-filters__search{font-family:var(--pp-font-mono);font-size:12.5px;border:2px solid var(--pp-ink);background:var(--pp-paper-2);color:var(--pp-ink);border-radius:0;padding:6px 12px;min-width:180px;flex:1 1 180px;max-width:280px}
.pf-filters__search:focus-visible{outline:2px solid var(--pp-focus-ring);outline-offset:1px}
.pf-empty{font-family:var(--pp-font-mono);font-size:13px;color:var(--pp-ink-dim);padding:14px 4px}

/* Maestro live Activity feed (My Chat pane) — timestamped steps */
.pzv-chatwrap{display:flex;gap:12px;flex:1;min-height:0}
.pzv-chatwrap .pzv-chatlog{flex:1;min-width:0}
.pzv-activity{width:240px;flex:0 0 240px;display:flex;flex-direction:column;border-left:2px solid var(--pp-line);padding-left:10px;min-height:0}
.pzv-activity__cap{font-family:var(--pp-font-mono);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pp-ink-dim);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.pzv-activity__list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:6px;max-height:70vh}
.pzv-activity__empty{color:var(--pp-ink-dim);font-size:11.5px;font-style:italic;line-height:1.5}
.pzv-act{display:flex;flex-direction:column;gap:1px;border-left:3px solid var(--pp-line);padding:3px 0 3px 8px}
.pzv-act--work{border-left-color:var(--pp-circuit,#00A896)}
.pzv-act--done{border-left-color:#3aa76d}
.pzv-act--warn{border-left-color:var(--pp-danger,#D9331F)}
.pzv-act--you{border-left-color:var(--pp-riot,#E60063)}
.pzv-act__t{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim);letter-spacing:.02em}
.pzv-act__b{font-size:11.5px;line-height:1.4;color:var(--pp-ink);word-break:break-word}
@media(max-width:820px){.pzv-chatwrap{flex-direction:column}.pzv-activity{width:auto;flex:0 0 auto;border-left:0;border-top:2px solid var(--pp-line);padding-left:0;padding-top:8px}.pzv-activity__list{max-height:180px}}

/* Maestro Activity feed — floating pop-up panel (auto-opens on work, ✕ to close) */
.pzv-actpanel{position:fixed;right:18px;bottom:96px;z-index:60;width:300px;max-width:calc(100vw - 36px);background:var(--pp-paper-2);border:2px solid var(--pp-ink);box-shadow:5px 5px 0 rgba(0,0,0,.28);display:flex;flex-direction:column;max-height:52vh}
.pzv-actpanel[hidden]{display:none}
.pzv-actpanel__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 11px;background:var(--pp-ink);color:#fff;font-family:var(--pp-font-mono);font-size:12px;font-weight:700;letter-spacing:.03em}
.pzv-actpanel__x{background:transparent;border:0;color:#fff;font-size:20px;line-height:1;cursor:pointer;padding:0 4px}
.pzv-actpanel__x:hover{color:var(--pp-volt,#F7E11E)}
.pzv-actpanel__x:focus-visible{outline:2px solid var(--pp-volt,#F7E11E);outline-offset:2px}
.pzv-actpanel .pzv-activity__list{padding:10px;max-height:none;overflow-y:auto}
@media(max-width:820px){.pzv-actpanel{right:10px;left:10px;width:auto;bottom:84px}}

/* ---- MOBILE FIX: Crew/Board sidebar overlap on stacked (phone) layout ----
   The desktop rules (~L1403) stretch both fold panels to full height (flex:1 1 0)
   so they match the tall center column. When the columns stack vertically at
   <=960px there's no fixed height to stretch against, so the panels + their
   rotated stickers + empty-state cards collapsed on top of each other.
   Below, we switch the stretch OFF on narrow screens and let the two panels
   flow naturally top-to-bottom. (Append-only per SELinux/cache policy.) */
@media (max-width:960px){
  .hm-col--side{display:block}
  .hm-col--side .hm-fold{display:block;flex:0 0 auto;min-height:0;margin:0 0 18px !important;padding-top:12px}
  .hm-col--side .hm-fold:last-child{margin-bottom:0 !important}
  .hm-col--side .hm-foldhead{flex-wrap:wrap;row-gap:6px}
  .hm-col--side .hm-fold__body{display:block;flex:0 0 auto;min-height:0}
  .hm-col--side #hm-crewrows,
  .hm-col--side #hm-boardrows{display:block;flex:0 0 auto;min-height:0;max-height:none}
  .hm-col--side .hm-side-empty{display:block;flex:0 0 auto;min-height:0}
}

/* ---- 📘 "How to get this key" — button + tutorial modal (Connect page) ---- */
.ai-howto{display:block;width:100%;margin:0 0 12px;padding:9px 12px;font-family:var(--pp-font-display);font-size:12px;font-weight:800;letter-spacing:.02em;text-align:left;cursor:pointer;color:var(--pp-ink);background:var(--pp-volt);border:2px solid var(--pp-ink);box-shadow:2px 2px 0 rgba(0,0,0,.35)}
.ai-howto:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 rgba(0,0,0,.4)}
.ai-howto:focus-visible{outline:2px solid var(--pp-circuit);outline-offset:2px}
.ai-howto-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:18px}
.ai-howto-modal[hidden]{display:none}
.ai-howto-modal__backdrop{position:absolute;inset:0;background:rgba(6,4,18,.66);backdrop-filter:blur(2px)}
.ai-howto-modal__card{position:relative;z-index:1;width:min(520px,100%);max-height:88vh;overflow-y:auto;background:var(--pp-paper,#fff);border:3px solid var(--pp-ink);box-shadow:8px 8px 0 rgba(0,0,0,.45);padding:22px}
.ai-howto-modal__x{position:absolute;top:8px;right:10px;background:transparent;border:0;font-size:26px;line-height:1;cursor:pointer;color:var(--pp-ink);padding:2px 6px}
.ai-howto-modal__x:hover{color:var(--pp-riot)}
.ai-howto-modal__x:focus-visible{outline:2px solid var(--pp-circuit);outline-offset:2px}
.ai-howto-modal__head{display:flex;align-items:center;gap:12px;margin-bottom:8px;padding-right:28px}
.ai-howto-modal__ico{font-size:34px;line-height:1}
.ai-howto-modal__h2{font-family:var(--pp-font-display);font-size:22px;margin:0;color:var(--pp-ink)}
.ai-howto-modal__cost{display:inline-block;margin-top:3px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border:1.5px solid var(--pp-ink)}
.ai-howto-modal__cost.is-paid{background:#FFE08A;color:#4a3b00}
.ai-howto-modal__cost.is-free{background:#B8F7D0;color:#04361f}
.ai-howto-modal__pitch{font-size:13px;line-height:1.5;color:var(--pp-ink-dim);margin:6px 0 14px}
.ai-howto-modal__steps{margin:0 0 16px;padding-left:22px;display:grid;gap:9px}
.ai-howto-modal__steps li{font-size:14px;line-height:1.5;color:var(--pp-ink);font-weight:600}
.ai-howto-modal__links{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.ai-howto-link{display:inline-block;font-family:var(--pp-font-display);font-size:12px;font-weight:800;text-decoration:none;padding:9px 13px;color:var(--pp-ink);background:var(--pp-paper-2,#f3efe2);border:2px solid var(--pp-ink);box-shadow:2px 2px 0 rgba(0,0,0,.3)}
.ai-howto-link:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 rgba(0,0,0,.36)}
.ai-howto-link--key{background:var(--pp-circuit,#00D1FF);color:#04121a}
.ai-howto-link--pay{background:var(--pp-riot,#FF2E7E);color:#fff}
.ai-howto-modal__nolink{font-size:12px;color:var(--pp-ink-dim)}
.ai-howto-modal__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border-top:2px dashed var(--pp-line,#d8d2c2);padding-top:14px}
.ai-howto-modal__hint{font-size:12px;color:var(--pp-ink-dim)}
.ai-howto-modal__hint code{font-family:var(--pp-font-mono);background:var(--pp-paper-2,#f3efe2);padding:1px 6px;border:1px solid var(--pp-line,#d8d2c2)}
.ai-howto-modal__go{font-family:var(--pp-font-display);font-size:12px;font-weight:800;cursor:pointer;color:#04121a;background:var(--pp-circuit,#00D1FF);border:2px solid var(--pp-ink);padding:10px 16px;box-shadow:2px 2px 0 rgba(0,0,0,.35)}
.ai-howto-modal__go:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 rgba(0,0,0,.4)}
.ai-howto-modal__go:focus-visible{outline:2px solid var(--pp-ink);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.ai-howto:hover,.ai-howto-link:hover,.ai-howto-modal__go:hover{transform:none}}

/* ---- How-to modal inner content — rides on the dark .mx-modal (Maestro popup) card ---- */
.ai-howto-modal .mx-modal__card{width:min(540px,94vw)}
.ai-howto-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px}
.ai-howto-cost{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:99px}
.ai-howto-cost.is-paid{background:#4a3b00;color:#FFE08A;border:1px solid #7a6300}
.ai-howto-cost.is-free{background:#04361f;color:#8ff0c0;border:1px solid #0c6b3f}
.ai-howto-pitch{font-size:12.5px;color:#8ea0c4;line-height:1.5;flex:1;min-width:180px}
.ai-howto-steps{margin:0 0 16px;padding-left:20px;display:grid;gap:10px}
.ai-howto-steps li{font-size:14px;line-height:1.55;color:#dbe4f5}
.ai-howto-links{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 14px}
.ai-howto-link{display:inline-block;font-size:12px;font-weight:700;text-decoration:none;padding:8px 12px;border-radius:9px;background:rgba(255,255,255,.06);color:#e8edf7;border:1px solid rgba(120,140,200,.28)}
.ai-howto-link:hover{background:rgba(255,255,255,.14)}
.ai-howto-link--key{background:linear-gradient(135deg,#00c2ff,#3b82f6);color:#04121a;border:none}
.ai-howto-link--pay{background:linear-gradient(135deg,#ff5ca0,#ff2e7e);color:#fff;border:none}
.ai-howto-hint{margin:0 0 2px;font-size:12px;color:#8ea0c4}
.ai-howto-hint code{font-family:ui-monospace,Menlo,monospace;background:#070b14;border:1px solid rgba(120,140,200,.28);border-radius:6px;padding:1px 6px;color:#e6c07b}
.ai-howto-modal__nolink{font-size:12px;color:#8ea0c4}

/* ---- Podz cockpit: "Return to Lobby" button + zine-theme chrome (scoped to .pzv) ---- */
.pp-lobby-btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--pp-font-display);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;color:#fff;background:var(--pp-riot,#FF2E7E);border:2px solid var(--pp-ink);padding:8px 14px;box-shadow:3px 3px 0 rgba(0,0,0,.4)}
.pp-lobby-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 rgba(0,0,0,.45)}
.pp-lobby-btn:focus-visible{outline:2px solid var(--pp-circuit);outline-offset:2px}
/* Title as a slanted zine sticker */
.pzv--onescreen .pzv-title{font-style:italic;display:inline-block;background:var(--pp-volt,#F7E11E);color:#04121a;border:2px solid var(--pp-ink);padding:3px 12px;transform:rotate(-1.5deg);box-shadow:3px 3px 0 rgba(0,0,0,.35)}
/* Pane caption bars — display font on a volt strip with a bold rule */
.pzv--onescreen .pzv-pane__cap,.pzv-host__cap{font-family:var(--pp-font-display) !important;font-weight:800 !important;letter-spacing:.06em;opacity:1 !important;color:#04121a;background:var(--pp-volt,#F7E11E);border-bottom:2px solid var(--pp-ink) !important;padding:6px 10px}
/* View toggle (My Chat · Code · Live · Board) — hard corners, ink border, riot active */
.pzv-viewtoggle{border:2px solid var(--pp-ink) !important;border-radius:0 !important;box-shadow:2px 2px 0 rgba(0,0,0,.3);background:var(--pp-paper-2,#f3efe2)}
.pzv-vt{font-family:var(--pp-font-display);font-weight:800;border-radius:0 !important}
.pzv-vt.on{background:var(--pp-riot,#FF2E7E) !important;color:#fff !important}
/* Solo ⇄ Crew switch + Full-screen — same bordered zine treatment */
.pzv-modeswitch{border:2px solid var(--pp-ink);box-shadow:2px 2px 0 rgba(0,0,0,.3)}
.pzv-mode{font-family:var(--pp-font-display);font-weight:800}
.pzv-mode.on{background:var(--pp-volt,#F7E11E) !important;color:#04121a !important}
.pzv-fs{border:2px solid var(--pp-ink) !important;border-radius:0 !important;font-family:var(--pp-font-display);font-weight:800;box-shadow:2px 2px 0 rgba(0,0,0,.3)}
.pzv-fs[aria-pressed="true"]{background:var(--pp-riot,#FF2E7E) !important;color:#fff !important;border-color:var(--pp-ink) !important}
@media (prefers-reduced-motion:reduce){.pp-lobby-btn:hover{transform:none}}

/* ---- The Build terminal: hover-to-pause + clickable lines (match the dashboard live-code pane) ---- */
#bld-code .bld-line{border-radius:3px;transition:background .12s ease}
#bld-code.bld-code--paused{outline:2px dashed rgba(247,225,30,.55);outline-offset:-2px}
#bld-code.bld-code--paused .bld-line:hover{background:rgba(247,225,30,.14);cursor:pointer;box-shadow:inset 3px 0 0 var(--pp-riot,#FF2E7E)}
#bld-code .bld-line.sel{background:rgba(255,46,126,.18);box-shadow:inset 3px 0 0 var(--pp-riot,#FF2E7E)}

/* Sprint-0000077 · Dual-mode connect route chooser (BLI-0000786/787/789) */
.rt-wrap{margin:22px 0;padding:18px;border:1px solid var(--pp-line,#243244);border-radius:14px;background:var(--pp-paper-2,#fff);color:var(--pp-ink)}
.rt-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.rt-head__ico{font-size:26px;line-height:1}
.rt-head__h2{margin:0 0 4px;font-size:18px}
.rt-head__p{margin:0;color:var(--pp-ink-dim,#9fb0c3);font-size:14px;line-height:1.5}
.rt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.rt-card{border:1px solid var(--pp-line);border-radius:12px;padding:12px;background:var(--pp-paper-2);color:var(--pp-ink)}
.rt-card__top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.rt-card__ico{font-size:18px}
.rt-card__nm{font-weight:600;color:var(--pp-ink)}
.rt-routes{display:flex;flex-direction:column;gap:8px}
.rt-route{border:1px solid var(--pp-line,#243244);border-radius:10px;padding:9px 10px}
.rt-route--sub{border-left:3px solid #35c07f}
.rt-route--metered{border-left:3px solid #e0a83b}
.rt-route__lbl{font-weight:600;font-size:13px;display:inline-block;margin-right:8px}
.rt-route__meter{font-size:11px;color:var(--pp-ink-dim,#9fb0c3);text-transform:uppercase;letter-spacing:.04em}
.rt-route__blurb{margin:6px 0 0;font-size:12.5px;color:var(--pp-ink-dim,#9fb0c3);line-height:1.45}
.rt-note{margin:2px 0 0;font-size:12px;color:var(--pp-ink-dim,#9fb0c3);font-style:italic}

/* Pod Terminal pane — Sprint-0000078 · BLI-0000791 (designed cockpit size) */
.pt-term{border:1px solid var(--pp-line,#2a2f3a);border-radius:10px;overflow:hidden;background:#0b0e14;margin:16px 0}
.pt-term__bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#11151f;border-bottom:1px solid var(--pp-line,#2a2f3a)}
.pt-term__dot{width:10px;height:10px;border-radius:50%;background:#3ad07a;box-shadow:0 0 0 2px rgba(58,208,122,.2)}
.pt-term__title{font-weight:600;color:var(--pp-ink,#e7ecf3);font-size:13px}
.pt-term__state{margin-left:auto;font-size:12px;color:var(--pp-ink-dim,#93a0b4)}
.pt-term__state--ready{color:#3ad07a}
.pt-term__state--gated,.pt-term__state--no_backend{color:#e6b35c}
.pt-term__screen{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;color:#c9d4e3;
  white-space:pre-wrap;padding:14px;min-height:calc(var(--pt-rows,24)*1.5em);background:#0b0e14}
.pt-term__hint{font-size:12px;color:var(--pp-ink-dim,#93a0b4);padding:8px 12px;border-top:1px solid var(--pp-line,#2a2f3a);background:#11151f}
/* Host Piece #3b — live terminal controls */
.pt-term__btn{margin-left:8px;font-size:12px;font-weight:600;color:#0b0e14;background:#3ad07a;border:0;border-radius:6px;padding:4px 10px;cursor:pointer}
.pt-term__btn:hover{filter:brightness(1.08)}
.pt-term__input{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;color:#c9d4e3;background:#0b0e14;border:0;border-top:1px solid var(--pp-line,#2a2f3a);padding:10px 14px;outline:none}
.pt-term__input:disabled{color:#5a6678;background:#0b0e14}

/* ── Stage 26 · Sprint-0000094 · The Classroom cockpit (zine palette, dark+light) ── */
.cls{display:flex;flex-direction:column;gap:.75rem;min-height:60vh}
.cls-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.cls-title{margin:0;font-size:1.25rem}
.cls-sub{opacity:.8;font-size:.85rem}
.cls-status{padding:.05rem .4rem;border-radius:.4rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}
.cls-status--live{background:#e11d48;color:#fff}.cls-status--open{background:#16a34a;color:#fff}
.cls-status--draft{background:#64748b;color:#fff}.cls-status--ended{background:#334155;color:#fff}
.cls-teacherbar{display:flex;gap:.4rem}
.cls-tb,.cls-hand{border:1px solid currentColor;background:transparent;border-radius:.5rem;padding:.35rem .6rem;cursor:pointer;font:inherit}
.cls-tb:focus-visible,.cls-hand:focus-visible,.cls-seat:focus-visible{outline:3px solid #6366f1;outline-offset:2px}
.cls-body{display:grid;grid-template-columns:1fr 240px;gap:1rem}
.cls-stage{display:flex;flex-direction:column;gap:.6rem;min-width:0}
.cls-terminal{border:1px solid rgba(128,128,128,.4);border-radius:.6rem;overflow:hidden;display:flex;flex-direction:column}
.cls-terminal__bar{padding:.35rem .6rem;font-size:.75rem;background:rgba(128,128,128,.12)}
.cls-terminal__dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:#e11d48;margin-right:.3rem}
.cls-terminal__screen{margin:0;min-height:220px;padding:.6rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;white-space:pre-wrap;background:#0b1020;color:#d1e0ff}
.cls-hand{align-self:flex-start;margin:.5rem}
.cls-watchonly,.cls-aihint{border:1px dashed rgba(128,128,128,.5);border-radius:.6rem;padding:.75rem;font-size:.85rem}
.cls-aiopts{margin:.35rem 0 0;padding-left:1.1rem}
.cls-table{border:1px solid rgba(128,128,128,.35);border-radius:.6rem;padding:.6rem}
.cls-table__h{margin:0 0 .5rem;font-size:.95rem}
.cls-seatgroup{margin-bottom:.6rem}
.cls-seatgroup__t{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;opacity:.7;margin-bottom:.25rem}
.cls-seat{padding:.35rem .5rem;border-radius:.45rem;background:rgba(128,128,128,.12);margin-bottom:.25rem;font-size:.85rem}
.cls-seat--teacher{background:rgba(99,102,241,.18)}
.cls-seat--noai{opacity:.6;border:1px dashed #e11d48}
.cls-feed{border-top:1px solid rgba(128,128,128,.3);padding-top:.4rem}
.cls-feed__list{list-style:none;margin:0;padding:0;max-height:120px;overflow:auto;font-size:.82rem}
.cls-feed__item{padding:.15rem 0;opacity:.9}
@media (max-width:720px){.cls-body{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.cls *{animation:none!important;transition:none!important}}

/* ── Stage 26 · Sprint-0000096 · Classroom stage tools (spotlight/leaderboard/replay/tip) ── */
.cls-stagetools{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-start;border-top:1px solid rgba(128,128,128,.3);padding-top:.5rem;margin-top:.25rem}
.cls-leaderboard{flex:1 1 180px;border:1px solid rgba(128,128,128,.35);border-radius:.6rem;padding:.5rem}
.cls-lb__h{margin:0 0 .35rem;font-size:.9rem}
.cls-lb__list{margin:0;padding-left:1.2rem;font-size:.85rem}
.cls-replay{flex:1 1 160px;border:1px dashed rgba(128,128,128,.5);border-radius:.6rem;padding:.5rem;font-size:.82rem;display:flex;flex-direction:column;gap:.15rem}
.cls-replay__t{font-weight:600}
.cls-tip{border:1px solid currentColor;background:transparent;border-radius:.5rem;padding:.4rem .7rem;cursor:pointer;font:inherit}
.cls-tip:focus-visible{outline:3px solid #6366f1;outline-offset:2px}
.cls-certnote{flex:1 1 100%;background:rgba(99,102,241,.14);border-radius:.5rem;padding:.5rem;font-size:.85rem}
@media (max-width:720px){.cls-stagetools{flex-direction:column}}

/* ── Connect modal · account/subscription route option (dual-mode) ── */
.ai-howto-account{border:1px solid rgba(99,102,241,.4);border-radius:.6rem;padding:.7rem .8rem;margin:.4rem 0 .2rem;background:rgba(99,102,241,.08)}
.ai-howto-opt__h{font-weight:600;display:flex;align-items:center;gap:.4rem}
.ai-howto-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;background:#16a34a;color:#fff;border-radius:.4rem;padding:.05rem .35rem}
.ai-howto-account__blurb{margin:.3rem 0;font-size:.86rem;opacity:.9}
.ai-howto-account__steps{margin:.3rem 0 .5rem;padding-left:1.2rem;font-size:.85rem}
.ai-howto-account__steps code,.ai-howto-account__blurb code{background:rgba(128,128,128,.18);border-radius:.3rem;padding:.02rem .3rem}
.ai-howto-link--acct{display:inline-block;border:1px solid currentColor;border-radius:.5rem;padding:.35rem .6rem;text-decoration:none;font-size:.85rem}
.ai-howto-link--acct:focus-visible{outline:3px solid #6366f1;outline-offset:2px}
.ai-howto-or{text-align:center;font-size:.75rem;opacity:.6;margin-top:.6rem;text-transform:lowercase;letter-spacing:.03em}

/* Maestro designation (BLI-0000928) — pick which connected AI conducts */
.ai-tag-maestro{display:inline-block;margin-left:.4rem;padding:.05rem .4rem;border-radius:999px;
  font-size:.62rem;font-weight:700;letter-spacing:.02em;background:linear-gradient(90deg,#f7b733,#fc4a1a);
  color:#1a1206;vertical-align:middle;white-space:nowrap}
.ai-maestro-btn{margin-top:.5rem;width:100%;padding:.4rem .6rem;border-radius:.55rem;cursor:pointer;
  font-size:.78rem;font-weight:600;border:1px solid var(--pz-border,#3a3a4a);
  background:var(--pz-surface-2,#20202b);color:var(--pz-text,#e8e8f0);transition:.15s}
.ai-maestro-btn:hover{border-color:#f7b733;color:#fff}
.ai-maestro-btn.is-on{background:linear-gradient(90deg,#f7b733,#fc4a1a);border-color:transparent;color:#1a1206}
.ai-maestro-btn:focus-visible{outline:2px solid #f7b733;outline-offset:2px}

/* Stage 27 — Your AI Shed (The Sign-in Podz) tile (BLI-0000938..940) */
.shed-wrap{max-width:960px;margin:1.1rem auto 0;padding:0 1rem}
.shed-card{display:flex;gap:.9rem;align-items:flex-start;padding:1rem 1.15rem;border-radius:.9rem;
  border:1px solid var(--pz-border,#333);background:linear-gradient(180deg,rgba(120,170,255,.06),rgba(0,0,0,0))}
.shed-card__ico{font-size:1.7rem;line-height:1;flex:none}
.shed-card__h2{margin:0 0 .35rem;font-size:1.02rem;display:flex;align-items:center;gap:.5rem}
.shed-card__free{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  padding:.08rem .4rem;border-radius:999px;background:#1f7a3d;color:#eafff0}
.shed-card__p{margin:0;font-size:.86rem;line-height:1.5;color:var(--pz-text-2,#c8c8d2)}
.shed-card__note{margin:.55rem 0 0;font-size:.72rem;color:var(--pz-text-3,#9a9aa6)}
.shed-clis{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}
.shed-cli{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .55rem;border-radius:.55rem;
  border:1px solid var(--pz-border,#333);background:var(--pz-surface-2,#1b1b24);font-size:.76rem}
.shed-cli__dot{width:.5rem;height:.5rem;border-radius:50%;flex:none}
.shed-cli__dot--on{background:#3fb95e;box-shadow:0 0 0 3px rgba(63,185,94,.15)}
.shed-cli__dot--warn{background:#f7b733}
.shed-cli__dot--off{background:#6b6b78}
.shed-cli__st{color:var(--pz-text-3,#9a9aa6)}
@media (max-width:560px){.shed-card{flex-direction:column;gap:.5rem}}
@media (prefers-reduced-motion:reduce){.shed-cli__dot--on{box-shadow:none}}

/* Stage 27 · Sprint-98 — Shed terminal deep-link + per-CLI reconnect (BLI-0000953/954) */
.shed-cli__go{margin-left:.15rem;font-size:.72rem;font-weight:600;color:#7db4ff;text-decoration:none;white-space:nowrap}
.shed-cli__go:hover{text-decoration:underline}
.shed-cli__go:focus-visible{outline:2px solid #7db4ff;outline-offset:2px;border-radius:.3rem}
.shed-term-btn{display:inline-block;margin-top:.7rem;padding:.4rem .7rem;border-radius:.55rem;font-size:.8rem;
  font-weight:600;text-decoration:none;border:1px solid var(--pz-border,#3a3a4a);
  background:var(--pz-surface-2,#20202b);color:var(--pz-text,#e8e8f0)}
.shed-term-btn:hover{border-color:#7db4ff;color:#fff}
.shed-term-btn:focus-visible{outline:2px solid #7db4ff;outline-offset:2px}

/* Stage 27 · Sprint-99 — Shed logout / wipe / cost (BLI-0000962..969) */
.shed-cli__out{margin-left:.15rem;font-size:.7rem;font-weight:600;color:#9a9aa6;background:none;border:none;cursor:pointer;padding:0}
.shed-cli__out:hover{color:#fc4a1a;text-decoration:underline}
.shed-cli__out:focus-visible{outline:2px solid #fc4a1a;outline-offset:2px;border-radius:.3rem}
.shed-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}
.shed-wipe-btn{padding:.4rem .7rem;border-radius:.55rem;font-size:.8rem;font-weight:600;cursor:pointer;
  border:1px solid var(--pz-border,#3a3a4a);background:var(--pz-surface-2,#20202b);color:var(--pz-text,#e8e8f0)}
.shed-wipe-btn:hover{border-color:#fc4a1a;color:#fff}
.shed-wipe-btn:focus-visible{outline:2px solid #fc4a1a;outline-offset:2px}
.shed-card__cost{margin:.5rem 0 0;font-size:.72rem;color:var(--pz-text-3,#9a9aa6)}
@media (max-width:560px){.shed-actions{flex-direction:column}.shed-wipe-btn,.shed-term-btn{width:100%;text-align:center}}

/* Stage 28 · Sprint-100 — "Maestro's taking a breather" grace modal (BLI-0000982/983) */
.pz-grace{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;
  background:rgba(6,6,10,.62);padding:1rem;animation:pz-grace-fade .18s ease}
.pz-grace__box{max-width:440px;width:100%;background:var(--pz-surface,#17171f);color:var(--pz-text,#e8e8f0);
  border:1px solid var(--pz-border,#33333f);border-radius:.9rem;padding:1.3rem 1.4rem;text-align:center;
  box-shadow:0 18px 60px rgba(0,0,0,.5)}
.pz-grace__ico{font-size:2rem;line-height:1}
.pz-grace__h{margin:.4rem 0 .5rem;font-size:1.12rem}
.pz-grace__msg{margin:0 0 .6rem;font-size:.9rem;line-height:1.55;color:var(--pz-text-2,#c8c8d2)}
.pz-grace__reset{margin:.2rem 0 .6rem;font-weight:700;font-size:.95rem}
.pz-grace__next{list-style:none;margin:.4rem 0 .9rem;padding:0;font-size:.82rem;color:var(--pz-text-3,#9a9aa6)}
.pz-grace__next li{padding:.15rem 0}
.pz-grace__x{padding:.5rem 1.1rem;border-radius:.6rem;border:1px solid transparent;cursor:pointer;
  font-weight:600;background:linear-gradient(90deg,#7db4ff,#9a7dff);color:#0b0b12}
.pz-grace__x:focus-visible{outline:2px solid #fff;outline-offset:2px}
@keyframes pz-grace-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.pz-grace{animation:none}}
@media (max-width:520px){.pz-grace__box{padding:1.1rem}}

/* Stage 28 · Sprint-101 — Never-Stuck: Backup Ladder + Limits panel (BLI-0000995..998) */
.nstuck-wrap{max-width:960px;margin:1.1rem auto 0;padding:0 1rem}
.nstuck-card{padding:1rem 1.15rem;border-radius:.9rem;border:1px solid var(--pz-border,#333);
  background:linear-gradient(180deg,rgba(125,180,255,.05),rgba(0,0,0,0))}
.nstuck-h2{margin:0 0 .3rem;font-size:1.02rem}
.nstuck-p{margin:0 0 .7rem;font-size:.85rem;line-height:1.5;color:var(--pz-text-2,#c8c8d2)}
.nstuck-sub{margin:.8rem 0 .4rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--pz-text-3,#9a9aa6)}
.nstuck-dim{color:var(--pz-text-3,#9a9aa6);font-size:.8rem}
.nstuck-limits{display:flex;flex-wrap:wrap;gap:.4rem}
.nstuck-chip{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:.5rem;font-size:.76rem;
  border:1px solid var(--pz-border,#333);background:var(--pz-surface-2,#1b1b24)}
.nstuck-chip--warn{border-color:#f7b733;color:#f7b733}
.nstuck-ladder{list-style:none;margin:.3rem 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.35rem}
.nstuck-rung{display:flex;align-items:center;gap:.5rem;padding:.35rem .55rem;border-radius:.55rem;
  border:1px solid var(--pz-border,#333);background:var(--pz-surface-2,#1b1b24);font-size:.82rem}
.nstuck-rung__n{width:1.3rem;height:1.3rem;border-radius:50%;background:var(--pz-surface,#17171f);
  display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex:none}
.nstuck-rung__nm{flex:1}
.nstuck-rung__ctl{display:flex;gap:.25rem}
.nstuck-rung__ctl button{background:none;border:1px solid var(--pz-border,#333);border-radius:.4rem;cursor:pointer;
  color:var(--pz-text,#e8e8f0);font-size:.72rem;padding:.1rem .35rem}
.nstuck-rung__ctl button:disabled{opacity:.35;cursor:not-allowed}
.nstuck-rung__ctl button:hover:not(:disabled){border-color:#7db4ff}
.nstuck-add{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.2rem 0 .6rem}
.nstuck-nudge{font-size:.78rem;color:var(--pz-text-2,#c8c8d2);padding:.55rem .7rem;border-radius:.55rem;
  background:var(--pz-surface,#17171f);border:1px dashed var(--pz-border,#3a3a4a)}
.nstuck-warn{display:block;margin-top:.25rem;color:#f7b733}
.pz-grace__stuck{margin:.4rem 0;font-size:.85rem;color:#f7b733}
.pz-grace__local{display:inline-block;margin:.2rem 0 .5rem;font-size:.82rem;color:#7db4ff;text-decoration:none}
.pz-grace__local:hover{text-decoration:underline}
@media (max-width:560px){.nstuck-add{flex-direction:column;align-items:stretch}}

/* 🏗️ Built-to-Last check — Stage 29 · Sprint-0000103 */
.btl-open{background:#173a2e;border-color:#2f6b52;color:#8ff0c2}
.btl[hidden]{display:none}
.btl{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:4vh 1rem;background:rgba(6,10,16,.72);overflow:auto}
.btl__card{width:min(680px,100%);background:#0f1620;border:1px solid #24313f;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.5);color:#dce6f0}
.btl__head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;border-bottom:1px solid #1e2a36;font-weight:700}
.btl__x{background:none;border:0;color:#9fb2c6;font-size:1.35rem;line-height:1;cursor:pointer}
.btl__x:hover{color:#fff}
.btl__intro{margin:.85rem 1.1rem;color:#a9bccf;font-size:.9rem;line-height:1.5}
.btl__verdict{margin:.4rem 1.1rem;padding:.7rem .85rem;border-radius:10px;font-size:.92rem;border:1px solid #24313f;background:#111c27}
.btl__verdict.btl-green{border-color:#2f6b52;background:#12271f}
.btl__verdict.btl-red{border-color:#7a2f38;background:#26141a}
.btl__verdict.btl-grey{border-color:#4a4030;background:#221d12}
.btl__disc{margin-top:.35rem;font-size:.78rem;color:#94a6ba}
.btl__list{list-style:none;margin:.4rem 0;padding:0}
.btl-item{margin:.5rem 1.1rem;padding:.7rem .85rem;border:1px solid #24313f;border-left-width:4px;border-radius:10px;background:#111a24}
.btl-item.btl-green{border-left-color:#37b487}
.btl-item.btl-red{border-left-color:#e0616f}
.btl-item.btl-grey{border-left-color:#6b7787}
.btl-item__top{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.btl-item__title{font-weight:650}
.btl-item__status{font-size:.78rem;color:#9fb2c6;white-space:nowrap}
.btl-item.btl-green .btl-item__status{color:#7fe0b6}
.btl-item.btl-red .btl-item__status{color:#f2a1aa}
.btl-item__q{margin:.3rem 0;font-size:.88rem;color:#c7d4e1}
.btl-item__why{font-size:.8rem;color:#93a6ba;line-height:1.45}
.btl-item__toggle{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}
.btl-item__toggle button{border:1px solid #2c3a49;background:#16212d;color:#c3d2e0;border-radius:8px;padding:.28rem .6rem;font-size:.82rem;cursor:pointer}
.btl-item__toggle button:hover{border-color:#3a4c5e}
.btl-item__toggle button.on{background:#1f6b4f;border-color:#2f8c68;color:#eafff4}
.btl-item__toggle .btl-no.on{background:#7a2f38;border-color:#a2434f;color:#ffeaed}
.btl-fix{margin-left:auto;color:#7db4ff}
.btl-fix:hover{text-decoration:underline}
.btl__foot{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.9rem 1.1rem 1.1rem;border-top:1px solid #1e2a36;margin-top:.4rem}
.btl__run{background:#1f6b4f;border:1px solid #2f8c68;color:#eafff4;border-radius:9px;padding:.45rem .95rem;font-weight:650;cursor:pointer}
.btl__run:hover{background:#248059}
.btl__crew{color:#8ff0c2;text-decoration:none;border:1px solid #2f6b52;border-radius:9px;padding:.4rem .8rem}
.btl__crew:hover{background:#12271f}
.btl__note{margin:0;flex:1 1 100%;font-size:.8rem;color:#94a6ba}
body.btl-lock{overflow:hidden}
.btl-open:focus-visible,.btl__x:focus-visible,.btl__run:focus-visible,.btl-item__toggle button:focus-visible,.btl__crew:focus-visible{outline:2px solid #7db4ff;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.btl,.btl__card{transition:none;animation:none}}
@media (max-width:560px){.btl-item__toggle{gap:.3rem}.btl-fix{margin-left:0}}

/* 🧑‍🔧 Crew Human-QA marketplace — Stage 29 · Sprint-0000104 */
/* Human QA marketplace — retheme to the light neo-brutalist paper theme, all square (Buster 2026-07-27). */
.qam{margin:1.5rem 0;padding:1rem 1.1rem;border:2px solid var(--pp-ink);border-radius:0;background:var(--pp-paper);color:var(--pp-ink);box-shadow:var(--pp-sticker-shadow)}
.qam-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.qam-h{margin:.2rem 0;font-size:1.15rem;color:var(--pp-ink)}
.qam-intro{color:var(--pp-ink-dim);font-size:.9rem;line-height:1.5;margin:.4rem 0 .9rem}
.qam-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.qam-card{border:2px solid var(--pp-ink);border-radius:0;padding:.85rem;background:var(--pp-paper-2)}
.qam-card__cap{font-weight:650;margin-bottom:.55rem;color:var(--pp-ink)}
.qam-btn{background:#1a8f3c;border:2px solid var(--pp-ink);color:#fff;border-radius:0;padding:.45rem .9rem;font-weight:650;cursor:pointer}
.qam-btn:hover{background:#157a32}
.qam-form{display:flex;flex-direction:column;gap:.45rem}
.qam-in{border:2px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);border-radius:0;padding:.42rem .6rem;font-size:.86rem}
.qam-in::placeholder{color:var(--pp-muted)}
.qam-row{display:flex;gap:.45rem}
.qam-in--sm{flex:1}
.qam-note{margin:.4rem 0 0;font-size:.8rem;color:#1a8f3c}
.qam-req{margin-top:.6rem;font-size:.86rem}
.qam-req__ok{color:#157a32}.qam-req__no{color:#c07b2b}
.qam-req__note{margin-top:.35rem;font-size:.78rem;color:var(--pp-muted)}
.qam-list__cap{margin:1rem 0 .5rem;font-weight:650;color:var(--pp-ink)}
.qam-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.qam-empty{color:var(--pp-muted);font-size:.86rem;grid-column:1/-1}
.qam-offer{border:2px solid var(--pp-ink);border-radius:0;padding:.7rem .8rem;background:var(--pp-paper-2)}
.qam-offer__top{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.qam-offer__h{font-weight:650;color:var(--pp-ink)}
.qam-badge{font-size:.72rem;color:#157a32;border:1.5px solid #1a8f3c;border-radius:0;padding:.05rem .35rem;white-space:nowrap}
.qam-offer__skills{display:flex;flex-wrap:wrap;gap:.3rem;margin:.4rem 0}
.qam-chip{font-size:.74rem;background:var(--pp-paper-3);border:1px solid var(--pp-line);border-radius:0;padding:.08rem .4rem;color:var(--pp-ink-dim)}
.qam-offer__meta{font-size:.79rem;color:var(--pp-muted)}
.qam-btn:focus-visible,.qam-in:focus-visible,.qam-request:focus-visible{outline:2px solid #7db4ff;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.qam,.qam *{transition:none;animation:none}}
@media (max-width:640px){.qam-grid,.qam-list{grid-template-columns:1fr}}

/* 📚 Learn & Build hub — Stage 30 · Sprint-0000105 */
.lb-search{position:relative;margin:.6rem 0 1.2rem}
.lb-search__in{width:100%;box-sizing:border-box;border:1px solid #2c3a49;background:#111a24;color:#dce6f0;border-radius:10px;padding:.6rem .8rem;font-size:.95rem}
.lb-search__out{list-style:none;margin:.3rem 0 0;padding:.4rem;background:#0f1620;border:1px solid #24313f;border-radius:10px;max-height:320px;overflow:auto}
.lb-search__out li{padding:.35rem .45rem;font-size:.88rem;border-bottom:1px solid #17222e}
.lb-search__out li:last-child{border-bottom:0}
.lb-search__out a{color:#8ff0c2;text-decoration:none}
.lb-search__out a:hover{text-decoration:underline}
.lb-search__b{color:#93a6ba}
.lb-shelf{margin:1.2rem 0}
.lb-shelf__cap{font-size:1.05rem;margin:.2rem 0 .6rem;border-left:3px solid #2f8c68;padding-left:.5rem}
.lb-empty{color:#94a6ba;font-size:.86rem}
.lb-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.6rem}
.lb-card{border:1px solid #24313f;border-radius:11px;padding:.7rem .8rem;background:#111a24}
.lb-card__link{display:flex;gap:.45rem;align-items:baseline;color:#dce6f0;text-decoration:none;font-weight:650}
.lb-card__link:hover .lb-card__t{text-decoration:underline;color:#8ff0c2}
.lb-card__kind{flex:0 0 auto}
.lb-card__b{margin:.35rem 0 0;font-size:.8rem;color:#93a6ba;line-height:1.45}
.lb-card__link:focus-visible,.lb-search__in:focus-visible{outline:2px solid #7db4ff;outline-offset:2px}
/* admin curation */
.lba-form{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin:.6rem 0 1rem}
.lba-in{border:1px solid #2c3a49;background:#16212d;color:#dce6f0;border-radius:8px;padding:.42rem .6rem;font-size:.86rem}
.lba-note{font-size:.82rem;color:#8ff0c2}
.lba-list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.lba-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border:1px solid #24313f;border-radius:8px;padding:.35rem .6rem;background:#111a24;font-size:.86rem}
.lba-row a{color:#cfe0f0;text-decoration:none}
.lba-retire{background:#26141a;border:1px solid #7a2f38;color:#f2c0a1;border-radius:7px;padding:.2rem .5rem;font-size:.76rem;cursor:pointer}
@media (prefers-reduced-motion:reduce){.lb-card,.lb-card *{transition:none;animation:none}}
@media (max-width:560px){.lb-list{grid-template-columns:1fr}.lba-form{flex-direction:column;align-items:stretch}}

/* 🧠 Maestro depth toggle — Stage 30 · Sprint-0000106 */
.mdepth-toggle .mdepth-state{opacity:.75;font-weight:600}
.mdepth-toggle.on{background:#173a2e;border-color:#2f6b52;color:#8ff0c2}
.mdepth-toggle.on .mdepth-state{opacity:1}
.mdepth-toggle:focus-visible{outline:2px solid #7db4ff;outline-offset:2px}

/* 🌍 Podz Worldwide (i18n) — Stage 30 · Sprint-0000107 */
/* Docked inline in the site footer (no longer a floating overlay — Buster 2026-07-21). */
.langpick{display:inline-flex;align-items:center;gap:.4rem;margin-top:.5rem}
.langpick__lbl{font-size:.8rem;color:var(--pp-ink-dim)}
.langpick__sel{background:var(--pp-paper-2);color:var(--pp-ink);border:1px solid var(--pp-line);border-radius:7px;padding:.22rem .45rem;font-size:.82rem}
.langpick__sel:focus-visible{outline:2px solid #7db4ff;outline-offset:2px}
.i18n-table{width:100%;border-collapse:collapse;margin:.6rem 0;font-size:.9rem}
.i18n-table th,.i18n-table td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid #1e2a36}
.i18n-mono{font-family:ui-monospace,Menlo,monospace;color:#9fb2c6}
.i18n-base{color:#8ff0c2;font-size:.78rem}
.i18n-missing td{color:#94a6ba;font-size:.78rem;padding-top:.1rem}
/* Right-to-left mirroring (Arabic/Hebrew/…) */
[dir="rtl"] .pg-note,[dir="rtl"] .pg-h1,[dir="rtl"] .lb-shelf__cap,[dir="rtl"] .i18n-table th,[dir="rtl"] .i18n-table td{text-align:right}
[dir="rtl"] .lb-shelf__cap{border-left:0;border-right:3px solid #2f8c68;padding-left:0;padding-right:.5rem}
[dir="rtl"] .lb-card__link{flex-direction:row-reverse}

/* ── Stage 31 · Sprint 108 — Owner Control Room ─────────────────────────── */
.svc-tbl{width:100%;border-collapse:collapse;margin:1rem 0}
.svc-tbl th,.svc-tbl td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid rgba(0,0,0,.08);font-size:.92rem}
.svc-tbl th{font-weight:600;opacity:.7}
.svc-kind{font-size:.75rem;opacity:.6;text-transform:uppercase;letter-spacing:.03em}
.svc-status{white-space:nowrap}
.svc-ep{max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}
.svc-h3,.ob-actions{margin-top:1.4rem}
.svc-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.6rem 0}
.svc-in{padding:.45rem .6rem;border:1px solid rgba(0,0,0,.15);border-radius:8px;font-size:.9rem;min-width:12ch}
.svc-note{font-size:.85rem;opacity:.75}
.ob-card{border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:1rem 1.1rem;margin:1rem 0;max-width:640px}
.ob-ready{background:rgba(46,160,67,.06);border-color:rgba(46,160,67,.35)}
.ob-wait{background:rgba(0,0,0,.02)}
.ob-row{display:flex;gap:.8rem;padding:.35rem 0;font-size:.95rem}
.ob-lbl{min-width:9ch;font-weight:600;opacity:.7}
.ob-actions{display:flex;gap:.6rem;flex-wrap:wrap}

/* ── Stage 31 · Sprint 109 — live model switcher ────────────────────────── */
.mdl-switch{display:flex;align-items:center;gap:.5rem;margin:.4rem 0 .2rem;flex-wrap:wrap}
.mdl-switch__lbl{font-size:.82rem;font-weight:600;opacity:.75}
.mdl-switch__sel{padding:.3rem .5rem;border:1px solid rgba(0,0,0,.15);border-radius:8px;font-size:.85rem;max-width:22ch}
.mdl-switch__note{font-size:.8rem;opacity:.72}

/* ── Stage 31 · Sprint 110 — Beta Lab Control Room ──────────────────────── */
.pg-narrow{max-width:640px}
.bl-toggles{list-style:none;padding:0;margin:.6rem 0}
.bl-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.07);max-width:520px}
.bl-lbl{font-size:.95rem}
.pg-dim{opacity:.6}

/* Stage 32 · Sprint-0000115 (BLI-0000130) — a11y + mobile + reduced-motion pass
   for the Living Plan + Project Takeover screens. Kept global + additive. */
@media (max-width:720px){
  .tk-grid,.lp-cols{grid-template-columns:1fr!important}
  .svc-tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .svc-in{max-width:100%!important}
}
/* Honor a user's reduced-motion preference everywhere (no surprise motion). */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
/* Visible keyboard focus on the takeover/living-plan controls (a11y). */
.qam-btn:focus-visible,.svc-in:focus-visible,.rp-step:focus-visible{outline:3px solid #2b6cb0;outline-offset:2px}

/* The Tainer (idea shelf) on /plan — stack under the workspace on small screens (BLI Tainer). */
@media (max-width:820px){ .pl-wrap{grid-template-columns:1fr!important} }

/* Sprint-0000122 · BLI-1173/1174 — locale-aware footer chrome + honest picker scope note */
.site-foot__tag{font-size:12px;color:var(--pp-muted);margin:2px 0}
.langpick__note{font-size:10.5px;color:var(--pp-muted);margin:4px 0 0;max-width:320px;line-height:1.4}

/* Connect page: a NOT-connected AI's switch is locked visibly OFF — grey, knob-left, dimmed — so a green
   ("on") switch can only ever mean a genuinely connected AI. Kills the confusing "wall of green" where every
   card looked connected on load when nothing was (Buster 2026-07-24). */
.ai-switch--off{opacity:.45;cursor:not-allowed}
.ai-switch--off input{cursor:not-allowed}
.ai-switch input:disabled + .ai-switch__slider{background:var(--pp-line)}
.ai-switch input:disabled + .ai-switch__slider::before{transform:none}

/* ── Sprint-0000128 · The Daily Top 5 — desk left rail + widget ───────────────────────── */
.pp-desk{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}
@media (max-width:860px){.pp-desk{grid-template-columns:1fr}.pp-desk__rail{order:2}}
.t5{background:var(--pp-surface,#1b1922);border:1px solid var(--pp-line,#2c2937);border-radius:14px;padding:16px 16px 12px;position:sticky;top:16px}
.t5__head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.t5__title{font-weight:800;letter-spacing:.3px}
.t5__badge{font-size:11px;font-weight:700;color:var(--pp-volt,#7c5cff);border:1px solid var(--pp-line,#2c2937);border-radius:999px;padding:2px 8px;white-space:nowrap}
.t5__sub{color:var(--pp-ink-dim,#a9a4bd);font-size:12px;margin:4px 0 12px}
.t5__note{font-size:12px;color:var(--pp-ink-dim,#a9a4bd);background:rgba(124,92,255,.08);border:1px solid var(--pp-line,#2c2937);border-radius:8px;padding:6px 8px;margin-bottom:10px}
.t5__empty{font-size:13px;color:var(--pp-ink-dim,#a9a4bd);line-height:1.5}
.t5__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.t5__item{display:flex;gap:10px}
.t5__rank{font-weight:800;color:var(--pp-volt,#7c5cff);min-width:24px}
.t5__body{min-width:0}
.t5__link{font-weight:700;color:var(--pp-ink,#ece9f5);text-decoration:none;line-height:1.3;display:inline-block}
.t5__link:hover{text-decoration:underline}
.t5__excerpt{margin:3px 0 4px;font-size:12.5px;color:var(--pp-ink-dim,#a9a4bd);line-height:1.45}
.t5__meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--pp-ink-dim,#a9a4bd)}
.t5__tag{border:1px solid var(--pp-line,#2c2937);border-radius:999px;padding:0 6px}
.t5__why{font-size:10.5px;color:var(--pp-ink-dim,#8a85a0);margin-top:3px}
.t5__foot{margin-top:12px;border-top:1px solid var(--pp-line,#2c2937);padding-top:8px}
.t5__soon{font-size:11.5px;color:var(--pp-ink-dim,#8a85a0)}
.t5-page{max-width:420px}

/* ── Sprint-0000129 · Top 5 Reddit-style discussion ──────────────────────────────────── */
.t5__discuss{display:inline-block;margin-top:4px;font-size:11px;color:var(--pp-volt,#7c5cff);text-decoration:none}
.t5__discuss:hover{text-decoration:underline}
.t5__more{display:inline-block;font-size:12px;color:var(--pp-volt,#7c5cff);text-decoration:none}
.t5-full{display:flex;flex-direction:column;gap:20px;max-width:720px;margin-top:16px}
.t5f{background:var(--pp-surface,#1b1922);border:1px solid var(--pp-line,#2c2937);border-radius:14px;padding:16px}
.t5f__head{display:flex;gap:10px;align-items:baseline}
.t5disc{margin-top:12px;border-top:1px solid var(--pp-line,#2c2937);padding-top:12px}
.t5disc__vote{display:inline-flex;align-items:center;gap:6px;margin:0}
.t5disc__vote button{background:none;border:1px solid var(--pp-line,#2c2937);border-radius:6px;color:var(--pp-ink-dim,#a9a4bd);cursor:pointer;padding:2px 8px}
.t5disc__vote .is-on{color:var(--pp-volt,#7c5cff);border-color:var(--pp-volt,#7c5cff)}
.t5disc__score{font-weight:800;min-width:20px;text-align:center}
.t5disc__signin{font-size:12px;color:var(--pp-volt,#7c5cff);margin-left:8px}
.t5disc__new{margin:10px 0;display:flex;flex-direction:column;gap:6px}
.t5disc__new textarea{width:100%;min-height:60px;background:var(--pp-bg,#131118);border:1px solid var(--pp-line,#2c2937);border-radius:8px;color:var(--pp-ink,#ece9f5);padding:8px;font:inherit;resize:vertical}
.t5disc__new button{align-self:flex-start;background:var(--pp-volt,#7c5cff);border:none;border-radius:8px;color:#fff;padding:6px 14px;cursor:pointer}
.t5c__list,.t5c__replies{list-style:none;margin:0;padding:0}
.t5c{padding:8px 0;border-top:1px solid rgba(124,92,255,.08)}
.t5c__body{font-size:13.5px;line-height:1.45;white-space:pre-wrap}
.t5c__tomb{font-size:12.5px;color:var(--pp-ink-dim,#8a85a0);font-style:italic}
.t5c__meta{font-size:11px;color:var(--pp-ink-dim,#8a85a0);margin-top:3px}
.t5c__meta button{background:none;border:none;color:var(--pp-volt,#7c5cff);cursor:pointer;font-size:11px;padding:0}
.t5c__author{color:var(--pp-riot,#ff2d55);font-weight:700;text-decoration:none}
.t5c__author:hover{text-decoration:underline}
.t5c__empty{font-size:13px;color:var(--pp-ink-dim,#8a85a0);padding:8px 0}

/* ── Sprint-0000130 · Profile Podz — reworked to the Program Podz "paper" theme (Buster 2026-07-26).
      Matches the planning-screen shell + the hand-drawn 3-column sketch: hard black borders, square
      corners, sticker headers, offset shadows, volt/riot accents. Works in Xerox + Blackout. ── */
/* .pf is a marker class on the full-width .hm shell (do NOT constrain width here). */
.pf{min-width:0}
/* Top bar: sticker title · owner-preview toggle · privacy badge */
.pf-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 16px}
.pf-tape{display:inline-block;font-family:var(--pp-font-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;background:var(--pp-volt);color:var(--pp-volt-ink);transform:rotate(-1.2deg);box-shadow:var(--pp-sticker-shadow)}
.pf-tape--sm{font-size:10.5px;padding:4px 10px;margin-bottom:12px}
.pf-viewtoggle,.pf-modetoggle{display:inline-flex;border:var(--pp-b-bold) solid var(--pp-ink);box-shadow:var(--pp-sticker-shadow);background:var(--pp-paper-2)}
/* Unread-DM badge on the 💬 DM tab */
.pf-dmbadge{display:inline-block;min-width:15px;height:15px;line-height:15px;margin-left:5px;padding:0 4px;background:#d11f2f;color:#fff;border-radius:999px;font-family:var(--pp-font-mono);font-size:9px;font-weight:700;text-align:center;vertical-align:middle}
.pf-dmbadge[hidden]{display:none}
/* Friend/Crew name = DM selector; active chat gets a highlighted container */
.pf-dm-name{flex:1;min-width:0;cursor:pointer;text-align:left;font-size:12.5px;color:var(--pp-ink);background:var(--pp-paper);border:1px solid var(--pp-line);border-radius:0;padding:8px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-dm-name:hover{border-color:var(--pp-riot)}
.pf-dm-name.is-active{border:1.5px solid var(--pp-riot);box-shadow:0 0 0 1px var(--pp-riot) inset;background:color-mix(in srgb,var(--pp-riot) 12%,var(--pp-paper));font-weight:700}
.pf-vt{cursor:pointer;background:transparent;border:0;border-right:var(--pp-b-bold) solid var(--pp-ink);color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:6px 12px}
.pf-vt:last-child{border-right:0}
.pf-vt.is-on{background:var(--pp-riot);color:var(--pp-riot-ink)}
.pf-privacy{margin-left:auto;font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink);border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);padding:5px 10px;box-shadow:var(--pp-sticker-shadow)}

.pf-grid{display:grid;grid-template-columns:240px minmax(0,1fr) 240px;gap:18px;align-items:start}
@media (max-width:900px){.pf-grid{grid-template-columns:1fr}}
.pf-col{min-width:0}
.pf-col--left,.pf-col--right{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:14px;position:sticky;top:16px}
.pf-subhead{display:block;font-family:var(--pp-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--pp-ink-dim);margin:0 0 6px}
.pf-shelf,.pf-friends,.pf-feed,.pf-cmts{list-style:none;margin:0;padding:0}

/* Pod shelf (name-only) */
.pf-pod{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 0;border-top:1.5px solid var(--pp-line);font-size:13px}
.pf-pod:first-child{border-top:0}
.pf-pod__name{font-weight:800;color:var(--pp-ink)}
.pf-pod__status{font-family:var(--pp-font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--pp-ink-dim);border:1.5px solid var(--pp-ink);padding:1px 7px}
.pf-pod__listed{font-family:var(--pp-font-mono);font-size:9.5px;color:var(--pp-ink-dim);margin-left:auto}
.pf-pod--empty,.pf-friend--empty{color:var(--pp-ink-dim);font-family:var(--pp-font-mono);font-size:11px;border-top:0}

/* Center column */
.pf-owner{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:14px 16px;margin-bottom:16px}
.pf-owner__id{display:flex;align-items:center;gap:12px}
.pf-avatar{flex:0 0 auto;width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--pp-riot);color:var(--pp-riot-ink);border:var(--pp-b-bold) solid var(--pp-ink);box-shadow:var(--pp-sticker-shadow);font-family:var(--pp-font-display);font-size:22px}
.pf-avatar--sm{width:30px;height:30px;font-size:14px;box-shadow:2px 2px 0 rgba(0,0,0,.3)}
.pf-owner__name{margin:0;font-family:var(--pp-font-display);font-size:24px;line-height:1.1;color:var(--pp-ink)}
.pf-owner__headline{margin:3px 0 0;color:var(--pp-ink-dim);font-size:13px}
.pf-dm,.pf-vis{margin-top:12px}
.pf-dm{display:inline-block;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-volt);color:var(--pp-volt-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px 14px;text-decoration:none;box-shadow:var(--pp-sticker-shadow)}
.pf-vis label{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-dim);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pf-vis select{border:1.5px solid var(--pp-ink);background:var(--pp-paper);color:var(--pp-ink);font:inherit;padding:5px 8px}

/* New-post + comment composers */
.pf-wallnew{border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:8px}
.pf-wallnew__row{display:flex;gap:8px;flex-wrap:wrap}
.pf-wallnew__row input{flex:1;min-width:140px}
.pf-podadd,.pf-cmtnew{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pf-check{display:flex;align-items:center;gap:5px;font-family:var(--pp-font-mono);font-size:10.5px;color:var(--pp-ink-dim)}
.pf-podadd input[name=pod_name],.pf-wallnew textarea,.pf-wallnew input,.pf-cmtnew input{flex:1;min-width:110px;background:var(--pp-paper);border:1px solid var(--pp-line);color:var(--pp-ink);padding:7px 9px;font:inherit;font-size:12.5px;border-radius:0}
.pf-wallnew textarea{width:100%;min-height:64px;resize:vertical}
.pf-podadd button,.pf-wallnew button,.pf-cmtnew button,.pf-friend button{cursor:pointer;background:var(--pp-riot);color:var(--pp-riot-ink);border:1.5px solid var(--pp-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:7px 14px;box-shadow:2px 2px 0 rgba(0,0,0,.3)}
.pf-cmtnew{border-top:1.5px solid var(--pp-line);padding-top:8px}

/* Wall posts — match the Plan thread bubbles EXACTLY (thin line, flat, paper-3), not heavy cards */
.pf-post{border:1px solid var(--pp-line);border-radius:0;background:var(--pp-paper-3);box-shadow:none;padding:12px;margin:0}
.pf-post--empty{border:1px solid var(--pp-line);border-style:dashed;background:transparent;color:var(--pp-ink-dim);font-family:var(--pp-font-mono);font-size:12px;box-shadow:none}
.pf-post__head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pf-post__author{font-family:var(--pp-font-display);font-size:13px;color:var(--pp-ink)}
.pf-post__body{white-space:pre-wrap;line-height:1.55;color:var(--pp-ink);font-size:14px;overflow-wrap:anywhere}
.pf-post__link{display:inline-block;margin-top:8px;color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:12px;border-bottom:2px solid var(--pp-volt);text-decoration:none;word-break:break-all}
.pf-post__link:hover{background:var(--pp-volt);color:var(--pp-volt-ink)}
.pf-post__media{display:block;margin-top:8px}
.pf-post__img{display:block;max-width:100%;height:auto;border:1.5px solid var(--pp-ink);box-shadow:2px 2px 0 rgba(0,0,0,.28)}
/* Composer attach row — social-media "add a photo / video / link" (mirrors the Plan Choose-File affordance) */
.pf-attach{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.pf-attach__lbl{font-family:var(--pp-font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--pp-ink-dim);white-space:nowrap}
.pf-attach input[type=url]{flex:1;min-width:150px;background:var(--pp-paper);border:1px solid var(--pp-line);color:var(--pp-ink);padding:7px 9px;font:inherit;font-size:12.5px;border-radius:0}
.pf-attach__post{cursor:pointer;background:var(--pp-riot);color:var(--pp-riot-ink);border:1.5px solid var(--pp-ink);font-family:var(--pp-font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px 16px;box-shadow:2px 2px 0 rgba(0,0,0,.3);white-space:nowrap}
.pf-cmts{margin:10px 0 0;border-top:1.5px solid var(--pp-line);padding-top:8px}
.pf-cmt{font-size:12.5px;padding:4px 0;color:var(--pp-ink);overflow-wrap:anywhere}
.pf-cmt__who{color:var(--pp-ink-dim);font-family:var(--pp-font-mono);font-size:10px;margin-right:5px}

/* Friends / crew */
.pf-friend{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-top:1.5px solid var(--pp-line);font-size:13px}
.pf-friend:first-child{border-top:0}
.pf-friend a{color:var(--pp-ink);text-decoration:none;font-weight:700}
.pf-friend a:hover{color:var(--pp-riot)}
.pf-note{margin:12px 0 0;font-family:var(--pp-font-mono);font-size:10px;line-height:1.5;color:var(--pp-ink-dim);border-top:1.5px solid var(--pp-line);padding-top:8px}

/* Owner-preview: "Friends’ view" hides the owner-only controls so you can see what a friend sees */
.pf[data-owner="1"].pf--preview-friends .pf-owneronly{display:none !important}

/* Gate stub (non-friend view) — themed to match */
.pf-gate{text-align:center;max-width:460px;margin:40px auto;border:var(--pp-b-bold) solid var(--pp-ink);background:var(--pp-paper-2);box-shadow:var(--pp-sticker-shadow);padding:28px}
.pf-gate__avatar{font-size:48px}
.pf-gate__pending{color:var(--pp-ink-dim);font-family:var(--pp-font-mono);font-size:12px}

/* ── Sprint-0000131 · Direct Messages ────────────────────────────────────────────────── */
.dm{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start;margin-top:16px}
@media (max-width:800px){.dm{grid-template-columns:1fr}}
.dm__inbox{background:var(--pp-surface,#1b1922);border:1px solid var(--pp-line,#2c2937);border-radius:14px;padding:8px}
.dm__thread{display:block;position:relative;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--pp-ink,#ece9f5)}
.dm__thread:hover,.dm__thread.is-active{background:rgba(124,92,255,.10)}
.dm__who{display:block;font-weight:700;font-size:13px}
.dm__prev{display:block;font-size:12px;color:var(--pp-ink-dim,#a9a4bd);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm__badge{position:absolute;top:8px;right:8px;background:var(--pp-volt,#7c5cff);color:#fff;border-radius:999px;font-size:10px;padding:1px 6px}
.dm__convo{background:var(--pp-surface,#1b1922);border:1px solid var(--pp-line,#2c2937);border-radius:14px;padding:14px;min-height:320px;display:flex;flex-direction:column}
.dm__head{font-weight:800;padding-bottom:8px;border-bottom:1px solid var(--pp-line,#2c2937)}
.dm__msgs{list-style:none;margin:0;padding:8px 0;flex:1;display:flex;flex-direction:column;gap:6px}
.dm__msg{align-self:flex-start;max-width:75%;background:var(--pp-bg,#131118);border:1px solid var(--pp-line,#2c2937);border-radius:12px;padding:6px 10px;font-size:13.5px;display:flex;gap:6px;align-items:center}
.dm__msg--mine{align-self:flex-end;background:rgba(124,92,255,.14)}
.dm__report button{background:none;border:none;color:var(--pp-ink-dim,#8a85a0);cursor:pointer;font-size:11px}
.dm__new{display:flex;gap:6px;border-top:1px solid var(--pp-line,#2c2937);padding-top:8px}
.dm__new input{flex:1;background:var(--pp-bg,#131118);border:1px solid var(--pp-line,#2c2937);border-radius:8px;color:var(--pp-ink,#ece9f5);padding:8px;font:inherit}
.dm__new button{background:var(--pp-volt,#7c5cff);border:none;border-radius:8px;color:#fff;padding:6px 16px;cursor:pointer}
.dm__empty{color:var(--pp-ink-dim,#8a85a0);font-size:13px;padding:8px}
.pf__dm{display:inline-block;margin-top:6px}

/* ── Stage-37 UI polish (Buster 2026-07-26): equal sidebars, flip rails, PP-themed Top 5 ── */
/* Equal sidebars sized to the ORIGINAL RIGHT rail (~400px, the wider one), middle shrinks to
   compensate; flip so Crew/Board sit LEFT and the Daily Top 5 sits RIGHT. */
@media (min-width: 900px){
  .hm-grid{ grid-template-columns: minmax(0,400px) minmax(0,1fr) minmax(0,400px); }
  .hm-col--side{ order: 1; border-left: none; border-right: var(--pp-b-bold) solid var(--pp-ink); }
  .hm-col--mid { order: 2; }
  .hm-col--podz{ order: 3; border-right: none; border-left: var(--pp-b-bold) solid var(--pp-ink); }
}
/* Daily Top 5 — re-themed to the Program Podz "paper" look (was dark + rounded/generic). */
.t5{ background: var(--pp-paper); color: var(--pp-ink); border: var(--pp-b-bold) solid var(--pp-ink);
     border-radius: 0; box-shadow: 3px 3px 0 rgba(0,0,0,.35); padding: 12px; position: static; }
.t5__head{ border-bottom: 2px solid var(--pp-ink); padding-bottom: 8px; margin-bottom: 8px; }
.t5__title{ font-family: var(--pp-font-display); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--pp-ink); }
.t5__badge{ background: var(--pp-volt); color: var(--pp-volt-ink); border: 1px solid var(--pp-ink); border-radius: 0;
            font-family: var(--pp-font-mono); font-size: 10px; padding: 1px 7px; }
.t5__sub{ color: var(--pp-ink-dim); font-family: var(--pp-font-mono); font-size: 10.5px; }
.t5__note,.t5__empty{ color: var(--pp-ink-dim); background: var(--pp-paper-2); border: 1px solid var(--pp-ink); border-radius: 0; }
/* Each item is its own bordered card so the container lines read in BOTH themes
   (was a faint rgba(0,0,0,.15) hairline — invisible on the dark paper). */
.t5__item{ display:flex; gap:8px; border: 1.5px solid var(--pp-line); background: var(--pp-paper-2);
           box-shadow: 2px 2px 0 rgba(0,0,0,.28); padding: 9px 10px; margin: 10px 0 0; }
.t5__item:first-child{ margin-top: 0; }
.t5__body{ min-width: 0; flex: 1; }
.t5__rank{ color: var(--pp-ink); font-family: var(--pp-font-display); }
.t5__link{ color: var(--pp-ink); font-weight: 800; }
.t5__link:hover{ color: var(--pp-riot, #FF2E7E); }
.t5__excerpt{ color: var(--pp-ink-dim); }
.t5__meta,.t5__why{ color: var(--pp-ink-dim); font-family: var(--pp-font-mono); }
.t5__tag{ border: 1px solid var(--pp-ink); border-radius: 0; }
.t5__foot{ border-top: 2px solid var(--pp-ink); }
.t5__discuss,.t5__more{ display:inline-block; margin-top:6px; color: var(--pp-ink); text-decoration: none;
                         font-family: var(--pp-font-mono); font-size: 10px; cursor: pointer;
                         background: transparent; border: 0; border-bottom: 2px solid var(--pp-volt); padding: 1px 0; }
.t5__discuss:hover,.t5__more:hover{ background: var(--pp-volt); color: var(--pp-volt-ink); }
.t5__discuss[aria-expanded="true"]{ background: var(--pp-volt); color: var(--pp-volt-ink); }

/* ── Inline discussion panel (Buster 2026-07-26): topic stays on the dashboard, no redirect.
      Selecting "discuss" expands the thread right here — vote + comment box + scrollable replies. ── */
.t5disc-inline{ margin: 8px 0 2px; border: 1.5px solid var(--pp-ink); background: var(--pp-paper);
                box-shadow: 2px 2px 0 rgba(0,0,0,.28); padding: 10px; }
.t5disc-inline[hidden]{ display: none; }
/* When a discussion is opened it moves into its OWN container right below the item card — a clear gap
   so the selected item (top) and its discussion (bottom) read as two separate boxes. */
.t5disc-inline--split{ margin-top: 12px; }
.t5di__bar{ display:flex; align-items:center; gap:10px; border-bottom: 1.5px solid var(--pp-line); padding-bottom: 8px; margin-bottom: 8px; }
.t5di__close{ margin-left:auto; cursor:pointer; background: var(--pp-paper-2); color: var(--pp-ink);
              border: 1.5px solid var(--pp-ink); border-radius:0; width:22px; height:22px; line-height:1;
              font-size:12px; font-family: var(--pp-font-mono); padding:0; flex:0 0 auto; }
.t5di__close:hover{ background: var(--pp-riot, #FF2E7E); color:#fff; }
.t5di__vote{ display:flex; align-items:center; gap:6px; }
.t5di__up,.t5di__down{ cursor:pointer; background: var(--pp-paper-2); border-radius:0; width:30px; height:30px;
                       line-height:1; font-size:22px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }
.t5di__up{ color:#1a8f3c; border: 2px solid #1a8f3c; }
.t5di__down{ color:#d11f2f; border: 2px solid #d11f2f; }
.t5di__up.is-on{ background:#1a8f3c; color:#fff; }
.t5di__down.is-on{ background:#d11f2f; color:#fff; }
.t5di__score{ font-family: var(--pp-font-display); font-size: 14px; color: var(--pp-ink); min-width: 18px; text-align:center; }

/* Wall +/- like/dislike (posts & comments) — big green + / red − */
.pfv-wrap{ display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; }
.pfv{ cursor:pointer; background: var(--pp-paper-2); border-radius:0; width:26px; height:26px; line-height:1;
      font-size:19px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; padding:0; }
.pfv--up{ color:#1a8f3c; border:2px solid #1a8f3c; }
.pfv--down{ color:#d11f2f; border:2px solid #d11f2f; }
.pfv--up.is-on{ background:#1a8f3c; color:#fff; }
.pfv--down.is-on{ background:#d11f2f; color:#fff; }
.pfv-score{ font-family: var(--pp-font-display); font-size:13px; color: var(--pp-ink); min-width:14px; text-align:center; }
/* Small, muted variant — sits right at the end of each comment so it's clear which comment it's for */
.pfv--sm{ gap:4px; }
.pfv--sm .pfv{ width:19px; height:19px; font-size:13px; border-width:1.5px; }
.pfv--sm .pfv--up{ color:#5f9e78; border-color:#9dc4ac; }
.pfv--sm .pfv--down{ color:#c07b82; border-color:#dcaeb2; }
.pfv--sm .pfv--up.is-on{ background:#5f9e78; color:#fff; border-color:#5f9e78; }
.pfv--sm .pfv--down.is-on{ background:#c07b82; color:#fff; border-color:#c07b82; }
.pfv--sm .pfv-score{ font-size:11px; min-width:12px; }
.t5di__label{ font-family: var(--pp-font-mono); font-size: 10px; color: var(--pp-ink-dim); text-transform: uppercase; letter-spacing:.06em; }
.t5di__new{ display:flex; flex-direction:column; gap:6px; margin-bottom: 8px; }
.t5di__new textarea{ width:100%; min-height:46px; resize:vertical; background: var(--pp-paper-2); color: var(--pp-ink);
                     border: 1.5px solid var(--pp-ink); border-radius:0; font-family: var(--pp-font-mono); font-size: 11px; padding: 6px 8px; }
.t5di__send{ align-self:flex-end; cursor:pointer; background: var(--pp-volt); color: var(--pp-volt-ink);
             border: 1.5px solid var(--pp-ink); border-radius:0; font-family: var(--pp-font-display); font-size: 10.5px;
             text-transform: uppercase; letter-spacing:.04em; padding: 5px 12px; }
.t5di__cancel{ cursor:pointer; background: var(--pp-paper-2); color: var(--pp-ink-dim); border: 1.5px solid var(--pp-line);
               border-radius:0; font-family: var(--pp-font-mono); font-size: 10px; text-transform: uppercase; letter-spacing:.04em; padding: 5px 10px; }
.t5di__cancel:hover{ color: var(--pp-ink); border-color: var(--pp-ink); }
.t5di__signin{ font-family: var(--pp-font-mono); font-size: 10.5px; color: var(--pp-ink); border-bottom: 2px solid var(--pp-volt); text-decoration:none; }
/* Scrollable comment area so the whole thread lives on the dashboard without pushing the page down. */
.t5di__list{ list-style:none; margin:0; padding:0 2px 0 0; max-height: 280px; overflow-y: auto; }
.t5di__c{ border-left: 2px solid var(--pp-line); padding: 5px 0 5px 8px; margin: 6px 0; }
.t5di__cbody{ color: var(--pp-ink); font-size: 11.5px; line-height:1.45; white-space: pre-wrap; overflow-wrap:anywhere; }
.t5di__cmeta{ font-family: var(--pp-font-mono); font-size: 9.5px; color: var(--pp-ink-dim); margin-top: 3px; }
.t5di__cmeta button{ cursor:pointer; background:transparent; border:0; color: var(--pp-ink-dim); font: inherit; text-decoration: underline; padding:0; }
.t5di__cmeta button:hover{ color: var(--pp-ink); }
.t5di__tomb{ color: var(--pp-ink-dim); font-style: italic; font-size: 11px; }
.t5di__empty{ color: var(--pp-ink-dim); font-family: var(--pp-font-mono); font-size: 10.5px; }
.t5di__replybox{ display:flex; flex-direction:column; gap:5px; margin: 5px 0 5px 8px; }
.t5di__replybox textarea{ width:100%; min-height:38px; background: var(--pp-paper-2); color: var(--pp-ink);
                          border: 1.5px solid var(--pp-ink); font-family: var(--pp-font-mono); font-size: 11px; padding: 5px 7px; }
.t5di__err{ color: var(--pp-riot, #FF2E7E); font-family: var(--pp-font-mono); font-size: 10px; margin-top: 4px; }

/* ⚡ Free Build (Buster 2026-07-28) — the door, the friendly confirm, the in-room reminder. */
.pz-new--free{border-color:rgba(245,166,35,.45);background:linear-gradient(180deg,rgba(245,166,35,.08),transparent)}
.pz-new--free:hover{border-color:rgba(245,166,35,.8)}
.pz-new--free .pz-new__plus{color:#f5a623}
.pz-fb-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(4,8,16,.62);backdrop-filter:blur(3px)}
.pz-fb-modal[hidden]{display:none}
/* Free Build reminder modal — theme-aware so it matches light/dark like the rest of the app (Buster 2026-07-28).
   Was hardcoded to a --pz-* token set that isn't defined, so it always fell back to dark. Now on --pp-* tokens;
   the amber (#f5a623) stays as the ⚡ Free-Build brand accent in both modes. */
/* Squared off + on-brand (Buster 2026-07-28): radius 0, Archivo-Black display heading, 2px hard border with an
   amber ⚡ accent bar on top, squared buttons — matches the rest of Program Podz instead of the soft rounded look. */
.pz-fb-card{position:relative;max-width:420px;width:calc(100% - 32px);background:var(--pp-paper-2,#fff);border:1px solid var(--pp-line);border-top:4px solid #f5a623;border-radius:0;padding:22px 22px 18px;box-shadow:0 18px 48px rgba(0,0,0,.28);text-align:center}
.pz-fb-emoji{font-size:34px;line-height:1}
.pz-fb-h{margin:8px 0 6px;font-family:var(--pp-font-display);text-transform:uppercase;letter-spacing:.02em;font-size:19px;color:var(--pp-ink)}
.pz-fb-p{margin:0 0 16px;font-size:13px;line-height:1.5;color:var(--pp-muted)}
.pz-fb-actions{display:flex;gap:10px;justify-content:center;margin:0}
.pz-fb-btn{display:inline-block;padding:9px 16px;border-radius:0;font-size:12.5px;font-weight:700;cursor:pointer;text-decoration:none;border:2px solid transparent;font-family:var(--pp-font-display);text-transform:uppercase;letter-spacing:.03em}
.pz-fb-btn--ghost{background:transparent;border-color:var(--pp-line);color:var(--pp-ink)}
.pz-fb-btn--ghost:hover{border-color:var(--pp-riot);color:var(--pp-riot)}
.pz-fb-btn--go{background:#f5a623;border-color:#f5a623;color:#1a1204}
.pz-fb-btn--go:hover{background:#ffb733;border-color:#ffb733}
.pz-fb-x{position:absolute;top:8px;right:10px;background:none;border:0;color:var(--pp-muted);font-size:15px;cursor:pointer;line-height:1}
.pz-fb-x:hover{color:var(--pp-riot)}
.pp-freebuild-tip{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;border:1px solid rgba(245,166,35,.4);border-left:4px solid #f5a623;border-radius:0;background:linear-gradient(90deg,rgba(245,166,35,.1),transparent)}
.pp-freebuild-tip__i{font-size:18px;flex:0 0 auto}
.pp-freebuild-tip__t{flex:1;font-size:12.5px;line-height:1.45;color:var(--pp-muted)}
.pp-freebuild-tip__x{flex:0 0 auto;background:none;border:0;color:#9fb0cc;font-size:14px;cursor:pointer}
.pp-freebuild-tip__x:hover{color:#eaf0ff}

/* ---- Maestro reach switch (dashboard: My Podz ⇄ My Computer — Sprint-0000144) ---- */
.mx-reach{margin-left:auto;display:inline-flex;align-items:center;gap:7px;padding:5px 11px;
  border:var(--pp-b,2px) solid var(--pp-ink,#1b1836);background:var(--pp-paper,#fff);
  font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:10.5px;font-weight:700;
  text-decoration:none;color:var(--pp-ink,#1b1836);white-space:nowrap;
  box-shadow:2px 2px 0 var(--pp-ink,#1b1836);transition:transform .1s ease,box-shadow .1s ease}
.mx-reach:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--pp-ink,#1b1836)}
.mx-reach:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--pp-ink,#1b1836)}
.mx-reach__dot{width:9px;height:9px;border-radius:50%;background:#8b8b9e;
  box-shadow:0 0 0 3px rgba(139,139,158,.18);flex:0 0 auto}
.mx-reach__label strong{font-weight:800}
.mx-reach[data-state="computer"]{background:rgba(62,207,142,.12);border-color:#1f9d63}
.mx-reach[data-state="computer"] .mx-reach__dot{background:#2fbf71;box-shadow:0 0 0 3px rgba(47,191,113,.25)}

/* ---- Maestro reach bar (dashboard) + shared on/off switch (Sprint-0000144, revised Buster 2026-07-31) ---- */
.mx-reachbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;
  padding:10px 13px;border:var(--pp-b,2px) solid var(--pp-ink,#131118);background:var(--pp-paper-2,#f4f1ea);
  box-shadow:2px 2px 0 var(--pp-ink,#131118)}
.mx-reachbar__txt{display:flex;align-items:center;gap:9px;font-size:12.5px;line-height:1.25}
.mx-reachbar__txt strong{font-weight:800}
.mx-reachbar__dot{width:10px;height:10px;border-radius:50%;background:#8b8b9e;
  box-shadow:0 0 0 3px rgba(139,139,158,.18);flex:0 0 auto}
.mx-reachbar[data-state="computer"]{background:rgba(47,191,113,.10);border-color:#1f9d63}
.mx-reachbar[data-state="computer"] .mx-reachbar__dot{background:#2fbf71;box-shadow:0 0 0 3px rgba(47,191,113,.25)}

/* Reusable neo-brutalist on/off switch (dashboard bar + parity page) */
.pz-switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;user-select:none}
.pz-switch input{position:absolute;opacity:0;width:0;height:0}
.pz-switch__track{position:relative;display:inline-block;width:52px;height:28px;background:#cbc8d8;
  border:2px solid var(--pp-ink,#131118);border-radius:999px;transition:background .15s;flex:0 0 auto}
.pz-switch__thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;
  border:2px solid var(--pp-ink,#131118);border-radius:50%;transition:transform .15s}
.pz-switch input:checked + .pz-switch__track{background:#2fbf71}
.pz-switch input:checked + .pz-switch__track .pz-switch__thumb{transform:translateX(24px)}
.pz-switch input:focus-visible + .pz-switch__track{outline:2px solid #8A7CFF;outline-offset:2px}
.pz-switch__state{font-family:var(--pp-font-mono,ui-monospace,monospace);font-size:11px;font-weight:800;letter-spacing:.05em}

/* ---- Maestro reach bar as a read-only status link (dashboard → /maestro/parity, Buster 2026-07-31) ---- */
a.mx-reachbar{text-decoration:none;color:var(--pp-ink,#131118);cursor:pointer;
  transition:transform .1s ease,box-shadow .1s ease}
a.mx-reachbar:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--pp-ink,#131118)}
.mx-reachbar__status{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  min-width:44px;padding:4px 12px;border:2px solid var(--pp-ink,#131118);border-radius:999px;
  background:#e6e3ef;color:#6a6780;font-family:var(--pp-font-mono,ui-monospace,monospace);
  font-size:11px;font-weight:800;letter-spacing:.06em}
.mx-reachbar[data-state="computer"] .mx-reachbar__status{background:#2fbf71;color:#fff;border-color:#1f9d63}

/* 📱 Cockpit shells (Podz View · Computer Podz · Plan · Profile) — stack the fixed 3-column desktop
   grid into ONE column on phones/tablets so nothing overflows off-screen. Full mobile web, no app
   store needed. The chat pane keeps a usable height; side rails cap + scroll internally. (Buster 2026-08-01) */
@media (max-width: 900px) {
  .pl-wrap { grid-template-columns: 1fr !important; height: auto !important; min-height: 0 !important; }
  .pl-wrap > .pl-tainer { min-height: auto; max-height: 62vh; }
  .pl-wrap > .pl-chat  { height: 72vh !important; min-height: 400px; }
}
@media (max-width: 560px) {
  .pl-wrap { gap: 10px !important; }
  .pl-wrap > .pl-tainer { max-height: none; }
  /* composer + AI/model pickers wrap cleanly instead of squishing */
  .pl-composer select.svc-in { min-width: 0 !important; flex: 1 1 auto; }
}
