:root{font-family:"Aptos","Segoe UI",Arial,sans-serif;font-size:100%;font-synthesis:none;color:#173248;background:#faf7ef;--blue:#075e9e;--navy:#173248;--muted:#485e70;--line:#d3dfe8;--error:#9c252b;--yellow:#ffcf18}
html{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
*{box-sizing:border-box}body{margin:0;max-width:100%;overflow-x:hidden;font-size:1.25rem;line-height:1.5;border-top:7px solid var(--yellow);background:linear-gradient(180deg,#edf5fb 0,#faf7ef 460px);min-height:100vh;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default}a,button,input,select,textarea{touch-action:manipulation}button,a,summary{ -webkit-tap-highlight-color:transparent}img,canvas{max-width:100%}
:focus-visible{outline:3px solid #946b00;outline-offset:4px}[hidden]{display:none!important}
.skip{position:absolute;top:-100px;left:20px;z-index:10;background:white;color:var(--blue);padding:16px}.skip:focus{top:12px}
.masthead{max-width:1240px;margin:auto;padding:26px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:16px;min-width:0}.brand img{object-fit:contain;flex-shrink:0}.school{font-size:1.375rem;line-height:1.3;color:var(--blue)}.school strong{font-weight:750}.brand-caption{font-size:1.0625rem;color:var(--muted);margin-top:6px}
.header-tools{display:flex;align-items:center;gap:24px}.year{font-size:1rem;color:var(--muted);white-space:nowrap}
.language-switch{display:flex;gap:4px;border:1px solid #c4d8e7;border-radius:14px;background:#fff;padding:4px;flex-shrink:0}.language-switch button{font-size:1.125rem;line-height:1.3;min-height:48px;padding:12px 16px;border:0;border-radius:7px;color:var(--muted);background:transparent}.language-switch button[aria-pressed="true"]{background:var(--blue);color:#fff;font-weight:600}
.demo-strip{background:#fff9e3;border-block:1px solid #eadfb9;padding:8px 28px;display:flex;gap:24px;justify-content:center;align-items:center;font-size:1rem;color:var(--muted)}
.demo-strip button,.under-form button{font-size:1rem;background:none;border:0;color:var(--blue);text-decoration:underline;text-underline-offset:5px;padding:12px 4px;min-height:48px}
.workspace{max-width:930px;margin:36px auto 28px;padding:0 24px}main{min-width:0;scroll-margin-top:24px}
.form-progress{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:1.125rem;color:var(--muted);margin-bottom:12px}.form-progress span:first-child{font-weight:650;color:var(--blue);background:#e1eef8;border:1px solid #c5dceb;border-radius:999px;padding:8px 20px}
.progress-track{height:8px;border-radius:6px;background:#dae5ec;overflow:hidden;margin-bottom:24px}#progress-fill{height:100%;background:var(--blue);border-right:8px solid var(--yellow);border-radius:6px;transition:width .15s ease}
.form-surface{position:relative;padding:38px 40px 36px;border:1px solid #e2e6e7;border-top:6px solid var(--blue);border-radius:22px;background:#fff;box-shadow:0 10px 38px #2449670b;min-width:0}
h1{font-size:2.5rem;font-weight:650;line-height:1.2;letter-spacing:-.025em;margin:0 0 20px;text-wrap:balance;overflow-wrap:break-word}
.intro{font-size:1.25rem;color:var(--muted);line-height:1.55;margin:0 0 30px}
.fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 24px;margin-top:30px}.field{min-width:0;margin:0;padding:0;border:0}.wide{grid-column:1/-1}
.field-label,.field legend{display:block;font-size:1.25rem;line-height:1.4;font-weight:650;margin:0 0 12px;padding:0;color:var(--navy)}.optional{font-size:1.125rem;font-weight:400;color:var(--muted)}
input[type="text"],input[type="email"],input[type="tel"],select,textarea{width:100%;min-width:0;min-height:64px;padding:16px 18px;border:2px solid #8ba0b1;border-radius:12px;background:#fcfdff;color:var(--navy);font-size:1.375rem;line-height:1.35;box-shadow:none}
input::placeholder,textarea::placeholder{color:#5c7284}input:hover,select:hover,textarea:hover{border-color:#456d8a}select{padding-right:36px}textarea{resize:vertical;min-height:142px}
.hint,.selection-confirm{font-size:1.125rem;line-height:1.55;color:var(--muted);margin:12px 0 0}.selection-confirm{display:none;font-weight:600;color:var(--blue)}
.choices{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.choices label,.check-label{display:flex;align-items:center;gap:16px;width:100%;min-height:70px;padding:18px 20px;border:2px solid #a1b3c1;border-radius:10px;font-size:1.25rem;line-height:1.5;cursor:pointer;background:white}
.choices label:has(input:checked),.check-label:has(input:checked){border-color:var(--blue);background:#edf5fc;box-shadow:inset 5px 0 0 var(--blue)}
.choices label:has(input:focus-visible),.check-label:has(input:focus-visible){outline:3px solid #946b00;outline-offset:4px}
.choices input,.check-label input{accent-color:var(--blue);width:26px;height:26px;flex:0 0 26px;margin:0}.choices label span,.check-label span{min-width:0}
.date-menus{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.45fr) minmax(0,1fr);gap:16px}.date-menus label{min-width:0}.date-menus label>span{display:block;font-size:1.125rem;margin-bottom:9px;color:var(--muted)}
.date-menus select{padding-left:12px;padding-right:24px}
.clear-date{display:inline-block;border:0;background:transparent;color:var(--blue);font-size:1.125rem;text-decoration:underline;text-underline-offset:4px;padding:12px 0;min-height:48px}
.extra-fields{border-top:1px solid var(--line);margin-top:30px;padding-top:14px}.extra-fields summary{cursor:pointer;color:var(--blue);padding:12px 0;font-size:1.125rem;min-height:50px}.extra-fields .fields{margin-top:18px}
.shared-address{border-left:5px solid var(--yellow);border-radius:0 12px 12px 0;padding:16px 20px;background:#fff9e7;margin:24px 0;font-size:1.25rem;line-height:1.5}.shared-address strong{display:block;font-size:1.125rem;margin-bottom:8px}.shared-address span{color:var(--muted);overflow-wrap:anywhere}
.error{font-size:1.125rem;line-height:1.5;color:var(--error);font-weight:600;margin:12px 0 0}[aria-invalid="true"]:not(fieldset){border:3px solid var(--error)}fieldset[aria-invalid="true"] .choices{border-left:4px solid var(--error);padding-left:14px}
.error-summary{font-size:1.25rem;line-height:1.5;padding:18px 20px;border-left:4px solid var(--error);background:#fff2f1;color:#852128;margin:24px 0}
.actions{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-top:38px;padding-top:26px;border-top:1px solid var(--line)}
.primary,.secondary,.back{display:inline-flex;justify-content:center;align-items:center;gap:16px;min-height:64px;padding:16px 26px;font-size:1.375rem;font-weight:600;line-height:1.35;border-radius:10px;text-align:center}
.primary{color:#fff;background:var(--blue);border:2px solid var(--blue);min-width:210px;box-shadow:0 4px 0 #034879}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #034879}.primary:hover{background:#064c80;border-color:#064c80}.secondary{border:2px solid #9cb0bf;background:white;color:var(--navy)}.secondary:hover{background:#f3f7fa}
.back{border:2px solid #c6d3de;background:white;color:var(--navy);min-width:130px}.back:hover{border-color:var(--blue);background:#f5f9fc}.button-arrow{font-size:1.5rem;line-height:1}
.under-form{padding-inline:12px;display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;color:var(--muted);font-size:1rem;line-height:1.5}
.footer{max-width:778px;margin:32px auto 0;padding:24px 0;border-top:1px solid #e0e8ef;display:flex;justify-content:space-between;gap:20px;font-size:1rem;color:var(--muted)}.footer span:last-child{color:var(--blue);font-weight:650}
.notice{font-size:1.125rem;line-height:1.6;color:#345269;background:#f1f6fa;border-radius:0 12px 12px 0;border-left:4px solid #769bb6;padding:20px;margin-top:28px}
.review-section{border-top:1px solid var(--line);margin-top:34px;padding-top:26px}.review-section>h2{font-size:1.625rem;color:var(--blue);margin:0 0 18px;font-weight:650;border-left:6px solid var(--yellow);padding-left:14px}
.review-item{border-bottom:1px solid #e0e8ef;padding:24px 0}.review-item:last-child{border:0}.review-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px}.review-heading h3{font-size:1.25rem;font-weight:650;margin:10px 0 0}
.edit{background:white;border:1px solid #b0c4d2;border-radius:8px;min-height:48px;padding:10px 16px;color:var(--blue);font-size:1.125rem;flex-shrink:0}
.review-item dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px 26px;font-size:1.125rem;line-height:1.5;margin:0}.review-item dt{color:var(--muted)}.review-item dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-weight:500}
.completion-mark{display:grid;place-items:center;font-size:2.25rem;width:72px;height:72px;background:#fff3bf;color:var(--blue);border:2px solid #f2d874;border-radius:50%;margin-bottom:28px}.eyebrow{font-size:1.125rem;color:var(--blue);font-weight:650;margin:0 0 16px}
.completion p{font-size:1.25rem;line-height:1.6}.completion .primary,.completion .back{margin-top:20px}.fine-print{font-size:1.125rem!important;color:var(--muted)}
dialog{border:1px solid var(--line);border-radius:14px;padding:30px;max-width:560px;width:calc(100% - 40px);color:var(--navy);box-shadow:0 20px 80px #132e4640}dialog::backdrop{background:#132c4770}dialog h2{font-size:1.875rem;margin:0 0 18px;line-height:1.25}dialog p{font-size:1.25rem;line-height:1.5;color:var(--muted)}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:18px;margin-top:26px}.dialog-actions .primary{min-width:0}

.reference-card{background:#fff8dd;border:1px solid #eadb9b;border-left:6px solid var(--yellow);border-radius:14px;padding:22px 24px;margin:26px 0}
.reference-label{display:block;font-size:1.125rem;color:#66521c;font-weight:600;margin-bottom:10px}
.reference-code{display:block;color:var(--navy);font-family:ui-monospace,"Cascadia Code",Consolas,monospace;font-size:1.25rem;line-height:1.6;letter-spacing:.025em;overflow-wrap:anywhere;user-select:all}
.reference-card p,.completion .reference-card p{font-size:1.125rem;color:#665b39;line-height:1.5;margin:12px 0 0}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1050px){.year{display:none}.masthead{padding:20px 28px}.workspace{margin-top:30px}}
@media(max-width:850px){.footer{margin-left:36px;margin-right:36px}}
@media(max-width:650px){.masthead{padding:18px 22px;flex-wrap:wrap;gap:16px}.header-tools{width:100%;justify-content:flex-end}.brand img{width:52px;height:48px}.school{font-size:1.25rem}.brand-caption{font-size:1rem}.language-switch button{font-size:1.125rem;min-height:48px}.demo-strip{padding:8px 20px;flex-wrap:wrap;gap:0 20px;justify-content:space-between}.workspace{padding:0 16px;margin-top:26px}.form-surface{padding:28px 22px;border-radius:18px}.form-progress span:first-child{padding:7px 14px}.form-progress{font-size:1.0625rem}.progress-track{margin-bottom:26px}h1{font-size:2.125rem;line-height:1.25}.fields{grid-template-columns:minmax(0,1fr);gap:26px}.wide{grid-column:auto}.field-label,.field legend{font-size:1.25rem}.intro{font-size:1.25rem}.date-menus{gap:10px}.date-menus select{font-size:1.25rem;padding-left:10px;padding-right:18px}.selection-confirm{display:block}.actions{gap:18px}.primary,.secondary,.back{font-size:1.25rem;padding:16px 18px}.primary{min-width:0;flex:1}.back{min-width:112px}.under-form{flex-direction:column;align-items:flex-start;gap:6px}.footer{margin:24px 22px 0;flex-wrap:wrap}.review-item dl{grid-template-columns:1fr;gap:5px}.review-item dd{margin-bottom:14px}.review-heading{gap:14px}.completion .primary,.completion .back{width:100%}}
@media(max-width:380px){.brand{gap:10px}.school{font-size:1.125rem}.workspace{padding-inline:10px}.form-surface{padding-inline:18px}.form-progress{gap:10px}.masthead{padding-inline:18px}.date-menus{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.date-menus label:last-child{grid-column:1/-1}.actions{flex-wrap:wrap}.actions .primary{flex-basis:100%}.actions>span:empty{display:none}.back{width:100%}.review-heading{flex-wrap:wrap}.review-heading .edit{margin-left:auto}.dialog-actions{flex-direction:column}.dialog-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.pdf-links{display:flex;flex-wrap:wrap;gap:16px;align-items:stretch;margin:24px 0}.pdf-links a{text-decoration:none}.completion .pdf-links .primary{margin:0}button:disabled{opacity:.65}.pdf-links .secondary{margin:0}@media(max-width:650px){.pdf-links a{width:100%}}

.pdf-preview{max-width:100%;overflow:hidden;margin:24px 0;padding:12px;background:#e9eff4;border-radius:12px}.pdf-preview figure{min-width:0;margin:0 0 24px}.pdf-preview figure:last-child{margin-bottom:0}.pdf-preview figcaption{font-size:1.125rem;font-weight:600;color:var(--blue);margin:4px 0 12px}.pdf-preview canvas{display:block;width:100%;height:auto;background:white;box-shadow:0 2px 10px #1732481a}.completion .pdf-links button{margin:0}.pdf-links button{flex:1}#pdf-access-status:not(:empty){font-size:1.125rem;background:#fff8dd;padding:16px;border-radius:10px}@media(max-width:650px){.pdf-links button{flex-basis:100%}}

input,select,textarea,fieldset{scroll-margin-block:20vh 35vh}
@media(max-width:650px){
  .masthead{padding:18px max(16px,env(safe-area-inset-right,0px)) 18px max(16px,env(safe-area-inset-left,0px));gap:14px}
  .brand{width:100%;gap:12px}.brand>div{min-width:0}.school{overflow-wrap:break-word}.header-tools{width:100%;justify-content:stretch}.language-switch{width:100%}.language-switch button{flex:1;min-width:0;padding-inline:10px}
  .workspace{width:100%;padding-right:max(14px,env(safe-area-inset-right,0px));padding-left:max(14px,env(safe-area-inset-left,0px));margin-top:22px}
  .form-progress{flex-wrap:wrap;align-items:flex-end;gap:8px 12px}.form-progress span:first-child{max-width:100%;overflow-wrap:anywhere}#mobile-count{margin-left:auto;font-size:1rem;white-space:nowrap}
  .form-surface{padding:26px clamp(16px,5vw,22px) 28px}h1{font-size:clamp(1.875rem,8vw,2.125rem)}
  .fields{gap:24px;margin-top:26px}input[type="text"],input[type="email"],input[type="tel"],select,textarea{min-height:58px;padding:14px 15px;font-size:1.125rem}.choices label,.check-label{min-height:58px;padding:14px 16px;font-size:1.125rem}.choices input,.check-label input{width:28px;height:28px;flex-basis:28px}
  .date-menus{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px}.date-menus label:last-child{grid-column:1/-1}.date-menus select{font-size:1.125rem;padding-left:12px;padding-right:28px}
  .actions{align-items:stretch}.under-form{padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}.footer{padding-bottom:max(24px,env(safe-area-inset-bottom,0px))}
  .review-heading{flex-wrap:wrap}.review-heading .edit{margin-left:auto}.completion .primary,.completion .secondary,.completion .back{width:100%}
  .pdf-preview{padding:8px}.pdf-preview figcaption{font-size:1rem}.notice,.error-summary{overflow-wrap:anywhere}
  dialog{max-height:calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-y:auto;padding:24px}
}
@media(max-width:480px){
  .actions{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.actions>span:empty{display:none}.actions .primary,.actions .back{width:100%;min-width:0}
  .dialog-actions{flex-direction:column}.dialog-actions button{width:100%}.review-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.review-heading h3{overflow-wrap:anywhere}.edit{min-height:48px}
}
@media(max-width:340px){
  .masthead{padding-inline:max(12px,env(safe-area-inset-left,0px)) max(12px,env(safe-area-inset-right,0px))}.brand{gap:9px}.brand img{width:48px;height:45px}.school{font-size:1.0625rem}.brand-caption{font-size:.9375rem}
  .workspace{padding-right:max(10px,env(safe-area-inset-right,0px));padding-left:max(10px,env(safe-area-inset-left,0px))}.form-surface{padding-inline:16px}.form-progress span:first-child{font-size:1rem;padding-inline:12px}
}
@media(max-height:520px) and (orientation:landscape){.masthead{padding-block:12px}.workspace{margin-top:16px}.form-surface{padding-top:22px}.progress-track{margin-bottom:18px}}
