/* TCS identity: near-black surfaces, restrained green, accessible light text. */
:root {
  --site-bg: #080b09;
  --site-surface: #111713;
  --site-raised: #19231c;
  --site-border: #334438;
  --site-ink: #e9f0ea;
  --site-muted: #b1c0b4;
  --site-accent: #a8d6b0;
  --offwhite: #080b09;
  --paper: #141c16;
  --dark: #111713;
  --ink: #e9f0ea;
  --muted: #b1c0b4;
  --navy: #a8d6b0;
  --navy-soft: #85b993;
  --line: #4c6854;
  --line-soft: #334438;
  --shadow: none;
}
html { background: var(--site-bg); }
body.analysis-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
  background: var(--site-bg);
  color: var(--site-ink);
}
body.analysis-page > main { flex: 1 0 auto; min-height: 0; }
.analysis-page .site-main { min-height: 0; }
.analysis-page .top-bar { background: var(--site-bg); border-bottom: 1px solid var(--site-border); }
.analysis-page .top-bar-inner {
  position: relative; display: flex; align-items: center; justify-content: space-between;
  width: min(1480px, 100%); min-height: 72px; margin: auto;
  padding: .7rem clamp(1.25rem, 4vw, 4rem); background: transparent;
}
.analysis-page .logo-slot { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); grid-column: auto; justify-self: auto; gap: .8rem; color: var(--site-ink); }
.analysis-page .site-logo { display: block; width: 54px; height: auto; flex: none; }
.analysis-page .top-actions { margin-left: auto; }
.brand-dot { color: var(--site-accent); }
.brand-name { max-width: 142px; padding-left: .8rem; border-left: 1px solid var(--site-border); font-size: .61rem; font-weight: 800; letter-spacing: .08em; line-height: 1.35; }
.analysis-page .top-actions { grid-column: auto; width: auto; justify-self: auto; gap: .25rem; }
.analysis-page .nav-button, .analysis-page .nav-button.is-current {
  width: auto; min-width: 0; min-height: 40px; flex: 0 1 auto;
  padding: .6rem 1rem; border: 0; border-radius: 0; background: transparent;
  color: var(--site-ink); font-size: .78rem; letter-spacing: 0;
  text-transform: none; box-shadow: none;
}
.analysis-page .nav-button:hover, .analysis-page .nav-button.is-current:hover { background: var(--site-raised); transform: none; }
.analysis-page .nav-button.is-current { box-shadow: inset 0 -2px var(--site-accent); }
.analysis-page .analysis-main { padding: calc(72px + 3rem) 0 4rem; }
.analysis-page .analysis-main > .container { width: min(1180px, calc(100% - 2.5rem)); }
.analysis-page .analysis-title { color: var(--site-ink); }
.analysis-page .analysis-intro, .analysis-page .py-status { color: var(--site-muted); }
.analysis-page .back-link { color: var(--site-accent); }
.analysis-page :focus-visible { outline: 3px solid var(--site-accent); outline-offset: 3px; }
.analysis-page .bottom-bar { flex: none; margin-top: auto; background: #070a08; color: var(--site-ink); border-top: 1px solid var(--site-border); }
.analysis-page .bottom-bar-inner { display: grid; grid-template-columns: 1fr auto 1fr; width: min(1480px, calc(100% - 2.5rem)); min-height: 76px; padding: 1rem 0; font-size: .75rem; }
.analysis-page .footer-brand { grid-column: 2; grid-row: 1; justify-self: center; padding: 0; font-size: .72rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.analysis-page .bottom-bar-inner > a:last-child:not(.footer-brand) { grid-column: 3; grid-row: 1; justify-self: end; }
.analysis-page .bottom-bar-inner > a:last-child:hover { color: var(--site-accent); text-decoration: underline; }

/* Full-screen entry: the brand itself links to Hydronic Tools. */
body.landing-page { background: #000; }
.landing-page .entry-screen { display: grid; place-items: center; min-height: 100vh; min-height: 100svh; padding: 1.5rem; }
.landing-page .entry-heading { margin: 0; }
.landing-page .entry-brand { display: inline-flex; align-items: center; gap: clamp(.5rem, 2vw, 2rem); color: var(--site-ink); }
.landing-page .entry-logo { display: block; width: min(13.75vw, 9.5rem); height: auto; flex: none; }
.landing-page .entry-name { padding-left: clamp(.5rem, 2vw, 2rem); border-left: 1px solid var(--site-border); font: 700 clamp(.7rem, 2vw, 1.6rem)/1.35 'Archivo', Arial, sans-serif; letter-spacing: .025em; }
.landing-page .entry-brand:hover .entry-logo { opacity: .85; }

/* Catalogs and Papers: half an inch between the header and the page heading. */
.analysis-page.catalog-page .analysis-main { padding-top: calc(72px + .5in); padding-bottom: 5rem; }
.catalog-heading { padding: 0 0 2.25rem; border-bottom: 1px solid var(--site-border); text-align: left; }
.catalog-heading .analysis-title { margin: 0; font-size: clamp(2.8rem, 5vw, 5rem); text-transform: none; letter-spacing: -.05em; line-height: 1.15; }
.catalog-page .calc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2rem; }
.catalog-page .tool-card { min-width: 0; padding: 1rem; overflow: hidden; border: 1px solid var(--site-border); border-radius: 0; background: var(--site-surface); box-shadow: none; }
.catalog-page .tool-card > img { width: 100%; margin: 0; border-radius: 0; aspect-ratio: 2; object-fit: cover; }
.catalog-page .tool-card h2 { padding: 1.4rem 1.5rem 0 0; color: var(--site-ink); font-size: 1.35rem; }
.catalog-page .tool-card .calc-desc { padding: 0; margin: .5rem 0 1.25rem; color: var(--site-muted); line-height: 1.5; }
.catalog-page .tool-card .tool-link { margin: auto 0 0; padding: .9rem 0 .15rem; border-top: 1px solid var(--site-border); color: var(--site-accent); }
.catalog-page .tool-card:hover, .catalog-page .tool-card:focus-visible { transform: none; border-color: var(--site-accent); }
.catalog-note { margin: 2.5rem 0 0; color: var(--site-muted); font-size: .85rem; line-height: 1.6; }

/* Dark controls; safety warnings retain their distinct warning/error colors. */
.analysis-page .hx-panel, .expansion-page .et-panel, .pressure-page .pa-panel,
.pressure-page .pa-chart-panel { background: var(--site-surface); color: var(--site-ink); border: 1px solid var(--site-border); border-radius: 6px; box-shadow: none; }
.analysis-page .hx-panel h2, .expansion-page h2, .pressure-page h2, .pressure-page h3,
.analysis-page .hx-label, .analysis-page .hx-field, .analysis-page .hx-result-line,
.expansion-page .et-fields label, .pressure-page .pa-fields label, .pressure-page .pa-add-row label,
.pressure-page .pa-axis-panel summary, .pressure-page .pa-engineering-note > summary { color: var(--site-ink); }
.analysis-page .hx-tab { color: var(--site-muted); }
.analysis-page .hx-tab[aria-selected="true"] { color: var(--site-accent); }
.analysis-page .hx-tabs, .analysis-page .hx-tabs::before { background: var(--site-raised); border-color: var(--site-border); }
.analysis-page .hx-input, .analysis-page .hx-select, .analysis-page .hx-readout,
.expansion-page #et-app input, .expansion-page #et-app select,
.pressure-page #pa-app input:not([type="checkbox"]), .pressure-page #pa-app select {
  background: var(--site-bg); color: var(--site-ink);
  border: 1px solid var(--site-border); color-scheme: dark;
}
.analysis-page .hx-input.is-solved, .analysis-page .hx-input[readonly], .analysis-page .hx-readout,
.analysis-page .hx-temp .hx-field-box .hx-input.is-solved,
.expansion-page #et-app input[readonly], .pressure-page #pa-app input[readonly] { background: var(--site-raised); color: var(--site-ink); border-color: var(--site-border); }
.analysis-page .hx-temp .hx-field-box .hx-input { background: var(--site-bg); color: var(--site-ink); }
.analysis-page .hx-mode, .expansion-page #et-app button, .pressure-page #pa-app button {
  background: var(--site-raised); border: 1px solid var(--site-border);
  color: var(--site-ink); border-radius: 4px;
}
.analysis-page .hx-mode.is-active, .expansion-page #et-app .et-primary,
.pressure-page #pa-app .pa-primary, .pressure-page #pa-app button[aria-pressed="true"] {
  background: var(--site-accent); border-color: var(--site-accent); color: var(--site-bg);
}
.expansion-page #et-app button:hover:not(:disabled), .pressure-page #pa-app button:hover:not(:disabled),
.expansion-page #et-app .et-primary:hover:not(:disabled), .pressure-page #pa-app .pa-primary:hover:not(:disabled) { background: #30523a; color: var(--site-ink); }
.analysis-page .hx-loop-sec { background: #325e3d; border-color: #86bd94; }
.analysis-page .hx-loop-pri { background: #223f2a; border-color: #558968; }
.analysis-page .hx-steps summary, .analysis-page .hx-table thead th,
.expansion-page summary, .pressure-page .pa-collapsible > summary::before { color: var(--site-accent); }
.analysis-page .hx-table tbody tr:nth-child(odd),
.expansion-page tbody tr:nth-child(even), .pressure-page .pa-table tbody tr:nth-child(even) { background: var(--site-raised); }
.expansion-page th, .pressure-page .pa-table thead, .pressure-page .pa-table caption,
.pressure-page .pa-status, .pressure-page .pa-range { background: var(--site-raised); color: var(--site-ink); }
.expansion-page .et-help, .expansion-page #et-runtime-status, .expansion-page .et-note,
.pressure-page .pa-help, .pressure-page .pa-runtime-status, .pressure-page .pa-engineering-note { color: var(--site-muted); }
.pressure-page .pa-pump-total { background: var(--site-raised); color: var(--site-ink); border: 1px solid var(--site-border); }
.pressure-page .pa-chart svg text { fill: var(--site-ink); }
.pressure-page .pa-chart svg .pa-node-label { stroke: var(--site-surface); }
.pressure-page .pa-chart svg rect[fill="#fffdf8"] { fill: var(--site-surface); }
.pressure-page .pa-chart svg path[stroke="#dce1e5"] { stroke: var(--site-border); }
.pressure-page .pa-chart svg path[stroke="#102a47"] { stroke: var(--site-accent); }
.pressure-page .pa-chart svg circle[fill="#102a47"] { fill: var(--site-accent); }
.pressure-page #pa-auto { accent-color: var(--site-accent); }

@media (max-width: 900px) {
  .catalog-page .calc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .analysis-page .top-bar-inner { flex-direction: column; justify-content: center; gap: .25rem; min-height: 104px; }
  .analysis-page .logo-slot { position: static; transform: none; }
  .analysis-page .top-actions { margin: 0; }
  .analysis-page .analysis-main { padding-top: calc(104px + 3rem); }
  .analysis-page.catalog-page .analysis-main { padding-top: calc(104px + .5in); }
}
@media (max-width: 680px) {
  .analysis-page .top-bar-inner { padding: .6rem 1rem; }
  .analysis-page .brand-name { display: none; }
  .analysis-page .top-actions { gap: 0; }
  .analysis-page .nav-button, .analysis-page .nav-button.is-current { padding: .6rem .65rem; font-size: .72rem; }
  .landing-page .entry-name { font-size: clamp(.75rem, 3vw, 1.1rem); }
  .catalog-page .calc-grid { grid-template-columns: 1fr; }
  .analysis-page .bottom-bar-inner { gap: .5rem; }
}
@media print {
  .pressure-page { display: block !important; }
  .pressure-page .pa-chart svg rect[fill="#fffdf8"] { fill: #fffdf8; }
  .pressure-page .pa-chart svg text { fill: #102a47; }
  .pressure-page .pa-chart svg path[stroke="#dce1e5"] { stroke: #dce1e5; }
  .pressure-page .pa-chart svg path[stroke="#102a47"] { stroke: #102a47; }
}
@media (prefers-reduced-motion: reduce) { .tool-card { transition: none !important; } }
