.cp-planner { --cp-ink:#173e48; --cp-muted:#536e77; --cp-line:#d5e5e4; --cp-surface:#fff; --cp-soft:#f1f8f7; --cp-teal:#16776e; --cp-blue:#2e617d; color:var(--cp-ink); font-size:1rem; line-height:1.5; }
.cp-planner * { box-sizing:border-box; }
.cp-heading { margin-bottom:16px; }
.cp-heading .si-eyebrow { margin:0 0 5px; }
.cp-planner h1 { font-size:clamp(1.5rem,2.7vw,1.95rem); margin:0; }
.cp-planner h2 { font-size:1.08rem; margin:0; }
.cp-planner h3 { font-size:1rem; margin:0 0 10px; }
.cp-planner h4 { font-size:.9375rem; margin:12px 0 5px; }
.cp-planner button,.cp-planner input,.cp-planner select { font:inherit; }
.cp-planner button { cursor:pointer; }
.cp-planner button:disabled { opacity:.45; cursor:default; }
.cp-planner :focus-visible { outline:3px solid var(--cp-teal); outline-offset:3px; }
.cp-tools { display:flex; flex-wrap:wrap; gap:5px 18px; margin-top:8px; }
.cp-age-picker { display:flex; align-items:end; gap:12px; margin:0 0 16px; }
.cp-age-picker label { display:grid; gap:5px; font-size:.875rem; font-weight:650; flex:1; max-width:340px; min-width:0; }
.cp-age-picker select { width:100%; height:44px; padding:8px 10px; border:1px solid var(--cp-line); border-radius:8px; color:var(--cp-ink); background:var(--cp-surface); }
.cp-age-picker button { min-height:44px; padding:8px 12px; border:1px solid var(--cp-line); border-radius:8px; color:var(--cp-teal); background:var(--cp-soft); font-size:.875rem; }
@media(max-width:480px) { .cp-age-picker { flex-wrap:wrap; gap:8px; } .cp-age-picker label { flex-basis:100%; max-width:none; } }
#main .cp-planner>.context-links { display:none; }
.cp-open-sheet { color:var(--cp-teal); font-size:.875rem !important; border:0; border-bottom:1px solid currentColor; background:none; padding:2px 0; margin-top:5px; }
.cp-tools .si-link { margin:0; padding:3px 0; font-size:.875rem; }
.cp-dating { display:grid; grid-template-columns:1.15fr 1fr 1fr auto; align-items:end; gap:16px; margin:0; padding:18px 20px; border:1px solid var(--cp-line); border-radius:12px 12px 0 0; background:var(--cp-surface); }
.cp-dating label,.cp-oral-options label { display:grid; gap:5px; font-size:.875rem; font-weight:650; min-width:0; }
.cp-dating input,.cp-oral-options select { width:100%; min-width:0; height:42px; padding:8px 10px; border:1px solid var(--cp-line); border-radius:7px; background:var(--cp-surface); color:var(--cp-ink); }
.cp-dating button,.cp-sheet-nav button,.cp-sheet-footer>button { padding:9px 12px; border:1px solid var(--cp-line); border-radius:7px; color:var(--cp-teal); background:var(--cp-surface); font-size:.875rem; }
.cp-error { grid-column:1/-1; color:#a23828; margin:0; }
.cp-summary { display:grid; grid-template-columns:1fr 1fr 1.25fr; gap:16px; padding:16px 20px; background:var(--cp-soft); border:1px solid var(--cp-line); border-top:0; border-radius:0 0 12px 12px; }
.cp-summary>div+div { border-left:1px solid var(--cp-line); padding-left:18px; }
.cp-summary span,.cp-summary strong,.cp-summary small { display:block; }
.cp-summary span { color:var(--cp-muted); font-size:.875rem; }
.cp-summary strong { color:var(--cp-teal); font-size:1.08rem; margin:2px 0; }
.cp-summary small { font-size:.875rem; }
.cp-empty { padding:12px 20px; margin:0; border:1px solid var(--cp-line); border-top:0; border-radius:0 0 12px 12px; background:var(--cp-soft); font-size:.875rem; }
.cp-meta,.cp-section-heading p,.cp-oral-overview header p { color:var(--cp-muted); font-size:.8125rem; line-height:1.5; }
.cp-date-note { margin:8px 2px 20px; }
.cp-path { margin:0 0 22px; }
.cp-section-heading { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; align-items:baseline; margin-bottom:10px; }
.cp-section-heading p { margin:0; }
.cp-stage { display:grid; grid-template-columns:116px minmax(0,1fr); gap:14px; align-items:start; padding:11px 0; border-bottom:1px solid var(--cp-line); }
.cp-stage>header { display:flex; gap:8px; align-items:center; padding-top:10px; }
.cp-stage>header>span { font-size:.75rem; font-weight:750; color:var(--cp-teal); background:var(--cp-soft); border:1px solid var(--cp-line); border-radius:50%; width:29px; height:29px; display:grid; place-items:center; flex:0 0 29px; }
.cp-stage h3 { font-size:.875rem; margin:0; line-height:1.3; }
.cp-stops { display:grid; grid-template-columns:repeat(auto-fit,minmax(128px,1fr)); gap:8px; }
.cp-stops button { position:relative; display:flex; flex-direction:column; gap:5px; align-items:flex-start; text-align:left; min-width:0; padding:10px 11px; border:1px solid var(--cp-line); border-top:3px solid #8ebdb7; border-radius:8px; color:var(--cp-ink); background:var(--cp-surface); transition:border-color .15s,background .15s; }
.cp-stage:nth-of-type(3) .cp-stops button { border-top-color:#8db2c6; }
.cp-stops button:hover { border-color:var(--cp-teal); background:var(--cp-soft); }
.cp-stops button[aria-pressed='true'] { border-color:var(--cp-teal); background:var(--cp-soft); box-shadow:0 0 0 1px var(--cp-teal); }
.cp-stops strong { color:var(--cp-teal); font-size:.9375rem; }
.cp-stop-date { font-size:.875rem; line-height:1.35; overflow-wrap:anywhere; }
.cp-tags { display:flex; gap:4px; flex-wrap:wrap; margin-top:auto; }
.cp-tag { display:inline-flex; border-radius:4px; padding:2px 5px; font-size:.75rem; font-weight:650; line-height:1.3; background:#e7f2ef; color:#176b60; }
.cp-tag.cp-screen { background:#edf1fa; color:#4c6287; }
.cp-tag.cp-oral { background:#eaf4f9; color:#386779; }
.cp-tag.cp-global { background:#eff1f2; color:#465b67; }
.cp-phase { font-size:.75rem; color:var(--cp-teal); font-weight:650; }
.cp-sheet { scroll-margin-top:24px; border:1px solid var(--cp-line); border-radius:14px; overflow:hidden; background:var(--cp-surface); }
.cp-sheet-head { display:flex; justify-content:space-between; align-items:center; gap:18px; background:var(--cp-soft); border-bottom:1px solid var(--cp-line); padding:20px 22px; }
.cp-kicker { display:block; color:var(--cp-muted); font-size:.875rem; margin-bottom:4px; }
.cp-sheet-head h2 { color:var(--cp-teal); font-size:1.45rem; }
.cp-sheet-head h2>span { display:block; color:var(--cp-ink); font-size:1rem; font-weight:550; margin-top:2px; }
.cp-sheet-nav { display:flex; gap:6px; flex-shrink:0; }
.cp-routine { padding:12px 22px; font-size:.875rem; border-bottom:1px solid var(--cp-line); color:var(--cp-muted); }
.cp-consult-body { display:grid; grid-template-columns:1.05fr 1fr; }
.cp-consult-body>section { padding:20px 22px; min-width:0; }
.cp-actions { border-right:1px solid var(--cp-line); }
.cp-sheet h3,.cp-oral-task h4 { display:flex; align-items:center; gap:7px; color:var(--cp-teal); }
.cp-sheet h3 svg,.cp-sheet h4 svg { width:20px; height:20px; flex:0 0 20px; }
.cp-sheet ul { padding-left:18px; margin:5px 0 12px; }
.cp-sheet li+li { margin-top:6px; }
.cp-check { display:flex; gap:10px; align-items:flex-start; padding:12px 0; border-bottom:1px solid var(--cp-line); cursor:pointer; }
.cp-check input { flex:0 0 17px; width:17px; height:17px; margin:5px 0 0; accent-color:var(--cp-teal); }
.cp-check>span { min-width:0; }
.cp-check strong { display:block; font-size:.9375rem; margin-bottom:3px; color:var(--cp-teal); }
.cp-check>span>span { display:block; }
.cp-check:has(input:checked) { background:var(--cp-soft); }
.cp-vaccine-check { margin-top:8px; border-top:1px solid var(--cp-line); }
.cp-small-note { color:var(--cp-muted); font-size:.8125rem; margin:8px 0 0; }
.cp-source-links { display:flex; flex-wrap:wrap; gap:0 14px; }
.cp-source-links .si-link { padding:6px 0; margin:0; font-size:.8125rem; }
.cp-oral-task { margin-top:14px; border-left:3px solid #6f9eaf; padding:0 0 0 14px; }
.cp-oral-task h4 { color:var(--cp-blue); margin:0 0 8px; }
.cp-oral-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:10px 0 12px; }
.cp-oral-options select { height:auto; min-height:40px; }
.cp-development { margin-top:15px; padding:1px 12px; background:var(--cp-soft); border-left:3px solid #8eaaa5; }
.cp-development h4 { display:flex; align-items:center; gap:7px; }
.cp-progress { font-size:.8125rem; color:var(--cp-muted); margin:12px 0 0; }
.cp-counsel { padding:18px 22px; border-top:1px solid var(--cp-line); background:var(--cp-soft); }
.cp-counsel p { margin:10px 0 0; }
.cp-alert { padding:16px 22px; border-top:1px solid #dfc8b9; border-left:4px solid #b26c41; background:#fff8f2; }
.cp-alert h3 { color:#92522e; }
.cp-alert p { margin:10px 0 0; font-size:.875rem; }
.cp-sheet-footer { padding:12px 22px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.cp-oral-overview { border:1px solid var(--cp-line); border-radius:12px; padding:18px 20px; background:var(--cp-surface); margin-top:20px; }
.cp-oral-overview>header { display:flex; gap:12px; align-items:center; margin-bottom:14px; }
.cp-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; color:var(--cp-blue); background:var(--cp-soft); flex:0 0 38px; }
.cp-icon svg { width:23px; height:23px; }
.cp-oral-overview header p { margin:3px 0 0; }
.cp-oral-bands { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.cp-oral-bands>div { border-left:2px solid #8eb4c1; padding-left:10px; }
.cp-oral-bands b,.cp-oral-bands span { display:block; font-size:.875rem; }
.cp-oral-bands b { color:var(--cp-blue); margin-bottom:4px; }
.cp-references { margin-top:15px; font-size:.875rem; }
.cp-other-topics { margin-top:26px; }
html[data-theme='dark'] .cp-planner { --cp-ink:#dcebee; --cp-muted:#afc5cc; --cp-line:#34515b; --cp-surface:#172e38; --cp-soft:#1b3940; --cp-teal:#96d8cd; --cp-blue:#a4cedf; }
html[data-theme='dark'] .cp-tag { background:#284e48; color:#b2e0d4; }
html[data-theme='dark'] .cp-tag.cp-screen { background:#2c3d57; color:#cad9f2; }
html[data-theme='dark'] .cp-tag.cp-oral { background:#274652; color:#bbdce9; }
html[data-theme='dark'] .cp-tag.cp-global { background:#364851; color:#d2dfe6; }
html[data-theme='dark'] .cp-alert { background:#352e29; border-color:#7c5944; }
html[data-theme='dark'] .cp-alert h3 { color:#eeb894; }
html[data-theme='dark'] .cp-error { color:#ffc2b4; }
@media(max-width:1050px) { .cp-dating { grid-template-columns:1fr 1fr; } .cp-stage { grid-template-columns:100px minmax(0,1fr); } .cp-stops { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:720px) {
  .cp-dating { padding:16px; gap:12px; }
  .cp-dating>div { grid-column:1/-1; }
  .cp-dating>button { justify-self:start; }
  .cp-summary { grid-template-columns:1fr; gap:10px; padding:14px 16px; }
  .cp-summary>div+div { border-left:0; border-top:1px solid var(--cp-line); padding:10px 0 0; }
  .cp-stage { grid-template-columns:1fr; gap:10px; }
  .cp-stage>header { padding:0; }
  .cp-stops { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cp-stops button { padding:9px; }
  .cp-consult-body { grid-template-columns:1fr; }
  .cp-actions { border-right:0; border-bottom:1px solid var(--cp-line); }
  .cp-sheet-head { align-items:flex-start; flex-wrap:wrap; }
  .cp-sheet-head,.cp-consult-body>section,.cp-routine,.cp-counsel,.cp-alert,.cp-sheet-footer { padding:16px; }
  .cp-oral-bands { grid-template-columns:1fr 1fr; gap:16px; }
}
@media(max-width:420px) { .cp-stops { grid-template-columns:repeat(2,minmax(0,1fr)); } .cp-dating { grid-template-columns:1fr; } .cp-oral-options { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .cp-stops button { transition:none; } }

@media(max-width:900px) { .cp-sheet { scroll-margin-top:145px; } }

.cp-oral-roles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cp-oral-roles>div { border-left:2px solid #8eb4c1; padding-left:10px; }
.cp-oral-roles b,.cp-oral-roles span { display:block; font-size:.875rem; }
.cp-oral-roles b { color:var(--cp-blue); margin-bottom:4px; }
.co-guide { margin-bottom:22px; }
.co-intro { color:var(--cp-muted); margin:0 0 16px; font-size:.875rem; }
.co-table-wrap { border:1px solid var(--cp-line); border-radius:12px; overflow:hidden; }
.co-table { width:100%; border-collapse:collapse; table-layout:fixed; background:var(--cp-surface); color:var(--cp-ink); }
.co-table caption { text-align:left; padding:14px 16px; color:var(--cp-teal); background:var(--cp-soft); font-weight:650; }
.co-table th,.co-table td { text-align:left; vertical-align:top; padding:14px; border-bottom:1px solid var(--cp-line); font-size:.9375rem; line-height:1.5; overflow-wrap:anywhere; }
.co-table thead th { background:var(--cp-soft); font-size:.8125rem; color:var(--cp-muted); }
.co-table th:first-child { width:20%; }
.co-table tbody th { font-weight:400; border-left:3px solid #81afa7; }
.co-table strong { display:block; color:var(--cp-teal); font-size:1rem; }
.co-table small { display:block; color:var(--cp-muted); font-size:.8125rem; margin-top:4px; }
.co-table .si-link { display:block; margin:8px 0 0; padding:0; font-size:.75rem; }
.co-table tr:last-child>* { border-bottom:0; }
.co-law,.co-future,.co-practical { margin:18px 0; padding:16px 20px; border:1px solid var(--cp-line); border-radius:10px; background:var(--cp-surface); }
.co-law { border-left:3px solid #6eaaa0; background:var(--cp-soft); }
.co-guide h2 { margin:0 0 9px; color:var(--cp-teal); font-size:1.1rem; }
.co-guide p { margin:6px 0; }
.co-practical ul { padding-left:20px; margin:0; }
.co-practical li+li { margin-top:10px; }
.co-future { color:var(--cp-muted); font-size:.875rem; }
@media(max-width:1100px) {
  .co-table,.co-table tbody,.co-table tr,.co-table th,.co-table td { display:block; width:auto; }
  .co-table thead { display:none; }
  .co-table caption { display:block; }
  .co-table tr { padding:14px 16px; border-bottom:1px solid var(--cp-line); }
  .co-table tr:last-child { border-bottom:0; }
  .co-table tbody th { width:auto; border:0; padding:0 0 10px; }
  .co-table th:first-child { width:auto; }
  .co-table td { padding:7px 0; border:0; }
  .co-table td::before { content:attr(data-label); display:block; color:var(--cp-blue); font-size:.8125rem; font-weight:650; margin-bottom:2px; }
  .co-table .si-link { margin-top:4px; }
}
@media(max-width:600px) { .cp-oral-roles { grid-template-columns:1fr; gap:12px; } .co-law,.co-future,.co-practical { padding:14px 16px; } }

/* Adapt the consultation sheet to the space beside the navigation. */
@media screen {
  .cp-planner { container-name: child-planner; container-type: inline-size; }
  .cp-sheet-head > *, .cp-sheet-footer > *, .cp-age-picker > * { min-width: 0; }
  .cp-planner :is(button,.si-link) { overflow-wrap: anywhere; white-space: normal; }
  @container child-planner (max-width:720px) {
    .cp-consult-body, .cp-summary, .cp-stage { grid-template-columns: minmax(0,1fr); }
    .cp-actions { border-right: 0; border-bottom: 1px solid var(--cp-line); }
    .cp-summary > div + div { border-left: 0; border-top: 1px solid var(--cp-line); padding: 10px 0 0; }
    .cp-sheet-head { align-items: flex-start; flex-wrap: wrap; }
    .cp-stops { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .cp-oral-bands { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }
  @container child-planner (max-width:480px) {
    .cp-age-picker { flex-wrap: wrap; }
    .cp-age-picker label { flex-basis: 100%; max-width: none; }
    .cp-dating, .cp-oral-options, .cp-oral-roles { grid-template-columns: minmax(0,1fr); }
    .cp-stops { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }
}
@media screen and (max-width:1100px) {
  .cp-planner :is(input,select,textarea) { font-size: 16px; }
  .cp-planner :is(.cp-dating button,.cp-sheet-nav button,.cp-sheet-footer > button,.cp-open-sheet,.cp-tools .si-link) { min-height: 44px; }
  .cp-tools .si-link { display: inline-flex; align-items: center; }
}
