/* CarVital ID 2026.11.09.4 */
@media screen {
/* CarVital hierarchy 2026.11.05.6. Explicit section selectors preserve alerts and inline disclosures. */
html body #view{--cv-section-ink:#d3f298;--cv-section-accent:#aeea2b;--cv-subheading-ink:#edf2e7;--cv-heading-divider:#40532c;--cv-label-ink:#bfcbb2}
html body:is(.cv-comfort,.visual-comfort) #view{--cv-section-ink:#355613;--cv-section-accent:#64851f;--cv-subheading-ink:#263322;--cv-heading-divider:#c3cfb8;--cv-label-ink:#4c5943}
html body #view h2{font-size:24px!important;line-height:1.25!important;font-weight:800!important;letter-spacing:-.02em!important;margin-bottom:18px;overflow-wrap:anywhere;hyphens:auto;min-width:0}
html body #view :is(.card,.panel)>h3:not([style*="color"]),
html body #view details:is(.cv-budget-manual,.cv-budget-consumption,.cv-budget-trips,.cv-entretien-v32)>summary{
 font-size:19px!important;font-weight:800!important;line-height:1.35!important;letter-spacing:0!important;color:var(--cv-section-ink)!important;
 border-inline-start:4px solid var(--cv-section-accent);padding-inline-start:12px!important;overflow-wrap:anywhere;
}
html body #view :is(.card,.panel)>h3:not([style*="color"]){margin-block-start:0!important;margin-block-end:16px!important}
html body #view details:is(.cv-budget-manual,.cv-budget-consumption,.cv-budget-trips,.cv-entretien-v32)>summary{min-height:48px;padding-block:11px!important;border-radius:2px;box-sizing:border-box;cursor:pointer}
html body #view details:is(.cv-budget-manual,.cv-budget-consumption,.cv-budget-trips,.cv-entretien-v32)[open]>summary{margin-bottom:16px!important;border-bottom:1px solid var(--cv-heading-divider);padding-bottom:15px!important}
html body #view details:is(.cv-budget-manual,.cv-budget-consumption,.cv-budget-trips,.cv-entretien-v32,.cv-budget-annual-settings)>summary:focus-visible{outline:2px solid var(--cv-section-accent);outline-offset:4px}
html body #view details :is(.card,.panel)>h3:not([style*="color"]),
html body #view .card .card>h3:not([style*="color"]),
html body #view details>h3:not([style*="color"]),
html body #view .cv-budget-annual-settings>summary{
 font-size:16px!important;font-weight:700!important;line-height:1.4!important;color:var(--cv-subheading-ink)!important;border-inline-start:0;padding-inline-start:0!important;letter-spacing:0!important;overflow-wrap:anywhere;
}
html body #view .cv-budget-annual-settings>summary{min-height:44px;padding-block:10px;box-sizing:border-box;cursor:pointer}
html body #view .cv-budget-manual>.cv-budget-energy-form>h3{font-size:16px!important;margin:4px 0 10px!important}
html body #view :is(.cost-field,.cv-real-field)>label{font-weight:500!important;color:var(--cv-label-ink)!important}
html body #view .cv-doc-head-v18{border-inline-start:4px solid var(--cv-section-accent)!important;padding-inline-start:10px!important}
html body #view .cv-doc-head-v18 strong{font-size:18px!important;font-weight:800!important;line-height:1.35!important;color:var(--cv-section-ink)!important;overflow-wrap:anywhere}
/* Professional colors already vary by trade and theme. Missing tokens inherit actual text color. No generic summary selector. */
html body[data-space] #space-content :is(.card,.panel)>h3:not([style*="color"]),
html body[data-space] #space-content .ch>:is(h2,h3):not([style*="color"]){
 color:var(--pro-catink,var(--pro-text,inherit))!important;font-size:20px!important;font-weight:800!important;line-height:1.35!important;letter-spacing:0;border-inline-start:4px solid var(--pro-catline,currentColor);padding-inline-start:12px!important;overflow-wrap:anywhere;
}
html body[data-space] #space-content details :is(.card,.panel)>h3:not([style*="color"]),
html body[data-space] #space-content .card .card>h3:not([style*="color"]){font-size:16px!important;font-weight:700!important;color:var(--pro-text,inherit)!important;border-inline-start:0;padding-inline-start:0!important}
@media(max-width:380px){
 html body #view h2{font-size:23px!important}
 html body #view :is(.card,.panel)>h3:not([style*="color"]),
 html body #view details:is(.cv-budget-manual,.cv-budget-consumption,.cv-budget-trips,.cv-entretien-v32)>summary{font-size:18px!important}
 html body #view details :is(.card,.panel)>h3:not([style*="color"]),html body #view .card .card>h3:not([style*="color"]),html body #view details>h3:not([style*="color"]){font-size:16px!important}
}

/* Shared hierarchy 2026.11.09.4. Screen UI only. Fonts, brand colors,
   form controls, alerts, and printed/shared documents are preserved. */
