:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#17233a;background:#f2f5fa;font-synthesis:none;--blue:#002f6c;--blue2:#1b5392;--red:#c62828;--red2:#b91f1f;--line:#dbe5f0;--muted:#66758b;--soft:#f7f9fc;--green:#166534;--greenBg:#ecfdf3;--warn:#8a5a14;--warnBg:#fff7e6}*{box-sizing:border-box}body{margin:0;background:#f2f5fa}button,input{font:inherit}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,46px);background:radial-gradient(circle at 18% 10%,rgba(47,95,160,.12),transparent 32%),linear-gradient(135deg,#f7fbff 0%,#eef4fb 48%,#e8eef6 100%)}.login-shell{width:min(1040px,100%);min-height:560px;display:grid;grid-template-columns:minmax(390px,1fr) minmax(360px,.92fr);overflow:hidden;border-radius:28px;background:#fff;border:1px solid #dbe6f2;box-shadow:0 28px 72px #0f234124}.login-brand{position:relative;min-height:560px;padding:clamp(30px,4.5vw,50px);color:#fff;background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.18),transparent 30%),radial-gradient(circle at 92% 76%,rgba(255,255,255,.12),transparent 34%),linear-gradient(135deg,#0b2e55 0%,#113f70 55%,#2f5f9f 100%)}.login-brand:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(0,0,0,.01),rgba(0,0,0,.14));pointer-events:none}.login-brand-inner{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;gap:clamp(76px,11vh,118px)}.login-logo-card{width:min(430px,94%);min-height:82px;display:flex;align-items:center;padding:10px 0}.login-logo-card img{width:100%;max-height:86px;object-fit:contain;object-position:left center;filter:drop-shadow(0 10px 20px rgba(0,0,0,.18))}.login-eyebrow,.login-kicker,.kicker,.section-number{margin:0 0 10px;font-size:13px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.login-eyebrow{color:#ffffffc7}.login-brand h1{margin:0;max-width:470px;font-size:clamp(40px,5vw,58px);line-height:.98;font-weight:950;letter-spacing:-.045em}.login-school{margin:18px 0 0;font-size:18px;font-weight:850}.login-brand-text{margin:10px 0 0;color:#ffffffd6;font-size:15px;line-height:1.5}.login-panel{display:flex;align-items:center;justify-content:center;padding:clamp(30px,5vw,58px)}.login-card{width:100%;max-width:390px}.login-mobile-logo{display:none}.login-kicker{color:var(--blue2);text-align:center}.login-card h2{margin:0;color:#0f172a;font-size:clamp(34px,4vw,44px);line-height:1.02;font-weight:950;letter-spacing:-.04em;text-align:center}.login-subtitle{margin:12px auto 28px;max-width:330px;color:#5f6f85;font-size:15px;line-height:1.5;text-align:center}.login-error,.alert{padding:12px 14px;border-radius:14px;font-size:14px;line-height:1.35}.login-error{margin-bottom:16px;border:1px solid #fecaca;background:#fff1f2;color:#991b1b}.login-form{display:grid;gap:17px}.login-field label{display:block;margin:0 0 8px;color:#26384f;font-size:14px;font-weight:850}.login-field input{width:100%;border:1px solid #c7d4e5;border-radius:14px;padding:14px 15px;background:#f8fafc;color:#0f172a;font-size:16px;outline:none;transition:.18s}.login-field input:focus{border-color:var(--blue2);background:#fff;box-shadow:0 0 0 4px #1b53921f}.login-submit{width:100%;min-height:52px;margin-top:4px;border:0;border-radius:14px;background:var(--red);color:#fff;font-size:16px;font-weight:900;cursor:pointer;box-shadow:0 14px 28px #c628282e;transition:.18s}.login-submit:hover:not(:disabled){background:var(--red2);transform:translateY(-1px)}.login-submit:disabled{cursor:not-allowed;opacity:.72}.app-shell{min-height:100vh}.app-header{background:linear-gradient(135deg,#0b2e55,#1b5392);color:#fff;box-shadow:0 2px 10px #0f234124}.header-inner{max-width:1220px;margin:0 auto;min-height:92px;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.header-brand{display:flex;align-items:center;gap:20px;min-width:0}.header-brand img{width:min(360px,35vw);max-height:64px;object-fit:contain;object-position:left center}.header-brand div{padding-left:20px;border-left:1px solid rgba(255,255,255,.32)}.header-brand b{display:block;font-size:20px}.header-brand span{display:block;margin-top:4px;font-size:12px;color:#ffffffc7}.account{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:700;white-space:nowrap}.account button{border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;border-radius:10px;padding:9px 13px;cursor:pointer}.content{max-width:1180px;margin:0 auto;padding:36px 24px 80px}.page-hero{background:#fff;border:1px solid var(--line);border-left:6px solid #e1ad2b;border-radius:18px;padding:26px 30px;box-shadow:0 8px 24px #0f23410f}.kicker,.section-number{color:var(--blue2)}.page-hero h1,.success-card h1,.section-heading h2{color:#073b6d}.page-hero h1{margin:4px 0 8px;font-size:clamp(30px,4vw,42px);line-height:1.08;letter-spacing:-.03em}.page-hero p:last-child,.lead,.confirm-copy{color:var(--muted);line-height:1.55;margin:0}.progress-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0}.progress-steps div{display:flex;align-items:center;gap:8px;background:#e8edf4;color:#7b899c;border-radius:12px;padding:11px 13px;font-size:13px}.progress-steps span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#d7dee8;font-weight:900}.progress-steps .active{background:#e7f0fa;color:var(--blue)}.progress-steps .active span{background:var(--blue);color:#fff}.progress-steps .done{background:#eaf6ee;color:var(--green)}.progress-steps .done span{background:var(--green);color:#fff}.panel{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 5px 18px #0f23410a}.section-heading{margin-bottom:17px}.section-number{font-size:11px;margin-bottom:5px}.section-heading h2{margin:0;font-size:23px;letter-spacing:-.02em}.student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-card{background:#fff;border:1px solid #d6e0ec;border-radius:15px;padding:17px;text-align:left;display:flex;justify-content:space-between;gap:14px;cursor:pointer;transition:.16s}.student-card:not(:disabled):hover,.student-card.selected{border-color:var(--blue2);box-shadow:0 0 0 3px #1b539217}.student-card.selected{background:#f7fbff}.student-card:disabled{cursor:not-allowed;opacity:.72}.student-card strong,.student-card span,.student-card small{display:block}.student-card strong{color:#122c48;font-size:16px}.student-card span{font-size:13px;color:#5e7085;margin-top:4px}.student-card small{font-size:11px;color:#8895a6;margin-top:5px}.status{font-style:normal;font-size:11px;font-weight:800;align-self:flex-start;padding:6px 9px;border-radius:999px;background:#eef1f4;color:#60717b;white-space:nowrap}.status-ready,.status-complete{background:var(--greenBg);color:var(--green)}.status-warn{background:var(--warnBg);color:var(--warn)}.date-grid,.slot-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.date-grid button,.slot-grid button{background:#fff;border:1px solid #d5e0ec;border-radius:12px;padding:13px 8px;cursor:pointer;color:#40566f}.date-grid button b,.date-grid button strong,.date-grid button small,.slot-grid button strong,.slot-grid button small{display:block}.date-grid button strong{font-size:22px;color:var(--blue);margin:3px 0}.date-grid button small,.slot-grid button small{color:#8593a6;font-size:10px}.date-grid button.selected,.slot-grid button.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.date-grid button.selected strong,.date-grid button.selected small,.slot-grid button.selected small{color:#fff}.slot-grid button:disabled{background:#f1f3f6;color:#a3adba;cursor:not-allowed}.alert{margin:10px 0 16px;border:1px solid #f0d49b;background:#fff8e8;color:#7a5719}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.summary-grid div,.receipt div{background:#f6f8fb;border:1px solid #e4eaf2;padding:14px;border-radius:12px}.summary-grid span,.summary-grid b,.receipt span,.receipt b,.receipt strong{display:block}.summary-grid span,.receipt span{font-size:11px;color:#7b899c;margin-bottom:5px}.summary-grid b,.receipt b{font-size:13px;color:#23364e}.confirm-copy{margin-top:16px}.btn{border-radius:12px;padding:12px 18px;font-weight:850;cursor:pointer}.btn-primary{border:0;background:var(--red);color:#fff;margin-top:17px;box-shadow:0 10px 22px #c6282829}.btn-primary:hover:not(:disabled){background:var(--red2)}.btn-secondary{border:1px solid var(--blue2);background:#fff;color:var(--blue2)}.success-card{max-width:720px;margin:42px auto;padding:34px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 35px #0f234114}.success-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:var(--greenBg);color:var(--green);font-size:30px;font-weight:900;margin:0 auto 15px}.success-card h1{margin:5px 0 8px;font-size:34px}.receipt{margin:23px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}.receipt-code{grid-column:1/-1;text-align:center}.receipt-code strong{font-size:20px;color:var(--blue)}.info-note{margin:18px 0;padding:13px 15px;background:#f4f7fb;border-radius:12px;color:#596a7f;font-size:13px;line-height:1.5}@media (max-width:900px){.login-shell{grid-template-columns:1fr;max-width:560px;min-height:auto}.login-brand{min-height:300px;padding:30px}.login-brand-inner{gap:36px}.login-logo-card{width:min(390px,92%);min-height:68px}.login-brand h1{font-size:clamp(32px,8vw,44px)}.header-brand div{display:none}.header-brand img{width:min(390px,58vw)}.student-grid{grid-template-columns:1fr}.date-grid,.slot-grid{grid-template-columns:repeat(4,1fr)}.summary-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.login-page{align-items:stretch;padding:0;background:#f1f6fc}.login-shell{width:100%;min-height:100vh;border:0;border-radius:0;box-shadow:none}.login-brand{min-height:auto;padding:20px 18px;border-radius:0 0 22px 22px}.login-brand-inner{justify-content:center;gap:14px}.login-logo-card,.login-eyebrow,.login-brand-text{display:none}.login-brand h1{font-size:25px;line-height:1.08;text-align:center}.login-school{margin-top:8px;font-size:14px;text-align:center;opacity:.9}.login-panel{align-items:flex-start;padding:28px 18px 36px}.login-card{max-width:none}.login-mobile-logo{display:flex;justify-content:center;margin-bottom:22px}.login-mobile-logo img{width:min(280px,84vw);max-height:58px;object-fit:contain;padding:14px 18px;border-radius:16px;background:linear-gradient(135deg,#0b2e55,#1b5392);box-shadow:0 12px 28px #0f234129}.login-kicker{font-size:12px}.login-card h2{font-size:34px}.header-inner{min-height:74px;padding:10px 14px}.header-brand img{width:min(280px,66vw);max-height:52px}.account span{display:none}.content{padding:22px 12px 55px}.page-hero{padding:21px 18px}.page-hero h1{font-size:28px}.progress-steps{gap:4px}.progress-steps div{justify-content:center;padding:9px 5px}.progress-steps b{display:none}.panel{padding:18px 14px}.student-card{display:block}.status{display:inline-block;margin-top:12px}.date-grid,.slot-grid{grid-template-columns:repeat(4,1fr)}.summary-grid,.receipt{grid-template-columns:1fr}.success-card{margin:22px 12px;padding:28px 18px}.receipt-code{grid-column:auto}}.hero-rule{margin-top:12px!important;padding-top:12px;border-top:1px solid #e5ebf3;color:#425a75!important}.existing-appointment{margin-top:9px!important;padding-top:8px;border-top:1px solid #e5eaf1;color:#34506f!important;font-weight:800}.calendar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.month-nav{display:flex;align-items:center;gap:12px}.month-nav strong{min-width:165px;text-align:center;color:#173d68}.month-nav button{width:38px;height:38px;border-radius:10px;border:1px solid #cfdbe8;background:#fff;color:#073b6d;font-size:24px;line-height:1;cursor:pointer}.month-nav button:disabled{opacity:.35;cursor:not-allowed}.calendar-legend{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 14px;color:#64758b;font-size:12px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend span:before{content:"";width:10px;height:10px;border-radius:50%;background:#dce5ef}.calendar-legend .legend-free:before{background:#ccebd8}.calendar-legend .legend-full:before{background:#f4d6d6}.calendar-legend .legend-off:before{background:#dce3eb}.month-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-weekday{text-align:center;padding:7px 3px;color:#61738a;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.calendar-empty{min-height:72px}.calendar-day{min-height:76px;padding:10px 6px;border-radius:12px;border:1px solid #d7e1ed;background:#fff;color:#173652;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:.15s}.calendar-day strong{font-size:20px}.calendar-day small{font-size:9px;color:#76879b}.calendar-day.available{background:#f7fcf9;border-color:#c9e6d3}.calendar-day.available:hover{border-color:#21834d;box-shadow:0 0 0 3px #21834d14}.calendar-day.full{background:#fff8f8;border-color:#efd8d8}.calendar-day.blocked,.calendar-day.unavailable{background:#f3f5f7;color:#9aa6b5;border-color:#e3e7ec}.calendar-day.full small{color:#a35454}.calendar-day.blocked small,.calendar-day.unavailable small{color:#9aa6b5}.calendar-day.selected{background:var(--blue)!important;border-color:var(--blue)!important;color:#fff}.calendar-day.selected small{color:#fff}.success-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.success-actions .btn,.success-actions .btn-primary{margin-top:0}@media (max-width:760px){.calendar-heading{align-items:flex-start;flex-direction:column}.month-nav{width:100%;justify-content:space-between}.month-calendar{gap:5px}.calendar-day{min-height:66px;padding:7px 3px}.calendar-day strong{font-size:17px}.calendar-day small{font-size:8px}.calendar-empty{min-height:66px}}@media (max-width:520px){.month-calendar{grid-template-columns:repeat(7,minmax(38px,1fr));gap:3px}.calendar-weekday{font-size:9px;padding:4px 1px}.calendar-day{min-height:58px;border-radius:9px}.calendar-day strong{font-size:15px}.calendar-day small{font-size:7px;line-height:1.05}.hero-rule{font-size:13px}}@media print{body{background:#fff}.app-header,.no-print{display:none!important}.success-card{max-width:none;margin:0;border:0;box-shadow:none}.printable-receipt{padding:20mm 16mm}.receipt{break-inside:avoid}.info-note{border:1px solid #dbe5f0}.success-icon{border:1px solid #bfe5cc}}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}body{min-width:0;overflow-x:hidden}button,input{max-width:100%;touch-action:manipulation}button{-webkit-tap-highlight-color:transparent}.app-shell,.content,.panel,.page-hero,.student-card,.success-card{min-width:0}.app-header{padding-top:env(safe-area-inset-top)}.login-page{min-height:100dvh;padding-top:max(clamp(16px,4vw,46px),env(safe-area-inset-top));padding-right:max(clamp(16px,4vw,46px),env(safe-area-inset-right));padding-bottom:max(clamp(16px,4vw,46px),env(safe-area-inset-bottom));padding-left:max(clamp(16px,4vw,46px),env(safe-area-inset-left))}.content{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));padding-bottom:max(80px,env(safe-area-inset-bottom))}.account button,.month-nav button,.btn,.slot-grid button{min-height:44px}.student-card{min-height:88px}.month-calendar,.calendar-day,.calendar-empty{min-width:0}.calendar-day small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:760px){.content{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(64px,env(safe-area-inset-bottom))}.header-inner{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.page-hero{padding:22px 18px}.panel{padding:18px 14px}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.slot-grid button{padding:11px 5px}.month-nav button{min-width:44px;width:44px;height:44px}}@media (max-width:560px){.login-page{min-height:100dvh;padding:0}.login-shell{min-height:100dvh}.login-panel{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));padding-bottom:max(36px,env(safe-area-inset-bottom))}.login-field input{min-height:48px}.header-inner{gap:10px}.header-brand{flex:1;overflow:hidden}.header-brand img{width:min(250px,68vw)}.account{gap:8px}.account button{padding:9px 11px}.page-hero h1{font-size:clamp(25px,8vw,29px)}.progress-steps div{min-width:0}.progress-steps span{width:28px;height:28px;flex:0 0 28px}.student-card{padding:16px}.month-nav{gap:8px}.month-nav strong{min-width:0;flex:1;font-size:14px}.calendar-legend{gap:10px 14px;font-size:11px}.month-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;width:100%}.calendar-weekday{min-width:0;font-size:8px;letter-spacing:0;padding:4px 0}.calendar-empty{min-height:52px}.calendar-day{min-width:0;min-height:54px;padding:5px 1px;border-radius:8px;gap:2px}.calendar-day strong{font-size:15px;line-height:1}.calendar-day small{font-size:6.8px;line-height:1;max-width:100%}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.slot-grid button{min-width:0;min-height:46px;padding:9px 4px}.summary-grid{gap:8px}.summary-grid div,.receipt div{padding:12px}.success-actions{display:grid;grid-template-columns:1fr;width:100%}.success-actions .btn{width:100%;min-height:48px}.success-card{margin-left:max(12px,env(safe-area-inset-left));margin-right:max(12px,env(safe-area-inset-right));margin-bottom:max(22px,env(safe-area-inset-bottom))}}@media (max-width:390px){.content{padding-left:max(9px,env(safe-area-inset-left));padding-right:max(9px,env(safe-area-inset-right))}.panel{padding:16px 10px;border-radius:15px}.page-hero{padding:19px 14px;border-left-width:4px}.page-hero h1{font-size:25px}.page-hero p{font-size:13px}.progress-steps{gap:3px;margin:16px 0}.progress-steps div{padding:8px 3px;border-radius:9px}.progress-steps span{width:26px;height:26px;flex-basis:26px;font-size:12px}.section-heading h2{font-size:20px}.student-card{padding:14px}.student-card strong{font-size:15px}.calendar-heading{gap:12px}.calendar-legend{margin-bottom:10px}.calendar-day{min-height:50px}.calendar-day strong{font-size:14px}.calendar-day small{font-size:6.2px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}}@media (max-width:340px){.header-brand img{width:min(205px,64vw)}.account button{font-size:12px;padding:8px 9px}.content{padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}.panel{padding:14px 7px}.page-hero{padding:17px 11px}.page-hero h1{font-size:23px}.month-nav strong{font-size:13px}.month-calendar{gap:2px}.calendar-weekday{font-size:7px}.calendar-day{min-height:48px;border-radius:7px}.calendar-day strong{font-size:13px}.calendar-day small{font-size:5.8px}}@media (max-height:520px) and (orientation:landscape){.login-page{align-items:flex-start}.login-shell{min-height:auto}.login-brand{display:none}.login-panel{padding-top:20px;padding-bottom:20px}.login-mobile-logo{display:flex;justify-content:center;margin-bottom:12px}.login-mobile-logo img{max-height:46px;width:min(250px,65vw);object-fit:contain;padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,#0b2e55,#1b5392)}.login-subtitle{margin-bottom:16px}}.progress-steps.five{grid-template-columns:repeat(5,minmax(0,1fr))}.academic-intro{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.5}.academic-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:stretch}.academic-card{border:1px solid #dbe5f0;border-radius:15px;padding:18px;background:#f7f9fc;display:flex;flex-direction:column;gap:5px;min-width:0}.academic-card.destination{background:#f7fbff;border-color:#bfd2e8}.academic-card span{font-size:11px;color:#77869a;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.academic-card strong{font-size:14px;color:#33516f}.academic-card b{font-size:24px;color:#073b6d;line-height:1.15;overflow-wrap:anywhere}.academic-arrow{display:grid;place-items:center;color:#1b5392;font-size:28px;font-weight:900;padding:0 2px}.orientation-field{margin-top:18px;max-width:520px}.orientation-field label{display:block;margin-bottom:8px;color:#26384f;font-size:14px;font-weight:850}.orientation-field select{width:100%;min-height:48px;border:1px solid #c7d4e5;border-radius:13px;background:#fff;color:#17233a;padding:0 42px 0 14px;font:inherit;outline:none}.orientation-field select:focus{border-color:var(--blue2);box-shadow:0 0 0 4px #1b53921a}.orientation-field select:disabled{background:#f3f5f7;color:#65758a}.academic-actions{margin-top:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.academic-actions .btn{margin-top:0}.academic-confirmed{display:inline-flex;align-items:center;min-height:44px;padding:10px 13px;border-radius:12px;background:var(--greenBg);color:var(--green);font-size:13px;font-weight:850}.academic-warning{color:#8a5a14!important;line-height:1.35!important;white-space:normal!important}@media (max-width:760px){.academic-grid{grid-template-columns:1fr;gap:8px}.academic-arrow{transform:rotate(90deg);height:28px}.academic-card b{font-size:21px}}@media (max-width:560px){.progress-steps.five{gap:3px}.academic-card{padding:15px}.academic-actions{display:grid;grid-template-columns:1fr;width:100%}.academic-actions .btn,.academic-confirmed{width:100%;justify-content:center;text-align:center}}@media (max-width:390px){.progress-steps.five div{padding-left:2px;padding-right:2px}.progress-steps.five span{width:24px;height:24px;flex-basis:24px;font-size:11px}}
