/* Timegravity LABS - the open-research surface (Phase 1, 2026-08-27).
   Builds on public.css (brand shell: ION/Neon-Gravity palette, Space
   Grotesk, dark default). Only lab-specific components live here. Glow
   budget still holds: at most three luminous elements per screen. */

/* touch targets (launch-sweep mobile pass 2026-08-27): header links were
   38px tall, the brand link 30px, artifact title links 17px on phones -
   scoped to Labs pages, min 40px hit area, no visual change on desktop */
.pubnav a{min-height:40px;display:inline-flex;align-items:center}
.pubhead .brand{min-height:40px;display:inline-flex;align-items:center}
.tile-h a{display:inline-block;padding:6px 0;margin:-6px 0}

.labs-tag{display:inline-flex;align-items:center;gap:7px;font-size:12px;
  font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink2);border:1px solid var(--line);border-radius:999px;
  padding:5px 12px}
.labs-tag .dot{width:7px;height:7px;border-radius:50%;background:var(--grad);
  box-shadow:var(--glow)}

/* the "public" marker on every input surface */
.public-marker{display:inline-flex;align-items:center;gap:6px;font-size:12px;
  color:var(--ink3);border:1px solid var(--line);border-radius:8px;
  padding:3px 9px}
.public-marker::before{content:"";width:6px;height:6px;border-radius:50%;
  background:var(--cy)}

/* the no-warnings banner - permanent, calm, never alarming */
.no-warn{border:1px solid var(--line-bright);border-radius:14px;
  padding:14px 18px;margin:18px 0;background:var(--panel);color:var(--ink2);
  font-size:14px;line-height:1.55}
.no-warn strong{color:var(--ink)}

/* charter block */
.charter{border:1px solid var(--line);border-radius:16px;padding:22px 24px;
  background:var(--glass);margin:16px 0}

/* streams x tracks grid (cells) */
.cellgrid{overflow-x:auto;border:1px solid var(--line);border-radius:16px;
  background:var(--panel)}
.cellgrid table{border-collapse:collapse;width:100%;min-width:720px}
.cellgrid th,.cellgrid td{border:1px solid var(--line);padding:10px 12px;
  text-align:left;vertical-align:top;font-size:13px}
.cellgrid th{color:var(--ink2);font-weight:600;background:var(--bg1);
  position:sticky;top:0}
.cellgrid td.cell{cursor:default}
.cellgrid .heat{display:inline-block;min-width:22px;text-align:center;
  border-radius:7px;padding:2px 7px;font-size:12px;font-weight:600;
  color:#071018}
.cellgrid .heat.h0{background:var(--field);color:var(--ink3)}
.cellgrid .heat.h1{background:rgba(76,201,255,.35);color:var(--ink)}
.cellgrid .heat.h2{background:var(--grad)}

/* sponsorship */
.sponsor-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:10px 0}
.sponsor-slot{border:1px solid var(--line);border-radius:12px;padding:12px 18px;
  background:var(--panel);display:inline-flex;align-items:center;min-height:56px}
.sponsor-name{font-weight:600;color:var(--ink)}

/* THE AI SUPERBRAIN notebook: Jupyter-style cells. GREEN = rank (top 100),
   GOLD = confirmed breakthrough; they compose. */
:root{--sb-green:#59e3a7}
.sb .cell{display:grid;grid-template-columns:44px 1fr;gap:10px;margin:12px 0;
  border:1px solid var(--line);border-radius:12px;background:var(--panel);
  scroll-margin-top:12px}
.sb .cell-gutter{font:12px/1 ui-monospace,monospace;color:var(--ink3);
  padding:14px 0 0 12px}
.sb .cell-body{padding:12px 14px 12px 0;min-width:0}
.sb .cell.green{border-left:4px solid var(--sb-green);
  background:linear-gradient(90deg,rgba(89,227,167,.07),var(--panel) 40%)}
.sb .cell.gold{box-shadow:inset 0 0 0 1px rgba(242,201,76,.35)}
.sb .cell.gold .cell-gutter{color:#f2c94c}
.sb .cell.zero{border-color:var(--line-bright)}
.sb .cell-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.sb .cell-text{white-space:pre-wrap;font-size:14px;line-height:1.55;color:var(--ink)}
.sb .cell-output{margin-top:8px;padding:8px 10px;border-left:3px solid var(--line-bright);
  background:var(--abyss);border-radius:6px;font-size:13px}
.sb .cell-meta{font-size:12px;color:var(--ink3);margin-top:8px}
.sb .counts{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:var(--ink2)}
.sb .counts b{color:var(--ink);font-size:18px}
.sb table.mini{border-collapse:collapse;font-size:12px;margin-top:6px}
.sb table.mini th,.sb table.mini td{border:1px solid var(--line);padding:2px 8px}
.sb .cell.pulse{animation:sbpulse 2.4s ease-out}
@keyframes sbpulse{0%{box-shadow:0 0 0 0 rgba(89,227,167,.6)}100%{box-shadow:0 0 0 18px rgba(89,227,167,0)}}
.nav-superbrain{background:linear-gradient(135deg,rgba(76,201,255,.18),rgba(89,227,167,.18));
  border:1px solid rgba(89,227,167,.35) !important;color:var(--ink) !important;font-weight:600}
@media(max-width:720px){
  .sb .cell{grid-template-columns:30px 1fr}
  .sb .cell-gutter{padding-left:8px}
}

/* THE LIVING SUPERBRAIN WIDGET (card). Owns the page's glow slots. */
.brain{display:block;position:relative;overflow:hidden;border-radius:18px;
  border:1px solid rgba(89,227,167,.45);min-height:360px;margin:16px 0 6px;
  /* deep radial vignette so nodes pop; the stage (right) stays darkest at the rim */
  background:radial-gradient(60% 90% at 74% 50%,rgba(76,201,255,.10),transparent 70%),
             radial-gradient(70% 100% at 20% 20%,rgba(139,123,255,.10),transparent 70%),
             radial-gradient(120% 120% at 50% 50%,#0a1020 0%,#05070d 70%,#030509 100%);
  background:radial-gradient(900px 300px at 20% 0%,rgba(76,201,255,.14),transparent),
             radial-gradient(700px 300px at 90% 100%,rgba(89,227,167,.14),transparent),var(--abyss);
  box-shadow:0 0 28px rgba(89,227,167,.14);text-decoration:none;color:var(--ink)}
.brain:hover{text-decoration:none;border-color:rgba(89,227,167,.6)}
.brain canvas{position:absolute;inset:0;width:100%;height:100%}
/* the live canvas is the stage only on desktop (perf: half the pixels per wake) */
@media (min-width:721px){.brain canvas.brain-live{left:48%;width:52%}}
/* COMPOSITION: text over a left-side scrim (~55%); the right ~45% is the brain's open stage */
.brain-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,13,.86) 0%,rgba(5,7,13,.72) 45%,rgba(5,7,13,.18) 62%,rgba(5,7,13,0) 100%)}
.brain-text{position:relative;padding:30px 32px;max-width:55%;text-shadow:0 1px 8px rgba(5,7,13,.9)}
/* animated border shimmer on the Superbrain green (glow budget: this card
   only). COMPOSITOR-ONLY: a thin top/bottom edge with a sliding highlight
   moved by transform (measured: a background-position animation on a
   masked gradient repainted the whole card every frame - 28% CPU at 4x). */
.brain::before,.brain::after{content:"";position:absolute;left:-40%;width:40%;height:1px;pointer-events:none;
  background:linear-gradient(90deg,rgba(89,227,167,0),rgba(89,227,167,.95),rgba(89,227,167,0));
  will-change:transform;animation:brainshimmer 7s linear infinite}
.brain::before{top:0}.brain::after{bottom:0;animation-delay:-3.5s}
@keyframes brainshimmer{to{transform:translateX(350%)}}
/* static layers under the live canvas (painted once by brain.js): parallax
   drift + breathing are compositor-only animations, zero canvas work */