body[data-cv-interface]{--cv-title-page:24px;--cv-title-section:19px;--cv-title-sub:16px;--cv-ui-heading:#d3f298;--cv-ui-accent:#aeea2b;--cv-ui-text:#edf2e7}
body[data-cv-interface]:is(.cv-comfort,.visual-comfort,.comfort,[data-comfort=true]){--cv-ui-heading:#355613;--cv-ui-accent:#64851f;--cv-ui-text:#263322}
body[data-cv-interface=professional]{--cv-ui-heading:var(--pro-catink,#355613);--cv-ui-accent:var(--pro-catline,#64851f);--cv-ui-text:var(--pro-text,#263322)}
body[data-cv-interface=auth]{--cv-ui-heading:#355613;--cv-ui-accent:#64851f;--cv-ui-text:#263322}
body[data-cv-interface=constat]{--cv-ui-heading:var(--accent);--cv-ui-accent:var(--accent);--cv-ui-text:var(--fg)}
body[data-cv-interface=driver]{--cv-ui-heading:var(--accent);--cv-ui-accent:var(--accent);--cv-ui-text:var(--fg)}
@media(prefers-color-scheme:light){body[data-cv-interface=driver]{--cv-ui-heading:#355613;--cv-ui-accent:#64851f}}
/* Page titles. No logo, brand wordmark or message body is selected. */
html body[data-cv-interface]:not([data-cv-interface=passport]) :is(main,.su-main) h1,
html body[data-cv-interface=constat] header.top h1,
html body[data-cv-interface=passport]>.topbar>h1,
html body[data-cv-interface=quotes]>header>h1{
 font-size:var(--cv-title-page)!important;font-weight:800!important;line-height:1.25!important;
 letter-spacing:-.015em;overflow-wrap:anywhere;hyphens:auto;min-inline-size:0;
}
/* Standalone interfaces: section headings contrasted with body text. */
html body[data-cv-interface=passport] #content>.card>h2,
html body[data-cv-interface=passport] #modal>h2,
html body[data-cv-interface=quotes] #content :is(.panel,.card)>h2,
html body[data-cv-interface=quotes] #decline-dialog>h2,
html body[data-cv-interface=commerce] #app h2,
html body[data-cv-interface=legal] main h2,
html body[data-cv-interface=auth] .su-main h2,
html body[data-cv-interface=professional] #space-content :is(.card,.panel)>h2:not([style*="color"]),
html body[data-cv-interface=professional] #space-content :is(.ch,.pro-metric-section,.row)>h2:not([style*="color"]),
html body[data-cv-interface=driver] #portal h2,
html body[data-cv-interface=constat] .step>h2,
html body[data-cv-interface=constat] .constat-common>h2{
 font-size:var(--cv-title-section)!important;font-weight:800!important;line-height:1.35!important;
 letter-spacing:0!important;color:var(--cv-ui-heading)!important;
 border-inline-start:4px solid var(--cv-ui-accent);padding-inline-start:12px;
 margin-block:0 16px;overflow-wrap:anywhere;hyphens:auto;min-inline-size:0;
}
/* Authenticated professional cards retain their trade palette. */
html body[data-cv-interface=professional] #space-content .ch>:is(h2,h3):not([style*="color"]),
html body[data-cv-interface=professional] #space-content :is(.card,.panel)>h3:not([style*="color"]){font-size:var(--cv-title-section)!important}
/* Subsections. Explicit boundaries exclude passport renders, legal document
   previews, emergency blocks and user/model messages. */
html body[data-cv-interface=passport] #content>.card>h3,
html body[data-cv-interface=passport] #content>.card>form>h3,
html body[data-cv-interface=passport] #content>.card>.history>h3,
html body[data-cv-interface=passport] #content>.card form fieldset>legend,
html body[data-cv-interface=quotes] #content :is(.panel,.card)>h3,
html body[data-cv-interface=commerce] #app :is(.card,.panel)>h3,
html body[data-cv-interface=legal] main h3,
html body[data-cv-interface=auth] .su-main h3,
html body[data-cv-interface=professional] #space-content :is(.card,.panel) :is(.card,.panel)>h3:not([style*="color"]),
html body[data-cv-interface=professional] #space-content details :is(h2,h3):not([style*="color"]),
html body[data-cv-interface=driver] #portal h3,
html body[data-cv-interface=constat] .sec>h3{
 font-size:var(--cv-title-sub)!important;font-weight:700!important;line-height:1.4!important;
 color:var(--cv-ui-text)!important;letter-spacing:0!important;
 border-inline-start:0;padding-inline-start:0;overflow-wrap:anywhere;min-inline-size:0;
 margin-block:16px 10px;
}
html body[data-cv-interface=constat] .sub-card>h3{font-size:16px!important;font-weight:700!important;line-height:1.4!important;overflow-wrap:anywhere}
/* Vehicle card names are section titles; brand and navigation remain intact. */
html body[data-cv-interface=main] #view .cv-managed-vehicle>h3{font-size:var(--cv-title-section)!important;font-weight:800!important;line-height:1.35!important;color:var(--cv-section-ink)!important;overflow-wrap:anywhere}
/* Main app subsections not covered by the original Budget rules. */
html body[data-cv-interface=main] #view :is(.card,.panel)>h4:not([style*="color"]){font-size:16px!important;font-weight:700!important;line-height:1.4!important;overflow-wrap:anywhere}
@media(max-width:480px){body[data-cv-interface]{--cv-title-page:23px;--cv-title-section:18px}}

}
