:root {
  --navy: #1C2A39;
  --gold: #C8A96A;
  --charcoal: #4A4F55;
  --ink: #1C2A39;
  --muted: #6B7280;
  --paper: #F5F3EF;
  --paper-2: #E7E3DC;
  --panel: #FAF8F3;
  --line: rgba(28, 42, 57, .14);
  --line-strong: rgba(28, 42, 57, .32);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Inter", system-ui, -apple-system, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
  --green: var(--navy);
  --green-2: var(--navy);
  --mint: var(--paper-2);
  --amber: #f7e9c9;
  --red: #8C3A2B;
  --ok: #3E6B52;
  --shadow: 0 10px 30px rgba(28, 42, 57, .07);
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--charcoal); background: var(--paper); font-family: var(--sans); line-height: 1.55; -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; }
button, select { cursor: pointer; }
[hidden] { display: none !important; }
.auth-gate { min-height: 100vh; display: grid; place-items: center; padding: 28px; background: var(--paper); }
.auth-card { width: min(480px, 100%); padding: 38px; border: 1px solid var(--line); border-top: 4px solid var(--gold); border-radius: 2px; background: var(--panel); box-shadow: var(--shadow); }
.auth-brand { margin: 0 0 32px; color: var(--ink); }
.auth-brand .brand-mark { color: white; background: var(--green); }
.auth-brand small { color: var(--muted); }
.auth-card h1 { margin: 8px 0 12px; color: var(--ink); font: 500 38px/1.08 var(--serif); }
.auth-card > p { margin: 0 0 24px; color: var(--muted); line-height: 1.55; }
.auth-card form { display: grid; }
.auth-card form > button { width: 100%; margin-top: 5px; }
.auth-diagnostic { width: 100%; margin-top: 10px; text-decoration: none; }
.auth-footnote { display: block; margin-top: 18px; color: var(--muted); line-height: 1.4; }
.auth-error { margin: 12px 0 0; padding: 10px; border-radius: 8px; color: #812f29; background: #f7ded9; font-size: 12px; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 265px 1fr; }
.sidebar { height: 100vh; position: sticky; top: 0; display: flex; flex-direction: column; padding: 28px 20px; background: var(--navy); color: var(--paper); }
.brand { display: flex; gap: 12px; align-items: center; margin: 0 8px 38px; }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; grid-auto-flow: column; gap: 0; border: 1px solid rgba(245, 243, 239, .18); border-radius: 10px; color: var(--paper); background: #14202C; font: 600 17px/1 var(--serif); letter-spacing: .02em; }
.brand-mark span, .brand-copy strong span { color: var(--gold); }
.brand strong, .brand small, .brand em { display: block; }
.brand strong { color: var(--paper); font: 600 20px/1 var(--serif); letter-spacing: -.01em; }
.brand small { color: rgba(243, 237, 226, .7); margin-top: 3px; }
.brand em { margin-top: 8px; color: rgba(245, 243, 239, .64); font: 400 9px/1.3 var(--mono); letter-spacing: .11em; text-transform: uppercase; }
#step-nav { display: grid; gap: 8px; }
.step-link { width: 100%; display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: center; padding: 12px; border: 0; border-radius: 10px; color: rgba(243, 237, 226, .68); background: transparent; text-align: left; }
.step-link:hover, .step-link.active { color: white; background: #ffffff17; }
.step-link:disabled { cursor: not-allowed; opacity: .52; }
.step-link.complete .step-number { color: var(--paper); background: transparent; border-color: rgba(245, 243, 239, .72); }
.step-number { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(243, 237, 226, .36); border-radius: 50%; font-size: 12px; }
.step-link small { display: block; margin-top: 2px; color: inherit; opacity: .65; }
.sidebar-card { margin-top: auto; padding: 18px; border-radius: 12px; background: #ffffff12; }
.sidebar-card > * { display: block; margin-top: 5px; }
.sidebar-card small, .sidebar-card span { color: rgba(243, 237, 226, .68); font-size: 11px; }
main { min-width: 0; display: flex; flex-direction: column; padding: 32px 42px 24px; }
.topbar { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.topbar h1 { max-width: 760px; margin: 7px 0 0; color: var(--ink); font: 500 clamp(32px, 3.2vw, 46px)/1.05 var(--serif); letter-spacing: -.012em; }
.eyebrow { color: var(--muted); font-family: var(--mono); text-transform: uppercase; letter-spacing: .12em; font-size: 10px; font-weight: 500; }
.top-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 9px; }
.top-actions select { max-width: 230px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--ink); }
.status-pill { padding: 8px 12px; border-radius: 999px; background: var(--amber); color: #774918; font-size: 12px; font-weight: 700; white-space: nowrap; }
.status-pill.active { background: var(--mint); color: var(--green); }
.account-chip { max-width: 190px; overflow: hidden; padding: 8px 11px; border-radius: 999px; color: var(--green); background: var(--mint); font-size: 11px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.ghost-button { padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); text-decoration: none; background: transparent; font-size: 13px; }
.context-strip { min-height: 66px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 27px 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--line); }
.context-strip > div { padding: 13px 15px; background: #ffffffad; }
.context-strip small, .context-strip strong { display: block; }
.context-strip small { margin-bottom: 5px; color: var(--muted); font-size: 11px; }
.context-strip strong { font-size: 13px; }
.context-empty { grid-column: 1 / -1; display: grid; place-items: center; color: var(--muted); }
.view { flex: 1; }
.view-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 22px; margin-bottom: 18px; }
.view-heading h2 { margin: 4px 0 0; color: var(--ink); font: 500 32px/1.08 var(--serif); }
.view-heading p { max-width: 590px; margin: 0; color: var(--muted); line-height: 1.5; }
.grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 18px; }
.grid.equal { grid-template-columns: 1fr 1fr; }
.card { padding: 24px; border: 1px solid var(--line); border-radius: 2px; background: var(--panel); box-shadow: none; }
.card h3 { margin: 0 0 17px; font-size: 15px; }
.section-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.section-title h3 { margin: 0; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.form-grid.three { grid-template-columns: repeat(3, 1fr); }
.field { margin-bottom: 15px; }
.field.full { grid-column: 1 / -1; }
.field label { display: block; margin-bottom: 6px; color: var(--muted); font-size: 12px; font-weight: 650; }
.input { width: 100%; padding: 10px 11px; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--ink); }
.input:focus { outline: 2px solid rgba(28, 42, 57, .16); border-color: var(--navy); }
textarea.input { min-height: 78px; resize: vertical; }
.hint { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.required::after { content: " · requerido"; color: var(--red); font-weight: 500; }
.callout { padding: 14px; border-left: 3px solid var(--navy); border-radius: 0; background: var(--paper); line-height: 1.5; }
.warning { padding: 13px 15px; border-radius: 9px; background: var(--amber); color: #75481a; font-size: 13px; line-height: 1.45; }
.badge { display: inline-block; padding: 5px 8px; border-radius: 999px; background: var(--mint); color: var(--green); font-size: 11px; font-weight: 750; }
.badge.success { background: #d9eee2; color: #17613f; }
.warning-badge { background: var(--amber); color: #75481a; }
.metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.metric { padding: 13px; border: 1px solid var(--line); border-radius: 10px; }
.metric small, .metric strong { display: block; }
.metric small { color: var(--muted); margin-bottom: 5px; }
.metric strong { font-size: 21px; }
.score-controls { display: grid; gap: 16px; }
.score-control { display: grid; grid-template-columns: 145px 1fr 32px; gap: 12px; align-items: center; }
.score-control label { color: var(--muted); font-size: 13px; }
input[type="range"] { width: 100%; accent-color: var(--green-2); }
.score-panel { min-height: 210px; display: grid; place-items: center; text-align: center; background: var(--green); color: white; }
.score-ring { width: 116px; height: 116px; display: grid; place-items: center; margin: 12px auto; border: 8px solid #ffffff38; border-top-color: var(--paper); border-radius: 50%; }
.score-ring strong { font: 500 35px var(--serif); }
.friction-options { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 18px; }
.friction-option { padding: 11px 7px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: white; }
.friction-option.selected { border-color: var(--navy); color: var(--navy); background: var(--paper-2); font-weight: 700; }
.traction-card { border-top: 5px solid var(--gold); }
.traction-card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.traction-card-section { padding: 15px; border-radius: 9px; background: #f6f8f5; }
.traction-card-section span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.traction-card-section strong { line-height: 1.45; }
.acceptance { margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--line); }
.commitment-row { display: grid; grid-template-columns: 1.7fr .7fr 1fr auto; gap: 9px; align-items: end; padding: 11px 0; border-bottom: 1px solid var(--line); }
.commitment-row:last-child { border-bottom: 0; }
.commitment-control { min-width: 118px; display: grid; justify-items: end; gap: 7px; padding-bottom: 15px; }
.compact { padding: 7px 9px; font-size: 11px; white-space: nowrap; }
.remove-button { width: 36px; height: 39px; border: 1px solid var(--line); border-radius: 8px; color: var(--red); background: transparent; }
.section-copy { margin: -6px 0 12px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.evidence-list { display: grid; gap: 10px; }
.evidence-item { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfa; }
.evidence-item strong, .evidence-item small { display: block; }
.evidence-item strong { margin: 5px 0; }
.evidence-item small { color: var(--muted); }
.empty-inline { padding: 18px; border: 1px dashed var(--line); border-radius: 10px; color: var(--muted); background: #fafbf9; text-align: center; line-height: 1.45; }
.cadence-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.cadence-card { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: white; text-align: left; }
.cadence-card > span { grid-row: 1 / 3; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--paper); }
.cadence-card small { color: var(--muted); }
.cadence-card.selected { border-color: var(--navy); box-shadow: 0 0 0 2px rgba(28, 42, 57, .1); }
.cadence-card.complete > span { color: white; background: var(--green-2); }
.metric-compare { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-bottom: 18px; }
.metric-input { padding: 12px; border-radius: 10px; background: #f6f8f5; }
.metric-input label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.metric-input input { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); font: 500 21px var(--serif); }
.metric-input input:focus { outline: none; border-color: var(--green-2); }
.gate-toggle { padding: 12px; border-radius: 9px; background: var(--mint); }
.evidence-checks { display: grid; gap: 8px; margin: 10px 0 18px; }
.evidence-checks label { padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.impact-path { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 8px; align-items: center; margin-bottom: 20px; }
.impact-path > div { padding: 14px 8px; border-radius: 9px; background: #f6f8f5; text-align: center; }
.impact-path small, .impact-path strong { display: block; }
.impact-path small { margin-bottom: 5px; color: var(--muted); }
.gate-list { display: grid; gap: 9px; }
.gate-row { display: grid; grid-template-columns: 28px 1fr auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 9px; }
.gate-row > span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; font-weight: 800; }
.gate-row small { color: var(--muted); }
.gate-row.passed > span { color: white; background: var(--green-2); }
.gate-row.blocked > span { color: #75481a; background: var(--amber); }
.handoff-summary { margin-top: 18px; padding: 18px; border-left: 4px solid var(--navy); border-radius: 0; background: var(--paper); }
.handoff-summary strong { display: block; margin: 7px 0; font: 500 22px var(--serif); }
.handoff-summary p { margin: 0; color: var(--muted); line-height: 1.5; }
.outcome-state { min-height: 280px; display: grid; place-items: center; align-content: center; text-align: center; }
.outcome-state > span { width: 66px; height: 66px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--green-2); font-size: 28px; }
.outcome-state h3 { margin: 15px 0 4px; font: 500 28px var(--serif); }
.outcome-state p { max-width: 420px; color: var(--muted); line-height: 1.5; }
.outcome-state.monitoring > span { color: #75481a; background: var(--amber); }
.monitor-form { margin-top: 10px; padding-top: 15px; border-top: 1px solid var(--line); }
.outcome-actions { margin-top: 28px; }
.event-list { display: grid; gap: 10px; }
.event { display: grid; grid-template-columns: 15px 1fr auto; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.event-dot { width: 10px; height: 10px; margin-top: 4px; border-radius: 50%; background: var(--green-2); }
.event strong, .event small { display: block; }
.event small { margin-top: 4px; color: var(--muted); }
.event time { color: var(--muted); font-size: 11px; }
.provenance-card { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 16px; }
.provenance-card > div { padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #f8faf7; }
.provenance-card .full { grid-column: 1 / -1; }
.provenance-card small, .provenance-card strong { display: block; }
.provenance-card small { margin-bottom: 6px; color: var(--muted); }
.provenance-card a { color: var(--green-2); font-weight: 700; overflow-wrap: anywhere; }
.integration-subtitle { margin: 16px 0 8px; font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.json-preview { max-height: 250px; overflow: auto; padding: 14px; border: 1px solid var(--line); border-radius: 2px; background: var(--ink); color: var(--paper); font: 12px/1.5 var(--mono); white-space: pre-wrap; }
.source-link-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
.source-link { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; color: var(--green); background: #fbfcfa; text-decoration: none; }
.source-link strong, .source-link small { display: block; }
.source-link small { margin-bottom: 4px; color: var(--muted); }
.tower-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 18px; }
.tower-kpis article { min-height: 118px; padding: 17px; border: 1px solid var(--line); border-top: 4px solid var(--navy); border-radius: 2px; background: white; box-shadow: none; }
.tower-kpis article.risk { border-top-color: #c57a23; background: #fffbf4; }
.tower-kpis article.critical { border-top-color: var(--red); background: #fff8f6; }
.tower-kpis small, .tower-kpis strong, .tower-kpis span { display: block; }
.tower-kpis small { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.tower-kpis strong { margin: 8px 0 4px; font: 500 32px var(--serif); }
.tower-kpis span { color: var(--muted); font-size: 11px; }
.tower-intelligence { margin-bottom: 18px; }
.pattern-list, .intervention-list { display: grid; gap: 9px; }
.pattern-card { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 13px; border: 1px solid var(--line); border-left: 4px solid var(--green-2); border-radius: 8px; background: #fbfcfa; }
.pattern-card.persistent { border-left-color: var(--red); background: #fff8f6; }
.pattern-card small, .pattern-card strong, .pattern-card span { display: block; }
.pattern-card small, .pattern-card span { color: var(--muted); font-size: 11px; }
.pattern-card strong { margin: 4px 0; }
.pattern-value { min-width: 78px; text-align: right; }
.pattern-value strong { font: 500 22px var(--serif); }
.intervention-row { display: grid; grid-template-columns: 1fr 120px 42px; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 9px; }
.intervention-row small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.validation-bar { height: 8px; overflow: hidden; border-radius: 999px; background: var(--line); }
.validation-bar span { height: 100%; display: block; border-radius: inherit; background: var(--green-2); }
.executive-brief { margin-bottom: 18px; border-top: 5px solid var(--green); }
.executive-brief .section-title h3 { max-width: 820px; margin: 6px 0 0; font: 500 24px/1.25 var(--serif); }
.brief-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--line); }
.brief-grid > div { padding: 16px; background: #fbfcfa; }
.brief-grid > div > small { display: block; margin-bottom: 9px; color: var(--green); font-size: 10px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.brief-grid ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.brief-grid li { padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.brief-grid li:last-child { padding-bottom: 0; border-bottom: 0; }
.brief-grid li strong, .brief-grid li span { display: block; }
.brief-grid li span, .brief-grid p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.team-list { display: grid; gap: 9px; }
.team-user { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfa; }
.team-avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--green); font-size: 12px; font-weight: 800; letter-spacing: .05em; }
.team-user strong, .team-user small { display: block; }
.team-user small { margin-top: 3px; color: var(--muted); }
.team-memberships { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.team-memberships span { padding: 4px 7px; border-radius: 999px; color: var(--green); background: var(--mint); font-size: 10px; font-weight: 700; }
.product-thesis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.product-thesis article { min-height: 160px; padding: 20px; border: 1px solid var(--line); border-top: 4px solid var(--navy); border-radius: 2px; background: white; box-shadow: none; }
.product-thesis h3 { margin: 12px 0 0; font: 500 23px/1.25 var(--serif); }
.fit-map-card, .guide-grid, .review-lab { margin-bottom: 18px; }
.fit-map { display: grid; grid-template-columns: 1fr auto 1.15fr auto 1fr; gap: 13px; align-items: center; }
.fit-sources { display: grid; gap: 8px; }
.fit-sources article, .fit-core { padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #f8faf7; }
.fit-sources small, .fit-sources strong, .fit-core small, .fit-core strong, .fit-core span { display: block; }
.fit-sources small, .fit-core small, .fit-core span { color: var(--muted); font-size: 11px; }
.fit-sources strong, .fit-core strong { margin-top: 5px; }
.fit-core { padding: 24px; color: white; background: var(--green); text-align: center; }
.fit-core small, .fit-core span { color: #dbe6e1; }
.fit-core strong { margin: 9px 0; font: 500 24px var(--serif); }
.fit-arrow { color: var(--navy); font-size: 26px; font-weight: 800; }
.guide-flow { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: guide; }
.guide-flow li { counter-increment: guide; display: grid; grid-template-columns: 30px 115px 1fr; gap: 10px; align-items: center; padding: 10px; border-bottom: 1px solid var(--line); }
.guide-flow li::before { content: counter(guide); width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--navy); background: var(--paper); font: 500 10px var(--mono); }
.guide-flow span, .evaluation-grid p { color: var(--muted); font-size: 12px; line-height: 1.45; }
.evaluation-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }
.evaluation-grid article { padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfa; }
.evaluation-grid p { margin: 7px 0 0; }
.finding-list { display: grid; gap: 9px; max-height: 620px; overflow: auto; }
.finding-item { padding: 14px; border: 1px solid var(--line); border-left: 4px solid var(--green-2); border-radius: 8px; background: #fbfcfa; }
.finding-item.important { border-left-color: #b86c1d; background: #fffbf4; }
.finding-item.blocker { border-left-color: var(--red); background: #fff8f6; }
.finding-meta, .finding-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; align-items: center; }
.finding-meta { justify-content: flex-start; margin-bottom: 8px; }
.finding-meta span { padding: 4px 6px; border-radius: 999px; color: var(--muted); background: var(--paper); font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; }
.finding-item > strong { display: block; line-height: 1.45; }
.finding-item > p { margin: 8px 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.finding-actions { margin-top: 10px; }
.finding-actions small { color: var(--muted); }
.finding-actions select { width: auto; min-width: 125px; }
.tower-card { padding: 0; overflow: hidden; }
.tower-card > .section-title { padding: 22px 22px 0; }
.tower-filters { display: grid; grid-template-columns: 1.3fr repeat(5, minmax(120px, .8fr)) auto; gap: 9px; align-items: end; padding: 0 22px 18px; border-bottom: 1px solid var(--line); }
.tower-filters .field { margin: 0; }
.tower-filter-actions { display: flex; gap: 7px; padding-bottom: 1px; }
.tower-table { min-width: 100%; overflow-x: auto; }
.tower-row { min-width: 1020px; display: grid; grid-template-columns: minmax(280px, 1.6fr) 95px 145px 150px minmax(190px, 1fr) 90px; gap: 14px; align-items: center; padding: 15px 22px; border-bottom: 1px solid var(--line); }
.tower-row:last-child { border-bottom: 0; }
.tower-row:not(.tower-head):hover { background: #f8faf7; }
.tower-head { padding-block: 10px; color: var(--muted); background: #f5f7f3; font-size: 10px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.tower-case small, .tower-case strong, .tower-case span, .tower-owner small, .tower-owner strong, .tower-time small, .tower-time strong, .tower-row > div > small { display: block; }
.tower-case small, .tower-owner small, .tower-time small, .tower-row > div > small { color: var(--muted); font-size: 11px; }
.tower-case strong { margin: 4px 0; font-size: 14px; }
.tower-case span { color: var(--green); font-size: 11px; }
.priority-score { width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 4px; border-radius: 50%; color: white; background: var(--navy); font: 600 19px var(--serif); }
.priority-score.high { background: #b86c1d; }
.priority-score.critical { background: var(--red); }
.priority-score.medium { color: #75481a; background: var(--amber); }
.tower-alerts { display: flex; flex-wrap: wrap; gap: 5px; }
.tower-alert { padding: 5px 7px; border-radius: 999px; color: #75481a; background: var(--amber); font-size: 10px; font-weight: 700; }
.tower-alert.critical { color: #812f29; background: #f7ded9; }
.tower-alert.clear { color: var(--green); background: var(--mint); }
.empty-state { padding: 54px 24px; text-align: center; }
.empty-state h2 { margin: 8px 0; font: 500 32px var(--serif); }
.empty-state p { max-width: 560px; margin: 0 auto 20px; color: var(--muted); line-height: 1.55; }
.flow-footer { display: grid; grid-template-columns: 150px 1fr 205px; gap: 18px; align-items: center; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.flow-footer p { margin: 0; text-align: center; color: var(--muted); font-size: 13px; }
.primary, .secondary { padding: 11px 16px; border: 1px solid var(--navy); border-radius: 2px; font-weight: 650; }
.primary { color: white; background: var(--green); }
.secondary { color: var(--green); background: transparent; }
.primary:disabled, .secondary:disabled { opacity: .42; cursor: not-allowed; }
.action-row { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; margin-top: 18px; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 5; padding: 13px 18px; border-radius: 9px; color: white; background: var(--ink); box-shadow: var(--shadow); transform: translateY(100px); opacity: 0; transition: .2s; }
.toast.show { transform: none; opacity: 1; }
dialog { max-width: 520px; padding: 0; border: 0; border-radius: 2px; box-shadow: 0 24px 80px #0004; }
dialog::backdrop { background: #091e2ccc; }
dialog form { padding: 26px; }
dialog h2 { margin: 7px 0 10px; font: 500 30px var(--serif); }
dialog p { color: var(--muted); line-height: 1.5; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 20px; }

.field label,
.context-strip small,
.traction-card-section span,
.metric-input label,
.provenance-card small,
.tower-kpis small,
.tower-head,
.card-index,
.status-pill,
.badge {
  font-family: var(--mono);
  font-weight: 500;
  letter-spacing: .07em;
}

@media (max-width: 980px) {
  .app-shell { min-width: 0; grid-template-columns: 1fr; }
  .sidebar { min-width: 0; max-width: 100vw; position: static; height: auto; }
  .brand { margin-bottom: 18px; }
  #step-nav { width: 100%; min-width: 0; max-width: calc(100vw - 40px); grid-template-columns: repeat(12, 130px); overflow-x: auto; overscroll-behavior-inline: contain; }
  .sidebar-card { display: none; }
  main { width: 100%; min-width: 0; max-width: 100vw; padding: 24px 18px; overflow: hidden; }
  .grid, .grid.equal { grid-template-columns: 1fr; }
  .tower-kpis { grid-template-columns: repeat(2, 1fr); }
  .tower-filters { grid-template-columns: repeat(2, 1fr); }
  .brief-grid { grid-template-columns: 1fr; }
  .product-thesis { grid-template-columns: 1fr; }
  .fit-map { grid-template-columns: 1fr; }
  .fit-arrow { transform: rotate(90deg); text-align: center; }
}
@media (max-width: 700px) {
  .topbar, .view-heading { display: block; }
  .top-actions { justify-content: flex-start; margin-top: 15px; }
  .top-actions > * { max-width: 100%; }
  .topbar h1, .view-heading h2, .view-heading p { overflow-wrap: anywhere; }
  .context-strip, .form-grid, .form-grid.three, .traction-card-grid, .metrics, .cadence-grid, .metric-compare, .provenance-card { grid-template-columns: 1fr; }
  .provenance-card .full { grid-column: auto; }
  .friction-options { grid-template-columns: repeat(2, 1fr); }
  .commitment-row { grid-template-columns: 1fr; }
  .commitment-control { justify-items: start; padding-bottom: 8px; }
  .evidence-item { align-items: flex-start; flex-direction: column; }
  .impact-path { grid-template-columns: 1fr; }
  .impact-path > span { transform: rotate(90deg); text-align: center; }
  .gate-row { grid-template-columns: 28px 1fr; }
  .gate-row small { grid-column: 2; }
  .flow-footer { grid-template-columns: 1fr 1fr; }
  .flow-footer p { grid-column: 1 / -1; grid-row: 1; }
  .tower-kpis, .tower-filters { grid-template-columns: 1fr; }
  .tower-filter-actions { justify-content: stretch; }
  .tower-filter-actions button { flex: 1; }
  .evaluation-grid { grid-template-columns: 1fr; }
  .guide-flow li { grid-template-columns: 30px 1fr; }
  .guide-flow li span { grid-column: 2; }
}