.brain canvas.brain-layer{position:absolute;inset:0;pointer-events:none;will-change:transform,opacity}
.brain canvas.brain-far{animation:brainfar 34s ease-in-out infinite alternate,brainbreathe 6s ease-in-out infinite}
.brain canvas.brain-links{animation:brainbreathe 6s ease-in-out infinite;animation-delay:-1.5s}
.brain canvas.brain-live{animation:brainbreathe 6s ease-in-out infinite;will-change:opacity}
@media (prefers-reduced-motion:reduce){.brain canvas.brain-live{animation:none}}
@keyframes brainfar{from{transform:translateX(-4px)}to{transform:translateX(4px)}}
@keyframes brainbreathe{0%,100%{opacity:.55}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.brain canvas.brain-layer{animation:none;opacity:.85}}
@media (prefers-reduced-motion:reduce){.brain::before,.brain::after{animation:none;opacity:.4}}
.brain-title{font-size:26px;font-weight:700;letter-spacing:-.01em;
  background:linear-gradient(135deg,#4cc9ff,#59e3a7);-webkit-background-clip:text;
  background-clip:text;color:transparent}
.brain-digest{margin:10px 0 12px;font-size:15px;line-height:1.55;color:var(--ink)}
.brain-counts{display:flex;gap:8px;font-size:13px;color:var(--ink2);flex-wrap:wrap}
.brain-counts b{color:var(--ink)}
.brain-cta{margin-top:10px;font-size:12px;color:var(--cy)}
.brain.flash{border-color:rgba(89,227,167,1);box-shadow:0 0 0 1px rgba(89,227,167,.9),0 0 90px rgba(89,227,167,.55),inset 0 0 60px rgba(89,227,167,.12);transition:box-shadow .2s,border-color .2s}
.brain{transition:box-shadow 1.2s ease-out,border-color 1.2s ease-out}
.brain.reduced canvas{display:none}
.brain.reduced{animation:brainbreathe 6s ease-in-out infinite}
@keyframes brainbreathe{0%,100%{opacity:.92}50%{opacity:1}}
@media(max-width:720px){
  /* 390: the brain band sits ABOVE the text, not behind it */
  .brain{min-height:0;display:flex;flex-direction:column}
  .brain canvas{position:relative;height:170px;flex:0 0 170px}
  .brain canvas.brain-layer{position:absolute;top:0;left:0;height:170px;bottom:auto}
  .brain-scrim{background:linear-gradient(180deg,rgba(5,7,13,0) 0%,rgba(5,7,13,0) 150px,rgba(5,7,13,.85) 180px,rgba(5,7,13,.92) 100%)}
  .brain-text{max-width:none;padding:12px 16px 16px;margin-top:-10px}
  .brain-title{font-size:19px}.brain-digest{font-size:14px}}

/* BREAKTHROUGH colour system (consistent everywhere): amber = agent-
   nominated, gold = reviewer-confirmed, neutral = everything else */
.bt-nominated{color:#e3a759;border-color:rgba(227,167,89,.6);
  background:rgba(227,167,89,.08)}
.bt-confirmed{color:#f2c94c;border-color:rgba(242,201,76,.75);
  background:rgba(242,201,76,.12);font-weight:700}

/* UPVOTE (appreciation only; there is no downvote on content anywhere) */
.upv{font:inherit;font-size:12px;border:1px solid var(--line);border-radius:999px;
  background:transparent;color:var(--ink2);padding:1px 8px;cursor:pointer;
  vertical-align:middle;margin-left:4px}
.upv.on{color:var(--cy);border-color:rgba(76,201,255,.6)}
.upv:hover{border-color:var(--line-bright)}
.qbtn{font:inherit;font-size:11px;border:1px solid var(--line);border-radius:6px;
  background:transparent;color:var(--ink3);padding:1px 7px;cursor:pointer;margin-left:4px}

/* feed sort toggle: Latest is the default, Top is one tap away */
.sort-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;
  overflow:hidden;margin:0 0 8px}
.sort-toggle button{font:inherit;font-size:12px;border:0;background:transparent;
  color:var(--ink2);padding:5px 12px;cursor:pointer}
.sort-toggle button.on{background:var(--field);color:var(--ink)}

/* quote cards + threaded replies (discussion becomes collaboration) */
.qcard{display:block;border-left:3px solid var(--line-bright);padding:4px 8px;
  margin:4px 0;background:var(--panel);border-radius:6px;font-size:12px;
  color:var(--ink);text-decoration:none}
.dpost.reply{margin-left:14px;border-left:2px solid var(--line);padding-left:8px}

/* leaderboards */
.lb{margin:0;padding-left:20px;font-size:13px}
.lb.unranked{list-style:none;padding-left:0}

/* reviewer exam + workspace file tree */
.exam li{margin:12px 0}
.exam .q{margin-bottom:6px}
.exam textarea{width:100%;background:var(--field);border:1px solid var(--fieldline);
  border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit}
.ftree{list-style:none;margin:0;padding:8px;border-right:1px solid var(--line);
  font:12px/1.8 ui-monospace,monospace;overflow:auto;max-height:480px}
.ftree a{color:var(--ink2)}
@media(max-width:720px){
  .wb[style*="grid-template-columns"]{grid-template-columns:1fr !important}
  .ftree{border-right:0;border-bottom:1px solid var(--line);max-height:140px}
}

/* THE TEN PUBLIC STREAMS - slot grid (hero). Glow budget: only the live
   dot glows. */
.slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:10px;margin:10px 0}
.slotgrid.byo{margin-top:6px}
.tile{border:1px solid var(--line);border-radius:12px;padding:10px 12px;
  background:var(--panel);min-height:96px;display:flex;flex-direction:column;
  gap:4px;cursor:pointer}
.tile.open{border-style:dashed;cursor:default;color:var(--ink3)}
.tile.open.waiting{border-color:var(--line-bright);transition:border-color .3s}
/* BUSY TILES ARE TALL: the grid gives its height to where the action is.
   The tail shows ~10-14 lines of recent tokens and follows the end
   (flex-end: the newest lines stay in view, older ones scroll out of
   the clamped window). The window is the only text rendered - the
   server ships the last 1400 chars, nothing more. */
.tile.live,.tile.interrupted{border-color:var(--line-bright);grid-row:span 2;min-height:300px}
.tile.live .tile-tail,.tile.interrupted .tile-tail{max-height:20.5em;display:flex;
  flex-direction:column;justify-content:flex-end;flex:1 1 auto}
.tile.live .tile-tail span{display:block;overflow:hidden;max-height:20.5em}
.tile.interrupted{border-color:rgba(227,167,89,.6)}
.tile-top{display:flex;justify-content:space-between;align-items:center;gap:6px;
  font-size:11px;color:var(--ink3)}
.tile-state{white-space:nowrap}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--cy);box-shadow:var(--glow);margin-right:5px;vertical-align:middle}
.tile-h{font-weight:600;font-size:13px;line-height:1.3}
.tile-step{font-size:11px;color:var(--cy);margin-top:2px}
.tile-tail{font:11px/1.45 ui-monospace,monospace;color:var(--ink2);
  white-space:pre-wrap;overflow:hidden;max-height:4.4em;margin-top:auto}
.kind-byo{color:var(--lavender);border-color:rgba(179,168,255,.45)}
.transcript{font:12px/1.5 ui-monospace,monospace;color:var(--ink2);
  white-space:pre-wrap;max-height:360px;overflow:auto;margin:0;padding:10px;
  background:var(--abyss);border-radius:10px}

/* your place in line + while-you-wait discussion */
.queue-title{font-weight:600}
.queue-state{font-size:22px;font-weight:700;margin:4px 0;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;
  color:transparent}
.dlist{max-height:220px;overflow:auto;border:1px solid var(--line);
  border-radius:10px;padding:8px 10px;background:var(--abyss)}
.dpost{font-size:13px;padding:4px 0;border-bottom:1px solid var(--line)}
.dpost:last-child{border-bottom:0}
.dpost .who{color:var(--cy);font-weight:600}
.dpost.held{opacity:.7}
.discuss input{flex:1;background:var(--field);border:1px solid var(--fieldline);
  border-radius:10px;padding:8px 11px;color:var(--ink);font:inherit}

@media(max-width:720px){
  /* 390px: the grid collapses to a swipeable column of tiles */
  .slotgrid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    gap:10px;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .slotgrid .tile{flex:0 0 82%;scroll-snap-align:start}
  .slotgrid .tile.live,.slotgrid .tile.interrupted{flex:0 0 100%;min-height:280px}
  .slotgrid .tile.open{flex:0 0 46%;min-height:80px}
}

/* per-cell agent rosters */
.roster{margin-top:6px;display:flex;flex-wrap:wrap;gap:3px}
.agent-chip{font-size:10px;border:1px solid var(--line);border-radius:6px;
  padding:1px 5px;color:var(--ink2);white-space:nowrap}
.agent-chip.lavender{color:var(--lavender);border-color:var(--line-bright)}

/* monitor */
.monitor{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}
.mcard{border:1px solid var(--line);border-radius:14px;padding:16px 18px;
  background:var(--panel)}
.mcard h3{margin:0 0 10px;font-size:14px;color:var(--ink2);
  text-transform:uppercase;letter-spacing:.05em}
.presence{font-size:32px;font-weight:700;line-height:1}
.presence .grad{background:var(--grad);-webkit-background-clip:text;
  background-clip:text;color:transparent}

/* compute meter */
.meter{height:12px;border-radius:999px;background:var(--field);
  overflow:hidden;border:1px solid var(--line)}
