/* Editorial layout shared by the public pages and standalone tools.
   Oat continues to own buttons, inputs, dialogs, tabs and their states. */
:root {
  --color-primary: var(--primary);
  --color-primary-hover: var(--primary);
  --color-primary-light: var(--secondary);
  --color-text: var(--foreground);
  --color-text-light: var(--muted-foreground);
  --color-text-muted: var(--faint-foreground);
  --color-bg: var(--background);
  --color-surface: var(--card);
  --color-border: var(--border);
  --color-link: var(--primary);
  --font-main: var(--font-sans);
  --radius-sm: var(--radius-small);
  --radius-md: var(--radius-medium);
  --radius-lg: var(--radius-large);
  --shadow-xs: none;
  --shadow-sm: none;
  --shadow-md: none;
  --shadow-lg: none;
}
body { background:var(--background); color:var(--foreground); font-family:var(--font-sans); }
.hero-summary, .site-page-intro > p { max-width:60ch; }
.project-category { color:var(--muted-foreground); font-size:var(--type-meta); }
.project-top { justify-content:flex-start; }
.project-grid { gap:32px; }
.profile-panel img { object-fit:cover; object-position:center; }
.project-track { gap:28px; grid-auto-columns:calc((100% - 56px) / 3); }
.project-track .project-card { padding-inline:0; }
.project-track + .slider-hint { font-size:var(--type-meta); }
.site-page .section-bar { justify-content:flex-end; }
.site-tool-note, .entry-date, .profile-location { font-variant-numeric:tabular-nums; }
.contact-links a { min-height:44px; align-items:center; }
/* Tool inputs lead into results without repeated boxes inside boxes. */
.site-charging-main h1, .site-smartdrive-body h1 {
  font-size:var(--type-title); font-weight:600; letter-spacing:-.8px; line-height:1.15; margin-block:16px 20px;
}
.site-charging-main #ev-charging2 > p { max-width:62ch; font-size:var(--type-body); color:var(--muted-foreground); }
.ev2-progress { padding-block:20px; border-block:1px solid var(--border); }
.ev2-chart-container, .ev2-calculator-section, .ev-chart-container, .ev-calculator, .ev-hourly-pattern {
  padding-block:24px; margin-block:24px; border-top:1px solid var(--border);
}
.ev2-chart-container h3, .ev2-calculator-section h3 { font-size:var(--type-tool-section); font-weight:600; letter-spacing:-.3px; }
.ev2-ev-info-card { display:grid; gap:20px; padding-block:20px; }
.ev2-result-box, .ev-result-box { padding:18px 12px; text-align:left; }
.ev2-result-label, .ev-result-label, .ev2-ev-stat-label { font-size:var(--type-meta); color:var(--muted-foreground); }
.ev2-result-value, .ev-result-value { font-variant-numeric:tabular-nums; font-size:var(--type-section); font-weight:600; }
.ev2-data-source, .ev-data-source { padding-block:16px; margin-top:24px; border-top:1px solid var(--border); text-align:left; }
.ev2-data-source p, .ev-data-source p { font-size:var(--type-meta); }
.site-smartdrive-body .hero-eyebrow { font-family:var(--font-sans); font-size:var(--type-meta); text-transform:none; letter-spacing:0; }
.site-smartdrive-body .hero-eyebrow .dot { box-shadow:none; }
.site-smartdrive-body .hero p { font-size:var(--type-body); }
.site-smartdrive-body .panel { padding:24px 0; border-top:1px solid var(--border); }
.site-smartdrive-body .panel-head h2 { font-size:var(--type-tool-section); letter-spacing:-.3px; }
.site-smartdrive-body .field label, .site-smartdrive-body .sc-sub, .site-smartdrive-body .sc-foot { font-size:var(--type-meta); }
.site-smartdrive-body .sc-card { padding:20px 0; border-top:1px solid var(--border); }
.site-smartdrive-body .sc-card::before { content:none; }
.site-smartdrive-body .stat-row { gap:20px; }
.site-smartdrive-body .stat { background:transparent; border:0; border-radius:0; padding:4px 0; }
.site-smartdrive-body .stat .k { font-size:var(--type-meta); text-transform:none; letter-spacing:0; }
.site-smartdrive-body .stat .v { font-family:var(--font-sans); font-variant-numeric:tabular-nums; font-size:20px; }
.site-smartdrive-body .info h2 { font-size:var(--type-tool-section); }
.site-smartdrive-body .info > p { font-size:var(--type-body); }
.site-smartdrive-body .sd-gate-card h2 { font-size:var(--type-section); font-weight:600; }
/* The archive keeps its existing navigation and data views. */
.editorial-archive h1 { font-size:var(--type-title); font-weight:600; letter-spacing:-.8px; }
.editorial-archive h2 { font-size:var(--type-section); font-weight:600; letter-spacing:-.4px; }
.editorial-archive .project-item { box-shadow:none; border-radius:var(--radius-medium); }
@media(max-width:1000px) { .project-track { grid-auto-columns:calc((100% - 28px) / 2); } }
@media(max-width:700px) {
  .project-track { grid-auto-columns:100%; }
  .project-grid { gap:12px; }
  .landing-page .hero { grid-template-columns:minmax(0,1fr); }
  .landing-page .profile-panel { grid-row:1; }
  .landing-page .hero-copy { grid-row:2; }
  .site-charging-main { padding-inline:20px; }
  .site-smartdrive-body .panel { padding-block:20px; }
  .site-smartdrive-body .panel-head h2 { font-size:var(--type-tool-section); }
}
.ev2-result-box.optimal .ev2-result-value, .ev2-result-value, .ev-result-value { color:var(--foreground); }
.ev2-savings-box, .ev-savings-section {
  background:transparent; color:var(--foreground); box-shadow:none;
  border:0; border-left:1px solid var(--border); border-radius:0; padding:18px 24px; text-align:left;
}
.ev2-savings-value, .ev-savings-value { color:var(--primary); font-size:var(--type-section); font-weight:600; font-variant-numeric:tabular-nums; }
.ev2-savings-pct, .ev-savings-percent { background:transparent; color:var(--muted-foreground); padding:0; border-radius:0; }
.site-smartdrive-body .tag, .site-smartdrive-body .spec-heading { font-size:var(--type-meta); font-family:var(--font-sans); text-transform:none; letter-spacing:0; color:var(--muted-foreground); }
.site-smartdrive-body .field-note { font-size:var(--type-meta); line-height:1.5; }
.site-smartdrive-body .seat-box { background:transparent; border:0; padding:0; }
.site-smartdrive-body .seat-box label, .site-smartdrive-body .info-card h4 { font-size:var(--type-meta); }
.site-smartdrive-body .info-card { padding-block:16px; border-top:1px solid var(--border); }
@media(max-width:700px) {
  .ev2-savings-box, .ev-savings-section { border-left:0; border-top:1px solid var(--border); padding:18px 12px; }
}
/* Keep weather motion controls inside the map at narrow widths. */
.site-smartdrive-body .map-wx-row { flex-wrap:wrap; }
.site-smartdrive-body .map-wx-row .motion-controls { flex-basis:100%; white-space:normal; max-width:100%; margin-block:4px; }
.site-smartdrive-body .compare th { font-family:var(--font-sans); font-size:var(--type-meta); text-transform:none; letter-spacing:0; }
.site-smartdrive-body .compare td { font-family:var(--font-sans); font-size:var(--type-meta); font-variant-numeric:tabular-nums; }

