/* ===========================================================
   Mission Control — Theater Command Center
   Self-contained. System fonts only, no external assets.
   Owns only .tc-* selectors and --tc-* tokens so it can be
   loaded without command.css / starnet.css.
   =========================================================== */

:root{
  --tc-bg:        #090c11;
  --tc-sunk:      #060810;
  --tc-surface:   #11161d;
  --tc-surface-2: #161c25;
  --tc-surface-3: #1c242f;
  --tc-line:      #232c38;
  --tc-line-soft: #1a212b;

  --tc-ink:   #e6ecf3;
  --tc-ink-2: #a7b4c4;
  --tc-ink-3: #6f7f92;
  --tc-ink-4: #4d5b6b;

  --tc-live:     #2fd8c6;
  --tc-live-dim: #0f3f3c;
  --tc-warn:     #f0b429;
  --tc-warn-dim: #41310c;
  --tc-bad:      #ff6b6b;
  --tc-bad-dim:  #44191d;
  --tc-good:     #6fcf7f;
  --tc-good-dim: #16321d;
  --tc-info:     #74a8ff;
  --tc-info-dim: #152a4b;
  --tc-done:     #8fa6c4;
  --tc-done-dim: #1b2634;
  --tc-oper:     #b7a6ff;
  --tc-oper-dim: #241e42;

  --tc-focus: #6fd3ff;

  --tc-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --tc-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --tc-r: 6px;
  --tc-rail-w: 184px;
  --tc-top-h: 44px;
  --tc-tap: 28px;          /* desktop control height; 44px on touch widths */

  /* per-kind accent, set on [data-kind] below */
  --tc-kind: var(--tc-ink-3);
}

/* A single quiet entrance cues the active planning step. Static supporting
   information does not animate or compete for attention. */
