:root {
  --red: #B91C1C;
  --dark-red: #991B1B;
  --navy: #0B1F3A;
  --blue: #1D4ED8;
  --blue2: #0B1F3A;
  --white: #FFFFFF;
  --bg: #F5F7FA;
  --ink: #0F172A;
  --muted: #475569;
  --line: #B91C1C;
}

body { background: var(--bg); color: var(--ink); }
h1, h2, h3, h4, .field label { color: var(--navy); }
a { color: var(--blue); }
.top, .nav { background: var(--navy); box-shadow: inset 0 0 0 1px var(--red); }
.top {
  display: grid;
  place-items: center;
  padding: clamp(8px, 2vw, 24px);
}
.brand-logo {
  display: block;
  width: 100%;
  max-width: 920px;
  height: auto;
  object-fit: contain;
}
.nav button { background: var(--navy); color: var(--white); border-color: var(--red); }
.nav button:hover, .nav button.active, .nav button:active { background: var(--red); color: var(--white); }

.card, .card.alignment-visual, .result, .report, .rbox,
.report-alignment-square, .alignment-visual-toggle, #p2pWorkspace,
#p2pWorkspace .card, #p2pWorkspace .p2p-summary,
#p2pWorkspace .p2p-log-scroll, #p2pWorkspace dialog,
#p2pWorkspace #p2pReportFrame, #skidConfirm,
#skidPage .skid-phase-bar, #skidPage .skid-phase-label,
#skidPage .skid-calculator-grid > section, #skidPage .skid-point-preview,
.skid-metrics, .skid-report {
  background: var(--white);
  border-color: var(--red);
  color: var(--ink);
}
.result strong, .reportlogo, .reporttitle, .skid-metrics strong { color: var(--navy); }
.reportlogo span { color: var(--blue); }
.reporthead, .footer, .alignment-visual-feet,
.table th, .table td, .rtable th, .rtable td,
#p2pWorkspace .p2p-summary > div, #p2pWorkspace .p2p-table td,
#p2pWorkspace .p2p-table tr, #p2pWorkspace .p2p-row-actions,
.skid-report-job > div { border-color: var(--red); }
.footer { color: var(--muted); }
.status, .report-status, .skid-final-status {
  border-color: var(--red);
  box-shadow: inset 0 0 0 1px var(--red);
}
.table th, .rtable th { background: var(--bg); color: var(--navy); }
.section-title, .rbox h3, .skid-report h3, #p2pWorkspace .p2p-table th {
  background: var(--navy);
  color: var(--white);
  box-shadow: inset 0 -2px var(--red);
}

input, textarea, select, .field input, .field textarea, .field select,
#skidPage .skid-points input, #skidPage .skid-points select {
  background: var(--white);
  color: var(--ink);
  border-color: var(--red);
  accent-color: var(--red);
}
.table input { background: var(--white); box-shadow: inset 0 0 0 1px var(--red); }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
.signrow { border-color: var(--red); }

.btn, .primary, .dark, .outline, .danger, .alignment-visual-toggle button,
#electricalPage .ie-filter, #electricalPage .ie-calculate,
#skidPage .skid-phase-buttons button, #skidPage .skid-reading,
#p2pWorkspace .p2p-tools-link {
  background: var(--navy);
  color: var(--white);
  border-color: var(--red);
  box-shadow: inset 0 0 0 1px var(--red);
}
.sign { background: var(--navy) !important; border-color: var(--red) !important; }
.btn:hover:not(:disabled), .btn:active:not(:disabled),
.alignment-visual-toggle button:hover, .alignment-visual-toggle button:active,
.alignment-visual-toggle button[aria-pressed="true"],
#electricalPage .ie-filter:hover, #electricalPage .ie-filter:active,
#electricalPage .ie-filter[aria-pressed="true"],
#electricalPage .ie-calculate:hover, #electricalPage .ie-calculate:active,
#skidPage .skid-phase-buttons button:hover:not(:disabled),
#skidPage .skid-phase-buttons button:active:not(:disabled),
#skidPage .skid-reading:hover:not(:disabled), #skidPage .skid-reading:active:not(:disabled),
#p2pWorkspace .p2p-tools-link:hover, #p2pWorkspace .p2p-tools-link:active {
  background: var(--red);
  color: var(--white);
  border-color: var(--red);
}
#skidPage [aria-pressed="true"] { background: var(--red) !important; border-color: var(--red) !important; }
.sign:hover, .sign:active { background: var(--red) !important; }
.btn:active:not(:disabled), .nav button:active, #electricalPage .ie-calculate:active { background: var(--dark-red); }