.meter > span{display:block;height:100%;background:var(--grad)}
.meter-paused > span{background:#e3a759}

/* agent run stream */
.run{border-top:1px solid var(--line);padding:10px 0;font-size:13px}
.run:first-child{border-top:0}
.run .who{font-weight:600}
.run .steps{margin:6px 0 0;padding:0;list-style:none;color:var(--ink2);
  font-size:12px;line-height:1.7}
.run .steps li::before{content:"› ";color:var(--cy)}
.badge-agent{font-size:11px;border:1px solid var(--line);border-radius:6px;
  padding:1px 6px;color:var(--lavender)}

/* HONEST feed kind chips (idea box round): each kind is visually distinct so
   an idea is never read as an established finding, nor agent research as
   human-verified */
.kind-chip{display:inline-block;font-size:10px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;border-radius:6px;
  padding:2px 7px;border:1px solid var(--line);color:var(--ink2);
  vertical-align:middle;margin-right:2px}
.kind-idea{color:var(--cy);border-color:rgba(76,201,255,.45)}
.kind-question{color:var(--ice);border-color:rgba(127,219,255,.4)}
.kind-finding{color:var(--ok);border-color:rgba(89,227,167,.45)}
.kind-agent-research{color:var(--lavender);border-color:rgba(179,168,255,.45)}
.kind-dataset-note{color:#e3c26b;border-color:rgba(227,194,107,.45)}
.kind-queued{color:#e3a759;border-color:rgba(227,167,89,.45)}

/* contribution feed */
.feed{list-style:none;margin:0;padding:0}
.feed li{border:1px solid var(--line);border-radius:12px;padding:12px 15px;
  margin-bottom:10px;background:var(--panel)}
.feed .title{font-weight:600}
.feed .meta{font-size:12px;color:var(--ink3);margin-top:4px}
.feed .pending{color:#e3a759}
.prov{font-size:12px;color:var(--ink3);margin-top:6px}

/* notebooks */
.nbentry{border-left:2px solid var(--line-bright);padding:8px 0 8px 14px;
  margin:10px 0}
.nbentry .who{font-size:12px;color:var(--ink3)}

/* forms */
.labform label{display:block;font-size:13px;color:var(--ink2);margin:12px 0 5px}
.labform input,.labform textarea,.labform select{width:100%;background:var(--field);
  border:1px solid var(--fieldline);border-radius:10px;padding:11px 13px;
  color:var(--ink);font:inherit}
.labform textarea{min-height:120px;resize:vertical}
.hint{font-size:12px;color:var(--ink3);margin-top:4px}
.err{color:#ff9a8b;font-size:13px;margin-top:8px}
.ok{color:var(--ok);font-size:13px;margin-top:8px}

/* workbench */
.wb{border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:var(--panel);margin:16px 0}
.wb-bar{display:flex;gap:8px;align-items:center;padding:8px 12px;
  border-bottom:1px solid var(--line);background:var(--bg1)}
.wb textarea{width:100%;border:0;background:var(--abyss);color:var(--ink);
  font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;padding:12px;
  min-height:150px;resize:vertical}
.wb-out{padding:12px;font:12px/1.5 ui-monospace,monospace;color:var(--ink2);
  white-space:pre-wrap;max-height:260px;overflow:auto;border-top:1px solid var(--line)}

/* viz */
.viz-tabs{display:flex;gap:6px;margin:12px 0}
.viz table{border-collapse:collapse;width:100%;font-size:13px}
.viz th,.viz td{border:1px solid var(--line);padding:6px 10px;text-align:left}
.viz th{cursor:pointer;background:var(--bg1)}
.chart{border:1px solid var(--line);border-radius:12px;padding:12px;
  background:var(--panel);margin-top:12px}

@media(max-width:720px){
  .monitor{grid-template-columns:1fr}
}

/* ---- run outputs, plugin payloads, provenance badges (plugin-use round) ---- */
.outputs{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.out-cell{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--glass)}
.out-cell.out-refused{border-color:rgba(255,107,129,.5)}
.out-cell.out-checking{opacity:.75}
.out-head{font-size:13px;margin-bottom:6px}
.out-table{border-collapse:collapse;font-size:13px;width:100%}
.out-table th,.out-table td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:left;vertical-align:top}
.refused{color:#ff6b81;font-size:13px}
.prov-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;border-radius:999px;padding:2px 7px;border:1px solid transparent}
.prov-sourced{color:#3ddc97;border-color:rgba(61,220,151,.5)}
.prov-derived{color:#4CC9FF;border-color:rgba(76,201,255,.5)}
.prov-proposed{color:#ffb74d;border-color:rgba(255,183,77,.5)}
.prov-refused{color:#ff6b81;border-color:rgba(255,107,129,.5)}
.payload{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--glass)}
.payload .banner{font-size:12px;font-weight:700;color:#ffb74d;border:1px dashed rgba(255,183,77,.6);border-radius:8px;padding:6px 8px;margin-bottom:8px}
.plugin-host{margin-top:10px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.kind-chip.kind-linked{color:#8B7BFF;border-color:rgba(139,123,255,.5)}
.similar{margin:10px 0}
.match-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;background:var(--glass)}
.match-card .title{font-weight:700;margin:4px 0}
.summary{white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.5;background:transparent;border:0;padding:6px 0;margin:0;max-height:220px;overflow:auto}
.attempts{list-style:none;padding:0;margin:14px 0}
.attempt{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:10px 0;background:var(--glass)}
.attempt-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-weight:700}
.attempt .rank{color:#3ddc97;font-family:ui-monospace,monospace}
.thread-end{border-left:4px solid #3ddc97;margin-top:16px}
.ver{margin:8px 0}
@media (max-width:430px){
  .out-table{font-size:12px}
  .payload .banner{font-size:11px}
  .attempt{padding:10px}
  .match-card .btn{display:inline-block;margin-top:4px}
  #ideaRefine{width:100%;box-sizing:border-box}
}

/* ---- living-lab numbers row (launch-day round) ---- */
.statsrow{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--ink2);margin:6px 0 10px}
.statsrow b{color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:430px){.statsrow{gap:4px 12px;font-size:12px}}

/* ---- summary-first attempt cards (launch-day UI round) ---- */
.attempt.card{padding:10px 12px}
.card-head{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;width:100%;text-align:left;background:transparent;border:0;color:var(--ink);cursor:pointer;padding:0;font:inherit;font-weight:700}
.card-head .ttl{flex:1 1 200px;min-width:0}
.card-head .meta{font-weight:400;font-size:12px}
.card-head[aria-expanded="true"] .ttl{color:#4CC9FF}
.card-foot{font-size:12px;margin-top:4px}
.attempt .summary{max-height:160px}
.steps{margin:8px 0 0 6px;border-left:2px solid var(--line);padding-left:10px}
.steplist{list-style:none;padding:0;margin:0}
.step{margin:2px 0}
.step-head{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;background:transparent;border:0;color:var(--ink2);cursor:pointer;padding:3px 0;font:inherit;font-size:13px}
.step-head .ord{font-family:ui-monospace,monospace;color:var(--ink3);min-width:1.6em}
.step-head[aria-expanded="true"]{color:var(--ink)}
.cost{font-size:10px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:1px 6px;color:var(--ink3)}
.cost-model{color:#8B7BFF;border-color:rgba(139,123,255,.5)}
.cost-search{color:#4CC9FF;border-color:rgba(76,201,255,.5)}
.segment{margin:4px 0 8px 1.9em}
.segtext{max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word}
.kind-chip.st-researching{color:#4CC9FF;border-color:rgba(76,201,255,.5)}
.kind-chip.st-review-pending{color:#ffb74d;border-color:rgba(255,183,77,.5)}
.kind-chip.st-merged{color:#3ddc97;border-color:rgba(61,220,151,.5)}
.kind-chip.st-interrupted{color:#ff6b81;border-color:rgba(255,107,129,.5)}
#trCard .attempt{margin:6px 0}
@media (max-width:430px){
  .attempt.card{padding:8px 10px}
  .steps{margin-left:2px;padding-left:6px}
  .segment{margin-left:0.6em}
  .card-head .meta{flex-basis:100%}
}

/* ---- the idea's live view (post-submit streaming) ---- */
.ideaview .iv-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 8px}
.ideaview .iv-title{flex:1 1 200px;min-width:0}
.ideaview .iv-live{margin-top:8px}
.ideaview .iv-text{max-height:52vh}
@media (max-width:430px){.ideaview .iv-text{max-height:60vh;font-size:12px}}

/* ---- continue this research (one box on every completed attempt) ---- */
.linkbtn{background:transparent;border:0;color:var(--cy);cursor:pointer;font:inherit;font-size:12px;padding:0}
.cont-form{margin-top:8px}
.cont-form textarea{width:100%;box-sizing:border-box;background:var(--field);color:var(--ink);border:1px solid var(--fieldline);border-radius:10px;padding:8px 10px;font:inherit;font-size:13px}
.cont-row{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}
.chain{font-size:12px;color:var(--ink2);margin:2px 0 4px}
.chain a{color:#3ddc97}

/* ---- LAYOUT V2: the founder wireframes ---- */
.v2grid{display:grid;grid-template-columns:230px minmax(0,1fr) 250px;gap:16px;align-items:start;margin-top:16px}
.rail{position:sticky;top:12px}
.rail h3{margin:0 0 8px;font-size:14px}
.plugrail{display:flex;flex-direction:column;gap:6px}
.ptile{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel);cursor:grab;font-size:13px}
.ptile:active{cursor:grabbing}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--line-bright);border-radius:999px;padding:2px 8px;color:var(--cy)}
.chip button{background:transparent;border:0;color:inherit;cursor:pointer;font-size:13px;padding:0}
.chip-quote{color:#3ddc97}
.chip-file{color:var(--ink2)}
#ideaText.drop{border-color:var(--cy)}
.toggles{margin:6px 0}
.toggle{font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.notice{font-size:12px;color:var(--ink2);border-left:3px solid #ffb74d;padding:4px 8px;margin:8px 0;background:var(--glass)}
.routebox{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0;background:var(--glass)}
.route-t{padding:6px 0;border-bottom:1px solid var(--line)}
.route-t.on{border-left:3px solid #3ddc97;padding-left:8px}
.pickers{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.pickers select{display:block;margin-top:3px;max-width:260px;background:var(--field);color:var(--ink);border:1px solid var(--fieldline);border-radius:8px;padding:5px 8px}
.sumrail{display:flex;flex-direction:column;gap:8px}
.sumcard{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel);font-size:13px}
.sumrow{display:flex;gap:10px;align-items:center;margin-top:4px}
.advanced summary{margin-bottom:6px}
@media (max-width:900px){
  .v2grid{grid-template-columns:1fr}
  .rail{position:static}
  .rail-left{order:2}.center{order:1}.rail-right{order:3}
  .plugrail{flex-direction:row;flex-wrap:wrap}
}
/* home (wireframe 2) */
/* HERO: the living brain is a full-width band; the final-artifacts card sits beneath it */
.toprow{display:grid;grid-template-columns:1fr;gap:12px;align-items:stretch;margin-top:18px}
.toprow .brain{margin:0}
.finalcard{display:flex;flex-direction:column}
.band{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.band .slotgrid.band-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:6px;-webkit-overflow-scrolling:touch;grid-template-columns:none}
.band .slotgrid.band-row .tile{flex:0 0 300px;scroll-snap-align:start;grid-row:auto}
.band .slotgrid.band-row .tile.open{flex:0 0 150px;min-height:80px}
.entryrow{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-top:12px}
.entry{display:flex;gap:10px;align-items:center;flex:1 1 320px;flex-wrap:wrap}
.threecol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.tschips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
@media (max-width:900px){
  .toprow{grid-template-columns:1fr}
  .threecol{grid-template-columns:1fr}
  .band .slotgrid.band-row .tile.live,.band .slotgrid.band-row .tile.interrupted{flex:0 0 100%}
}

/* ---- vibe plugin authoring ---- */
.vibe{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:8px}
.vblog{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow:auto;padding:8px;background:var(--abyss);border-radius:10px;border:1px solid var(--line)}
.vbmsg{font-size:13px;padding:6px 10px;border-radius:10px;max-width:92%;white-space:pre-wrap}
.vb-ai{background:var(--panel);align-self:flex-start}
.vb-me{background:rgba(76,201,255,.12);align-self:flex-end}
.vibe-chat input{flex:1;min-width:0;background:var(--field);color:var(--ink);border:1px solid var(--fieldline);border-radius:10px;padding:8px 11px;font:inherit}
@media (max-width:900px){.vibe{grid-template-columns:1fr}}

/* ---- launch polish ---- */
.spin{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:4px}
@keyframes spin{to{transform:rotate(360deg)}}
.sumcard.match-strong{border-color:#3ddc97}.sumcard.match-moderate{border-color:#4CC9FF}.sumcard.match-related{border-color:var(--line-bright)}

/* ---- launch polish 4-10 ---- */
.tap-hint{font-size:10px;color:var(--ink3);margin-left:6px}
.tile.open .tap-hint{display:none}
#transcriptPanel.sheet{position:fixed;inset:0;z-index:60;margin:0;border-radius:0;overflow:auto;padding:14px}
body.sheet-open{overflow:hidden}
.vb-examples{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.chipbtn{font-size:12px;border:1px solid var(--line-bright);border-radius:999px;padding:3px 10px;background:transparent;color:var(--cy);cursor:pointer}
#vbBrief{width:100%;box-sizing:border-box;background:var(--field);color:var(--ink);border:1px solid var(--fieldline);border-radius:10px;padding:8px 11px;font:inherit}
.vibe-preview{display:flex;flex-direction:column}
.vibe-preview .wb{flex:1 1 auto;aspect-ratio:16/10}
.featured-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.ftile{flex:0 0 auto;display:flex;flex-direction:column;gap:2px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit}
.overlay{position:fixed;inset:0;z-index:70;background:rgba(5,7,13,.8);display:flex;align-items:center;justify-content:center;padding:14px}
.overlay-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;width:min(900px,100%);max-height:92vh;overflow:auto}
.shimmer{height:6px;border-radius:3px;margin-top:8px;background:linear-gradient(90deg,var(--line),var(--line-bright),var(--line));background-size:200% 100%;animation:shim 1.2s linear infinite}
@keyframes shim{to{background-position:-200% 0}}
.ticon{color:var(--ink3);font-size:12px}
@media (prefers-reduced-motion:reduce){.shimmer,.spin{animation:none}}

/* ---- feature requests ---- */
.narrowish{max-width:760px}
.reqfilters{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.chipbtn.on{background:var(--cy);color:#04121e}
.req-status{margin-left:8px;background:var(--field);color:var(--ink);border:1px solid var(--fieldline);border-radius:8px;padding:2px 6px;font-size:12px}
.kind-chip.req-planned{color:#4CC9FF;border-color:rgba(76,201,255,.5)}
.kind-chip.req-done{color:#3ddc97;border-color:rgba(61,220,151,.5)}
.kind-chip.req-declined{color:var(--ink3)}
.kind-chip.req-held{color:#ffb74d;border-color:rgba(255,183,77,.5)}
#reqForm input,#reqForm textarea{width:100%;box-sizing:border-box}

/* ---- CONTRIBUTE DESIGN PASS (2026-08-28, R-74): three tiers ----
   TIER 1 the idea box (dominant, brand focus ring); TIER 2 suggestion cards
   and the clarify exchange (distinct surface tone); TIER 3 the settings
   cluster (quieter, tighter, one group). One spacing scale: 4/8/12/16/24. */
:root{--sp1:4px;--sp2:8px;--sp3:12px;--sp4:16px;--sp5:24px}
.ideaform > *{margin-top:var(--sp3);margin-bottom:0}
.ideaform > :first-child{margin-top:0}
.ideaform .chips{margin:0 0 var(--sp2)}
.ideaform label{margin:0 0 var(--sp1)}
.ideaform .err,.ideaform .ok{margin-top:var(--sp2)}
.ideaform .actionrow{margin-top:var(--sp4)}
/* TIER 1 */
#ideaText{min-height:150px;font-size:16px;line-height:1.5;padding:14px 16px;border-radius:14px;
  border:1px solid var(--line-bright);background:var(--field);transition:box-shadow .15s,border-color .15s}
#ideaText:focus{outline:none;border-color:var(--cy);box-shadow:0 0 0 3px rgba(76,201,255,.22),0 0 24px rgba(76,201,255,.12)}
/* TIER 2: cards with their own surface tone */
.routebox,.similar,.tier2,.clarify{background:linear-gradient(180deg,rgba(76,201,255,.06),rgba(76,201,255,.02)),var(--panel);
  border:1px solid var(--line);border-radius:14px;padding:var(--sp3) var(--sp4)}
.similar{margin:var(--sp3) 0 0}
.similar-lead{margin:0 0 var(--sp2);font-size:13px;color:var(--ink2)}
.routebox > .muted:first-child{margin-bottom:var(--sp2)}
.tcard{padding:var(--sp2) 0;border-bottom:1px solid var(--line);background:transparent;border-radius:0;margin:0;border-left:0}
.tcard:last-of-type{border-bottom:0}
.route-t.on{border-left:3px solid var(--sb-green);padding-left:var(--sp2)}
.match-card.tcard{border:0;border-bottom:1px solid var(--line)}
.tcard-head{display:flex;flex-wrap:wrap;gap:var(--sp2);align-items:center;margin-bottom:var(--sp1)}
.count-chip,.match-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.04em;
  border-radius:999px;padding:2px 8px;border:1px solid var(--line-bright);color:var(--ink2);white-space:nowrap}
.match-chip.match-strong{color:var(--sb-green);border-color:rgba(89,227,167,.5)}
.match-chip.match-moderate{color:var(--cy);border-color:rgba(76,201,255,.5)}
.tcard-title{font-weight:700;font-size:15px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tcard-voice{margin:var(--sp1) 0 var(--sp2);font-size:13px;line-height:1.5;color:var(--ink2)}
.tcard-row{display:flex;flex-wrap:wrap;gap:var(--sp3);align-items:center}
.tcard-row .linkbtn,.tcard-row a{min-height:32px;display:inline-flex;align-items:center}
/* the clarify exchange: a speech-toned card attached under the box */
.clarify{border-color:rgba(89,227,167,.35);border-radius:4px 14px 14px 14px;padding:var(--sp3) var(--sp4) var(--sp4)}
.clarify-who{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--sb-green);margin-bottom:var(--sp1)}
.clarify-dot{width:8px;height:8px;border-radius:50%;background:var(--sb-green);box-shadow:0 0 8px rgba(89,227,167,.8)}
.clarify-line{margin:0 0 var(--sp3);font-size:15px;line-height:1.45}
.clarify-row{display:flex;gap:var(--sp2);align-items:flex-end;flex-wrap:wrap}
.clarify-row .oneline{flex:1 1 340px;min-width:0;min-height:44px;height:44px;resize:none;padding:11px 13px;line-height:1.4;border-radius:12px;white-space:nowrap;overflow:hidden}
.clarify-row .btn{min-height:44px;white-space:nowrap;padding:0 18px;margin:0}
/* TIER 3: the settings cluster - furniture */
.settings{margin-top:var(--sp5);padding-top:var(--sp3);border-top:1px solid var(--line);font-size:13px;color:var(--ink2)}
.settings > *{margin:var(--sp2) 0 0}
.settings > :first-child{margin-top:0}
.settings details summary{font-size:13px;color:var(--ink3);padding:var(--sp2) 0;min-height:40px;display:flex;align-items:center;cursor:pointer}
.settings .notice{margin:var(--sp2) 0 0;padding:2px 0 2px 10px;border-left:2px solid #ffb74d;background:transparent;font-size:12px;color:var(--ink3);line-height:1.5}
.settings .labform label{font-size:12px;color:var(--ink3)}
/* WEB SEARCH TOGGLE: one labeled unit - name + switch + status, the whole row tappable */
.labform .wsrow,.wsrow{display:flex;align-items:center;gap:var(--sp3);min-height:44px;margin:0;padding:var(--sp1) 0;cursor:pointer;color:var(--ink);font-size:14px}
.wstext{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}
.wsname{font-weight:700;font-size:14px;color:var(--ink)}
.wsnote{font-size:12px;color:var(--ink3);line-height:1.4}
.labform .switch,.switch{appearance:none;-webkit-appearance:none;flex:0 0 44px;width:44px;height:26px;padding:0;border-radius:999px;background:var(--field);
  border:1px solid var(--line-bright);position:relative;cursor:pointer;margin:0;transition:background .15s,border-color .15s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink3);transition:transform .15s,background .15s}
.switch:checked{background:rgba(76,201,255,.28);border-color:var(--cy)}
.switch:checked::after{transform:translateX(18px);background:var(--cy)}
.switch:focus-visible{outline:2px solid var(--cy);outline-offset:2px}
/* PEEK: accordion on desktop, bottom sheet on phones */
.peek{border:1px solid rgba(76,201,255,.35);border-radius:14px;background:var(--panel);padding:var(--sp3) var(--sp4);margin:var(--sp2) 0}
.peek-head{display:flex;flex-wrap:wrap;gap:var(--sp2) var(--sp3);align-items:center;margin-bottom:var(--sp2)}
.peek-title{font-size:15px}
.peek-open{font-size:12px;margin-left:auto;min-height:32px;display:inline-flex;align-items:center}
.peek-close{background:transparent;border:1px solid var(--line);color:var(--ink2);border-radius:8px;width:40px;height:40px;font-size:20px;cursor:pointer}
.peek-body{max-height:52vh;overflow:auto}
.peek-body .attempts{margin:0}
.peek-body .attempt{background:var(--glass)}
.peek-summary{margin-top:var(--sp3);border-left:3px solid var(--sb-green);padding-left:var(--sp3)}
.peek-sumtext{margin:var(--sp1) 0 0;font-size:13px;line-height:1.5;white-space:pre-wrap}
.peek-foot{display:flex;flex-wrap:wrap;gap:var(--sp2);margin-top:var(--sp3)}
.peek-foot .btn{min-height:40px;font-size:13px;padding:0 16px}
.peek-sheet{position:fixed;left:0;right:0;bottom:0;z-index:60;max-height:82vh;display:flex;flex-direction:column;border-radius:18px 18px 0 0;margin:0;padding-bottom:calc(var(--sp4) + env(safe-area-inset-bottom))}
.peek-sheet .peek-body{flex:1 1 auto;max-height:none}
.peek-scrim{position:fixed;inset:0;background:rgba(3,6,14,.6);z-index:59}
/* body.peek-open carries NO overflow/overscroll rule: any such rule widened the mobile layout viewport (2026-08-28); the scrim blocks the page */
@media (max-width:430px){
  .clarify-row .btn{flex:1 1 100%}
  .tcard-row{gap:var(--sp2) var(--sp4)}
}

/* honest empty outcome (night round 2026-08-28): kind-labelled, never a dead card */
.kind-chip.kind-empty{color:#ffb74d;border-color:rgba(255,183,77,.55)}
/* labs nav carries the chat account chip; the wordmark matches the chat header */
.pubnav #acct{display:inline-flex;align-items:center}
.pubnav #acct:empty{display:none}
@media (max-width:720px){
  /* phones: the wordmark row carries the account chip (top-right); the nav
     always takes its own row beneath, so the chip never overlaps a link
     and never sits alone on a third row */
  .pubhead{position:relative;flex-wrap:wrap;row-gap:8px}
  .pubhead .pubnav{flex:1 0 100%;order:3}
  .pubnav #acct{position:absolute;top:10px;right:16px}
  .pubhead .brand{padding-right:56px}
}

/* requests + feedback (founder 2026-08-28): one box, two kinds */
.kindseg{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 4px}
.kindopt{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--line-bright);border-radius:999px;font-size:13px;cursor:pointer;color:var(--ink2)}
.kindopt:has(input:checked){color:var(--cy);border-color:var(--cy);background:rgba(76,201,255,.08)}
.kindopt input{margin:0;accent-color:var(--cy)}
.kind-chip.kind-feedback{color:#ffb74d;border-color:rgba(255,183,77,.55)}
.kind-chip.kind-request{color:var(--cy);border-color:rgba(76,201,255,.5)}

/* ---- MENTION GRAMMAR typeahead (@ actors, # things), one component for every composer ---- */
.refs{background:var(--panel);border:1px solid var(--line-bright);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.45);z-index:70;font-size:13px}
.refs-pop{position:absolute;left:0;right:0;margin-top:4px;max-height:280px;overflow:auto}
.discuss{position:relative}
.refs-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;color:var(--ink3);font-size:12px;border-bottom:1px solid var(--line)}
.refs-close{background:transparent;border:1px solid var(--line);color:var(--ink2);border-radius:8px;width:32px;height:32px;font-size:18px;cursor:pointer}
.refs-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);padding:0 10px;min-height:44px;cursor:pointer;font:inherit}
.refs-item:last-child{border-bottom:0}
.refs-item.on,.refs-item:hover{background:rgba(76,201,255,.10)}
.refs-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;border:1px solid var(--line-bright);font-size:13px;flex:0 0 26px;color:var(--cy)}
.refs-member{color:#59e3a7}.refs-plugin{color:#8B7BFF}.refs-artifact{color:#ffb74d}.refs-cell{color:var(--ink2)}.refs-thread,.refs-summary,.refs-attempt{color:var(--cy)}
.refs-main{flex:1 1 auto;min-width:0;display:flex;gap:6px;align-items:baseline;overflow:hidden}
.refs-title{color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.refs-kind{font-size:11px;color:var(--ink3);flex:0 0 auto}
.refs-empty{padding:10px}
.refs-sheet{position:fixed;left:0;right:0;bottom:0;max-height:60vh;overflow:auto;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom)}
.refs-scrim{position:fixed;inset:0;background:rgba(3,6,14,.5);z-index:69}
.chip a{color:inherit;text-decoration:none}
.chip-member{color:#59e3a7}
/* ---- PLUGIN ATTACH: tap-first, drag-second ---- */
.railhint{font-size:12px;margin:0 0 8px}
.ptile{position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:44px;transition:transform .12s,border-color .12s,box-shadow .12s;user-select:none}
.ptile::after{content:"\2807";position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--ink3);font-size:14px;opacity:.55}
.ptile:hover{transform:translateY(-1px);border-color:var(--line-bright);box-shadow:0 4px 14px rgba(0,0,0,.25)}
.ptile.on{border-color:var(--cy);background:rgba(76,201,255,.10);padding-right:34px}
.ptile.on::before{content:"\2713";display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--cy);color:#04121e;font-size:11px;font-weight:700}
.ptile.on::after{display:none}
@media (max-width:900px){
  /* phones/tablets: a horizontal, tappable chip-row ABOVE the idea box; no drag pretence */
  .rail-left{order:0}
  .rail-left h3{display:inline;margin-right:8px;font-size:13px}
  .railhint{display:inline}
  .plugrail{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:8px;padding:4px 0 8px;-webkit-overflow-scrolling:touch}
  .ptile{flex:0 0 auto;cursor:pointer;padding-right:12px}
  .ptile::after{display:none}
  .ptile.on{padding-right:12px}
  #vibeBtn,#vibeBtn + p{display:none !important}   /* the vibe road lives on the plugin page at this width */
}

/* WIDE SCREENS (founder 2026-08-28: "so much wasted space left and right"):
   the three-column contribute grid uses the width it is given */
.wrap.v2{max-width:1480px}
@media (min-width:1200px){
  .v2grid{grid-template-columns:270px minmax(0,1fr) 330px;gap:28px}
}
/* DISCLOSURES + SECONDARY ACTIONS LOOK LIKE CONTROLS (founder 2026-08-28):
   "Add a link or a file", "Advanced options", "detailed form" are ghost
   pills with a chevron, not bare text */
.settings details summary{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px 0 12px;
  border:1px solid var(--line-bright);border-radius:999px;color:var(--ink2);font-size:13px;cursor:pointer;
  list-style:none;user-select:none;transition:border-color .12s,color .12s,background .12s}
.settings details summary::-webkit-details-marker{display:none}
.settings details summary::before{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg);transition:transform .15s;margin-right:2px}
.settings details[open] summary::before{transform:rotate(45deg)}
.settings details summary:hover{color:var(--ink);border-color:var(--cy);background:rgba(76,201,255,.06)}
.settings details{margin-top:var(--sp2)}
.settings details > *:not(summary){margin-top:var(--sp3)}
.actionrow #advancedLink{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line-bright);
  border-radius:999px;color:var(--ink2);font-size:13px !important;text-decoration:none;margin-left:10px !important;vertical-align:middle}
.actionrow #advancedLink:hover{color:var(--ink);border-color:var(--cy)}
body:has(main.wrap.v2) .pubhead{max-width:1480px}   /* the header follows the wide page container */

/* ---- BYO connectors panel ---- */
.connectors .byo-explainer{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:0 0 12px;font-size:13px;color:var(--ink2)}
.connectors .byo-explainer summary{cursor:pointer;min-height:40px;display:flex;align-items:center;color:var(--ink)}
.connectors .byo-explainer code{font-size:12px;color:var(--cy)}
.connectors .byo-explainer ul{margin:4px 0 0 18px;padding:0}
.conn-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.conn-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--glass)}
.conn-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.conn-meta{font-size:12px;margin:4px 0 6px}
.conn-meta .conn-url{overflow-wrap:anywhere}
.conn-row{display:flex;gap:14px;align-items:center}
.conn-row .linkbtn{min-height:36px;display:inline-flex;align-items:center}
.conn-replace-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.conn-replace-form input{flex:1 1 220px;background:var(--field);border:1px solid var(--fieldline);border-radius:10px;padding:9px 12px;color:var(--ink);font:inherit;min-height:40px}
.conn-form h4{margin:0 0 4px;font-size:14px}
@media (max-width:430px){.conn-replace-form .btn{flex:1 1 100%}}
.cell-merged{font-size:12px;margin:4px 0 2px}

/* connector hardening: safety block, consent, states, panic */
.key-safety{border:1px solid rgba(255,183,77,.45);border-left:3px solid #ffb74d;border-radius:10px;padding:8px 12px;margin:12px 0 4px;font-size:13px;color:var(--ink2)}
.key-safety ul{margin:4px 0 0 18px;padding:0}
.key-safety li{margin:2px 0}
.limit-link{color:var(--cy)}
.cap-warn{color:#ffb74d}
#cCap.warn{border-color:#ffb74d}
.ack-row{display:flex;gap:10px;align-items:flex-start;margin:12px 0 4px;font-size:12.5px;line-height:1.5;color:var(--ink2);cursor:pointer}
.ack-row input{margin:4px 0 0;width:18px;height:18px;flex:0 0 18px;accent-color:var(--cy)}
.conn-card.conn-off{opacity:.85;border-color:rgba(255,183,77,.45)}
.conn-state{white-space:normal}
.conn-panic{margin:0 0 14px}
/* BETA chip beside the Labs wordmark (labs surfaces only) */
.beta-chip{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:999px;border:1px solid var(--line-bright);color:var(--ink3);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.4;vertical-align:middle}

/* ---- HELP BOT: floating ? + compact panel (bottom sheet at 390) ---- */
#helpFab{position:fixed;right:16px;bottom:16px;z-index:80;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-bright);
  background:var(--panel);color:var(--cy);font:700 20px/1 var(--display,inherit);cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.4)}
#helpFab:hover{border-color:var(--cy)}
#helpPanel{position:fixed;right:16px;bottom:72px;z-index:81;width:min(360px,calc(100vw - 32px));max-height:min(520px,calc(100vh - 100px));
  display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-bright);border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.5);overflow:hidden}
#helpPanel[hidden]{display:none}
.hp-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px}
.hp-sub{font-size:12px;flex:1 1 auto}
.hp-close{background:transparent;border:1px solid var(--line);color:var(--ink2);border-radius:8px;width:36px;height:36px;font-size:18px;cursor:pointer}
.hp-body{flex:1 1 auto;overflow:auto;padding:10px 12px;font-size:13.5px;line-height:1.5}
.hp-line{margin:0 0 8px}
.hp-who{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin-right:6px}
.hp-line.you .hp-who{color:var(--cy)}
.hp-form{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--line)}
.hp-in{flex:1 1 auto;min-width:0;background:var(--field);border:1px solid var(--fieldline);border-radius:10px;padding:9px 12px;color:var(--ink);font:inherit;min-height:44px}
.hp-send{min-height:44px;padding:0 14px;font-size:13px}
.hp-links{font-size:12px;padding:6px 12px 10px}
.hp-fallback{font-size:13px}
.hp-fallback ul{margin:6px 0 0 18px;padding:0}
@media (max-width:720px){
  #helpFab{right:12px;bottom:12px}
  #helpPanel{left:0;right:0;bottom:0;width:100%;max-height:70vh;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom)}
}
/* ---- GUIDE / FAQ documents ---- */
.helpdoc h2{margin:26px 0 6px;font-size:20px}
.helpdoc p{margin:6px 0;line-height:1.6;color:var(--ink2)}
.gtoc{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px}
.gtoc a{font-size:12px;border:1px solid var(--line-bright);border-radius:999px;padding:6px 10px;min-height:32px;display:inline-flex;align-items:center;text-decoration:none;color:var(--cy)}
.gsec{border-top:1px solid var(--line);padding:6px 0 10px}
.illo{display:flex;gap:6px;align-items:flex-end;height:44px;margin:16px 0 0;opacity:.8}
.illo i{display:block;border-radius:6px;background:linear-gradient(135deg,rgba(76,201,255,.35),rgba(139,123,255,.35));height:100%;flex:1 1 0}
.illo i:nth-child(2){height:70%;background:linear-gradient(135deg,rgba(89,227,167,.35),rgba(76,201,255,.25))}
.illo i:nth-child(3){height:45%}
.illo-charter i{background:rgba(255,183,77,.3)}
.illo-superbrain i:nth-child(1){background:rgba(89,227,167,.45)}.illo-superbrain i:nth-child(2){background:rgba(255,200,80,.5);height:100%}
.faq{border:1px solid var(--line);border-radius:12px;padding:4px 14px;margin:8px 0;background:var(--glass)}
.faq summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700}
.faq p{margin:0 0 12px}
.newhere{margin-left:8px;text-decoration:none;color:var(--cy);border-color:rgba(76,201,255,.5)}
/* ---- FIRST-VISIT TOUR ---- */
.tour{position:fixed;inset:0;z-index:90}
.tour-ring{position:fixed;border-radius:14px;box-shadow:0 0 0 9999px rgba(3,6,14,.72),0 0 0 2px var(--cy);pointer-events:none;transition:top .25s,left .25s,width .25s,height .25s}
.tour-reduced .tour-ring{transition:none;box-shadow:0 0 0 9999px rgba(3,6,14,.72),0 0 0 3px var(--cy)}
.tour-card{position:fixed;z-index:91;width:min(360px,calc(100vw - 24px));background:var(--panel);border:1px solid var(--line-bright);border-radius:14px;padding:14px 16px;box-shadow:0 16px 48px rgba(0,0,0,.5)}
.tour-text{font-size:15px;line-height:1.45;margin-bottom:12px}
.tour-row{display:flex;align-items:center;gap:8px}
.tour-dots{display:inline-flex;gap:6px;margin-right:auto}
.tour-dots i{width:8px;height:8px;border-radius:50%;background:var(--line-bright);display:block}
.tour-dots i.on{background:var(--cy)}
.tour-skip,.tour-next{min-height:44px;padding:0 16px;font-size:14px}
.tour-bye{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:92;background:var(--panel);border:1px solid var(--line-bright);border-radius:999px;padding:10px 18px;font-weight:700}
@media (max-width:720px){
  .tour-card{left:0 !important;right:0;bottom:0 !important;top:auto !important;width:100%;border-radius:16px 16px 0 0;padding-bottom:calc(14px + env(safe-area-inset-bottom))}
}

/* ---- LABS HOME v3: five acts, then a door (2026-08-28) ---- */
:root{--act:56px}
.home3 .act{padding:var(--act) 0 0}
.home3 .act-arrive{padding-top:28px}
.home3 .arrive-line{font-size:18px;line-height:1.5;color:var(--ink2);max-width:640px;margin:10px 0 6px}
.home3 .honesty-line{font-size:13px;color:var(--ink3);margin:0 0 18px}
.home3 .honesty-line a{color:var(--cy)}
.home3 .brain{margin-top:6px}
.kicker{display:block;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:12px}
.act-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.act-head .kicker{margin:0}
.act-head .act-meta{font-size:13px}
.compute-chip{margin-left:auto;font-size:12px;color:var(--ink3);border:1px solid var(--line);border-radius:999px;padding:4px 10px;text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.compute-chip:hover{color:var(--ink);border-color:var(--line-bright)}
.tile.more{border-style:dashed;text-decoration:none;color:var(--ink2);display:flex;flex-direction:column;justify-content:center;gap:4px}
.tile.more:hover{border-color:var(--cy)}
.act-invite{text-align:center}
.act-invite .kicker{text-align:center}
.act-invite h2{font-size:30px;margin:0 0 8px}
.invite-sub{max-width:560px;margin:0 auto 18px;font-size:15px}
.idea-cta{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 34px;font-size:18px;border-radius:999px;
  box-shadow:0 0 0 1px rgba(76,201,255,.35),0 12px 40px rgba(76,201,255,.25)}
.thread-line{font-size:12.5px;margin:14px auto 0;max-width:520px}
.commons{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.commons-col{min-width:0}
.col-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.col-head h3{margin:0;font-size:16px}
.all-link{font-size:12px;text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.dlist-3{max-height:none;border:0;padding:0}
.first-line{font-size:13px;padding:10px 0}
.feed.activity li{border-bottom:1px solid var(--line);padding:8px 0}
.feed.activity li:last-child{border-bottom:0}
.act-item{color:var(--ink);text-decoration:none}
.act-item:hover{color:var(--cy)}
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.door{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--panel);text-decoration:none;color:var(--ink);min-height:110px;transition:border-color .12s,transform .12s}
.door:hover{border-color:var(--line-bright);transform:translateY(-1px)}
.door b{font-size:15px}
.door span{font-size:13px;color:var(--ink2);line-height:1.45}
.door em{font-style:normal;font-size:12px;color:var(--ink3);margin-top:auto}
.lab-foot{margin-top:var(--act);padding:22px 0 8px;border-top:1px solid var(--line)}
.foot-links{font-size:13px;margin:12px 0 4px}
.foot-public{font-size:12px;margin:0}
.subpage h1{margin-top:12px}
@media (max-width:720px){
  :root{--act:40px}
  .home3 .arrive-line{font-size:16px}
  .act-invite h2{font-size:24px}
  .commons{grid-template-columns:1fr;gap:28px}
  .doors{grid-template-columns:1fr 1fr;gap:10px}
  .door{padding:12px 14px;min-height:96px}
  .compute-chip{margin-left:0}
}
.more-slots{font-size:13px;margin:10px 0 0}
.more-slots a{color:var(--cy)}

/* contribute page rails as contained cards (founder 2026-08-28) */
.v2grid .rail{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--panel)}
.v2grid .rail h3{margin:0 0 6px}
@media (max-width:900px){.v2grid .rail-left{padding:12px 14px}}
/* contribute page: Workbench / Track maintainers / Review queue as compact cards, not full-width empty fields (founder 2026-08-28) */
#workbenchSection,#teamSection,#reviewSection{max-width:760px;margin-top:34px;border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--panel)}
#workbenchSection h2,#teamSection h2,#reviewSection h2{margin:0 0 4px;font-size:18px}
#workbenchSection > p.muted,#teamSection > p.muted{font-size:13px;margin:0 0 12px}
#workbenchSection .wb{margin:0}
#workbenchSection .wb textarea{min-height:96px;max-height:320px}
#workbenchSection .wb-out{max-height:160px}
#teamSection .labform{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
#teamSection .labform .field{min-width:0}
#teamSection .labform label{margin:0 0 4px}
#teamSection .labform input,#teamSection .labform select{min-height:44px;padding:8px 12px}
#teamSection .labform > div[style*="display:flex"]{grid-column:3;margin-top:0 !important}
#teamSection .labform .err,#teamSection .labform .ok{grid-column:1 / -1}
@media (max-width:720px){#teamSection .labform{grid-template-columns:1fr}#teamSection .labform > div[style*="display:flex"]{grid-column:1}}

/* ---- FOOTER DASHBOARD (founder 2026-08-28): grouped, big figures, matte ---- */
.dash{display:grid;grid-template-columns:4fr 4fr 3fr;gap:14px;margin:0 0 18px}
.dash-group{border:1px solid var(--line);border-radius:14px;padding:12px 14px 10px;background:var(--panel)}
.dash-group .kicker{margin-bottom:8px}
.dash-cells{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:6px 10px}
.dash-cell{display:flex;flex-direction:column;gap:2px;min-width:0}
.dash-cell b{font-size:24px;line-height:1.1;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.dash-cell span{font-size:11.5px;color:var(--ink3);line-height:1.3}
.dash-cell.live b{color:var(--cy)}
@media (max-width:900px){.dash{grid-template-columns:1fr 1fr}.dash-group:last-child{grid-column:1 / -1}}
@media (max-width:480px){.dash{grid-template-columns:1fr;gap:10px}.dash-cells{grid-template-columns:1fr 1fr}.dash-cell b{font-size:22px}}
.dlist-all{max-height:none;border:0;padding:0}
.dlist-all .dpost{padding:10px 0;font-size:14px}

/* patrol admin rows (monitor page) */
.patrol-rows{display:flex;flex-direction:column}
.patrol-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:8px 14px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.patrol-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.patrol-main span{font-size:12px}
.patrol-last{font-size:12px}
.patrol-act{display:flex;align-items:center;gap:8px;white-space:nowrap}
.patrol-said{grid-column:1 / -1}
.patrol-cad select{background:var(--field);color:var(--ink);border:1px solid var(--fieldline);border-radius:8px;padding:6px 8px;min-height:40px;margin-left:6px}
@media (max-width:720px){.patrol-row{grid-template-columns:1fr}.patrol-act{justify-content:space-between}.patrol-cad{margin-left:0 !important}}

/* BYO discoverability: door, skip-the-line link, lane chip */
.door-byo{border-color:rgba(89,227,167,.35)}
.door-byo b{color:var(--sb-green)}
.skip-line{color:var(--cy);font-weight:700;font-size:14px;text-decoration:none;min-height:40px;display:inline-flex;align-items:center}
.lane-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.lane-chip{min-height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line-bright);background:transparent;color:var(--ink2);font:inherit;font-size:12.5px;cursor:pointer}
.lane-chip.on{color:var(--cy);border-color:var(--cy);background:rgba(76,201,255,.08)}
.doors{grid-template-columns:repeat(4,1fr)}
@media (max-width:1100px){.doors{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.doors{grid-template-columns:1fr 1fr}}
.peek-sheet .peek-body{min-height:0;overflow:auto}   /* 390: a tall card must scroll inside the sheet, never cover its buttons */

/* tracks + streams: propose row + admin proposals */
.propose-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.4fr) auto auto;gap:8px;align-items:center}
.propose-row select,.propose-row input{background:var(--field);color:var(--ink);border:1px solid var(--fieldline);border-radius:10px;padding:9px 12px;font:inherit;min-height:44px;min-width:0}
.prop-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
@media (max-width:720px){.propose-row{grid-template-columns:1fr 1fr}.propose-row input{grid-column:1 / -1}}
.peek-sheet{overflow:hidden}
.peek-sheet .peek-head,.peek-sheet .peek-foot{flex:0 0 auto}
/* 390: grid children default to min-width:auto, which lets one long unbreakable run widen the layout viewport (mobile zoom-out; found 2026-08-28 via the peek sheet) */
.v2grid > *, .center > *, .commons-col > *{min-width:0}
.v2grid .rail, .v2grid .center{min-width:0;max-width:100%}
@media (max-width:430px){html,body{overflow-x:hidden}.wrap{max-width:100vw}}

/* ---- EXPLORE + STRIP + DASHBOARD polish (founder 2026-08-28) ---- */
.doors{grid-template-columns:repeat(4,1fr);gap:12px}
.door{position:relative;padding:16px 16px 14px 18px;min-height:132px;border-left:3px solid var(--line-bright);gap:4px;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent),var(--panel)}
.door:hover{border-left-color:var(--cy)}
.door-ic{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:14px;color:var(--ink3)}
.door:hover .door-ic{color:var(--cy);border-color:rgba(76,201,255,.5)}
.door b{padding-right:36px}
.door-byo{border-left-color:var(--sb-green)}
.door-byo .door-ic{color:var(--sb-green);border-color:rgba(89,227,167,.5)}
.strip-head{display:flex;align-items:baseline;justify-content:space-between;margin:18px 0 8px}
.featured{position:relative}
.featured-row{scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px;mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 48px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 48px),transparent)}
.featured-row::-webkit-scrollbar{display:none}
.ftile{border-left:3px solid var(--line-bright)}
.ftile:hover{border-left-color:var(--cy)}
.dash{grid-template-columns:repeat(3,1fr);gap:12px}
.dash-group{position:relative;padding:14px 16px 12px;overflow:hidden}
.dash-group::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--line-bright)}
.dash-group.g-now::before{background:linear-gradient(90deg,var(--cy),transparent)}
.dash-group.g-lab::before{background:linear-gradient(90deg,#8B7BFF,transparent)}
.dash-group.g-people::before{background:linear-gradient(90deg,var(--sb-green),transparent)}
.dash-group .kicker{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.dash-cells{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.g-people .dash-cells{grid-template-columns:1fr 1fr 1fr}
.dash-cell{padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.025)}
.dash-cell b{font-size:26px}
.dash-cell span{font-size:11.5px;margin-top:2px}
.g-now .dash-cell.live b{color:var(--cy)}
.g-lab .dash-cell b{color:#c9c2ff}
.g-people .dash-cell b{color:#bff0dc}
@media (max-width:1100px){.doors{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.dash{grid-template-columns:1fr 1fr}.dash-group.g-people{grid-column:1 / -1}.g-people .dash-cells{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:720px){.doors{grid-template-columns:1fr 1fr}.door{min-height:110px;padding:12px 12px 12px 14px}.door-ic{top:10px;right:10px;width:24px;height:24px;font-size:12px}}
@media (max-width:480px){.dash{grid-template-columns:1fr}.dash-cells{grid-template-columns:1fr 1fr}.g-people .dash-cells{grid-template-columns:1fr 1fr}.dash-cell b{font-size:24px}}

/* a disabled button LOOKS disabled and takes no clicks (founder 2026-08-28: Generating... looked clickable) */
.btn[disabled],button[disabled].btn,.btn[aria-busy="true"]{opacity:.5;cursor:not-allowed;pointer-events:none;filter:saturate(.6);transform:none}


/* TOUCH-SAFE INTERACTIONS (founder mobile round 2026-08-29; closes the class
   behind the logout chip, the thread-delete icon and the plugin gallery).
   On a phone every interactive element is at least 44px tall: buttons,
   chips, summaries, selects, nav links, and inline text links (padding on
   an inline box extends its hit area without moving the line). Nothing here
   depends on hover - hover rules in this file are cosmetic only. */
@media (max-width: 600px) {
  button, .btn, .chipbtn, summary, select, .pubnav a, .brand, [role="button"] {
    min-height: 44px;
  }
  .chipbtn, .btn { padding-top: 10px; padding-bottom: 10px; }
  summary, .settings details summary, details > summary { display: flex; align-items: center; min-height: 44px; box-sizing: border-box; }
  main p a:not(.btn), main li a:not(.btn), main .prov a, main .meta a, main .muted a,
  main .all-link, main .foot a, main .limit-link, main span > a:not(.btn) {
    padding-top: 12px; padding-bottom: 12px;
  }
  .all-link { display: inline-flex; align-items: center; min-height: 44px; padding-top: 0; padding-bottom: 0; }
  input[type="checkbox"]:not(.switch), input[type="radio"] { width: 24px; height: 24px; }
  label:has(> input[type="checkbox"]), label:has(> input[type="radio"]), label.toggle, .kindopt { min-height: 44px; display: inline-flex; align-items: center; }
  .tile[role="button"] { cursor: pointer; }
}

/* ---- what the agents wrote, under an idea (founder ask 2026-09-12) ----
   Collapsed by default: the card summarises, these hold the research
   itself. <details> so it works without JS once rendered and keyboard
   users get open/close for free. */
.iv-agents { margin-top: 18px; }
.iv-agents-h { font-size: 13px; font-weight: 600; color: var(--muted, #a7b0bf);
  margin: 0 0 8px; letter-spacing: .02em; }
.iv-agent { border: 1px solid var(--line, #202a42); border-radius: 10px;
  background: var(--card, #111828); margin-bottom: 8px; overflow: hidden; }
.iv-agent > summary { cursor: pointer; padding: 11px 13px; font-size: 13px;
  line-height: 1.45; list-style: none; display: flex; flex-wrap: wrap;
  gap: 6px; align-items: baseline; min-height: 44px; box-sizing: border-box; }
.iv-agent > summary::-webkit-details-marker { display: none; }
.iv-agent > summary::after { content: "\25be"; margin-left: auto;
  color: var(--muted, #a7b0bf); transition: transform .15s ease; }
.iv-agent[open] > summary::after { transform: rotate(180deg); }
.iv-agent > summary:hover { background: rgba(255,255,255,.03); }
.iv-agent-body { padding: 0 13px 12px; font-size: 14px; line-height: 1.6;
  white-space: normal; word-break: break-word; }
.iv-agent-src { padding: 0 13px 11px; margin: 0; font-size: 12px; }
@media (max-width: 700px) {
  .iv-agent > summary { padding: 12px 11px; }
  .iv-agent-body { padding: 0 11px 12px; }
}

/* ---- ONE DISCLOSURE LANGUAGE (founder QA 2026-09-12) ------------------
   Three surfaces expanded on click and none of them looked like it
   would: the attempt card head had no marker at all, and the Superbrain
   <details> were a bare 13px line with no padding, no hover and a
   default triangle - a target easy to miss entirely. Same chevron, same
   hover, same 44px target everywhere something opens. */
.card-head::after,
.step-head::after {
  content: "";
  margin-left: auto;
  width: 7px; height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform .15s ease;
  opacity: .55;
  flex: 0 0 auto;
}
.card-head[aria-expanded="true"]::after,
.step-head[aria-expanded="true"]::after {
  transform: rotate(225deg) translate(-2px, -2px);
  opacity: .9;
}
.card-head { min-height: 44px; padding: 4px 0; }
.card-head:hover .ttl { color: #4CC9FF; }
.step-head:hover { background: rgba(255,255,255,.04); }

/* the Superbrain disclosures: a real target, not a bare line */
#sbFormula, #sbRubric { margin-top: 6px; }
.sb-card details > summary,
details.sb-disclose > summary {
  display: flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 6px 0; cursor: pointer;
  list-style: none;
}
.sb-card details > summary::-webkit-details-marker,
details.sb-disclose > summary::-webkit-details-marker { display: none; }
.sb-card details > summary::before,
details.sb-disclose > summary::before {
  content: "";
  width: 7px; height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
  transition: transform .15s ease;
  flex: 0 0 auto;
}
.sb-card details[open] > summary::before,
details.sb-disclose[open] > summary::before { transform: rotate(45deg); }
.sb-card details > summary:hover,
details.sb-disclose > summary:hover { color: var(--ink); }

/* a bookkeeping step holds no transcript: say so instead of inviting a
   click that reveals "this step has no model tokens" (founder QA
   2026-09-12). Still openable; just not advertised as full. */
.step-bare-note { font-size: 11px; color: var(--ink3, #6b7484);
  border: 1px solid var(--line, #202a42); border-radius: 999px;
  padding: 1px 7px; white-space: nowrap; }
.step-bare .step-head::after { opacity: .22; }

/* the research under a Superbrain cell (founder QA 2026-09-12): an idea
   cell is the ASK; the answer used to be a page away. */
.cell-research { margin-top: 8px; border-top: 1px solid var(--line, #202a42);
  padding-top: 2px; }
.cell-research-body { padding-bottom: 6px; }
.cell-research-item { padding: 8px 0; border-bottom: 1px solid
  rgba(255,255,255,.05); }
.cell-research-item:last-child { border-bottom: 0; }

/* PRIVATE LAB ACCESS (Robotics Lab round 2026-09-17), 390px first */
.access-page .acc-row{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}
.access-page .acc-row input{flex:1 1 220px;min-width:0;min-height:44px;
  padding:0 12px;border-radius:10px;border:1px solid var(--fieldline);
  background:var(--field);color:var(--ink);font:inherit}
.access-page .acc-row .btn{min-height:44px}
.access-page .acc-list{list-style:none;padding:0;margin:18px 0}
.access-page .acc-list li{display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:8px;padding:8px 0;
  border-bottom:1px solid var(--line)}
.access-page .acc-email{overflow-wrap:anywhere}
.access-page .acc-remove{min-height:44px}
.labs-manage-access{display:inline-flex;align-items:center;min-height:44px;
  margin-left:10px}
