/* Planner presentation shares the site's Gabarito and navy/mint palette. */
.planner-page { padding: 124px 0 80px; background: linear-gradient(#4558a1 80px, #faf9f6 80px); color: #30343b; }
.planner-wrap { max-width: 1160px; margin: auto; padding: 0 24px; }
.planner-intro { position: relative; max-width: 800px; margin: 0 0 40px; }
.planner-page .planner-kicker { display: inline-block; font-size: 15px; line-height: 1.4; font-weight: 600; color: #303b61; margin-bottom: 16px; }
.planner-intro .planner-kicker { padding: 7px 13px; background: #e8ecf7; border-radius: 999px; }
.planner-page h1 { font-size: clamp(36px, 4.4vw, 56px); line-height: 1.05; letter-spacing: -.035em; color: #303b61; margin: 0 0 20px; }
.planner-page h2 { display: flex; align-items: center; gap: 12px; font-size: 25px; line-height: 1.2; letter-spacing: -.02em; color: #303b61; margin: 0 0 24px; }
.planner-page h3 { font-size: 18px; font-weight: 600; color: #303b61; margin: 28px 0 8px; }
.planner-page p { font-size: 17px; line-height: 1.6; margin: 0 0 16px; }
.planner-intro > p:last-child { font-size: 20px; max-width: 64ch; margin-bottom: 0; }
.planner-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.planner-panel { border: 1px solid #dce1e9; border-radius: 24px; padding: 30px; background: #fff; margin-bottom: 24px; box-shadow: 0 4px 16px #303b6104; }
.planner-step { display: grid; place-items: center; flex: 0 0 32px; height: 32px; font-size: 17px; background: #e8ecf7; color: #4558a1; border-radius: 50%; }
.planner-page label { display: block; font-size: 16px; line-height: 1.4; font-weight: 600; margin: 20px 0 9px; }
.planner-page input[type=number], .planner-page select { width: 100%; min-height: 50px; border: 1px solid #7d879c; border-radius: 10px; padding: 11px 14px; font: inherit; font-size: 18px; color: #303b61; background: #fafbfe; transition: border-color .15s ease; }
.planner-page input[type=number]:hover, .planner-page select:hover { border-color: #303b61; }
.planner-presets { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.planner-presets button { flex: 1; min-width: 48px; min-height: 44px; padding: 9px 12px; border: 1px solid #c7cfe0; border-radius: 10px; color: #303b61; background: #fff; font: inherit; cursor: pointer; }
.planner-presets button:hover { background: #eef1fa; border-color: #4558a1; }
.planner-presets button[aria-pressed=true] { border-color: #4558a1; background: #4558a1; color: #fff; font-weight: 600; }
.planner-options-grid { display: grid; align-items: start; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.planner-fundraiser { min-width: 0; margin: 0; padding: 18px; border: 1px solid #c8d0e2; border-radius: 16px; background: #f7f8fc; }
.planner-fundraiser:has(input[type=checkbox]:checked) { border-color: #8395bb; background: #f0f4fb; }
.planner-fundraiser:nth-child(even):has(input[type=checkbox]:checked) { background: #eef7f2; border-color: #87aa9a; }
.planner-fundraiser legend { float: left; padding: 0; width: 100%; margin-bottom: 10px; }
.planner-fundraiser legend + * { clear: both; }
.planner-fundraiser legend label { display: flex; align-items: flex-start; gap: 9px; font-size: 17px; color: #303b61; margin: 0; min-height: 44px; cursor: pointer; }
.planner-page input[type=checkbox] { flex: 0 0 21px; width: 21px; height: 21px; accent-color: #4558a1; margin: 2px 0 0; }
.planner-fundraiser > label { font-size: 14px; min-height: 40px; margin-top: 12px; }
.planner-fundraiser input[type=number] { background: #fff; font-size: 22px; font-weight: 600; }
.planner-page .planner-help { font-size: 14px; line-height: 1.6; margin-top: 10px; color: #4d5666; }
.planner-page .planner-error { font-size: 15px; color: #972b31; margin-top: 8px; }
.planner-error:empty { display: none; }
.planner-page [aria-invalid=true] { border: 2px solid #972b31; }
.planner-page input:disabled { background: #f0f0ef; color: #545b63; }
.planner-result { border-radius: 28px; padding: 30px; background: #e6f3ed; border: 1px solid #c2dcce; position: relative; }
.planner-result > .planner-kicker { margin-bottom: 12px; }
.planner-result h2 { font-size: 20px; margin-bottom: 18px; }
.planner-page .planner-total { font-size: clamp(40px, 4.7vw, 64px); line-height: 1; letter-spacing: -.04em; font-weight: 600; color: #263752; overflow-wrap: anywhere; margin: 0 0 12px; font-variant-numeric: tabular-nums; }
#per-student { font-size: 17px; color: #303b61; }
#estimate-context { display: inline-block; padding: 7px 10px; border-radius: 8px; background: #ffffffb8; color: #3d4c46; font-size: 14px; margin: 0; }
#estimate-context:empty { display: none; }
#estimate-breakdown { padding: 0; list-style: none; margin: 0 0 24px; }
#estimate-breakdown li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 12px; padding: 16px 0; border-bottom: 1px solid #bfd4c8; font-size: 15px; }
#estimate-breakdown .planner-breakdown-label { font-weight: 600; color: #303b61; }
#estimate-breakdown strong { font-size: 19px; line-height: 1.4; color: #263752; font-variant-numeric: tabular-nums; }
#estimate-breakdown small { grid-column: 1 / -1; font-size: 13px; color: #4c5b53; }
.planner-breakdown-bar { grid-column: 1 / -1; height: 5px; margin-top: 7px; border-radius: 999px; background: linear-gradient(to right, #4558a1 var(--share), #d0e2d7 var(--share)); }
#estimate-breakdown li:nth-child(even) .planner-breakdown-bar { background: linear-gradient(to right, #527d6b var(--share), #d0e2d7 var(--share)); }
.planner-assumptions { border-bottom: 1px solid #bfd4c8; padding-bottom: 18px; margin: 18px 0; }
.planner-assumptions summary { cursor: pointer; font-size: 14px; font-weight: 600; color: #303b61; min-height: 30px; }
.planner-page #planner-purpose { font-size: 15px; color: #35473e; }
.planner-result > .btn { width: 100%; margin-top: 8px; }
.planner-page :focus-visible { outline: 3px solid #303b61; outline-offset: 3px; }
@media (min-width: 1000px) and (min-height: 1050px) { .planner-result { position: sticky; top: 24px; } }
@media (max-width: 950px) { .planner-layout { grid-template-columns: 1fr; max-width: 700px; } .planner-page { padding-top: 112px; } }
@media (max-width: 600px) { .planner-wrap { padding-inline: 20px; } .planner-panel, .planner-result { padding: 24px 20px; } .planner-options-grid { grid-template-columns: 1fr; } .planner-fundraiser { padding: 20px; } .planner-fundraiser > label { min-height: 0; } .planner-fundraiser legend label { min-height: 0; } .planner-intro { margin-bottom: 28px; } .planner-intro > p:last-child { font-size: 18px; } }
@media (prefers-reduced-motion: reduce) { .planner-page input, .planner-page select { transition: none; } }
