/* Dedicated admissions page. Form names and server submission remain unchanged. */
body.public-app.application-page { --ap-ink:#142d46; --ap-muted:#607185; --ap-border:#dfe6ee; --ap-surface:#fff; --ap-soft:#f7f9fc; --ap-blue:#175cd3; background:#f3f6fa; color:var(--ap-ink); display:block; padding:0; font-family:'Plus Jakarta Sans',system-ui,sans-serif; line-height:1.6; }
[data-bs-theme="dark"] body.public-app.application-page { --ap-ink:#edf3fc; --ap-muted:#adbed1; --ap-border:#2b3e56; --ap-surface:#142338; --ap-soft:#101e30; --ap-blue:#8cbbff; background:#0c1726; }
.application-header { max-width:1180px; margin:auto; padding:24px 32px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--ap-border); }
.application-brand { display:flex; align-items:center; gap:12px; color:var(--ap-ink); text-decoration:none; font-size:.95rem; font-weight:800; }
.application-brand img { object-fit:contain; background:#fff; border:1px solid var(--ap-border); padding:4px; border-radius:10px; flex-shrink:0; }
.application-brand small { display:block; color:var(--ap-muted); font-size:.68rem; font-weight:500; margin-top:1px; letter-spacing:.025em; }
.application-login { color:var(--ap-muted); font-size:.76rem; text-decoration:none; }
.application-login strong { color:var(--ap-blue); font-weight:700; margin-left:6px; }
.application-shell { max-width:1180px; padding:44px 32px 24px; margin:0 auto; }
.application-intro { max-width:800px; margin-bottom:32px; }
.application-eyebrow { display:flex; align-items:center; gap:8px; font-size:.63rem; font-weight:800; letter-spacing:.12em; color:var(--ap-blue); }
.application-eyebrow > span { height:6px; width:6px; border-radius:50%; background:var(--ap-blue); }
.application-intro h1 { font:800 clamp(1.8rem,3.2vw,2.6rem)/1.2 'Plus Jakarta Sans',system-ui,sans-serif; letter-spacing:-.045em; color:var(--ap-ink); margin:14px 0 12px; }
.application-intro > p { color:var(--ap-muted); font-size:.9rem; max-width:640px; margin:0; }
.application-stages { display:flex; list-style:none; padding:0; margin:25px 0 0; align-items:center; gap:20px; color:var(--ap-muted); font-size:.72rem; }
.application-stages li { display:flex; align-items:center; gap:8px; }
.application-stages li:not(:last-child)::after { content:''; width:42px; height:1px; background:var(--ap-border); margin-left:12px; }
.application-stages li > span { font-size:.65rem; width:26px; height:26px; border:1px solid var(--ap-border); border-radius:50%; display:grid; place-items:center; }
.application-stages li[aria-current] { color:var(--ap-blue); font-weight:700; }
.application-stages li[aria-current] > span { color:white; background:#175cd3; border-color:#175cd3; }
.application-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:28px; align-items:start; }
.application-main { min-width:0; }
.application-form { background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:18px; box-shadow:0 8px 24px rgb(17 42 67 / 3%); }
.application-form-heading { display:flex; gap:16px; align-items:start; justify-content:space-between; padding:28px 30px 24px; border-bottom:1px solid var(--ap-border); }
.application-form-heading h2 { font:750 1.12rem/1.4 'Plus Jakarta Sans',system-ui,sans-serif; letter-spacing:-.025em; margin:0 0 6px; color:var(--ap-ink); }
.application-form-heading p { font-size:.75rem; color:var(--ap-muted); margin:0; }
.application-form-heading > span { white-space:nowrap; font-size:.63rem; color:var(--ap-muted); padding-top:4px; }
.required-marker { color:#d03140; }
.application-section { border:0; border-bottom:1px solid var(--ap-border); padding:26px 30px 28px; margin:0; min-width:0; }
.application-section legend { float:none; width:auto; padding:0; margin:0 0 6px; display:flex; align-items:center; gap:10px; color:var(--ap-ink); font-size:.87rem; font-weight:750; }
.application-section legend > span { color:var(--ap-blue); background:var(--ap-soft); border:1px solid var(--ap-border); border-radius:7px; padding:4px 7px; font-size:.61rem; letter-spacing:.02em; }
.application-section-description { color:var(--ap-muted); font-size:.73rem; margin:0 0 20px; }
.application-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 18px; }
.application-fields .form-group { gap:7px; min-width:0; }
.application-fields .full-width { grid-column:1/-1; }
.application-page .application-form .form-group label { color:var(--ap-ink); font-size:.72rem; font-weight:650; line-height:1.5; margin:0; }
.application-page .application-form .form-group :is(input,select,textarea) { box-sizing:border-box; width:100%; max-width:100%; border:1px solid var(--ap-border); background:var(--ap-surface); color:var(--ap-ink); border-radius:8px; font:500 .79rem/1.5 'Plus Jakarta Sans',system-ui,sans-serif; min-height:46px; padding:11px 12px; box-shadow:0 1px 2px rgb(17 42 67 / 3%); }
.application-page .application-form .form-group select { padding-right:30px; }
.application-page .application-form .form-group textarea { height:104px; resize:vertical; }
.application-page .application-form .form-group input[type="file"] { font-size:.71rem; height:auto; padding:8px; }
.application-form input::placeholder, .application-form textarea::placeholder { color:var(--ap-muted); opacity:.8; font-weight:400; }
.application-form input::file-selector-button { background:var(--ap-soft); color:var(--ap-ink); border:1px solid var(--ap-border); border-radius:5px; padding:5px 8px; margin-right:10px; cursor:pointer; }
.application-form .field-help { color:var(--ap-muted); font-size:.65rem; line-height:1.6; }
.application-submit-area { padding:26px 30px; }
.application-submit-summary { display:flex; justify-content:space-between; align-items:center; font-size:.78rem; margin-bottom:14px; }
.application-submit-summary strong { color:var(--ap-ink); font-size:1.05rem; }
.application-submit { display:flex; width:100%; justify-content:center; align-items:center; gap:12px; border:1px solid #175cd3; border-radius:9px; background:#175cd3; color:white; padding:14px 20px; font:700 .82rem/1.5 'Plus Jakarta Sans',system-ui,sans-serif; cursor:pointer; transition:background .2s; }
.application-submit:hover { background:#124eaf; }
.application-submit:disabled { background:#62748a; border-color:#62748a; cursor:not-allowed; }
.application-submit-area > p { font-size:.66rem; line-height:1.7; color:var(--ap-muted); text-align:center; margin:13px 0 0; }
.application-page a:hover { text-decoration:underline; }
.application-submit-area a, .application-partner a, .application-help a, .application-footer a { color:var(--ap-blue); font-weight:650; text-underline-offset:3px; }
.application-sidebar { position:sticky; top:24px; }
.application-summary-card { background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:18px; overflow:hidden; }
.application-summary-top { position:relative; padding:28px; background:linear-gradient(145deg,#102a43,#194e7d); color:#fff; }
.application-summary-top .application-eyebrow { color:#96c6ff; font-size:.61rem; }
.application-summary-top > i { position:absolute; right:24px; top:23px; color:#96c6ff; font-size:1.2rem; }
.application-summary-top h2 { font:700 1.45rem/1.35 'Plus Jakarta Sans',system-ui,sans-serif; letter-spacing:-.035em; color:white; margin:16px 0 12px; }
.application-summary-top > p { font-size:.73rem; line-height:1.8; color:#c7d9eb; margin:0; }
.application-summary-body { padding:25px; }
.application-price-label { display:flex; gap:8px; justify-content:space-between; align-items:center; font-size:.72rem; font-weight:650; color:var(--ap-muted); }
.application-price-label > span { background:#e9f6ef; color:#216747; font-size:.6rem; font-weight:750; padding:4px 8px; border-radius:5px; }
.application-price { font-size:2rem; font-weight:800; letter-spacing:-.05em; color:var(--ap-ink); display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:5px; font-variant-numeric:tabular-nums; }
.application-price del { font-size:.84rem; font-weight:500; letter-spacing:0; color:var(--ap-muted); }
.application-savings { color:#277457; font-size:.67rem; margin:5px 0 0; }
[data-bs-theme="dark"] .application-savings { color:#91d7b7; }
.application-selection { margin:22px 0; border-top:1px solid var(--ap-border); border-bottom:1px solid var(--ap-border); padding:18px 0; }
.application-selection > div { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:12px; font-size:.68rem; }
.application-selection > div:last-child { margin:0; }
.application-selection dt { font-weight:500; color:var(--ap-muted); }
.application-selection dd { margin:0; text-align:right; color:var(--ap-ink); font-weight:650; max-width:62%; overflow-wrap:anywhere; }
.application-summary-body h3 { font-size:.73rem; font-weight:750; color:var(--ap-ink); margin:0 0 15px; }
.application-benefits { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.application-benefits li { display:flex; align-items:baseline; gap:9px; color:var(--ap-muted); font-size:.69rem; line-height:1.7; }
.application-benefits i { color:var(--ap-blue); font-size:.9rem; }
.application-next { display:flex; gap:9px; border-radius:8px; background:var(--ap-soft); padding:13px; margin-top:22px; }
.application-next i { color:var(--ap-blue); font-size:.8rem; }
.application-next p { font-size:.64rem; color:var(--ap-muted); line-height:1.8; margin:0; }
.application-partner { margin-top:18px; border:1px solid var(--ap-border); border-radius:12px; padding:21px 24px; background:var(--ap-surface); }
.application-partner > i { color:var(--ap-blue); font-size:1.2rem; }
.application-partner h3 { color:var(--ap-ink); font-size:.77rem; font-weight:750; margin:10px 0 7px; }
.application-partner p { font-size:.69rem; color:var(--ap-muted); margin:0 0 12px; line-height:1.8; }
.application-partner a { font-size:.7rem; text-decoration:none; }
.application-help { margin:16px 0 0; text-align:center; font-size:.67rem; color:var(--ap-muted); }
.application-footer { padding-top:24px; display:flex; justify-content:space-between; gap:12px; font-size:.66rem; color:var(--ap-muted); }
.application-footer a { font-weight:500; text-decoration:none; }
.application-alert { display:flex; align-items:baseline; gap:12px; padding:18px 22px; border:1px solid #efc7ca; background:#fff2f3; color:#9f2632; border-radius:12px; margin-bottom:20px; font-size:.8rem; }
.application-alert p { margin:5px 0 0; line-height:1.6; }
[data-bs-theme="dark"] .application-alert { background:#341f2a; color:#ffb4bf; border-color:#73404a; }
body.application-page.apply-embed .application-shell { padding-top:24px; }
body.application-page.apply-embed .application-layout { grid-template-columns:minmax(0,1fr); }
body.application-page.apply-embed .application-sidebar { position:static; }
@media (max-width:1000px) {
 .application-layout { grid-template-columns:minmax(0,1fr) 290px; gap:20px; }
 .application-summary-top, .application-summary-body { padding:22px; }
 .application-form-heading, .application-section, .application-submit-area { padding:24px; }
 .application-form-heading { display:block; }
 .application-form-heading > span { display:block; margin-top:10px; }
}
@media (max-width:800px) {
 .application-layout { grid-template-columns:minmax(0,1fr); }
 .application-sidebar { position:static; }
 .application-header { padding:18px 22px; }
 .application-shell { padding:30px 22px 24px; }
 .application-summary-top { display:none; }
 .application-partner { padding:20px 24px; }
}
@media (max-width:540px) {
 .application-brand { font-size:.76rem; gap:9px; }
 .application-brand img { width:36px; height:36px; }
 .application-brand small { font-size:.58rem; }
 .application-login { font-size:0; }
 .application-login strong { font-size:.72rem; }
 .application-header { padding:16px; }
 .application-shell { padding:26px 16px 20px; }
 .application-intro h1 { font-size:1.85rem; }
 .application-intro > p { font-size:.8rem; }
 .application-eyebrow { font-size:.54rem; }
 .application-stages { font-size:.61rem; gap:10px; flex-wrap:wrap; }
 .application-stages li { gap:6px; }
 .application-stages li:not(:last-child)::after { width:12px; margin-left:3px; }
 .application-stages li > span { width:22px; height:22px; font-size:.55rem; }
 .application-form-heading, .application-section, .application-submit-area { padding:22px 20px; }
 .application-fields { grid-template-columns:minmax(0,1fr); gap:18px; }
 .application-form-heading h2 { font-size:1rem; }
 .application-page .application-form .form-group :is(input,select,textarea) { font-size:16px; }
 .application-footer { flex-direction:column; text-align:center; gap:6px; }
}
@media print { .application-header, .application-sidebar, .application-footer, .application-submit-area { display:none; } .application-layout { display:block; } .application-shell { padding:0; } }

.application-section legend { float:left; width:100%; }
.application-section-description { clear:both; }

.application-section:last-of-type .form-group { grid-column:1/-1; }

/* Admissions layout refinement: readable controls, clear next steps, and responsive summaries. */
body.public-app.application-page { background:#f4f7fb; }
[data-bs-theme="dark"] body.public-app.application-page { background:#0c1726; }
.application-header, .application-shell { max-width:1240px; }
.application-header { padding:22px 32px; }
.application-shell { padding-top:28px; padding-bottom:32px; }
.application-intro { max-width:none; position:relative; overflow:hidden; border:1px solid #25466b; border-radius:20px; padding:32px 36px 27px; background:radial-gradient(ellipse at 95% 0%,#235c99 0%,transparent 55%),linear-gradient(120deg,#102a43,#173c64); margin-bottom:28px; }
.application-intro .application-eyebrow { color:#a8d0ff; font-size:.62rem; }
.application-intro .application-eyebrow > span { background:#7ec3ff; box-shadow:0 0 0 4px rgb(126 195 255 / 10%); }
.application-intro h1 { color:#fff; max-width:760px; font-size:clamp(1.85rem,3vw,2.6rem); margin-top:18px; letter-spacing:-.04em; }
.application-intro > p { color:#cfdded; max-width:690px; font-size:.95rem; line-height:1.85; }
.application-intro .application-stages { color:#c3d3e5; margin-top:26px; font-size:.75rem; }
.application-intro .application-stages li[aria-current] { color:#fff; }
.application-intro .application-stages li > span { background:rgb(255 255 255 / 6%); border-color:#617d9c; color:#dceafa; }
.application-intro .application-stages li[aria-current] > span { background:#fff; border-color:#fff; color:#175cd3; }
.application-intro .application-stages li:not(:last-child)::after { background:#536f8e; }
.application-hero-art { position:absolute; right:45px; top:35px; height:128px; display:flex; align-items:center; gap:13px; transform:rotate(-8deg); opacity:.85; pointer-events:none; }
.hero-art-tile { display:grid; place-items:center; border:1px solid rgb(170 208 250 / 35%); background:rgb(151 197 247 / 8%); color:#b4d6ff; border-radius:17px; }
.hero-art-main { width:96px; height:110px; font-size:2.5rem; }
.hero-art-small { width:48px; height:58px; font-size:1.35rem; }
.application-hero-art .hero-art-small:last-child { align-self:end; }
.application-intro h1, .application-intro > p, .application-intro .application-stages { position:relative; z-index:1; }
.application-layout { grid-template-columns:minmax(0,1fr) 335px; gap:26px; }
.application-form { border-radius:17px; box-shadow:0 8px 30px rgb(16 42 67 / 4%); }
.application-form-heading { padding:27px 30px; }
.application-form-heading h2 { font-size:1.2rem; }
.application-form-heading p { font-size:.8rem; line-height:1.8; }
.application-form-heading > span { font-size:.69rem; }
.application-section-nav { position:sticky; top:12px; z-index:3; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; padding:10px 18px; background:var(--ap-surface); border-bottom:1px solid var(--ap-border); box-shadow:0 3px 8px rgb(16 42 67 / 3%); }
.application-section-nav a { display:flex; align-items:center; justify-content:center; gap:6px; padding:10px 4px; border-radius:7px; text-decoration:none; font-size:.72rem; font-weight:650; color:var(--ap-muted); }
.application-section-nav a:hover, .application-section-nav a:focus-visible { background:var(--ap-soft); color:var(--ap-blue); text-decoration:none; }
.application-section-nav a span { color:var(--ap-blue); font-size:.6rem; }
.application-section { padding:28px 30px 30px; scroll-margin-top:85px; }
.application-section legend { font-size:.96rem; gap:12px; }
.application-section legend > span { font-size:.66rem; padding:5px 8px; }
.application-section-description { font-size:.79rem; line-height:1.85; margin-bottom:22px; }
.application-fields { gap:23px 20px; }
.application-page .application-form .form-group label { font-size:.8rem; line-height:1.65; }
.application-page .application-form .form-group :is(input,select,textarea) { min-height:48px; padding:12px 13px; font-size:.87rem; border-color:var(--ap-border); border-radius:9px; }
.application-page .application-form .form-group select { padding-right:32px; }
.application-page .application-form .form-group textarea { height:115px; }
.application-form .field-help { font-size:.71rem; line-height:1.75; }
.application-form #resume-status:empty { display:none; }
.application-page .application-form .form-group input[type="file"] { font-size:.8rem; padding:9px; }
.application-form input::file-selector-button { padding:7px 10px; margin-right:12px; font:600 .75rem/1.5 'Plus Jakarta Sans',system-ui,sans-serif; }
.application-submit-area { padding:26px 30px; background:var(--ap-soft); border-radius:0 0 17px 17px; }
.application-submit { min-height:50px; font-size:.88rem; box-shadow:0 4px 10px rgb(23 92 211 / 12%); }
.application-submit-area > p { font-size:.71rem; }
.application-sidebar { top:24px; max-height:calc(100vh - 48px); overflow-y:auto; scrollbar-width:thin; padding-bottom:2px; }
.application-summary-top { padding:26px; }
.application-summary-top h2 { font-size:1.5rem; }
.application-summary-top > p { font-size:.8rem; }
.application-summary-body { padding:25px; }
.application-price-label { font-size:.78rem; }
.application-price-label > span { font-size:.66rem; }
.application-price { font-size:2.1rem; }
.application-savings { font-size:.73rem; line-height:1.8; }
.application-selection > div { font-size:.75rem; }
.application-summary-body h3 { font-size:.8rem; }
.application-benefits li { font-size:.76rem; }
.application-next p { font-size:.71rem; }
.application-partner h3 { font-size:.84rem; }
.application-partner p, .application-partner a { font-size:.75rem; }
.application-help { font-size:.73rem; }
.application-mobile-summary { display:none; }
@media(min-width:1101px) { .application-intro h1, .application-intro > p { padding-right:160px; } }
@media(max-width:1100px) { .application-hero-art { display:none; } }
@media(max-width:960px) {
 .application-layout { grid-template-columns:minmax(0,1fr); gap:22px; }
 .application-sidebar { position:static; max-height:none; overflow:visible; }
 .application-sidebar .application-summary-card { display:none; }
 .application-intro { padding:28px; margin-bottom:20px; }
 .application-mobile-summary { display:block; background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:12px; margin-bottom:22px; overflow:hidden; }
 .application-mobile-summary summary { display:flex; justify-content:space-between; align-items:center; gap:18px; list-style:none; padding:16px 22px; cursor:pointer; }
 .application-mobile-summary summary::-webkit-details-marker { display:none; }
 .application-mobile-summary summary > span:first-child { display:flex; align-items:center; gap:14px; }
 .application-mobile-summary summary small { font-size:.62rem; letter-spacing:.07em; color:var(--ap-muted); font-weight:700; }
 .application-mobile-summary summary strong { font-size:1.1rem; font-weight:800; color:var(--ap-ink); }
 .mobile-summary-trigger { display:flex; align-items:center; gap:8px; color:var(--ap-blue); font-size:.71rem; font-weight:650; }
 .application-mobile-summary[open] summary { border-bottom:1px solid var(--ap-border); }
 .application-mobile-summary[open] .mobile-summary-trigger i { transform:rotate(180deg); }
 .mobile-summary-content { padding:18px 22px; }
 .mobile-summary-savings { display:flex; gap:12px; color:var(--ap-muted); font-size:.75rem; margin:0 0 16px; }
 .mobile-summary-savings strong { color:var(--ap-blue); font-weight:650; }
 .mobile-summary-content dl { margin:0; display:grid; gap:12px; }
 .mobile-summary-content dl > div { display:flex; justify-content:space-between; gap:18px; font-size:.76rem; }
 .mobile-summary-content dt { color:var(--ap-muted); font-weight:500; }
 .mobile-summary-content dd { color:var(--ap-ink); text-align:right; margin:0; font-weight:650; max-width:65%; overflow-wrap:anywhere; }
 .mobile-summary-content > p:last-child { color:var(--ap-muted); font-size:.72rem; line-height:1.8; margin:18px 0 0; }
 .application-partner { margin-top:0; }
}
@media(max-width:560px) {
 .application-header { padding:16px; }
 .application-shell { padding:18px 14px 24px; }
 .application-intro { padding:24px 22px; border-radius:15px; }
 .application-intro h1 { font-size:1.8rem; line-height:1.25; margin-top:15px; }
 .application-intro > p { font-size:.83rem; line-height:1.85; }
 .application-intro .application-eyebrow { font-size:.53rem; letter-spacing:.09em; }
 .application-intro .application-stages { font-size:.68rem; gap:12px; flex-wrap:nowrap; margin-top:23px; }
 .application-intro .application-stages li { gap:6px; }
 .application-intro .application-stages li > span { width:23px; height:23px; flex-shrink:0; font-size:.6rem; }
 .application-intro .application-stages li:not(:last-child)::after { display:none; }
 .application-mobile-summary summary { padding:15px 17px; }
 .application-mobile-summary summary > span:first-child { gap:9px; }
 .application-mobile-summary summary small { font-size:.55rem; }
 .mobile-summary-trigger { font-size:.65rem; }
 .application-section-nav { padding:8px 10px; top:8px; gap:2px; }
 .application-section-nav a { font-size:.64rem; gap:4px; padding:9px 2px; }
 .application-section-nav a span { font-size:.52rem; }
 .application-form-heading, .application-section, .application-submit-area { padding:23px 20px; }
 .application-form-heading h2 { font-size:1.1rem; }
 .application-form-heading p { font-size:.77rem; }
 .application-section-description { font-size:.76rem; }
 .application-fields { grid-template-columns:minmax(0,1fr); gap:20px; }
 .application-page .application-form .form-group :is(input,select,textarea) { font-size:16px; min-height:49px; }
 .application-page .application-form .form-group input[type="file"] { font-size:.76rem; }
 .application-form .field-help { font-size:.71rem; }
 .application-partner { padding:22px; }
}
@media print { .application-section-nav, .application-mobile-summary, .application-hero-art { display:none; } .application-intro { background:white; border:0; } .application-intro h1,.application-intro > p { color:#172f47; } }

.application-sidebar { position:static; max-height:none; overflow:visible; }
.application-summary-top { background:var(--ap-surface); border-bottom:1px solid var(--ap-border); }
.application-summary-top h2 { color:var(--ap-ink); font-size:1.4rem; }
.application-summary-top .application-eyebrow, .application-summary-top > i { color:var(--ap-blue); }
.application-summary-top > p { color:var(--ap-muted); }

@media(max-width:560px) {
 .application-page #cybCookieReopenBadge { font-size:0 !important; width:38px; height:38px; padding:9px !important; border-radius:50% !important; left:auto !important; right:12px !important; bottom:12px !important; display:grid; place-items:center; }
 .application-page #cybCookieReopenBadge i { font-size:16px; margin:0 !important; }
}
