:root{--green:#73b541;--green-dark:#3d7620;--red:#ed1c24;--yellow:#f5a623;--ink:#202620;--text:#606960;--muted:#778078;--line:#dfe7dc;--soft:#f7faf5;--green-soft:#eef7e8;--red-soft:#fff1f2;--yellow-soft:#fff7e7;--shadow:0 28px 75px rgba(41,68,45,.13)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;color:var(--ink);background:#f5f8f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.is-hidden{display:none!important}.shell{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 8% 7%,rgba(115,181,65,.12),transparent 22%),radial-gradient(circle at 92% 9%,rgba(245,166,35,.1),transparent 20%),linear-gradient(180deg,#fbfcfa,#f3f7f0)}.app-card{width:min(1180px,100%);min-height:700px;background:#fff;border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}.brand-line{height:7px;background:linear-gradient(90deg,var(--green) 0 36%,var(--yellow) 36% 67%,var(--red) 67%)}
.logos{display:flex;align-items:center;gap:16px;min-height:74px}.logo-box{display:flex;align-items:center;justify-content:center;flex:0 0 auto;background:transparent}.logo-box img{display:block;max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}.sia-box{width:150px;height:64px}.rcic-box{width:142px;height:62px}.logo-divider{width:1px;height:45px;background:#d5ddd2;flex:0 0 1px}
.welcome{min-height:693px;display:grid;grid-template-columns:1.04fr .96fr}.welcome-copy{position:relative;padding:36px 50px 40px;overflow:hidden;background:radial-gradient(circle at 12% 18%,rgba(115,181,65,.09),transparent 25%),linear-gradient(180deg,#fff,#fafcf8)}.welcome-copy:after{content:"";position:absolute;width:420px;height:420px;right:-270px;bottom:-270px;border-radius:50%;border:1px solid rgba(115,181,65,.18);box-shadow:0 0 0 55px rgba(245,166,35,.035),0 0 0 110px rgba(237,28,36,.02)}.welcome-copy .logos{position:relative;z-index:2;margin-bottom:31px}.badge{position:relative;z-index:2;display:inline-flex;align-items:center;padding:8px 13px;border-radius:999px;color:var(--green-dark);background:var(--green-soft);font-size:.74rem;font-weight:850;text-transform:uppercase;letter-spacing:.055em}.welcome h1,.success-screen h1{position:relative;z-index:2;margin:18px 0 15px;max-width:640px;color:var(--red);font-size:clamp(2.75rem,5vw,4.1rem);line-height:1.03;letter-spacing:-.052em}.welcome-copy>p{position:relative;z-index:2;max-width:610px;margin:0;color:var(--text);font-size:1.06rem;line-height:1.65}.button{min-height:53px;padding:0 21px;border:0;border-radius:14px;font-size:.94rem;font-weight:850;transition:.18s ease}.button:hover{transform:translateY(-1px)}.primary{color:#fff;background:linear-gradient(135deg,#f22b32,var(--red));box-shadow:0 11px 25px rgba(237,28,36,.2)}.secondary{color:#4f594f;background:#eef2ec}.start-button{position:relative;z-index:2;min-width:360px;margin-top:27px}.start-button span{margin-left:9px;font-size:1.2rem}.time-row{position:relative;z-index:2;display:flex;align-items:center;gap:13px;margin:18px 0 0 9px;color:#566056;font-size:.83rem}.time-row i{width:5px;height:5px;border-radius:50%;background:var(--yellow)}
.welcome-review{padding:42px 38px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(135deg,#f5faef 0%,#fffaf2 54%,#fff7f7 100%)}.review-heading{margin-bottom:17px;color:#244527;font-size:.86rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.review-heading:after{content:"";display:block;width:84px;height:4px;margin-top:9px;border-radius:9px;background:linear-gradient(90deg,var(--green),var(--yellow),var(--red))}.review-card{position:relative;display:grid;grid-template-columns:54px 1fr;gap:15px;align-items:center;min-height:116px;margin-bottom:13px;padding:17px 18px 17px 22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 12px 26px rgba(50,74,52,.06);overflow:hidden}.review-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px}.review-card.green:before{background:var(--green)}.review-card.red:before{background:var(--red)}.review-card.yellow:before{background:var(--yellow)}.review-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;font-size:1.55rem}.green .review-icon{background:var(--green-soft)}.red .review-icon{background:var(--red-soft)}.yellow .review-icon{background:var(--yellow-soft)}.review-card h2{margin:0 0 4px;font-size:1rem}.review-card p{margin:0;color:#747d74;font-size:.78rem;line-height:1.48}.reassurance{display:flex;gap:10px;align-items:center;margin-top:2px;padding:14px 16px;border:1px solid #deead7;border-radius:15px;color:#5c675c;background:var(--green-soft);font-size:.78rem}.reassurance span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:#fff;background:var(--green);font-weight:900}
.form-layout{min-height:693px;display:grid;grid-template-columns:270px 1fr}.sidebar{padding:26px 22px;border-right:1px solid var(--line);background:linear-gradient(180deg,#f8fbf6,#f2f7ef)}.sidebar-logos{gap:9px;min-height:45px}.sidebar-logos .sia-box{width:93px;height:42px}.sidebar-logos .rcic-box{width:88px;height:41px}.sidebar-logos .logo-divider{height:31px}.sidebar-title{margin:13px 4px 27px;color:#687268;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.step-nav{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center;margin-bottom:6px;padding:8px;border-radius:11px;color:#737d73;font-size:.78rem}.step-nav i{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;font-style:normal;font-size:.68rem;font-weight:850}.step-nav.active{color:var(--ink);background:#fff;font-weight:800;box-shadow:0 6px 15px rgba(55,79,57,.05)}.step-nav.active i{color:#fff;border-color:var(--red);background:var(--red)}.step-nav.done i{color:#fff;border-color:var(--green);background:var(--green)}.privacy-note{margin-top:25px;padding:13px;border:1px solid var(--line);border-radius:13px;color:#737d73;background:#fff;font-size:.7rem;line-height:1.45}.form-main{min-width:0;padding:34px 40px 0;display:flex;flex-direction:column}.mobile-form-header{display:none}.progress-row{display:flex;justify-content:space-between;margin-bottom:8px;color:#6d776d;font-size:.75rem;font-weight:750}.progress-track{height:7px;border-radius:99px;background:#e7ece4;overflow:hidden}.progress-track span{display:block;width:11.11%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--yellow),var(--red));transition:width .25s ease}.form-error{display:none;margin:15px 0 -2px;padding:11px 13px;border:1px solid #f4b9bd;border-radius:11px;color:#9f1820;background:#fff2f3;font-size:.8rem}.form-error.show{display:block}.step-panel{width:min(770px,100%);margin:0 auto;padding:25px 0 24px;animation:stepIn .25s ease both}.kicker{display:inline-flex;padding:7px 11px;border-radius:999px;color:var(--green-dark);background:var(--green-soft);font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.step-panel>h2{margin:13px 0 8px;font-size:2rem;line-height:1.15;letter-spacing:-.035em}.lead{margin:0 0 22px;color:var(--text);font-size:.9rem;line-height:1.55}
.choice-grid{display:grid;gap:12px}.choice-grid.two{grid-template-columns:1fr 1fr}.choice-grid.three{grid-template-columns:repeat(3,1fr)}.choice-card{position:relative;min-height:112px;padding:17px;border:1px solid #dce4d9;border-radius:17px;background:#fff;cursor:pointer;transition:.18s}.choice-card:hover{transform:translateY(-2px);border-color:#b1ca9c}.choice-card.selected{border-color:#8fbc69;background:var(--green-soft);box-shadow:0 0 0 3px rgba(115,181,65,.09)}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-icon{display:block;margin-bottom:10px;font-size:1.35rem}.choice-card b{display:block;margin-bottom:4px;font-size:.9rem}.choice-card small{display:block;color:#717a71;font-size:.74rem;line-height:1.45}.choice-grid.compact .choice-card{min-height:72px;display:flex;align-items:center}.choice-grid.compact .choice-card b{margin:0}.top-gap{margin-top:20px}
.field-grid{display:grid;grid-template-columns:1fr;gap:15px}.field-grid.two{grid-template-columns:1fr 1fr}.field-grid.four{grid-template-columns:repeat(4,1fr)}.field-grid label,.field-block{display:block}.field-grid label>span,.field-block>span{display:block;margin:0 0 7px;color:#475147;font-size:.75rem;font-weight:800}.field-grid .full{grid-column:1/-1}input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea{width:100%;min-height:49px;padding:11px 13px;border:1px solid #d9e2d6;border-radius:12px;color:var(--ink);outline:0;background:#fff;font-size:.84rem}textarea{resize:vertical;line-height:1.45}input:focus,select:focus,textarea:focus{border-color:#8dbb68;box-shadow:0 0 0 3px rgba(115,181,65,.1)}.invalid{border-color:#e95057!important;background:#fffafa!important}.conditional{display:none;margin-top:16px;padding:17px;border:1px dashed #cad9c3;border-radius:15px;background:#fbfdf9}.conditional.visible{display:grid}.add-button{margin-top:11px;padding:10px 14px;border:1px solid #bdd3ad;border-radius:11px;color:var(--green-dark);background:#fff;font-size:.77rem;font-weight:800}.entry-card{position:relative;margin-bottom:13px;padding:17px;border:1px solid var(--line);border-radius:16px;background:#fbfdf9}.entry-title{margin:0 0 14px;font-size:.82rem;font-weight:900}.remove-entry{position:absolute;right:12px;top:11px;border:0;color:#a33;background:transparent;font-size:.72rem}.chip-grid{display:flex;flex-wrap:wrap;gap:8px}.chip{position:relative;cursor:pointer}.chip input{position:absolute;opacity:0}.chip span{display:block;padding:9px 12px;border:1px solid #d9e2d6;border-radius:99px;color:#5e685e;background:#fff;font-size:.73rem}.chip input:checked+span{color:#fff;border-color:var(--green);background:var(--green)}
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.upload{min-height:105px;padding:14px;border:1px dashed #bdcdb7;border-radius:15px;background:#fbfdf9}.upload>span{display:block;margin-bottom:8px;font-size:.82rem;font-weight:850}.upload input{max-width:100%;font-size:.72rem}.upload small{display:block;margin-top:8px;color:#7a837a;font-size:.68rem}.conditional-upload{display:none}.conditional-upload.visible{display:block}.review-summary{margin-top:18px;padding:16px;border-left:5px solid var(--green);border-radius:13px;background:var(--green-soft);color:#566056;font-size:.77rem;line-height:1.6}.review-summary b{color:#263126}.consent{display:flex;align-items:flex-start;gap:10px;margin-top:13px;color:#545e54;font-size:.75rem;line-height:1.48}.consent input{margin-top:3px;accent-color:var(--green)}.captcha-placeholder{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:16px;padding:13px;border:1px solid #d8e0d5;border-radius:12px;background:#fafafa}.captcha-placeholder img{display:block;max-width:100%;height:auto;background:#fff}.captcha-placeholder span{font-weight:800}.captcha-placeholder small{color:#788078;font-size:.68rem}.form-actions{position:sticky;bottom:0;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-top:auto;padding:13px 0 18px;background:linear-gradient(to top,#fff 78%,rgba(255,255,255,.88))}.autosave{text-align:center;color:#7b847b;font-size:.7rem}.success-screen{min-height:693px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px;text-align:center;background:radial-gradient(circle at 50% 30%,rgba(115,181,65,.13),transparent 30%),linear-gradient(180deg,#fff,#f7faf5)}.success-mark{width:72px;height:72px;display:grid;place-items:center;margin-bottom:20px;border-radius:22px;color:#fff;background:var(--green);font-size:2rem;font-weight:900;box-shadow:0 14px 30px rgba(115,181,65,.25)}.success-screen h1{margin:16px 0 10px;font-size:3.2rem}.success-screen p{max-width:620px;margin:0;color:var(--text);font-size:1rem;line-height:1.65}.success-id{margin-top:21px;padding:11px 15px;border:1px solid var(--line);border-radius:11px;color:#667066;background:#fff;font-size:.78rem}@keyframes stepIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:900px){.shell{padding:0}.app-card{min-height:100vh;border:0;border-radius:0;box-shadow:none}.welcome{grid-template-columns:1fr}.welcome-copy{min-height:auto;padding:25px 20px 24px}.welcome-copy .logos{margin-bottom:22px}.logos{gap:10px;min-height:56px}.sia-box{width:112px;height:48px}.rcic-box{width:107px;height:47px}.logo-divider{height:36px}.badge{font-size:.67rem}.welcome h1{margin-top:15px;font-size:2.55rem}.welcome-copy>p{font-size:.95rem;line-height:1.58}.start-button{width:100%;min-width:0;margin-top:21px}.time-row{justify-content:center;margin-left:0;font-size:.72rem}.welcome-review{padding:23px 16px 29px}.review-heading{text-align:center}.review-heading:after{margin-left:auto;margin-right:auto}.review-card{min-height:98px;padding:14px 14px 14px 18px;grid-template-columns:46px 1fr}.review-icon{width:43px;height:43px;font-size:1.25rem}.review-card h2{font-size:.9rem}.review-card p{font-size:.72rem}.form-layout{grid-template-columns:1fr;min-height:100vh}.sidebar{display:none}.form-main{padding:0 16px}.mobile-form-header{display:flex;align-items:center;justify-content:space-between;padding:12px 0 10px}.mobile-form-header .logos{gap:7px;min-height:42px}.mobile-form-header .sia-box{width:82px;height:36px}.mobile-form-header .rcic-box{width:78px;height:35px}.mobile-form-header .logo-divider{height:27px}.mobile-form-header>span{padding:6px 9px;border-radius:99px;color:var(--green-dark);background:var(--green-soft);font-size:.65rem;font-weight:800}.progress-row{margin-top:2px}.step-panel{padding-top:21px}.step-panel>h2{font-size:1.75rem}.choice-grid.two,.choice-grid.three,.field-grid.two,.field-grid.four,.upload-grid{grid-template-columns:1fr}.choice-card{min-height:98px}.grade12-fields{grid-template-columns:1fr 1fr!important}.form-actions{margin:0 -16px;padding:12px 16px calc(13px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(9px)}.form-actions .button{padding:0 16px}.autosave{display:none}.success-screen{min-height:calc(100vh - 7px);padding:25px 18px}.success-screen h1{font-size:2.7rem}.captcha-placeholder{align-items:flex-start;flex-direction:column}}
@media(max-width:390px){.sia-box{width:99px}.rcic-box{width:94px}.welcome h1{font-size:2.3rem}.time-row{gap:8px}.grade12-fields{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.choice-grid.four{grid-template-columns:repeat(2,1fr)}
.waiver-note{grid-column:1/-1;margin-bottom:14px;padding:11px 13px;border-left:4px solid var(--yellow);border-radius:9px;color:#6b5a30;background:var(--yellow-soft);font-size:.76rem;line-height:1.45}
.financial-warning{border-color:#f0c4c6;background:var(--red-soft);color:#7d3034;font-size:.78rem;line-height:1.5}
.financial-warning b{color:#a51d24}
@media(max-width:900px){.choice-grid.four{grid-template-columns:1fr}}

/* V3: compact fixed-shell navigation and conditional routes */
.form-layout{height:min(760px,calc(100vh - 44px));min-height:600px;overflow:hidden;grid-template-columns:250px 1fr}
.sidebar{overflow:auto}
.form-main{height:100%;min-height:0;overflow:hidden;padding-top:24px}
#stepHost{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:7px;scrollbar-gutter:stable}
.form-actions{position:relative;flex:0 0 auto;margin-top:0;padding:12px 0 16px;border-top:1px solid var(--line);background:#fff}
.route-hidden,.visa-only-card{display:none!important}.visa-only-card.visible{display:block!important}
.conditional-field{display:none!important}.conditional-field.visible{display:block!important}
.admission-notice,.family-advice{padding:13px 15px;border-left:4px solid var(--yellow);border-radius:11px;color:#5d563c;background:var(--yellow-soft);font-size:.78rem;line-height:1.5}
.family-advice{margin-top:17px;border-left-color:var(--green);background:var(--green-soft);color:#465746}
.helper{display:block;margin-top:6px;color:#778078;font-size:.68rem;line-height:1.4}
.mobile-form-header>strong{color:#394539;font-size:.78rem}
.sub-question{margin:24px 0 12px;font-size:1.1rem;line-height:1.3}.location-choice .choice-card{min-height:104px}
.route-section{display:none}.route-section.visible{display:grid}
@media(max-width:900px){
  .form-layout{height:100dvh;min-height:0;grid-template-columns:1fr}
  .form-main{height:100dvh;padding:0 16px}
  .mobile-form-header{min-height:48px;padding:9px 0 7px}
  #stepHost{padding-right:2px}
  .form-actions{margin:0 -16px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98)}
}
