/* Scoped palette: never depends on undefined global theme tokens. */
.vac-workspace { --v-bg:#fff; --v-soft:#f0f6f6; --v-ink:#183438; --v-muted:#50676c; --v-line:#cfdfdf; --v-accent:#086f69; --v-selected:#e0f2ee; --v-warn:#815409; --v-danger:#a32432; color:var(--v-ink); }
html[data-theme=dark] .vac-workspace { --v-bg:#14292f; --v-soft:#1c353c; --v-ink:#e8f3f4; --v-muted:#b3cbd0; --v-line:#35535b; --v-accent:#78ddd0; --v-selected:#20463f; --v-warn:#f2cf85; --v-danger:#ffabb4; }
#main .vac-workspace * { box-sizing:border-box; }
.vac-workspace .pv-heading { margin-bottom:24px; }
.vac-workspace .pv-heading h1 { color:var(--v-ink); letter-spacing:-.035em; }
.vac-workspace .pv-heading p { color:var(--v-muted); }
#main .vac-tabs { display:flex; width:fit-content; max-width:100%; padding:5px; gap:5px; margin:0 0 24px; background:var(--v-soft); border:1px solid var(--v-line); border-radius:15px; }
#main .vac-tabs button { appearance:none; min-width:150px; min-height:48px; padding:10px 24px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--v-muted); font:inherit; font-weight:750; box-shadow:none; transition:background .18s,color .18s; }
#main .vac-tabs button[aria-selected=true], #main .vac-tabs button[aria-selected=true]:hover { background:#086f69; color:#fff; border-color:#086f69; box-shadow:0 3px 8px #063d3920; }
#main .vac-tabs button[aria-selected=false]:hover { background:var(--v-bg); color:var(--v-ink); }
.vac-panel { display:grid; gap:20px; }
.vac-panel[hidden],.vac-details-body[hidden] { display:none!important; }
.vac-profile-card,.vac-conditions { margin:0; padding:24px; background:var(--v-bg); border:1px solid var(--v-line); border-radius:20px; box-shadow:0 8px 25px #163b3b06; min-width:0; }
.vac-profile-card { border-top:3px solid var(--v-accent); }
.vac-section-heading { display:flex; align-items:center; gap:12px; margin:0 0 20px; padding:0; }
.vac-section-heading>span { display:grid; place-items:center; flex:0 0 36px; height:36px; border-radius:12px; background:var(--v-selected); color:var(--v-accent); font-weight:800; }
.vac-section-heading strong { display:block; color:var(--v-ink); font-size:1.05rem; line-height:1.4; }
.vac-section-heading small { display:block; color:var(--v-muted); font-size:.875rem; margin-top:3px; }
.vac-profile { display:grid; grid-template-columns:minmax(140px,1fr) minmax(200px,2fr); gap:18px; }
.vac-profile label,.vac-search { display:grid; gap:8px; color:var(--v-ink); font-size:.9375rem; font-weight:650; }
#main .vac-profile input,#main .vac-profile select,#main .vac-search input { width:100%; min-width:0; min-height:50px; border:1px solid var(--v-line); border-radius:11px; padding:11px 14px; background:var(--v-soft); color:var(--v-ink); font:inherit; }
.vac-risk-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.vac-risk-grid label { position:relative; min-width:0; }
.vac-risk-grid input { position:absolute; width:1px; height:1px; opacity:0; }
.vac-risk-grid label>span { display:flex; align-items:center; gap:10px; height:100%; min-height:56px; padding:12px; background:var(--v-bg); border:1px solid var(--v-line); border-radius:12px; color:var(--v-muted); font-size:.875rem; line-height:1.45; cursor:pointer; transition:background .18s,border-color .18s; }
.vac-risk-grid label>span::before { content:""; flex:0 0 17px; width:17px; height:17px; border:1.5px solid var(--v-line); border-radius:5px; }
.vac-risk-grid input:checked+span { background:var(--v-selected); color:var(--v-ink); border-color:var(--v-accent); }
.vac-risk-grid input:checked+span::before { content:"✓"; display:grid; place-items:center; background:#086f69; color:white; border-color:#086f69; font-size:13px; font-weight:800; }
.vac-risk-grid label:hover>span { border-color:var(--v-accent); }
#main .vac-workspace :is(button,a,input,select):focus-visible,.vac-risk-grid input:focus-visible+span { outline:3px solid var(--v-accent); outline-offset:3px; }
#main .vac-clear { justify-self:start; border:0; padding:8px 2px; color:var(--v-accent); background:transparent; font:inherit; font-size:.875rem; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.vac-summary { display:flex; flex-wrap:wrap; gap:8px; padding:14px; margin:4px 0 18px; border:1px solid var(--v-line); border-radius:16px; background:var(--v-soft); color:var(--v-ink); }
.vac-summary>span { padding:8px 12px; font-size:.9375rem; background:var(--v-bg); border-radius:9px; }
.vac-summary .is-attention { color:var(--v-danger); }
.vac-results-grid { display:grid; gap:16px; }
.vac-card { position:relative; min-width:0; padding:24px; border:1px solid var(--v-line); border-left:4px solid var(--v-accent); border-radius:16px; background:var(--v-bg); box-shadow:0 7px 24px #14393807; animation:vac-enter .22s ease-out; }
.vac-card:has(.vac-status.attention) { border-left-color:var(--v-danger); }
.vac-card:has(.vac-status.consider) { border-left-color:var(--v-warn); }
.vac-card>header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.vac-card h2 { margin:5px 0; color:var(--v-ink); font-size:1.2rem; line-height:1.35; letter-spacing:-.02em; }
.vac-card header p { margin:0; color:var(--v-muted); }
.vac-source { color:var(--v-accent); font-size:.75rem; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }
.vac-status { flex-shrink:0; padding:6px 10px; border:1px solid currentColor; border-radius:8px; color:var(--v-accent); font-size:.875rem; font-weight:700; }
.vac-status.attention,.vac-reasons .is-attention { color:var(--v-danger); }
.vac-status.consider { color:var(--v-warn); }
.vac-reasons { margin:20px 0 0; padding:16px; border-radius:12px; background:var(--v-soft); color:var(--v-ink); }
.vac-reasons>strong { font-size:.875rem; }
.vac-reasons ul { padding-left:20px; margin:8px 0 0; }
.vac-reasons li { margin:5px 0; line-height:1.6; }
.vac-details { margin-top:16px; border-top:1px solid var(--v-line); padding-top:10px; }
#main .vac-details-toggle { width:100%; display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:44px; padding:8px 0; border:0; background:transparent; color:var(--v-accent); font:inherit; font-weight:700; text-align:left; }
.vac-details-chevron { transition:transform .18s; }
.vac-details-toggle[aria-expanded=true] .vac-details-chevron { transform:rotate(180deg); }
.vac-details-body { padding:16px; background:var(--v-soft); border-radius:12px; }
.vac-details dl { display:grid; grid-template-columns:160px minmax(0,1fr); gap:14px 24px; margin:0; }
.vac-details dt { color:var(--v-ink); font-weight:700; }
.vac-details dd { margin:0; color:var(--v-muted); line-height:1.6; }
.vac-details dd ul { margin:0; padding-left:20px; }
.vac-search { padding:20px; background:var(--v-bg); border:1px solid var(--v-line); border-radius:16px; }
.vac-empty,.vac-note { padding:20px; border-radius:14px; background:var(--v-soft); color:var(--v-muted); line-height:1.6; }
.vac-empty { border:1px dashed var(--v-line); }
.vac-source-panel { margin-top:24px; border-top:1px solid var(--v-line); padding-top:20px; }
.vac-source-panel>span { font-size:.875rem; font-weight:750; color:var(--v-muted); }
.vac-sources { display:flex; flex-wrap:wrap; gap:10px; margin-top:10px; }
.vac-sources a { color:var(--v-accent); font-size:.875rem; padding:8px 12px; border:1px solid var(--v-line); border-radius:9px; text-decoration:none; }
@keyframes vac-enter { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media(max-width:900px) { .vac-risk-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .vac-risk-grid,.vac-profile,.vac-home { grid-template-columns:1fr; } .vac-profile-card,.vac-conditions,.vac-card { padding:18px; } #main .vac-tabs { width:100%; } #main .vac-tabs button { min-width:0; flex:1; padding:10px 14px; } .vac-card>header { flex-direction:column; gap:10px; } .vac-details dl { grid-template-columns:1fr; gap:6px; } .vac-details dd { margin-bottom:14px; } }

/* Vaccination additional in infancy */
.iv-shell{display:grid;gap:18px;max-width:1180px;margin:0 auto}.iv-profile,.iv-personal,.iv-library,.iv-footer{padding:22px;border:1px solid var(--v-line);border-radius:20px;background:var(--v-bg);box-shadow:0 8px 25px #163b3b06}.iv-profile{border-top:3px solid var(--v-accent)}.iv-fields,.iv-dose-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.iv-fields label,.iv-dose-fields label{display:grid;gap:6px;color:var(--v-muted);font-size:.82rem;font-weight:700}.iv-fields input,.iv-dose-fields select{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--v-line);border-radius:11px;background:var(--v-bg);color:var(--v-ink);font:inherit}.iv-age{margin:12px 0 0;color:var(--v-accent);font-weight:800}.iv-risks{margin-top:16px;border:1px solid var(--v-line);border-radius:14px}.iv-risks>summary{padding:13px 15px;color:var(--v-accent);font-weight:800;cursor:pointer}.iv-risks .vac-risk-grid{padding:0 14px 14px}.iv-profile>.vac-clear{margin-top:12px}.iv-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.iv-result{position:relative;padding:15px 16px;border:1px solid var(--v-line);border-left:4px solid #748790;border-radius:14px;background:var(--v-bg)}.iv-result header span{display:inline-flex;padding:3px 8px;border-radius:999px;background:#eef3f4;color:#4b626d;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.iv-result h3{margin:7px 0 9px;font-size:1.02rem}.iv-result>strong{display:block;font-size:.87rem}.iv-result p{margin:5px 0;color:var(--v-muted);font-size:.82rem;line-height:1.45}.iv-result small{display:block;color:var(--v-accent);font-weight:750}.iv-result a{display:inline-block;margin-top:8px;color:var(--v-accent);font-size:.78rem;font-weight:800}.iv-result.is-danger{border-left-color:#b4232d;background:#fff8f8}.iv-result.is-warning{border-left-color:#c17b17;background:#fffaf1}.iv-result.is-action{border-left-color:#07837d}.iv-result.is-pnv{border-left-color:#398052}.iv-result.is-seasonal{border-left-color:#34769b}.iv-result.is-option{border-left-color:#5969a5}.iv-result.is-done{opacity:.76}.iv-library>h2{margin:0 0 16px}.iv-group{display:grid;gap:9px}.iv-group>h3{margin:5px 0;color:var(--v-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.07em}.iv-detail{border:1px solid var(--v-line);border-radius:14px;background:var(--v-bg);overflow:hidden}.iv-detail>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;cursor:pointer}.iv-detail>summary span{display:grid;gap:2px}.iv-detail>summary small{color:var(--v-accent);font-size:.7rem;font-weight:800;text-transform:uppercase}.iv-detail>summary strong{font-size:1rem}.iv-detail>summary>b{color:var(--v-accent);font-size:.76rem}.iv-detail-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:4px 16px 16px;border-top:1px solid var(--v-line)}.iv-detail-body section{min-width:0}.iv-detail-body h3{margin:14px 0 5px;font-size:.82rem}.iv-detail-body p{margin:0;color:var(--v-muted);font-size:.82rem;line-height:1.5}.iv-price{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:8px 0;border-bottom:1px solid var(--v-line);font-size:.8rem}.iv-price small{grid-column:1/-1;color:var(--v-muted)}.iv-price-note{margin-top:9px!important;font-size:.7rem!important}.iv-alert{grid-column:1/-1;padding:11px 13px;border-left:4px solid #b4232d;border-radius:9px;background:#fff3f3;color:#6f171e;font-size:.8rem}.iv-pnv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;padding:17px;border-radius:16px;background:#eef7f5}.iv-pnv h2,.iv-pnv p,.iv-pnv .btn{grid-column:1/-1}.iv-pnv h2{margin:0}.iv-pnv div{display:grid;padding:10px;border-radius:10px;background:#fff}.iv-pnv div span{color:var(--v-muted);font-size:.78rem}.iv-pnv .btn{justify-self:start}.iv-travel{margin-top:14px;padding:13px 15px;border:1px solid var(--v-line);border-radius:14px}.iv-travel summary{color:var(--v-accent);font-weight:800;cursor:pointer}.iv-footer small{font-weight:750}.iv-footer details{margin-top:8px}.iv-footer a{color:var(--v-accent)}
html[data-theme=dark] .iv-result header span{background:#263c45;color:#c9d8dc}html[data-theme=dark] .iv-result.is-danger{background:#321f24}html[data-theme=dark] .iv-result.is-warning{background:#342b1e}html[data-theme=dark] .iv-pnv{background:#1b3334}html[data-theme=dark] .iv-pnv div{background:#203b3c}html[data-theme=dark] .iv-alert{background:#3a2226;color:#ffd4d7}
@media(max-width:720px){.iv-shell{gap:12px}.iv-profile,.iv-personal,.iv-library,.iv-footer{padding:16px;border-radius:16px}.iv-fields,.iv-dose-fields,.iv-results,.iv-detail-body,.iv-pnv{grid-template-columns:1fr}.iv-pnv h2,.iv-pnv p,.iv-pnv .btn{grid-column:auto}.iv-detail>summary{align-items:flex-start}.iv-detail>summary>b{white-space:nowrap}.iv-risks .vac-risk-grid{grid-template-columns:1fr}.iv-result{padding:13px 14px}}
@media(prefers-reduced-motion:reduce) { .vac-workspace * { animation:none!important; transition:none!important; } }

/* Reuse screening entry cards without local size or surface overrides. */
.vac-home .pv-entry-icon svg { display:block; color:var(--v-accent); }
.vac-workspace { animation:vac-enter .4s ease-out; }
.vac-home .pv-entry { animation:vac-enter .45s ease-out both; }
.vac-home .pv-entry:nth-child(2) { animation-delay:80ms; }
/* Results use the entire page width, instead of a long narrow sidebar. */
.vac-panel[data-vac-panel=patient] { grid-template-columns:1fr; }
#vac-results { min-width:0; }
.vac-results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.vac-card { padding:18px; }
.vac-card>header { flex-wrap:wrap; gap:10px; }
.vac-card>header>div { flex:1 1 210px; min-width:0; }
.vac-card h2 { font-size:1.075rem; }
.vac-reasons { margin-top:14px; padding:12px 14px; }
.vac-reasons li { line-height:1.5; }
.vac-details dl { grid-template-columns:1fr; gap:5px; }
.vac-details dd { margin-bottom:12px; }
.vac-details dd:last-child { margin-bottom:0; }
@media(min-width:1550px) { .vac-results-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) { .vac-results-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .vac-workspace,.vac-home .pv-entry { animation:none; } }

/* Infant vaccination — compact consultation workspace */
.iv-shell.vac-workspace{gap:16px;color:var(--v-ink)}
.iv-heading{padding-bottom:2px}.iv-heading p{max-width:700px}
.iv-profile{padding:0;overflow:hidden;border:1px solid var(--v-line);border-top:3px solid var(--v-accent);background:linear-gradient(135deg,var(--v-soft),var(--v-bg) 64%)}
.iv-profile-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:18px;align-items:end;padding:22px}
.iv-profile-head h2,.iv-library-head h2{margin:3px 0 4px;font-size:1.35rem}.iv-profile-head p{max-width:630px;margin:0;color:var(--v-muted);font-size:.88rem;line-height:1.5}
.iv-eyebrow{color:var(--v-accent);font-size:.7rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.iv-birth-field{display:grid;gap:6px;color:var(--v-muted);font-size:.78rem;font-weight:800}.iv-birth-field input,.iv-compact-fields input,.iv-compact-fields select{width:100%;min-height:43px;padding:8px 11px;border:1px solid var(--v-line);border-radius:11px;background:var(--v-bg);color:var(--v-ink);font:inherit}
.iv-age{grid-column:2;margin:0;padding:8px 11px;border-radius:10px;background:color-mix(in srgb,var(--v-accent) 9%,var(--v-bg));color:var(--v-accent);font-size:.8rem;font-weight:800}
.iv-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--v-line);background:color-mix(in srgb,var(--v-bg) 82%,transparent)}
.iv-option{min-width:0;border:0;border-right:1px solid var(--v-line);border-radius:0}.iv-option:last-child{border-right:0}.iv-option>summary{display:flex;justify-content:space-between;gap:10px;min-height:70px;padding:13px 15px;list-style:none;cursor:pointer}.iv-option>summary::-webkit-details-marker{display:none}.iv-option>summary span{display:grid;gap:3px}.iv-option>summary strong{font-size:.82rem}.iv-option>summary small{color:var(--v-muted);font-size:.68rem;font-weight:600;line-height:1.35}.iv-option>summary b{align-self:start;color:var(--v-accent);font-size:.68rem}.iv-option[open]{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--v-line);background:var(--v-bg)}.iv-option[open]>summary{min-height:auto;border-bottom:1px solid var(--v-line)}
.iv-compact-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}.iv-compact-fields.is-two{grid-template-columns:repeat(2,minmax(0,260px))}.iv-compact-fields label{display:grid;gap:5px;color:var(--v-muted);font-size:.75rem;font-weight:750}
.iv-risks{margin:0}.iv-risks .vac-risk-grid{padding:14px}.iv-profile>.vac-clear{margin:12px 16px 16px}
.iv-personal{padding:20px;border:0;background:var(--v-soft);box-shadow:none}.iv-results{display:block;margin-top:14px}.iv-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.iv-result{display:flex;flex-direction:column;min-height:190px}.iv-result p{flex:1}.iv-detail-link{align-self:flex-start;margin-top:9px;padding:0;border:0;background:transparent;color:var(--v-accent);font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.iv-secondary{margin-top:12px;border:1px solid var(--v-line);border-radius:13px;background:var(--v-bg)}.iv-secondary>summary{display:flex;justify-content:space-between;padding:12px 14px;color:var(--v-muted);font-size:.8rem;font-weight:800;cursor:pointer}.iv-secondary>summary span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:var(--v-soft);color:var(--v-accent)}.iv-secondary>.iv-results-grid{padding:0 10px 10px}
.iv-library{padding:20px;background:transparent;box-shadow:none}.iv-library-head{margin-bottom:14px}.iv-group{margin-top:14px}.iv-group>h3{margin-bottom:7px}.iv-detail{box-shadow:0 3px 12px #163b3b08}.iv-detail:target{scroll-margin-top:90px}
.iv-footer{padding:13px 17px;background:transparent;box-shadow:none}.iv-footer details{font-size:.78rem}.vac-empty.is-compact{padding:14px}
.iv-safety-note{margin:14px 16px 0;padding:12px 14px;border-left:3px solid var(--v-accent);background:var(--v-soft);color:var(--v-ink);font-size:.82rem;line-height:1.6}
html[data-theme=dark] .iv-profile{background:linear-gradient(135deg,var(--v-soft),var(--v-bg) 64%)}
@media(max-width:800px){.iv-profile-head{grid-template-columns:1fr;padding:17px}.iv-age{grid-column:1}.iv-options{grid-template-columns:1fr}.iv-option{border-right:0;border-bottom:1px solid var(--v-line)}.iv-option:last-child{border-bottom:0}.iv-option[open]{grid-column:auto}.iv-compact-fields,.iv-compact-fields.is-two,.iv-results-grid{grid-template-columns:1fr}.iv-personal,.iv-library{padding:16px}.iv-result{min-height:0}.iv-secondary>.iv-results-grid{padding:0 8px 8px}}