button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, summary:focus-visible,
#electricalPage button:focus-visible, #electricalPage input:focus-visible,
#electricalPage select:focus-visible,
#p2pWorkspace .btn:focus-visible, #p2pWorkspace a:focus-visible,
#p2pWorkspace .field input:focus, #p2pWorkspace .field select:focus,
#p2pWorkspace .field textarea:focus,
#skidPage button:focus-visible, #skidPage input:focus-visible,
#skidPage select:focus-visible, #skidPage summary:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
  border-color: var(--red);
}

#electricalPage .ie-hero, #p2pWorkspace .p2p-banner, #skidPage .skid-hero, #skidPage .skid-hi {
  background: var(--navy);
  border-color: var(--red);
  box-shadow: inset 0 0 0 1px var(--red);
  color: var(--white);
}
#electricalPage .ie-hero::after { border-color: transparent; }
#electricalPage .ie-hero h1, #electricalPage .ie-eyebrow,
#p2pWorkspace .p2p-banner h2, #p2pWorkspace .p2p-kicker,
#skidPage .skid-hero h1, #skidPage .skid-hero .skid-eyebrow { color: var(--white); }
#electricalPage .ie-hero-footer, #skidPage .skid-route { border-color: var(--red); }
#electricalPage .ie-tool { border-color: var(--red); }
#electricalPage .ie-tool-number, #electricalPage .ie-output { background: var(--white); border-color: var(--red); }
#electricalPage .ie-tool-number, #electricalPage .ie-category-label,
#electricalPage .ie-output-label, #electricalPage .ie-detail,
#p2pWorkspace .p2p-count { color: var(--blue); }
#electricalPage .ie-meaning { border-color: var(--red); color: var(--ink); }
#electricalPage .ie-safety { border-color: var(--red); color: var(--muted); }
#p2pWorkspace .p2p-table tr:nth-child(even), #p2pWorkspace .p2p-table td:first-child { background: var(--bg); }
#p2pWorkspace .p2p-completed { background: var(--bg); color: var(--blue); }
#p2pWorkspace .p2p-log-scroll { box-shadow: inset 0 0 0 1px var(--red); }

.alignment-visual-ground, .alignment-visual-pump, .alignment-visual-motor { stroke: var(--red); }
.alignment-visual-pump, .alignment-visual-motor { fill: var(--bg); }
.alignment-visual-motor-line, .alignment-visual-foot { stroke: var(--blue); }
.alignment-visual-correction, .alignment-visual-offset-line { stroke: var(--red); }
.alignment-visual-offset-point, #alignmentCorrectionArrow path { fill: var(--red); }
.alignment-visual-machine-label { fill: var(--navy); }
.alignment-visual-pump-label, .alignment-visual-location-label { fill: var(--muted); }
.alignment-visual-motor-label { fill: var(--blue); }
.alignment-visual-feet strong { color: var(--navy); }

#skidPage .skid-calculator > summary { color: var(--navy); }
.skid-footprint { fill: var(--white); stroke: var(--red); }
.skid-centerline { stroke: var(--red); }
.skid-orientation, .skid-map-name, .skid-map-elevation, .skid-map-delta, .skid-map-status { fill: var(--navy); }
#skidMap [data-map-point]:focus rect { stroke: var(--blue); }
.skid-metrics { background: var(--white); }
.skid-metrics > div { background: var(--white); box-shadow: inset 0 0 0 1px var(--red); }
.skid-metrics small, .skid-report-job b, .skid-report-note,
.skid-report-map-panel > small { color: var(--muted); }
.skid-report-map-panel, .skid-report-comparison > section,
.skid-report-logs > section { outline: 1px solid var(--red); }
#skidConfirm::backdrop, #p2pWorkspace dialog::backdrop { background: #0B1F3AB3; }

@media print {
  .section-title, .rbox h3, .skid-report h3, .table th, .rtable th, .reporthead, .skid-map-svg {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
}