/* Work is the visual identity: source figures, dates and marginal notes. */
.entry-date, .project-category, .project-figure figcaption, #project-position { font-family:var(--font-mono); font-weight:400; }
.landing-page .project-grid { grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:24px 32px; align-items:start; }
.project-card .project-top { margin-bottom:8px; }
.project-card .entry-date { font-size:14px; margin-bottom:12px; }
.landing-page .project-card { padding-block:16px 0; }
.landing-page .featured-study { grid-row:span 2; }
.landing-page .featured-study h3 { font-size:28px; font-weight:500; line-height:1.25; }
.landing-page .supporting-study h3 { font-size:20px; line-height:1.3; }
.project-figure { margin:18px 0; min-width:0; }
.project-figure img { display:block; width:100%; height:auto; background:white; }
.project-figure figcaption { font-size:13px; line-height:1.5; color:var(--muted-foreground); margin-top:10px; }
.project-figure figcaption a { display:block; color:var(--primary); text-decoration:underline; text-underline-offset:3px; padding-block:4px; }
.landing-page .supporting-study .project-figure { margin-block:12px; }
.landing-page .supporting-study .project-figure img { max-height:112px; object-fit:contain; }
.landing-page .project-card > p:not(.entry-date) { font-size:16px; line-height:1.6; margin:12px 0 0; }
.landing-page .project-card .text-link { margin-top:0; padding-top:12px; }
.project-track { grid-auto-columns:calc((100% - 28px) / 2); }
.project-track .project-card h3 { font-size:24px; font-weight:500; }
.project-track .project-figure img { height:180px; object-fit:contain; }
.cv-detail-main .cv-section { grid-template-columns:180px minmax(0,1fr); gap:28px; }
.cv-detail-main .career-entry { grid-template-columns:1fr; gap:8px; }
.cv-detail-main .entry-date { color:var(--primary); }
.cv-detail-main .section-intro h2 { font-size:24px; }
.cv-detail-main .institution { font-size:16px; }
@media(min-width:1700px) { .project-track { grid-auto-columns:calc((100% - 56px) / 3); } }
@media(max-width:1099px) { .project-track { grid-auto-columns:calc((100% - 28px) / 2); } }
@media(max-width:700px) {
 .landing-page .hero-copy { grid-row:auto; }
 .landing-page .profile-panel { grid-row:1 / 3; }
 .landing-page .project-grid, .cv-detail-main .cv-section { grid-template-columns:1fr; gap:20px; }
 .landing-page .featured-study { grid-row:auto; }
 .landing-page .featured-study h3 { font-size:24px; }
 .landing-page .supporting-study .project-figure img { max-height:128px; }
 .project-track { grid-auto-columns:100%; }
 .site-charging-main { padding-inline:0; }
 .project-figure figcaption a { min-height:44px; display:flex; align-items:center; gap:8px; }
}
.landing-page :is(.hero, .projects-section, .contact-section) { padding-inline:0; }
.project-figure figcaption { font-size:14px; }
@media(max-width:700px) {
 .landing-page .hero { grid-template-columns:minmax(0,1fr) 88px; }
 .landing-page .portrait-wrap { flex:0 0 88px; }
 .landing-page .contact-links a { font-size:14px; }
}
