:root {
  --snubber-green: #42d6c7;
  --snubber-blue: #68aef5;
  --snubber-amber: #efb95d;
  --snubber-red: #ff7b85;
  --snubber-panel: #0d1820;
  --snubber-panel-alt: #09131a;
}

button, input { font: inherit; }
button { cursor: pointer; }
.snubber-shell { width: min(1540px, calc(100% - 32px)); margin: 42px auto 72px; }
.tool-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: end; margin-bottom: 26px; }
.tool-hero h1 { max-width: 21ch; margin-bottom: 16px; }
.tool-hero .lede { max-width: 82ch; margin-bottom: 0; }
.scope-badges { max-width: 390px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.scope-badges span { padding: 6px 9px; border: 1px solid rgba(66, 214, 199, .2); border-radius: 6px; background: rgba(66, 214, 199, .05); color: #b7dedb; font-size: .68rem; font-weight: 800; }
.tool-intro { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: -4px 0 20px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--line); }
.tool-intro > div { padding: 12px 14px; background: #0b171f; }
.tool-intro strong, .tool-intro span { display: block; }
.tool-intro strong { color: #cfe0e6; font-size: .68rem; }
.tool-intro span { margin-top: 4px; color: #7f98a5; font-size: .65rem; line-height: 1.5; }

.snubber-layout { display: grid; grid-template-columns: 350px minmax(0, 1fr); gap: 18px; align-items: start; }
.snubber-inputs { position: sticky; top: 70px; max-height: calc(100vh - 84px); overflow: auto; scrollbar-color: #29404f transparent; }
.snubber-inputs form { padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--snubber-panel); }
.input-heading { display: flex; gap: 11px; align-items: flex-start; }
.input-heading > span { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border: 1px solid rgba(66, 214, 199, .32); border-radius: 6px; color: var(--snubber-green); font: 800 .7rem Consolas, monospace; }
.input-heading h2 { margin: 0; font-size: .88rem; letter-spacing: -.01em; }
.input-heading p { margin: 2px 0 0; color: var(--muted); font-size: .67rem; }
.section-gap { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(148, 168, 178, .16); }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 15px; }
.field-grid label { position: relative; min-width: 0; }
.field-grid label::before { content: ""; position: absolute; top: 29px; left: 0; bottom: 0; width: 2px; border-radius: 4px 0 0 4px; background: var(--snubber-blue); }
.field-grid label.assumed::before { background: var(--snubber-amber); }
.field-grid label.wide { grid-column: 1 / -1; }
.field-grid label > span { display: block; min-height: 26px; color: #b9cbd4; font-size: .64rem; line-height: 1.25; }
.field-grid label b { color: #718a98; font-weight: 600; }
.field-grid input { width: 100%; min-height: 39px; padding: 8px 9px 8px 11px; border: 1px solid #29404f; border-radius: 6px; background: #071119; color: var(--text); font: 750 .82rem Consolas, monospace; transition: border-color .14s ease, box-shadow .14s ease; }
.field-grid input:hover { border-color: #3b5a6c; }
.field-grid input:focus-visible { outline: 0; border-color: var(--snubber-green); box-shadow: 0 0 0 3px rgba(66, 214, 199, .13); }
.field-grid input[aria-invalid="true"] { border-color: var(--snubber-red); }
.kind-key { display: flex; flex-wrap: wrap; gap: 12px; margin: 14px 0 0; color: var(--muted); font-size: .61rem; }
.kind-key span { display: inline-flex; align-items: center; gap: 5px; }
.kind-key i { width: 7px; height: 7px; border-radius: 50%; }
.measured-dot { background: var(--snubber-blue); }
.assumed-dot { background: var(--snubber-amber); }
.form-actions { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 16px; }
.run-button, .reset-button, .print-button { min-height: 44px; padding: 0 13px; border-radius: 7px; font-size: .75rem; font-weight: 850; }
.run-button { border: 1px solid var(--snubber-green); background: var(--snubber-green); color: #061312; }
.run-button:hover { background: #67e3d7; }
.run-button:disabled { cursor: wait; opacity: .62; }
.reset-button { border: 1px solid #315061; background: transparent; color: #b8ccd5; }
.reset-button:hover { border-color: #527184; color: var(--text); }
.print-button { grid-column: 1 / -1; border: 1px solid #315061; background: #0a151d; color: #c7d9e0; }
.print-button:hover { border-color: var(--snubber-blue); color: #ddecf2; }
.run-button:focus-visible, .reset-button:focus-visible, .print-button:focus-visible, .apply-recommendation:focus-visible, .local-actions button:focus-visible { outline: 3px solid rgba(66, 214, 199, .28); outline-offset: 2px; }
.form-status { min-height: 20px; margin: 10px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.45; }
.form-status.error { color: #ffadb4; }

.snubber-results { min-width: 0; display: grid; gap: 12px; }
.result-section, .methodology { min-width: 0; padding: clamp(18px, 3vw, 28px); border: 1px solid var(--line); border-radius: 10px; background: var(--snubber-panel); }
.section-heading { display: flex; justify-content: space-between; gap: 18px; align-items: start; margin-bottom: 16px; }
.section-heading span { color: var(--snubber-green); font-size: .65rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.section-heading h2 { margin: 4px 0 0; font-size: clamp(1.18rem, 2.7vw, 1.55rem); letter-spacing: -.035em; }
.info-button { width: 30px; height: 30px; flex: none; border: 1px solid #315061; border-radius: 50%; background: transparent; color: #9bb2bd; font-weight: 850; }
.info-button:hover, .info-button:focus-visible { border-color: var(--snubber-green); color: var(--snubber-green); outline: 0; }
.waveform-controls { display: flex; align-items: center; gap: 10px; }
.auto-zoom-control { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; padding: 4px 9px; border: 1px solid #315061; border-radius: 6px; color: #b8ccd5; font-size: .66rem; font-weight: 750; white-space: nowrap; }
.auto-zoom-control input { width: 15px; height: 15px; margin: 0; accent-color: var(--snubber-green); }
.auto-zoom-control:focus-within { border-color: var(--snubber-green); box-shadow: 0 0 0 3px rgba(66, 214, 199, .12); }
.periodic-waveform-section { border-color: rgba(104, 174, 245, .28); }
.periodic-heading { align-items: center; }
.periodic-controls { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 7px; }
.cycle-count-control { display: grid; grid-template-columns: auto 54px; gap: 7px; align-items: center; min-height: 30px; padding: 4px 6px 4px 9px; border: 1px solid #315061; border-radius: 6px; color: #b8ccd5; font-size: .64rem; font-weight: 750; }
.cycle-count-control input { width: 54px; height: 28px; padding: 2px 5px; border: 1px solid #365465; border-radius: 4px; background: #071119; color: #e7f3f5; font: 750 .72rem Consolas, monospace; }
.cycle-count-control input:focus-visible { outline: 0; border-color: var(--snubber-green); box-shadow: 0 0 0 3px rgba(66, 214, 199, .13); }
.cycle-count-control input[aria-invalid="true"] { border-color: var(--snubber-red); }
.cycle-quick-buttons { display: inline-flex; gap: 4px; }
.cycle-quick-buttons button { min-height: 30px; padding: 4px 8px; border: 1px solid #315061; border-radius: 6px; background: #0a151d; color: #a9bec8; font-size: .62rem; font-weight: 800; }
.cycle-quick-buttons button:hover, .cycle-quick-buttons button:focus-visible { outline: 0; border-color: var(--snubber-green); color: var(--snubber-green); }
.periodic-helper { margin-bottom: 12px; }
.periodic-peak-summary .peak-card small { display: block; margin-top: 4px; color: #6f8997; font-size: .62rem; line-height: 1.35; }
.sampling-note { margin: 9px 1px 0; color: #718a97; font: .64rem/1.45 Consolas, monospace; }
.model-warning, .section-note { margin: -4px 0 16px; padding: 10px 12px; border-left: 3px solid var(--snubber-amber); background: rgba(239, 185, 93, .055); color: #b8a785; font-size: .72rem; }
.section-note { border-left-color: var(--snubber-blue); background: rgba(104, 174, 245, .05); color: var(--muted); }
.metric-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid #263b47; border-radius: 8px; overflow: hidden; }
.metric-card { min-width: 0; padding: 13px; border-right: 1px solid #263b47; border-bottom: 1px solid #263b47; background: #0a151d; }
.metric-card:nth-child(5n) { border-right: 0; }
.metric-card span { display: block; color: #7e97a4; font-size: .62rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.metric-card strong { display: block; margin-top: 5px; color: #eaf5f6; font: 800 clamp(.8rem, 1.5vw, 1rem) Consolas, monospace; overflow-wrap: anywhere; }
.metric-card small { display: block; margin-top: 4px; color: #69828f; font-size: .62rem; }
.metric-card.calculated strong { color: var(--snubber-green); }
.metric-card.approximate strong { color: var(--snubber-amber); }
.comparison-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; margin-top: 12px; overflow: hidden; border: 1px solid #263b47; border-radius: 8px; background: #263b47; }
.compare-cell { padding: 11px; background: #0a151d; }
.compare-cell span { display: block; color: #718a98; font-size: .62rem; text-transform: uppercase; }
.compare-cell strong { display: block; margin-top: 4px; font: 750 .76rem Consolas, monospace; }
.compare-cell em { color: #6f8997; font-size: .62rem; font-style: normal; }

.two-column, .chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.chart-card, .table-card { position: relative; min-width: 0; margin: 0; padding: 13px; border: 1px solid #263b47; border-radius: 8px; background: var(--snubber-panel-alt); }
.chart-card figcaption, .table-card h3 { min-height: 24px; margin: 0 0 9px; color: #c9dce4; font-size: .72rem; font-weight: 800; }
.chart-card canvas { display: block; width: 100%; height: 300px; border: 1px solid rgba(38, 59, 71, .65); border-radius: 5px; background: #071017; touch-action: pan-y; }
.chart-wide { margin-top: 10px; }
.chart-wide canvas { height: 340px; }
.chart-tooltip { position: absolute; z-index: 4; display: none; max-width: 220px; padding: 8px 9px; border: 1px solid #365568; border-radius: 6px; background: rgba(5, 13, 19, .96); color: #dcebef; box-shadow: 0 8px 22px rgba(0, 0, 0, .35); pointer-events: none; font: .64rem/1.5 Consolas, monospace; }
.chart-tooltip.show { display: block; }
.coefficient-list, .pole-list { display: grid; gap: 7px; }
.coefficient-list { padding-bottom: 12px; border-bottom: 1px solid #263b47; }
.pole-list { margin-top: 12px; }
.coefficient-row, .pole-row { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 8px; align-items: baseline; }
.coefficient-row span, .pole-row span { color: #708a97; font-size: .62rem; }
.coefficient-row code, .pole-row code { color: #cde2eb; font: .69rem Consolas, monospace; overflow-wrap: anywhere; }
.pole-row.complex code { color: #8bd2ff; }
.peak-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.peak-card { padding: 11px; border: 1px solid #263b47; border-radius: 7px; background: #0a151d; }
.peak-card span { display: block; color: #718a98; font-size: .59rem; text-transform: uppercase; }
.peak-card strong { display: block; margin-top: 4px; color: #edf7f8; font: 800 .92rem Consolas, monospace; }
.peak-card.good strong { color: #73e0a2; }
.peak-card.warn strong { color: var(--snubber-amber); }

.optimizer-section { border-color: rgba(66, 214, 199, .34); }
.optimizer-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid #294c4b; border-radius: 8px; background: #294c4b; }
.optimizer-card { padding: 13px; background: rgba(8, 25, 27, .96); }
.optimizer-card span { display: block; color: #82a5a5; font-size: .62rem; text-transform: uppercase; }
.optimizer-card strong { display: block; margin-top: 5px; color: #79e6dc; font: 850 .84rem Consolas, monospace; overflow-wrap: anywhere; }
.optimizer-note { margin: 13px 0 0; color: var(--muted); font-size: .7rem; }
.optimizer-fail { padding: 15px; border-left: 3px solid var(--snubber-red); background: rgba(255, 123, 133, .06); color: #ffb8be; font-size: .76rem; }

.methodology { padding: 0; }
.methodology summary { padding: 18px 22px; cursor: pointer; color: #d7e6eb; font-size: .82rem; font-weight: 850; }
.methodology summary:focus-visible { outline: 3px solid rgba(66, 214, 199, .25); outline-offset: -3px; }
.method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 18px 18px; }
.method-grid article { min-width: 0; padding: 15px; border: 1px solid #263b47; border-radius: 8px; background: #09131a; }
.method-grid h3 { margin: 0 0 9px; color: #d5e7ed; font-size: .78rem; }
.method-grid .equation { margin: 0; padding: 11px; border-radius: 6px; font-size: .72rem; }
.method-wide { grid-column: 1 / -1; }
.snubber-footer { width: min(1540px, calc(100% - 32px)); }

@media (max-width: 1180px) {
  .snubber-layout { grid-template-columns: 310px minmax(0, 1fr); }
  .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metric-card:nth-child(5n) { border-right: 1px solid #263b47; }
  .metric-card:nth-child(3n) { border-right: 0; }
  .comparison-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .optimizer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .tool-hero { grid-template-columns: 1fr; align-items: start; }
  .scope-badges { justify-content: flex-start; max-width: none; }
  .snubber-layout { grid-template-columns: 1fr; }
  .snubber-inputs { position: static; max-height: none; }
  .field-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .field-grid label.wide { grid-column: auto; }
  .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .snubber-shell { width: min(100% - 20px, 1540px); margin-top: 28px; }
  .field-grid, .metric-grid, .two-column, .chart-grid, .method-grid { grid-template-columns: 1fr; }
  .field-grid label.wide, .method-wide { grid-column: auto; }
  .metric-card, .metric-card:nth-child(3n), .metric-card:nth-child(5n) { border-right: 0; }
  .comparison-strip, .peak-summary, .optimizer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chart-card canvas, .chart-wide canvas { height: 285px; }
  .form-actions { grid-template-columns: 1fr; }
  .section-heading { gap: 10px; }
  .waveform-controls { align-items: flex-end; flex-direction: column-reverse; }
  .periodic-heading { align-items: flex-start; flex-direction: column; }
  .periodic-controls { justify-content: flex-start; }
  .auto-zoom-control { white-space: normal; }
  .analysis-state-banner { position: static; top: auto; }
  .tool-intro { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .field-grid { grid-template-columns: 1fr; }
  .comparison-strip, .peak-summary, .optimizer-grid { grid-template-columns: 1fr; }
}

@media print {
  .skip-link, .site-nav, .tool-hero, .snubber-inputs, .scope-badges, .tool-intro, .info-button, .auto-zoom-control, .periodic-controls, .chart-tooltip, .snubber-footer { display: none !important; }
  body { background: #fff !important; color: #111; }
  .snubber-shell { width: auto; margin: 0; }
  .section-heading h2 { color: #162d3a; }
  .section-note, .model-warning { color: #526772; }
  .snubber-layout { display: block; }
  .result-section, .methodology { break-inside: auto; border-color: #bccbd2; background: #fff; }
  .metric-grid, .comparison-strip, .chart-card, .table-card, .optimizer-grid, .method-grid article { break-inside: avoid; border-color: #bccbd2; background: #fff; }
  .metric-card, .compare-cell, .optimizer-card { background: #fff; color: #111; }
  .metric-card strong, .compare-cell strong, .optimizer-card strong, .chart-card figcaption, .table-card h3 { color: #163847; }
  .candidate-card, .candidate-rc, .decision-metrics, .decision-metrics > div, .model-validation, .model-validation > div, .rating-summary, .rating-summary > div, .recommendation-card, .design-status { background: #fff !important; color: #172c36 !important; }
  .candidate-rc strong, .decision-metrics strong, .recommendation-card h3, .recommendation-card p, .design-status span, .model-validation strong, .rating-summary strong { color: #173b49 !important; }
  .method-grid .equation { background: #f2f5f6 !important; color: #173b49 !important; }
  .chart-card canvas { height: 260px !important; background: #fff; }
}

/* Integrated engineering-workspace hierarchy */
.snubber-page [hidden] { display: none !important; }
.tool-path { display: flex; align-items: center; gap: 7px; margin-bottom: 14px; color: #6f8997; font-size: .68rem; font-weight: 750; }
.tool-path a { color: #96b2bf; text-decoration: none; }
.tool-path a:hover { color: var(--snubber-green); }
.tool-hero { align-items: center; }
.tool-hero h1 { max-width: none; margin: 8px 0 10px; font-size: clamp(2.25rem, 5vw, 3.8rem); }
.tool-hero .lede { max-width: 70ch; }

.essential-fields label > span { min-height: 34px; }
.field-grid label > small { display: block; margin-top: 5px; color: #6f8793; font-size: .62rem; line-height: 1.4; }
.origin-chip { display: inline-flex; align-items: center; width: fit-content; margin-left: 5px; padding: 2px 5px; border: 1px solid currentColor; border-radius: 4px; font-size: .56rem; font-style: normal; font-weight: 850; letter-spacing: .035em; line-height: 1.2; text-transform: uppercase; vertical-align: .08em; opacity: .88; }
.origin-chip.measured { color: #8dc9ff; }
.origin-chip.user { color: #b8ccd5; }
.origin-chip.estimate { color: var(--snubber-amber); }
.origin-chip.derived { color: var(--snubber-green); }
.origin-chip.recommended { color: #83e6ac; }
.origin-key { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.origin-key .origin-chip { margin: 0; }

.constraint-inputs { margin-top: 20px; padding-top: 17px; border-top: 1px solid rgba(148, 168, 178, .16); }
.constraint-inputs .field-grid { grid-template-columns: 1fr; margin-top: 12px; }
.constraint-inputs label::before { background: var(--snubber-green); }
.constraint-inputs input:placeholder-shown { color: #6d8591; border-style: dashed; }
.constraint-inputs .input-heading > span { border-color: rgba(104, 174, 245, .38); color: var(--snubber-blue); }

.advanced-settings { margin-top: 18px; border-top: 1px solid rgba(148, 168, 178, .16); border-bottom: 1px solid rgba(148, 168, 178, .16); }
.advanced-settings > summary { padding: 13px 2px; cursor: pointer; list-style: none; }
.advanced-settings > summary:focus-visible, .analysis-disclosure > summary:focus-visible, .secondary-chart-disclosure > summary:focus-visible, .metric-calculation > summary:focus-visible { outline: 3px solid rgba(66, 214, 199, .25); outline-offset: 2px; }
.advanced-settings > summary::-webkit-details-marker { display: none; }
.advanced-settings > summary::after { content: "+"; float: right; color: var(--snubber-green); font: 800 1rem Consolas, monospace; }
.advanced-settings[open] > summary::after { content: "−"; }
.advanced-settings > summary span { display: block; color: #d7e6eb; font-size: .76rem; font-weight: 850; }
.advanced-settings > summary small { display: block; max-width: 34ch; margin-top: 2px; color: #718a98; font-size: .62rem; line-height: 1.4; }
.advanced-body { padding: 2px 0 16px; }
.advanced-body h3 { margin: 16px 0 -5px; color: #8ca5b2; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.select-field { display: grid; gap: 6px; margin-top: 12px; color: #b9cbd4; font-size: .64rem; }
.select-field select { width: 100%; min-height: 40px; padding: 8px 9px; border: 1px solid #29404f; border-radius: 6px; background: #071119; color: var(--text); font-size: .7rem; }
.select-field select:focus-visible { outline: 0; border-color: var(--snubber-green); box-shadow: 0 0 0 3px rgba(66, 214, 199, .13); }
.local-actions { display: flex; gap: 12px; margin-top: 11px; }
.local-actions button { padding: 0; border: 0; background: transparent; color: #829ba8; font-size: .61rem; font-weight: 750; text-decoration: underline; text-decoration-color: #36505f; text-underline-offset: 3px; }
.local-actions button:hover { color: var(--snubber-green); }
.live-note { margin: 7px 0 0; color: #6f8996; font-size: .62rem; line-height: 1.4; }

.analysis-state-banner { position: sticky; top: 64px; z-index: 8; margin-bottom: 10px; padding: 10px 13px; border: 1px solid #3a5968; border-left: 3px solid var(--snubber-blue); border-radius: 6px; background: #0a1821; color: #c3d4dc; font-size: .69rem; font-weight: 750; line-height: 1.45; }
.analysis-state-banner.error { border-color: rgba(255, 123, 133, .55); border-left-color: var(--snubber-red); background: #241218; color: #ffd0d4; }
.snubber-results.has-stale-results > .result-section,
.snubber-results.has-stale-results > .analysis-disclosure,
.snubber-results.has-stale-results > .methodology { opacity: .52; }

.primary-result { border-color: rgba(66, 214, 199, .34); }
.design-status { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; padding: 10px 12px; border-left: 3px solid; background: #09151b; }
.design-status strong { font: 850 .68rem Consolas, monospace; letter-spacing: .08em; }
.design-status span { color: #b5c8d1; font-size: .7rem; }
.design-status.pass { border-color: #73e0a2; }
.design-status.pass strong { color: #73e0a2; }
.design-status.review { border-color: var(--snubber-amber); }
.design-status.review strong { color: var(--snubber-amber); }
.constraint-warning { margin: 0 0 10px; padding: 9px 12px; border: 1px solid rgba(239, 185, 93, .3); border-radius: 6px; background: rgba(54, 39, 14, .22); color: #e8c98e; font-size: .66rem; line-height: 1.45; }
.model-validation { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-bottom: 10px; overflow: hidden; border: 1px solid #29404f; border-radius: 8px; background: #29404f; }
.model-validation > div { padding: 11px 13px; background: #09151c; }
.model-validation span { display: block; color: #7d96a2; font-size: .61rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.model-validation strong { display: block; margin-top: 4px; color: #dcebed; font: 800 .78rem Consolas, monospace; }
.model-validation .origin-chip { display: inline-flex; margin-left: 4px; }
.model-validation p { grid-column: 1 / -1; margin: 0; padding: 8px 12px; background: #0b1820; color: #7f98a4; font-size: .61rem; line-height: 1.45; }
.rating-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 0 10px; overflow: hidden; border: 1px solid #304052; border-radius: 8px; background: #304052; }
.rating-summary > div { padding: 10px 12px; background: #0b1620; }
.rating-summary span { display: block; color: #8199a6; font-size: .61rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.rating-summary strong { display: block; margin-top: 4px; color: #dcebed; font: 800 .76rem Consolas, monospace; }
.rating-summary p { grid-column: 1 / -1; margin: 0; padding: 7px 12px; background: #0c1922; color: #829aa7; font-size: .6rem; }
.candidate-card { display: grid; grid-template-columns: minmax(210px, .75fr) minmax(0, 1.8fr); gap: 1px; overflow: hidden; border: 1px solid #29404f; border-radius: 8px; background: #29404f; }
.candidate-rc, .decision-metrics > div { padding: 14px; background: #0a151d; }
.candidate-rc > span, .decision-metrics span, .recommendation-copy > span, .recommendation-facts span { display: block; color: #7d96a2; font-size: .62rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.candidate-rc strong { display: block; margin: 8px 0 5px; color: #eaf5f6; font: 850 clamp(1.08rem, 2vw, 1.38rem) Consolas, monospace; }
.candidate-rc i, .recommendation-copy i, .decision-metrics i { color: #5d7784; font-style: normal; }
.candidate-rc small, .decision-metrics small { color: #718a98; font-size: .61rem; line-height: 1.45; }
.decision-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #29404f; }
.decision-metrics strong { display: block; margin-top: 7px; color: #eaf5f6; font: 850 .94rem Consolas, monospace; overflow-wrap: anywhere; }
.decision-metrics .origin-chip, .recommendation-copy .origin-chip { display: inline-flex; margin-left: 4px; }

.recommendation-card { display: grid; grid-template-columns: minmax(230px, 1.25fr) minmax(0, 1fr) auto; gap: 18px; align-items: center; margin-top: 10px; padding: 16px; border: 1px solid rgba(115, 224, 162, .3); border-radius: 8px; background: rgba(12, 34, 30, .58); }
.recommendation-copy h3 { margin: 6px 0; color: #84e8ad; font: 850 1.18rem Consolas, monospace; }
.recommendation-copy p { margin: 0; color: #95adae; font-size: .66rem; line-height: 1.5; }
.recommendation-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.recommendation-facts div { padding-left: 9px; border-left: 1px solid rgba(115, 224, 162, .2); }
.recommendation-facts strong { display: block; margin-top: 2px; color: #dff4e7; font: 750 .72rem Consolas, monospace; overflow-wrap: anywhere; }
.apply-recommendation { min-height: 40px; padding: 0 12px; border: 1px solid #73e0a2; border-radius: 6px; background: #73e0a2; color: #07140e; font-size: .67rem; font-weight: 850; }
.apply-recommendation:hover { background: #96edb9; }
.apply-recommendation:disabled { cursor: default; opacity: .55; }
.recommendation-card.unavailable { display: block; border-color: rgba(239, 185, 93, .3); background: rgba(54, 39, 14, .22); }
.recommendation-card.unavailable h3 { margin: 5px 0; color: var(--snubber-amber); }

.metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; overflow: visible; border: 0; }
.metric-card, .metric-card:nth-child(3n), .metric-card:nth-child(5n) { border: 1px solid #263b47; border-radius: 7px; }
.metric-card > span { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; }
.metric-card .origin-chip { display: inline-flex; margin-left: auto; }
.spectrum-metrics { margin: 14px 0 16px; }
.metric-calculation { margin-top: 9px; border-top: 1px solid rgba(113, 138, 152, .18); }
.metric-calculation summary { padding-top: 7px; cursor: pointer; color: #8eb8c5; font-size: .62rem; font-weight: 800; }
.metric-calculation > div { display: grid; gap: 5px; margin-top: 7px; }
.metric-calculation code, .metric-calculation strong { display: block; color: #9cb4bf; font: .62rem/1.45 Consolas, monospace; overflow-wrap: anywhere; }
.metric-calculation strong { color: var(--snubber-green); }
.comparison-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.analysis-disclosure { padding: 0; }
.analysis-disclosure > summary { position: relative; display: grid; grid-template-columns: 120px minmax(0, 1fr) minmax(180px, .7fr); gap: 16px; align-items: center; padding: 17px 22px; cursor: pointer; list-style: none; }
.analysis-disclosure > summary::-webkit-details-marker { display: none; }
.analysis-disclosure > summary::after { content: "+"; position: absolute; right: 20px; color: var(--snubber-green); font: 850 1rem Consolas, monospace; }
.analysis-disclosure[open] > summary::after { content: "−"; }
.analysis-disclosure > summary span { color: var(--snubber-green); font-size: .62rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.analysis-disclosure > summary strong { color: #dbe9ed; font-size: .79rem; }
.analysis-disclosure > summary small { padding-right: 24px; color: #758f9b; font-size: .62rem; line-height: 1.4; }
.analysis-disclosure[open] > summary { border-bottom: 1px solid #263b47; }
.disclosure-body { padding: 20px; }
.secondary-chart-disclosure { margin-top: 9px; }
.secondary-chart-disclosure > summary { padding: 10px 2px; cursor: pointer; color: #9eb4be; font-size: .68rem; font-weight: 800; }
.secondary-chart-disclosure .chart-card { margin-top: 0; }
.tradeoff-section .two-column { margin-top: 0; }
.limitations ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 26px; margin: 0; padding-left: 19px; color: #8fa6b1; font-size: .7rem; }
.limitations li::marker { color: var(--snubber-amber); }

@media (max-width: 1180px) {
  .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .recommendation-card { grid-template-columns: 1fr 1fr; }
  .apply-recommendation { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 860px) {
  .candidate-card { grid-template-columns: 1fr; }
  .analysis-disclosure > summary { grid-template-columns: 105px minmax(0, 1fr); }
  .analysis-disclosure > summary small { grid-column: 2; }
}

@media (max-width: 680px) {
  .tool-hero { gap: 18px; }
  .tool-hero h1 { font-size: clamp(2.35rem, 13vw, 3.15rem); }
  .decision-metrics, .metric-grid, .recommendation-card, .limitations ul { grid-template-columns: 1fr; }
  .recommendation-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analysis-disclosure > summary { grid-template-columns: 1fr; gap: 4px; padding-right: 46px; }
  .analysis-disclosure > summary small { grid-column: auto; padding-right: 0; }
  .disclosure-body { padding: 14px; }
  .model-validation { grid-template-columns: 1fr; }
  .model-validation p { grid-column: auto; }
  .rating-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating-summary p { grid-column: 1 / -1; }
  .analysis-state-banner { position: static; top: auto; }
}

@media (max-width: 430px) {
  .essential-fields { grid-template-columns: 1fr; }
  .recommendation-facts { grid-template-columns: 1fr 1fr; }
  .local-actions { flex-direction: column; align-items: flex-start; gap: 6px; }
}

@media print {
  @page { margin: 12mm; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tool-path, .local-actions, .advanced-settings, .apply-recommendation, .analysis-state-banner, .print-button, .live-note, .form-status { display: none !important; }
  .analysis-disclosure > summary::after { display: none; }
  .print-report { display: block !important; margin-bottom: 12px; padding: 18px; border: 1px solid #9fb2bc; background: #fff; color: #172c36; break-after: page; }
  .print-report-heading { display: flex; justify-content: space-between; gap: 20px; align-items: end; border-bottom: 2px solid #1f5967; padding-bottom: 10px; }
  .print-report-heading span { color: #35626d; font-size: 9pt; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .print-report-heading h2 { margin: 4px 0 0; color: #163847; font-size: 20pt; }
  .print-report-heading p { margin: 0; color: #526772; font-size: 8.5pt; }
  .print-report-note { margin: 10px 0 14px; color: #405963; font-size: 9pt; line-height: 1.45; }
  .print-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .print-report-grid section { padding: 10px; border: 1px solid #c5d1d7; break-inside: avoid; }
  .print-report-grid h3 { margin: 0 0 7px; color: #1d4654; font-size: 10pt; }
  .print-report-grid dl { display: grid; grid-template-columns: minmax(120px, 1fr) auto; gap: 4px 12px; margin: 0; }
  .print-report-grid dt, .print-report-grid dd { margin: 0; font-size: 8.5pt; line-height: 1.35; }
  .print-report-grid dt { color: #526772; }
  .print-report-grid dd { color: #172c36; font-family: Consolas, monospace; font-weight: 700; text-align: right; }
  .analysis-disclosure { break-before: auto; }
  .methodology { break-before: page; }
  .analysis-disclosure > summary { break-after: avoid; }
  .result-section > .section-heading { break-after: avoid; }
  .analysis-disclosure > summary, .methodology > summary, .analysis-disclosure > summary strong, .analysis-disclosure > summary small, .analysis-disclosure > summary span, .method-grid h3 { color: #173b49 !important; }
  .disclosure-body, .method-grid { display: block; }
  .method-grid article { margin-bottom: 8px; }
  .chart-card { break-inside: avoid; }
  a[href]::after { content: none !important; }
}

@media screen { .print-report { display: none; } }
