.tp-uil-planner { background: #f4f8fa; min-height: 72vh; }
.tp-uil-planner__shell { max-width: 1040px; }
.tp-uil-planner__hero { background: linear-gradient(135deg, #e8f6f3, #fbfcf7); border-bottom: 1px solid #b7ded8; padding: 3.75rem 0 3rem; }
.tp-uil-planner h1, .tp-uil-planner h2 { color: #102f59; font-weight: 800; }
.tp-uil-planner h1 { font-size: clamp(2rem, 4vw, 3rem); max-width: 760px; margin: 0; }
.tp-uil-planner__intro { color: #46648b; font-size: 1.12rem; max-width: 700px; margin: 1rem 0 0; }
.tp-uil-planner__eyebrow, .tp-uil-planner__required, .tp-uil-planner__optional { color: #087a7d; font-size: .76rem; font-weight: 800; letter-spacing: .12em; margin: 0 0 .25rem; }
.tp-uil-planner__optional { color: #536f91; }
.tp-uil-planner__step, .tp-uil-planner__plan { background: #fff; border: 1px solid #d5e0ee; border-radius: 1.25rem; margin-top: 1.5rem; padding: clamp(1.25rem, 3vw, 2rem); }
.tp-uil-planner__step-head { display: flex; gap: 1rem; align-items: flex-start; }
.tp-uil-planner__step-head h2 { font-size: 1.45rem; margin: 0; }
.tp-uil-planner__step-head p:not(.tp-uil-planner__required):not(.tp-uil-planner__optional) { color: #506e94; margin: .25rem 0 0; }
.tp-uil-planner__number { align-items: center; background: #177e81; border-radius: 50%; color: #fff; display: inline-flex; flex: 0 0 2.35rem; font-weight: 800; height: 2.35rem; justify-content: center; }
.tp-uil-planner__event-grid { display: grid; gap: .8rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.35rem; }
.tp-uil-planner__grade-grid { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.tp-uil-planner__choice-form { margin: 0; }
.tp-uil-planner__event-grid .tp-uil-planner__choice-form { display: flex; }
.tp-uil-planner__event-choice, .tp-uil-planner__grade-choice { background: #fff; border: 1px solid #c6d7e9; border-radius: .8rem; color: #143a68; font-weight: 750; min-height: 4.9rem; text-align: left; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; width: 100%; }
.tp-uil-planner__event-choice { display: flex; flex-direction: column; gap: .2rem; justify-content: center; padding: .95rem 1rem; }
.tp-uil-planner__event-choice small { color: #577496; font-size: .82rem; font-weight: 600; }
.tp-uil-planner__grade-choice { min-height: 2.75rem; padding: .55rem 1rem; text-align: center; width: auto; }
.tp-uil-planner__event-choice:hover, .tp-uil-planner__grade-choice:hover, .tp-uil-planner__event-choice.is-selected, .tp-uil-planner__grade-choice.is-selected { background: #eaf7f5; border-color: #168284; }
.tp-uil-planner__event-choice:hover, .tp-uil-planner__grade-choice:hover { transform: translateY(-1px); }
.tp-uil-planner__date-form { margin: 1.2rem 0 0 3.35rem; }
.tp-uil-planner__date-form label { color: #173e6a; display: block; font-weight: 750; margin-bottom: .45rem; }
.tp-uil-planner__date-form label span { color: #587392; font-weight: 500; }
.tp-uil-planner__date-controls { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; }
.tp-uil-planner__date-controls input { border: 1px solid #bdcde1; border-radius: .7rem; min-height: 2.8rem; padding: .55rem .75rem; }
.tp-uil-planner__plan { background: linear-gradient(145deg, #f2faf7, #fffef5); border-color: #a8d8d1; }
.tp-uil-planner__plan-title-row { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.tp-uil-planner__plan h2 { font-size: 1.55rem; margin: 0; }
.tp-uil-planner__plan-title-row p { color: #496a8e; margin: .35rem 0 0; }
.tp-uil-planner__program-pill { background: #e6f3f1; border: 1px solid #9fd1ca; border-radius: 99px; color: #126568; font-size: .85rem; font-weight: 750; padding: .38rem .7rem; white-space: nowrap; }
.tp-uil-planner__routine-grid { display: grid; gap: .8rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.35rem; }
.tp-uil-planner__routine-grid article { background: rgba(255,255,255,.86); border: 1px solid #c8dfdc; border-radius: .85rem; padding: 1rem; }
.tp-uil-planner__routine-grid span { color: #087a7d; display: block; font-size: .72rem; font-weight: 800; letter-spacing: .09em; margin-bottom: .35rem; }
.tp-uil-planner__routine-grid strong { color: #173b67; display: block; }
.tp-uil-planner__routine-grid p { color: #4f6b8e; font-size: .91rem; margin: .45rem 0 0; }
.tp-uil-planner__start-form { margin-top: 1.35rem; }
.tp-uil-planner__disclaimer { color: #516d8f; font-size: .86rem; margin: .6rem 0 0; }
.tp-uil-planner__links { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: .8rem; }
.tp-uil-planner__links a { color: #176d72; font-weight: 750; }
@media (max-width: 767.98px) { .tp-uil-planner__hero { padding: 2.5rem 0 2.25rem; } .tp-uil-planner__event-grid, .tp-uil-planner__routine-grid { grid-template-columns: 1fr; } .tp-uil-planner__date-form { margin-left: 0; } .tp-uil-planner__plan-title-row { flex-direction: column; } }