@media (prefers-reduced-motion:no-preference){
  .tc-guided-next,.tc-planning-tier.is-current-tier{ animation:tc-enter .2s ease-out both; }
  @keyframes tc-enter{ from{ opacity:0; transform:translateY(6px) } to{ opacity:1; transform:none } }
}
.tc-card{ transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.tc-card:hover{ transform:translateY(-1px); box-shadow:0 8px 24px rgba(0,0,0,.24),inset 0 1px 0 rgba(47,216,198,.06); }
.tc-product-chips{ gap:5px; }
.tc-product-chip{ display:inline-flex;padding:2px 7px;border:1px solid var(--tc-line);border-radius:999px;font:9.5px var(--tc-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--tc-ink-2);background:var(--tc-surface-2); }
.tc-product-chip[data-tone="stage"]{ border-color:#285858;color:#9ee9e1; }
.tc-product-chip[data-tone="health"][data-value="On Track"]{ border-color:#285d35;color:#9be3a7; }
.tc-product-chip[data-tone="health"][data-value="At Risk"],.tc-product-chip[data-tone="health"][data-value="Blocked"]{ border-color:#705621;color:#f6d58a; }
.tc-product-scan{ display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--tc-line-soft);border:1px solid var(--tc-line-soft);border-radius:6px;overflow:hidden; }
.tc-scan-metric{ min-width:0;padding:8px;background:var(--tc-surface);display:flex;flex-direction:column;gap:2px; }
.tc-scan-metric strong{ font-size:12px;font-weight:550;line-height:1.3;overflow-wrap:anywhere; }
.tc-scan-k,.tc-eyebrow{ font:9px var(--tc-mono);letter-spacing:.13em;text-transform:uppercase;color:var(--tc-ink-4); }
.tc-command-bar{ border:1px solid #245e5a;border-radius:8px;background:linear-gradient(110deg,rgba(47,216,198,.09),transparent 40%),var(--tc-surface);padding:12px; }
.tc-command-objective{ display:flex;flex-direction:column;gap:3px; }
.tc-command-objective h2{ margin:0;font:inherit;font-family:var(--tc-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--tc-live); }
.tc-command-objective strong{ font-size:16px;line-height:1.3; }
.tc-command-metrics{ display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--tc-line);border-radius:6px;overflow:hidden; }
.tc-command-progress{ min-width:0;padding:8px;background:var(--tc-surface); }
.tc-command-progress .tc-bar-wrap{ margin-top:5px; }
.tc-attention{ border:1px solid #4d3d18;border-radius:8px;padding:10px;background:linear-gradient(90deg,rgba(240,180,41,.08),transparent),var(--tc-surface); }
.tc-attention>.tc-eyebrow{ margin:0 0 7px;color:var(--tc-warn); }
.tc-attention-row{ display:flex;gap:7px;overflow-x:auto;scrollbar-width:thin;padding-bottom:1px; }
.tc-attention-item{ flex:0 1 320px;min-width:190px;display:flex;flex-direction:column;padding:7px 9px;border-left:2px solid var(--tc-warn);background:var(--tc-surface-2); }
.tc-attention-item span,.tc-attention-clear{ color:var(--tc-ink-2);font-size:11px;margin:0; }
.tc-scorecards{ display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px; }
.tc-scorecard{ min-width:0;padding:10px;border:1px solid var(--tc-line);border-top-color:var(--tc-live-dim);border-radius:6px;background:var(--tc-surface-2); }
.tc-scorecard strong{ display:block;margin:5px 0;font-size:13px;overflow-wrap:anywhere; }.tc-scorecard p{ margin:0;color:var(--tc-ink-3);font-size:11px; }
.tc-launch-flow{ display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px; }
.tc-launch-step{ min-width:0;position:relative;padding:10px;border:1px solid #285858;border-radius:6px;background:linear-gradient(135deg,rgba(47,216,198,.07),transparent); }
.tc-launch-step:not(:last-child)::after{ content:"›";position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:var(--tc-live); }
.tc-launch-step strong{ display:block;margin-top:5px;font-size:12px;overflow-wrap:anywhere; }.tc-launch-step.is-leak{ border-color:#73561c;background:rgba(240,180,41,.05); }
.tc-econ-grid,.tc-command-center{ display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--tc-line); }
.tc-command-center{ grid-template-columns:repeat(3,minmax(0,1fr)); }.tc-legacy>.tc-panel-body{ display:flex;flex-direction:column;gap:10px;background:var(--tc-sunk); }
.tc-dialog{ width:min(680px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:0;border:1px solid #28645f;border-radius:10px;background:var(--tc-surface);color:var(--tc-ink);box-shadow:0 24px 90px #000; }
.tc-dialog::backdrop{ background:rgba(2,5,9,.76);backdrop-filter:blur(3px); }.tc-dialog-card{ display:flex;flex-direction:column;max-height:calc(100vh - 30px); }
.tc-dialog-head,.tc-dialog-actions{ display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--tc-line); }.tc-dialog-head h2{ margin:0;font-size:15px; }.tc-dialog-body{ overflow:auto;padding:14px; }.tc-dialog-lead{ margin:0 0 12px;color:var(--tc-ink-2); }
.tc-dialog-actions{ justify-content:flex-end;border:0;border-top:1px solid var(--tc-line); }.tc-review-facts{ display:grid;grid-template-columns:140px minmax(0,1fr);margin:0;background:var(--tc-sunk);border:1px solid var(--tc-line); }.tc-review-facts dt,.tc-review-facts dd{ margin:0;padding:7px 9px;border-bottom:1px solid var(--tc-line-soft); }.tc-review-facts dt{ color:var(--tc-ink-3);font:10px var(--tc-mono);text-transform:uppercase; }.tc-review-notices{ margin-top:10px;padding:9px;border-left:2px solid var(--tc-warn);background:var(--tc-warn-dim); }.tc-review-notices[data-tone="bad"]{ border-color:var(--tc-bad);background:var(--tc-bad-dim); }.tc-review-notices h3{ margin:0 0 5px;font-size:11px;text-transform:uppercase; }.tc-review-notices ul{ margin:0;padding-left:18px; }.tc-safe-boundary{ display:flex;flex-direction:column;gap:3px;margin-top:10px;padding:9px;border:1px solid #285858;background:var(--tc-live-dim);color:#b9e8e2; }
@media(max-width:1100px){ .tc-command-metrics{ grid-template-columns:repeat(3,minmax(0,1fr)); }.tc-scorecards{ grid-template-columns:repeat(3,minmax(0,1fr)); }.tc-econ-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:720px){ .tc-product-scan,.tc-command-metrics,.tc-scorecards,.tc-launch-flow,.tc-econ-grid,.tc-command-center{ grid-template-columns:1fr; }.tc-launch-step:not(:last-child)::after{ content:"⌄";right:auto;left:50%;top:auto;bottom:-16px; }.tc-command-bar{ position:relative;top:auto; }.tc-review-facts{ grid-template-columns:105px minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce){ *,*::before,*::after{ scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important; } .tc-card:hover{ transform:none; } }

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }

html,body{ margin:0; padding:0; height:100%; }
body{
  background:var(--tc-bg);
  color:var(--tc-ink);
  font-family:var(--tc-sans);
  font-size:14px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  overflow:hidden;            /* only .tc-main scrolls */
}
body.tc-booting{ background:var(--tc-sunk); }

.tc-mono{ font-family:var(--tc-mono); font-variant-numeric:tabular-nums; }
button,input,select,textarea{ font:inherit; color:inherit; }
:focus-visible{ outline:2px solid var(--tc-focus); outline-offset:2px; border-radius:3px; }

/* ---------------- kind accents ---------------- */
[data-kind="theater"]      { --tc-kind:#2fd8c6; }
[data-kind="pmesiipt"]     { --tc-kind:#74a8ff; }
[data-kind="actor"]        { --tc-kind:#ff9f6b; }
[data-kind="wargame"]      { --tc-kind:#9d8cff; }
[data-kind="campaign"]     { --tc-kind:#f0b429; }
[data-kind="operation"]    { --tc-kind:#6fcf7f; }
[data-kind="phase"]        { --tc-kind:#5fb8d8; }
[data-kind="subphase"]     { --tc-kind:#7fa0c0; }
[data-kind="mission"]      { --tc-kind:#ffd479; }
[data-kind="missionobjective"] { --tc-kind:#ff9fcf; }
[data-kind="task"]         { --tc-kind:#c9d6e4; }
[data-kind="contingency"]  { --tc-kind:#ff6b6b; }
[data-kind="logistics"]    { --tc-kind:#c7a878; }
[data-kind="intelligence"] { --tc-kind:#8fd5ff; }
[data-kind="force"]        { --tc-kind:#b7a6ff; }

/* ===========================================================
   LOGIN GATE
   =========================================================== */
.tc-gate{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center; padding:24px;
  background:
    radial-gradient(900px 480px at 50% 0%, #0d1420 0%, transparent 70%),
    var(--tc-sunk);
}
.tc-gate-card{ width:100%; max-width:300px; display:flex; flex-direction:column; gap:10px; }
.tc-gate-brand{
  margin:0 0 6px; font-size:11px; letter-spacing:.22em; color:var(--tc-ink-2);
  display:flex; flex-direction:column; gap:3px;
}
.tc-gate-brand span{ font-size:9.5px; letter-spacing:.18em; color:var(--tc-live); opacity:.8; text-transform:uppercase; }
.tc-gate-label{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--tc-ink-3); }
.tc-gate-input{
  width:100%; padding:11px 12px; background:var(--tc-surface);
  border:1px solid var(--tc-line); border-radius:var(--tc-r); color:var(--tc-ink);
  font-family:var(--tc-mono); font-size:15px; letter-spacing:.08em;
}
.tc-gate-input:focus{ border-color:var(--tc-focus); }
.tc-gate.is-error .tc-gate-input{ border-color:var(--tc-bad); }
.tc-gate-btn{
  min-height:44px; padding:10px 12px; border:1px solid #1d6b64;
  background:var(--tc-live-dim); color:#9ff0e6; border-radius:var(--tc-r);
  cursor:pointer; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
}
.tc-gate-btn:hover{ background:#14544f; }
.tc-gate-btn[disabled]{ opacity:.5; cursor:default; }
.tc-gate-err{
  margin:0; font-size:12px; color:var(--tc-bad); background:var(--tc-bad-dim);
  border:1px solid #5d2328; border-radius:var(--tc-r); padding:8px 10px;
}

/* ===========================================================
   SHELL
   =========================================================== */
.tc-app{
  height:100%;
  display:grid;
  grid-template-rows:var(--tc-top-h) auto minmax(0,1fr);
}

.tc-top{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:0 12px; background:var(--tc-sunk);
  border-bottom:1px solid var(--tc-line);
}
.tc-top-id{ display:flex; align-items:baseline; gap:9px; min-width:0; }
.tc-brand{ font-size:11.5px; letter-spacing:.2em; font-weight:600; white-space:nowrap; }
.tc-brand-sub{
  font-family:var(--tc-mono); font-size:10px; color:var(--tc-live); opacity:.75;
  letter-spacing:.14em; text-transform:uppercase;
}
.tc-top-state{ display:flex; align-items:center; gap:7px; min-width:0; }
.tc-top-meta{ font-size:10.5px; color:var(--tc-ink-4); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.tc-btn{
  min-height:var(--tc-tap);
  padding:4px 9px; border-radius:var(--tc-r);
  border:1px solid var(--tc-line); background:var(--tc-surface-2);
  color:var(--tc-ink-2); cursor:pointer; font-size:11px;
  letter-spacing:.04em; white-space:nowrap;
}
.tc-btn:hover{ background:var(--tc-surface-3); color:var(--tc-ink); }
.tc-btn-ghost{ background:transparent; }
.tc-btn-accent{ border-color:#1d6b64; background:var(--tc-live-dim); color:#9ff0e6; }
.tc-btn-accent:hover{ background:#14544f; }
.tc-btn-danger{ border-color:#5d2328; background:var(--tc-bad-dim); color:#ffb3b3; }
.tc-btn[disabled]{ opacity:.45; cursor:default; }
.tc-btn[aria-pressed="true"]{ border-color:var(--tc-live); color:#9ff0e6; background:var(--tc-live-dim); }
.tc-btn-accent,.tc-ai-action{ position:relative;overflow:hidden;box-shadow:0 0 0 1px rgba(47,216,198,.08),0 0 18px rgba(47,216,198,.07); }
.tc-btn-accent::after,.tc-ai-action::after{content:"";position:absolute;inset:-2px;transform:translateX(-110%);background:linear-gradient(100deg,transparent,rgba(255,255,255,.14),transparent);transition:transform .45s ease;pointer-events:none}.tc-btn-accent:hover::after,.tc-ai-action:hover::after{transform:translateX(110%)}

/* Guided planning spine */
.tc-goal-stack{border:1px solid #285858;border-radius:9px;padding:11px;background:radial-gradient(700px 100px at 0 0,rgba(47,216,198,.12),transparent),var(--tc-surface);overflow:hidden}
.tc-goal-stack-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;font:10px var(--tc-mono);letter-spacing:.14em;color:var(--tc-live)}.tc-goal-stack-head h2{margin:0;font:inherit;text-transform:uppercase}.tc-goal-stack-head span{letter-spacing:0;color:var(--tc-ink-3)}
.tc-goal-track{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:6px;overflow-x:auto;padding-bottom:3px}.tc-goal-step{position:relative;min-height:70px;padding:8px;text-align:left;border:1px solid var(--tc-line);border-radius:6px;background:var(--tc-surface-2);color:var(--tc-ink-3)}.tc-goal-step:not(:last-child)::after{content:"";position:absolute;right:-7px;top:50%;width:7px;border-top:1px solid var(--tc-line)}.tc-goal-step.is-ready{cursor:pointer;border-color:color-mix(in srgb,var(--tc-kind) 50%,var(--tc-line));color:var(--tc-ink)}.tc-goal-step.is-ready:hover{transform:translateY(-1px);background:var(--tc-surface-3)}.tc-goal-step.is-current{border-color:var(--tc-live);background:linear-gradient(135deg,var(--tc-live-dim),var(--tc-surface-2));color:var(--tc-ink);box-shadow:0 0 18px rgba(47,216,198,.14)}.tc-goal-step.is-current small{color:var(--tc-live)}.tc-goal-step.is-locked{opacity:.48}.tc-goal-step-n{display:block;margin-bottom:5px;font:9px var(--tc-mono);color:var(--tc-kind)}.tc-goal-step strong,.tc-goal-step small{display:block}.tc-goal-step strong{font-size:10px;line-height:1.25}.tc-goal-step small{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--tc-ink-3)}

/* Theatre builder */
.tc-wizard{width:min(820px,calc(100vw - 24px))}.tc-wizard-progress{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid var(--tc-line);background:var(--tc-sunk)}.tc-wizard-progress span{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--tc-line);border-radius:50%;font:10px var(--tc-mono);color:var(--tc-ink-4)}.tc-wizard-progress span.is-current{border-color:var(--tc-live);color:var(--tc-live);box-shadow:0 0 16px rgba(47,216,198,.25)}.tc-wizard-progress span.is-done{border-color:#285858;background:var(--tc-live-dim);color:#9ff0e6}.tc-wizard-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.tc-wizard-field>span{font:10px var(--tc-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--tc-ink-3)}.tc-ai-boundary{display:flex;gap:8px;padding:9px;border:1px solid #31486a;border-radius:6px;background:linear-gradient(100deg,rgba(116,168,255,.1),transparent);color:#bed4fb;font-size:11px}.tc-ai-boundary b{flex:none;color:#8fd5ff}.tc-delete-warning{padding:10px;border-left:3px solid var(--tc-bad);background:var(--tc-bad-dim);color:#ffc1c1;font-weight:650}
.tc-deleted-list{display:flex;flex-direction:column}.tc-deleted-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border-bottom:1px solid var(--tc-line-soft)}.tc-deleted-row:last-child{border-bottom:0}.tc-deleted-row>div{display:flex;flex-direction:column;gap:2px}.tc-deleted-row span,.tc-deleted-row>.tc-mono{font-size:10px;color:var(--tc-ink-3)}

@media(max-width:760px){.tc-top-meta{display:none}.tc-top{padding:4px 8px;height:auto;min-height:var(--tc-top-h);flex-wrap:wrap}.tc-brand{font-size:10px}.tc-top-state{gap:4px;overflow-x:auto;max-width:100%}.tc-top-state .tc-btn{min-height:40px}.tc-goal-track{grid-template-columns:repeat(7,150px)}.tc-goal-stack-head{align-items:flex-start;flex-direction:column}.tc-screen-h{align-items:flex-start}.tc-btn-launch{min-height:44px}.tc-deleted-row{align-items:flex-start;flex-direction:column}}

/* ---------------- correlation bar ---------------- */
.tc-corr{
  background:
    linear-gradient(180deg, rgba(47,216,198,.05), transparent 70%),
    var(--tc-surface);
  border-bottom:1px solid var(--tc-line);
  box-shadow:0 1px 0 rgba(47,216,198,.22), 0 8px 18px -14px #000;
  padding:7px 12px 6px;
  z-index:40;
}
.tc-corr-main{ display:flex; align-items:baseline; gap:9px; min-width:0; }
.tc-corr-theater{
  display:flex; align-items:baseline; gap:7px; flex:none; max-width:42%;
  background:transparent; border:0; padding:0; cursor:pointer; text-align:left;
  color:inherit; min-width:0;
}
.tc-corr-theater:hover .tc-corr-name{ color:var(--tc-live); }
.tc-corr-k{
  font-family:var(--tc-mono); font-size:9px; letter-spacing:.18em;
  color:var(--tc-live); opacity:.75; flex:none;
}
.tc-corr-name{
  font-size:15px; font-weight:600; letter-spacing:.01em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tc-corr-sep{ color:var(--tc-ink-4); flex:none; font-size:11px; }
.tc-corr-goal{
  margin:0; flex:1 1 auto; min-width:0;
  font-size:12.5px; color:var(--tc-ink-2);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.tc-corr-side{ flex:none; display:flex; align-items:center; gap:6px; }

.tc-crumbs{
  display:flex; align-items:center; gap:2px; flex-wrap:wrap;
  margin-top:5px; min-height:17px;
}
.tc-crumb{
  display:inline-flex; align-items:center; gap:5px;
  background:transparent; border:0; border-radius:3px;
  padding:2px 5px; cursor:pointer;
  font-size:11px; color:var(--tc-ink-3); max-width:230px;
}
.tc-crumb:hover{ background:var(--tc-surface-3); color:var(--tc-ink); }
.tc-crumb[aria-current="true"]{ color:var(--tc-ink); background:var(--tc-surface-2); }
.tc-crumb-k{
  font-family:var(--tc-mono); font-size:8.5px; letter-spacing:.1em;
  color:var(--tc-kind); text-transform:uppercase; flex:none;
}
.tc-crumb-t{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tc-crumb-arrow{ color:var(--tc-ink-4); font-size:9px; flex:none; }

/* ---------------- body / rail / main ---------------- */
.tc-body{
  display:grid; grid-template-columns:var(--tc-rail-w) minmax(0,1fr);
  min-height:0;
}
.tc-rail{
  display:flex; flex-direction:column; gap:1px;
  padding:10px 8px; background:var(--tc-sunk);
  border-right:1px solid var(--tc-line); overflow:auto;
}
.tc-rail-btn{
  display:flex; align-items:center; gap:9px; min-height:var(--tc-tap);
  padding:6px 9px; border:0; border-radius:var(--tc-r);
  background:transparent; color:var(--tc-ink-3); cursor:pointer;
  text-align:left; width:100%;
}
.tc-rail-btn:hover{ background:var(--tc-surface); color:var(--tc-ink-2); }
.tc-rail-btn[aria-current="true"]{
  background:var(--tc-surface-2); color:var(--tc-ink);
  box-shadow:inset 2px 0 0 var(--tc-live);
}
.tc-rail-k{ font-family:var(--tc-mono); font-size:10px; color:var(--tc-ink-4); flex:none; }
.tc-rail-btn[aria-current="true"] .tc-rail-k{ color:var(--tc-live); }
.tc-rail-t{ font-size:13px; flex:1 1 auto; }
.tc-rail-badge{
  font-family:var(--tc-mono); font-size:10px; padding:0 5px; border-radius:999px;
  background:var(--tc-warn-dim); color:#f6d58a; border:1px solid var(--tc-warn); flex:none;
}

.tc-main{
  min-width:0; min-height:0; overflow-y:auto; overflow-x:hidden;
  padding:14px; display:flex; flex-direction:column; gap:12px;
  -webkit-overflow-scrolling:touch;
}
.tc-main > *{ flex-shrink:0; }
.tc-main:focus{ outline:none; }

/* ===========================================================
   PANELS / COMMON
   =========================================================== */
.tc-panel{
  background:var(--tc-surface); border:1px solid var(--tc-line);
  border-radius:8px; overflow:hidden;
}
.tc-panel-h{
  margin:0; padding:8px 11px;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--tc-ink-3); font-weight:700;
  background:var(--tc-surface-2); border-bottom:1px solid var(--tc-line);
}
.tc-disclosure > summary{ cursor:pointer; list-style:none; }
.tc-disclosure > summary::-webkit-details-marker{ display:none; }
.tc-disclosure > summary::before{ content:"▾"; color:var(--tc-kind); font-size:12px; transition:transform .15s ease; }
.tc-disclosure:not([open]) > summary::before{ transform:rotate(-90deg); }
.tc-disclosure:not([open]) > summary{ border-bottom:0; }
.tc-panel-h .tc-kindmark{ color:var(--tc-kind); }
.tc-panel-note{
  margin-left:auto; display:flex; align-items:center; gap:6px;
  font-size:10px; letter-spacing:.04em; text-transform:none; color:var(--tc-ink-4);
  font-weight:400;
}
.tc-panel-body{ padding:10px 11px; }
.tc-panel-body-flush{ padding:0; }

/* Every collection is partitioned by the API's status ladder. */
.tc-status-groups{ display:flex; flex-direction:column; gap:12px; min-width:0; }
.tc-status-groups--rows{ gap:0; }
.tc-status-group{ min-width:0; }
.tc-status-group-h{
  display:flex; align-items:center; gap:7px; min-height:30px;
  padding:6px 10px; border:1px solid var(--tc-line-soft);
  border-radius:6px 6px 0 0; background:var(--tc-sunk);
  color:var(--tc-ink-3); font-family:var(--tc-mono); font-size:10px;
  letter-spacing:.08em; text-transform:uppercase;
}
.tc-status-group-dot{ width:7px; height:7px; border-radius:50%; flex:none; background:var(--tc-ink-4); }
.tc-status-group-dot[data-tone="good"]{ background:var(--tc-good); }
.tc-status-group-dot[data-tone="warn"]{ background:var(--tc-warn); }
.tc-status-group-dot[data-tone="bad"]{ background:var(--tc-bad); }
.tc-status-group-dot[data-tone="info"]{ background:var(--tc-live); }
.tc-status-group-title{ color:var(--tc-ink-2); font-weight:700; overflow-wrap:anywhere; }
.tc-status-group-count{
  margin-left:auto; min-width:20px; padding:1px 6px; border-radius:999px;
  text-align:center; background:var(--tc-surface-3); color:var(--tc-ink-3);
}
.tc-status-group .tc-cards{ padding-top:8px; }
.tc-status-groups--rows .tc-status-group-h{ border-left:0; border-right:0; border-radius:0; }
.tc-status-groups--rows .tc-status-group:first-child .tc-status-group-h{ border-top:0; }
.tc-status-groups--rows .tc-rows{ border-bottom:1px solid var(--tc-line-soft); }

/* The Theatre reads as a planning sequence; child collections stay in the
   main reading column and supporting panels follow it in DOM order. */
.tc-main--detail .tc-guided-next{ border-color:#2d7770;box-shadow:0 0 0 1px rgba(47,216,198,.08),0 12px 32px -24px rgba(47,216,198,.35); }
.tc-main--detail .tc-guided-next>.tc-panel-h{ background:linear-gradient(90deg,rgba(47,216,198,.16),var(--tc-surface-2) 60%); }
.tc-planning-tier>.tc-panel-h{ min-height:38px; }
.tc-planning-tier>.tc-panel-h .tc-kindmark{ font-size:11px; }
.tc-planning-nested{ margin:10px;border-color:var(--tc-line-soft);background:var(--tc-sunk); }
.tc-planning-nested>.tc-panel-h{ background:var(--tc-sunk); }
.tc-planning-parent{ display:block;margin-top:3px;color:var(--tc-ink-3);font:10px/1.4 var(--tc-mono);overflow-wrap:anywhere; }
.tc-planning-tier .tc-status-group{ border-bottom:1px solid var(--tc-line-soft); }
.tc-planning-tier .tc-status-group:last-child{ border-bottom:0; }
.tc-planning-tier .tc-status-group-h{ min-height:34px; }

.tc-empty{
  margin:0; padding:12px 11px; font-size:12px; color:var(--tc-ink-4);
}
.tc-screen-h{
  display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap;
  margin:0;
}
.tc-screen-t{ margin:0; font-size:17px; letter-spacing:.02em; font-weight:600; }
.tc-screen-s{ margin:0; font-size:12px; color:var(--tc-ink-4); }

.tc-usage{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 14px;
  padding:8px 11px; border:1px solid #315a72; border-radius:var(--tc-r);
  background:var(--tc-info-dim); color:var(--tc-ink-2); font-size:12px;
}
.tc-usage b{
  color:#9fc4ff; font-family:var(--tc-mono); font-size:9.5px;
  letter-spacing:.14em;
}
.tc-usage strong{ color:var(--tc-ink); font-weight:600; }

.tc-toolbar{
  display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap;
  padding:9px 11px; background:var(--tc-surface);
  border:1px solid var(--tc-line); border-radius:8px;
}
.tc-field{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.tc-field-l{ font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--tc-ink-4); }
.tc-input{
  min-height:var(--tc-tap);
  padding:5px 8px; background:var(--tc-surface-2);
  border:1px solid var(--tc-line); border-radius:var(--tc-r);
  color:var(--tc-ink); font-size:12.5px; max-width:100%;
}
.tc-input:focus{ border-color:var(--tc-focus); outline:none; }
.tc-textarea{ resize:vertical; min-height:68px; font-size:12.5px; line-height:1.5; width:100%; }
.tc-count{ margin-left:auto; font-family:var(--tc-mono); font-size:11px; color:var(--tc-ink-4); }

/* ---------------- status chip ---------------- */
.tc-chip{
  display:inline-flex; align-items:center; gap:5px;
  min-height:var(--tc-tap);
  padding:2px 8px; border-radius:999px; cursor:pointer;
  font-family:var(--tc-mono); font-size:10.5px; letter-spacing:.04em;
  border:1px solid var(--tc-line); background:var(--tc-surface-2); color:var(--tc-ink-2);
  max-width:100%;
}
.tc-chip:hover{ border-color:var(--tc-ink-4); color:var(--tc-ink); }
.tc-chip-t{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tc-chip::before{
  content:""; width:6px; height:6px; border-radius:50%; flex:none;
  background:currentColor; opacity:.9;
}
.tc-chip[data-tone="good"]{ color:#9ff0e6; border-color:#1d6b64; background:var(--tc-live-dim); }
.tc-chip[data-tone="warn"]{ color:#f6d58a; border-color:#7a5f16; background:var(--tc-warn-dim); }
.tc-chip[data-tone="bad"]{ color:#ffb3b3; border-color:#5d2328; background:var(--tc-bad-dim); }
.tc-chip[data-tone="done"]{ color:#c3d2e6; border-color:#33465d; background:var(--tc-done-dim); }
.tc-chip[data-tone="neutral"]{ color:var(--tc-ink-2); }
.tc-chip[data-empty="1"]{ color:var(--tc-ink-4); border-style:dashed; }
/* An unverified label was proposed by this build, not read from 3P. */
.tc-chip[data-observed="0"]{ border-style:dashed; }
.tc-chip-unv{
  font-size:8.5px; letter-spacing:.1em; padding:0 4px; border-radius:2px;
  background:var(--tc-oper-dim); color:#cdbfff; border:1px dashed var(--tc-oper);
  flex:none;
}

/* ---------------- provenance ---------------- */
.tc-prov{
  display:inline-flex; align-items:center; gap:4px;
  font-family:var(--tc-mono); font-size:9px; letter-spacing:.11em;
  padding:1px 5px; border-radius:3px; white-space:nowrap; cursor:help;
}
.tc-prov-observed{ color:#9ff0e6; background:var(--tc-live-dim); border:1px solid #1d6b64; }
.tc-prov-operator{ color:#cdbfff; background:var(--tc-oper-dim); border:1px dashed var(--tc-oper); }
.tc-prov-derived{ color:#9fc4ff; background:var(--tc-info-dim); border:1px dotted var(--tc-info); }
.tc-prov-unknown{ color:var(--tc-ink-3); background:var(--tc-surface-2); border:1px solid var(--tc-line); }
.tc-legend{
  margin:0; padding:7px 11px; font-size:11px; color:var(--tc-ink-3);
  background:var(--tc-surface); border:1px solid var(--tc-line-soft);
  border-radius:var(--tc-r); display:flex; flex-wrap:wrap; align-items:center; gap:6px;
}
.tc-legend b{ font-weight:400; color:var(--tc-ink-4); margin-right:8px; }

/* ---------------- kind badge ---------------- */
.tc-kindbadge{
  display:inline-flex; align-items:center; gap:5px;
  font-family:var(--tc-mono); font-size:9px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--tc-kind);
  border:1px solid color-mix(in srgb, var(--tc-kind) 45%, transparent);
  background:color-mix(in srgb, var(--tc-kind) 12%, transparent);
  padding:1px 6px; border-radius:3px; white-space:nowrap;
}
@supports not (color: color-mix(in srgb, red 50%, blue)){
  .tc-kindbadge{ border-color:var(--tc-line); background:var(--tc-surface-2); }
}

/* ---------------- review flag ---------------- */
.tc-flag{
  display:inline-flex; align-items:center; gap:4px;
  font-family:var(--tc-mono); font-size:9px; letter-spacing:.1em;
  padding:1px 5px; border-radius:3px; white-space:nowrap;
  color:#f6d58a; background:var(--tc-warn-dim); border:1px solid var(--tc-warn);
}
.tc-flag-btn{ cursor:pointer; }

/* ---------------- progress ---------------- */
.tc-bar{
  position:relative; height:5px; border-radius:999px;
  background:var(--tc-surface-3); overflow:hidden; min-width:60px;
}
.tc-bar-fill{ position:absolute; inset:0 auto 0 0; background:var(--tc-live); border-radius:999px; }
.tc-bar-fill[data-tone="warn"]{ background:var(--tc-warn); }
.tc-bar-fill[data-tone="bad"]{ background:var(--tc-bad); }
.tc-bar-wrap{ display:flex; align-items:center; gap:8px; min-width:0; }
.tc-bar-n{ font-family:var(--tc-mono); font-size:10px; color:var(--tc-ink-3); flex:none; }

/* ---------------- counts ---------------- */
.tc-counts{ display:flex; flex-wrap:wrap; gap:4px; }
.tc-cnt{
  display:inline-flex; align-items:baseline; gap:4px;
  font-family:var(--tc-mono); font-size:10px;
  padding:1px 6px; border-radius:3px;
  background:var(--tc-surface-2); border:1px solid var(--tc-line-soft);
  color:var(--tc-ink-3);
}
.tc-cnt b{ color:var(--tc-kind); font-weight:600; }

/* ===========================================================
   THEATER SELECT SCREEN
   =========================================================== */
.tc-cards{
  display:grid; gap:11px;
  grid-template-columns:repeat(auto-fill, minmax(298px, 1fr));
}
.tc-card{
  position:relative; text-align:left;
  display:flex; flex-direction:column; gap:9px;
  padding:12px; cursor:pointer;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--tc-kind) 7%, transparent), transparent 55%),
    var(--tc-surface);
  border:1px solid var(--tc-line); border-left:2px solid var(--tc-kind);
  border-radius:8px; color:inherit;
}
.tc-card:hover{ border-color:var(--tc-ink-4); background:var(--tc-surface-2); }
.tc-card.is-archived{ opacity:.55; }
.tc-card-top{ display:flex; align-items:flex-start; gap:8px; }
.tc-card-n{ margin:0; font-size:16px; font-weight:600; flex:1 1 auto; min-width:0; overflow-wrap:anywhere; }
.tc-card-n,
.tc-row-t{
  -webkit-appearance:none; appearance:none;
  border:0; background:transparent; padding:0; color:inherit;
  font-family:inherit; text-align:left; cursor:pointer;
}
.tc-card-n:hover,
.tc-card-n:focus-visible,
.tc-row-t:hover,
.tc-row-t:focus-visible{
  color:var(--tc-live); text-decoration:underline; text-underline-offset:3px;
  outline:none;
}
.tc-card-n::after,
.tc-row-t::after{
  content:"  ›"; color:var(--tc-live); text-decoration:none;
}
.tc-card-goal{
  margin:0; font-size:12px; line-height:1.5; color:var(--tc-ink-2);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
  min-height:2em;
}
.tc-card-goal.is-missing{ color:var(--tc-ink-4); font-style:italic; }
.tc-card-foot{ display:flex; flex-direction:column; gap:7px; margin-top:auto; }

/* DIME bars */
.tc-dime{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:7px; }
.tc-dime-ax{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.tc-dime-k{
  display:flex; align-items:baseline; justify-content:space-between; gap:4px;
  font-family:var(--tc-mono); font-size:9px; letter-spacing:.1em; color:var(--tc-ink-4);
}
.tc-dime-v{ color:var(--tc-ink-2); }
.tc-dime-track{ height:4px; border-radius:999px; background:var(--tc-surface-3); overflow:hidden; }
.tc-dime-fill{ height:100%; background:var(--tc-info); border-radius:999px; }
.tc-dime-ax[data-ax="D"] .tc-dime-fill{ background:#74a8ff; }
.tc-dime-ax[data-ax="I"] .tc-dime-fill{ background:#8fd5ff; }
.tc-dime-ax[data-ax="M"] .tc-dime-fill{ background:#ff9f6b; }
.tc-dime-ax[data-ax="E"] .tc-dime-fill{ background:#6fcf7f; }

/* econ tiles */
.tc-tiles{ display:grid; gap:8px; grid-template-columns:repeat(auto-fit, minmax(108px,1fr)); }
.tc-tile{
  padding:7px 9px; background:var(--tc-surface-2);
  border:1px solid var(--tc-line); border-radius:var(--tc-r);
}
.tc-tile-k{ font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--tc-ink-4); }
.tc-tile-v{ font-family:var(--tc-mono); font-size:17px; line-height:1.25; color:var(--tc-ink); }
.tc-tile-v.is-none{ font-size:12px; color:var(--tc-ink-4); }

/* ===========================================================
   NODE DETAIL
   =========================================================== */
.tc-node-head{
  display:flex; flex-direction:column; gap:9px;
  padding:12px; border-radius:8px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--tc-kind) 9%, transparent), transparent 60%),
    var(--tc-surface);
  border:1px solid var(--tc-line); border-left:3px solid var(--tc-kind);
}
.tc-node-meta{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.tc-node-name{ margin:0; font-size:20px; font-weight:600; overflow-wrap:anywhere; }
.tc-node-actions{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-left:auto; }
.tc-node-id{ font-family:var(--tc-mono); font-size:10px; color:var(--tc-ink-4); }
.tc-insights{ padding:11px; border:1px solid #315a72; border-radius:10px; background:linear-gradient(135deg,rgba(116,168,255,.09),rgba(183,166,255,.05)),var(--tc-surface); }
.tc-insights-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }
.tc-insights-top strong{ display:block; font-size:13px; }
.tc-insights-top span{ display:block; margin-top:2px; font-size:10.5px; color:var(--tc-ink-3); }
.tc-insight-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:8px; }
.tc-insight-card{ min-width:0; padding:9px; border:1px solid var(--tc-line); border-radius:8px; background:var(--tc-surface-2); }
.tc-insight-card[data-tone="ai"]{ border-color:#594d92; background:var(--tc-oper-dim); }
.tc-insight-card[data-tone="warn"]{ border-color:#7a5f16; }
.tc-insight-k{ font-family:var(--tc-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--tc-info); }
.tc-insight-card p{ margin:5px 0 0; font-size:12px; color:var(--tc-ink-2); overflow-wrap:anywhere; }
.tc-ai-prov{ margin:8px 0 0; font-family:var(--tc-mono); font-size:9px; color:var(--tc-ink-4); overflow-wrap:anywhere; }
.tc-node-hero{ display:flex; flex-direction:column; gap:9px; }
.tc-goal-hero{
  position:relative; margin:0; padding:10px 62px 10px 12px; font-size:14px; line-height:1.55;
  color:var(--tc-ink); background:var(--tc-sunk);
  border:1px solid var(--tc-line); border-left:2px solid var(--tc-live);
  border-radius:var(--tc-r); white-space:pre-wrap; overflow-wrap:anywhere;
}
.tc-goal-hero.is-missing{ color:var(--tc-ink-4); font-style:italic; border-left-color:var(--tc-warn); }

/* field list */
.tc-fields{ display:grid; grid-template-columns:168px minmax(0,1fr); }
.tc-fk{
  padding:7px 11px; font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--tc-ink-4); border-top:1px solid var(--tc-line-soft);
  display:flex; align-items:flex-start; gap:6px; flex-wrap:wrap;
}
.tc-fv{
  padding:6px 11px; border-top:1px solid var(--tc-line-soft); min-width:0;
}
.tc-fields > .tc-fk:first-child, .tc-fields > .tc-fk:first-child + .tc-fv{ border-top:0; }
.tc-fv-text{
  position:relative;
  margin:0; font-size:12.5px; line-height:1.55; white-space:pre-wrap;
  overflow-wrap:anywhere; cursor:text; border-radius:3px;
  padding:2px 54px 2px 4px; margin-left:-4px;
  min-height:var(--tc-tap);
  display:flex; align-items:center;
}
.tc-goal-hero::after,
.tc-fv-text::after{
  content:"EDIT"; position:absolute; top:50%; right:9px; transform:translateY(-50%);
  font-family:var(--tc-mono); font-size:9px; font-style:normal; letter-spacing:.12em;
  color:var(--tc-live); opacity:.78;
}
.tc-goal-hero:hover::after,
.tc-goal-hero:focus-visible::after,
.tc-fv-text:hover::after,
.tc-fv-text:focus-visible::after{ opacity:1; text-decoration:underline; }
.tc-fv-text.is-multiline{ display:block; }
.tc-fv-text:hover{ background:var(--tc-surface-2); }
.tc-fv-text.is-empty{ color:var(--tc-ink-4); font-style:italic; }
.tc-fv-ro{ font-size:12.5px; color:var(--tc-ink-2); }

.tc-editor{ display:flex; flex-direction:column; gap:6px; }
.tc-editor-row{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.tc-editor-hint{ font-size:10px; color:var(--tc-ink-4); }
.tc-editor-cap{ font-family:var(--tc-mono); font-size:10px; color:var(--tc-ink-4); margin-left:auto; }
.tc-editor-cap.is-over{ color:var(--tc-bad); }

/* DIME multiselect */
.tc-dimepick{ display:flex; flex-wrap:wrap; gap:6px; }
.tc-dimepick label{
  display:inline-flex; align-items:center; gap:6px; min-height:var(--tc-tap);
  padding:3px 9px; border-radius:999px; cursor:pointer;
  border:1px solid var(--tc-line); background:var(--tc-surface-2);
  font-size:11.5px; color:var(--tc-ink-2);
}
.tc-dimepick input:checked + span{ color:var(--tc-live); }
.tc-slider-field{ flex:1 1 260px; min-width:220px; }
.tc-slider{ display:grid; grid-template-columns:36px minmax(120px,1fr) 38px 36px; align-items:center; gap:8px; margin-top:5px; }
.tc-range{ width:100%; min-height:36px; accent-color:var(--tc-kind); cursor:pointer; }
.tc-slider-step{ min-width:36px; min-height:36px; border:1px solid var(--tc-line); border-radius:50%; background:var(--tc-surface-3); color:var(--tc-ink); cursor:pointer; font-size:18px; }
.tc-slider-value{ display:grid; place-items:center; min-width:38px; min-height:34px; border-radius:8px; background:var(--tc-sunk); color:var(--tc-live); font-family:var(--tc-mono); font-size:17px; font-weight:700; }
.tc-tagrow{ display:flex; flex-wrap:wrap; gap:4px; }
.tc-tag{
  font-family:var(--tc-mono); font-size:10px; padding:1px 6px; border-radius:3px;
  background:var(--tc-surface-2); border:1px solid var(--tc-line-soft); color:var(--tc-ink-2);
}

/* child rows */
.tc-rows{ display:flex; flex-direction:column; }
.tc-row{
  display:flex; align-items:center; gap:9px;
  padding:8px 11px; border-top:1px solid var(--tc-line-soft);
  background:transparent; border-left:0; border-right:0; border-bottom:0;
  width:100%; text-align:left; color:inherit; cursor:pointer;
  min-height:44px;
}
.tc-rows > .tc-row:first-child{ border-top:0; }
.tc-row:hover{ background:var(--tc-surface-2); }
.tc-row.is-archived{ opacity:.5; }
.tc-row.is-pending{ opacity:.6; }
.tc-row-main{ flex:1 1 auto; min-width:0; }
.tc-row-t{ font-size:13px; overflow-wrap:anywhere; }
.tc-row-s{ font-size:11px; color:var(--tc-ink-4); margin-top:2px; overflow-wrap:anywhere;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tc-row-side{ flex:none; display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:flex-end; max-width:52%; }

/* add-child form */
.tc-addbar{ display:flex; flex-wrap:wrap; gap:6px; padding:8px 11px; border-top:1px solid var(--tc-line-soft); }
.tc-add{
  display:flex; flex-direction:column; gap:9px;
  padding:11px; border-top:1px solid var(--tc-line);
  background:var(--tc-sunk);
}
.tc-add-h{
  margin:0; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--tc-kind); font-weight:700;
}
.tc-add-grid{ display:grid; gap:9px; grid-template-columns:repeat(auto-fit, minmax(190px,1fr)); }
.tc-add-parent{
  margin:0; padding:7px 9px; border-radius:var(--tc-r);
  background:var(--tc-surface-2); border:1px dashed var(--tc-line);
  font-family:var(--tc-mono); font-size:10.5px; color:var(--tc-ink-3);
  display:flex; flex-wrap:wrap; gap:4px 10px;
}
.tc-add-parent b{ color:var(--tc-ink-2); font-weight:400; }
.tc-add-actions{ display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.tc-add-err{
  margin:0; font-size:11.5px; color:#ffb3b3; background:var(--tc-bad-dim);
  border:1px solid #5d2328; border-radius:var(--tc-r); padding:6px 9px;
}

/* ===========================================================
   NEEDS REVIEW
   =========================================================== */
.tc-rv-group{ border-left:2px solid var(--tc-warn); }
.tc-rv-reason{
  font-family:var(--tc-mono); font-size:10.5px; letter-spacing:.08em;
  color:#f6d58a; text-transform:none;
}
.tc-rv-why{ font-size:11px; color:var(--tc-ink-4); letter-spacing:0; text-transform:none; font-weight:400; }
.tc-rv-note{
  margin:3px 0 0; font-size:11px; color:var(--tc-ink-3);
  overflow-wrap:anywhere;
}

/* ===========================================================
   FORCES
   =========================================================== */
.tc-force{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,260px); gap:0; }
.tc-force-op{ padding:10px 11px; border-right:1px solid var(--tc-line-soft); min-width:0; }
.tc-force-ob{ padding:10px 11px; background:var(--tc-sunk); min-width:0; }
.tc-force-h{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-bottom:6px; }
.tc-force-n{ margin:0; font-size:14px; font-weight:600; }
.tc-force-sec{
  font-family:var(--tc-mono); font-size:9px; letter-spacing:.12em;
  color:var(--tc-ink-4); text-transform:uppercase; margin:0 0 5px;
}
.tc-force-kv{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:2px 8px; font-size:11.5px; }
.tc-force-kv dt{ color:var(--tc-ink-4); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.tc-force-kv dd{ margin:0; color:var(--tc-ink-2); overflow-wrap:anywhere; }
.tc-force-wrap{ display:flex; flex-direction:column; }
.tc-force-wrap > .tc-force{ border-top:1px solid var(--tc-line-soft); }
.tc-force-wrap > .tc-force:first-child{ border-top:0; }

/* ===========================================================
   STATUS MENU (popover → bottom sheet on mobile)
   =========================================================== */
.tc-scrim{ position:fixed; inset:0; z-index:150; background:rgba(4,6,10,.5); }
.tc-menu{
  position:fixed; z-index:160; max-height:min(60vh, 420px); overflow-y:auto;
  min-width:232px; max-width:min(340px, calc(100vw - 20px));
  background:var(--tc-surface); border:1px solid var(--tc-line);
  border-radius:8px; box-shadow:0 18px 40px -18px #000, 0 0 0 1px rgba(0,0,0,.4);
  padding:5px;
}
.tc-menu-h{
  margin:0; padding:6px 8px 7px; font-family:var(--tc-mono);
  font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--tc-ink-4);
  border-bottom:1px solid var(--tc-line-soft);
}
.tc-menu-i{
  display:flex; align-items:center; gap:8px; width:100%;
  min-height:44px; padding:6px 8px; border:0; border-radius:var(--tc-r);
  background:transparent; color:var(--tc-ink-2); cursor:pointer; text-align:left;
  font-size:12.5px;
}
.tc-menu-i:hover{ background:var(--tc-surface-3); color:var(--tc-ink); }
.tc-menu-i[aria-checked="true"]{ background:var(--tc-surface-2); color:var(--tc-ink); }
.tc-menu-i[aria-checked="true"]::after{ content:"✓"; margin-left:auto; color:var(--tc-live); flex:none; }
.tc-menu-dot{ width:8px; height:8px; border-radius:50%; flex:none; background:var(--tc-ink-4); }
.tc-menu-dot[data-tone="good"]{ background:var(--tc-live); }
.tc-menu-dot[data-tone="warn"]{ background:var(--tc-warn); }
.tc-menu-dot[data-tone="bad"]{ background:var(--tc-bad); }
.tc-menu-dot[data-tone="done"]{ background:var(--tc-done); }
.tc-menu-l{ flex:1 1 auto; min-width:0; overflow-wrap:anywhere; }

/* ===========================================================
   TOASTS
   =========================================================== */
.tc-toasts{
  position:fixed; z-index:400; top:8px; right:8px;
  display:flex; flex-direction:column; gap:7px;
  max-width:min(440px, calc(100vw - 16px)); pointer-events:none;
}
.tc-toast{
  pointer-events:auto;
  display:flex; align-items:flex-start; gap:9px;
  padding:9px 10px; border-radius:var(--tc-r);
  background:var(--tc-surface-2); border:1px solid var(--tc-line);
  box-shadow:0 14px 34px -16px #000; font-size:12px; color:var(--tc-ink-2);
}
.tc-toast-bad{ border-color:#5d2328; background:var(--tc-bad-dim); color:#ffc9c9; }
.tc-toast-good{ border-color:#1d6b64; background:var(--tc-live-dim); color:#b6f3ea; }
.tc-toast-warn{ border-color:#7a5f16; background:var(--tc-warn-dim); color:#f6d58a; }
.tc-toast-main{ flex:1 1 auto; min-width:0; }
.tc-toast-k{
  font-family:var(--tc-mono); font-size:9px; letter-spacing:.14em;
  text-transform:uppercase; opacity:.8; display:block; margin-bottom:2px;
}
.tc-toast-m{ overflow-wrap:anywhere; }
.tc-toast-action{
  flex:none; min-height:32px; padding:5px 9px; border:1px solid currentColor;
  border-radius:6px; background:transparent; color:inherit; cursor:pointer;
  font:600 10px/1 var(--tc-mono); letter-spacing:.06em; text-transform:uppercase;
}
.tc-toast-action:hover{ background:rgba(255,255,255,.08); }
.tc-toast-action:disabled{ opacity:.55; cursor:wait; }
.tc-toast-x{
  flex:none; min-height:24px; min-width:24px; border:0; background:transparent;
  color:inherit; opacity:.6; cursor:pointer; font-size:14px; line-height:1;
}
.tc-toast-x:hover{ opacity:1; }

/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media (max-width: 900px){
  .tc-fields{ grid-template-columns:140px minmax(0,1fr); }
  .tc-force{ grid-template-columns:minmax(0,1fr); }
  .tc-force-op{ border-right:0; border-bottom:1px solid var(--tc-line-soft); }
}

/* Landscape tablets need the full content canvas.  The former global grid at
   1100px put the *entire* theater-card grid in one narrow grid cell, leaving
   half the viewport blank.  Screen layouts now remain one coherent flow;
   grids inside the screens (.tc-cards, .tc-add-grid, etc.) perform the actual
   responsive packing. */
@media (min-width: 1100px){
  .tc-main--detail .tc-node-head{
    position:sticky; top:0; z-index:12;
    box-shadow:0 10px 24px -20px #000;
  }
  .tc-main--detail .tc-node-head[data-kind="theater"]{ position:static;box-shadow:none; }
}

/* iPad-class landscape devices report a desktop-width viewport but still
   need finger-sized controls.  Preserve the compact mouse layout elsewhere. */
@media (pointer: coarse) and (min-width: 721px){
  :root{ --tc-tap:44px; }
  .tc-rail-btn{ min-height:44px; }
  .tc-btn{ padding-inline:12px; }
}

@media (max-width: 720px){
  :root{ --tc-top-h:42px; --tc-tap:44px; }
  .tc-app{ grid-template-rows:var(--tc-top-h) auto minmax(0,1fr); }
  .tc-body{ grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); }
  .tc-rail{
    flex-direction:row; border-right:0; border-bottom:1px solid var(--tc-line);
    padding:6px 8px; gap:5px; overflow-x:auto; scrollbar-width:none;
  }
  .tc-rail::-webkit-scrollbar{ display:none; }
  .tc-rail-btn{ width:auto; flex:none; padding:5px 11px; }
  .tc-rail-btn[aria-current="true"]{ box-shadow:inset 0 -2px 0 var(--tc-live); }
  .tc-rail-k{ display:none; }
  .tc-top-meta{ display:none; }
  .tc-main{ padding:10px; gap:10px; }
  .tc-cards{ grid-template-columns:minmax(0,1fr); }
  .tc-fields{ grid-template-columns:minmax(0,1fr); }
  .tc-fk{ padding-bottom:0; border-top:1px solid var(--tc-line-soft); }
  .tc-fv{ border-top:0; padding-top:2px; }
  .tc-fields > .tc-fk:first-child + .tc-fv{ border-top:0; }
  .tc-row{ align-items:flex-start; flex-direction:column; gap:6px; }
  .tc-row-side{ max-width:100%; justify-content:flex-start; }
  .tc-node-actions{ margin-left:0; }

  .tc-node-head{ position:sticky; top:0; z-index:20; }
  .tc-node-head[data-kind="theater"]{ position:static; }
  .tc-node-actions{ width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tc-node-actions .tc-btn{ min-height:44px; }
  .tc-insights-top{ align-items:stretch; flex-direction:column; }
  .tc-insights-top .tc-btn{ width:100%; min-height:44px; }
  .tc-insight-grid{ grid-template-columns:minmax(0,1fr); }
  .tc-slider{ grid-template-columns:44px minmax(100px,1fr) 42px 44px; }
  .tc-slider-step{ min-width:44px; min-height:44px; }

  /* Status menu becomes a thumb-reachable bottom sheet. */
  .tc-menu{
    left:0 !important; right:0 !important; bottom:0 !important; top:auto !important;
    width:100%; max-width:100%; min-width:0;
    border-radius:12px 12px 0 0; border-bottom:0;
    max-height:min(72vh, 560px);
    padding:6px 8px calc(10px + env(safe-area-inset-bottom));
  }
  .tc-menu-i{ font-size:14px; }
  .tc-toasts{ left:8px; right:8px; max-width:none; top:6px; }
}

/* iPhone-class: strictly one column, correlation bar collapses to a
   single line of theater + goal (CONTRACT §9.8). */
@media (max-width: 480px){
  .tc-corr{ padding:6px 10px 5px; }
  .tc-corr-main{ gap:6px; align-items:baseline; }
  .tc-corr-k{ display:none; }
  .tc-corr-theater{ max-width:46%; }
  .tc-corr-name{ font-size:13px; }
  .tc-corr-goal{ -webkit-line-clamp:1; font-size:11.5px; }
  .tc-corr-side{ display:none; }
  .tc-crumbs{ margin-top:4px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  .tc-crumbs::-webkit-scrollbar{ display:none; }
  .tc-crumb{ flex:none; max-width:150px; }
  .tc-dime{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .tc-tiles{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .tc-add-grid{ grid-template-columns:minmax(0,1fr); }
  .tc-brand{ font-size:10px; letter-spacing:.12em; }
  .tc-top{ padding:0 8px; gap:6px; }
  .tc-top-state{ gap:5px; }
  .tc-btn{ padding:4px 7px; font-size:10.5px; }
  .tc-screen-t{ font-size:15px; }
}

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