:root{--navy:#0f1b2d;--blue:#1d4ed8;--gold:#d6a13d;--ink:#172433;--muted:#667483;--line:#dfe6eb;--bg:#f4f7f9;--white:#fff;--green:#167453}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{display:flex;flex-direction:column;min-height:100vh;min-height:100svh;margin:0;background:var(--bg);color:var(--ink);font:13px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;overflow-wrap:anywhere}
button,input,select{font:inherit}.shell{width:min(1020px,calc(100% - 32px));margin-inline:auto}
.topbar{background:var(--navy);color:#fff;padding:10px max(0px,env(safe-area-inset-right)) 10px max(0px,env(safe-area-inset-left))}
.brand{display:flex;align-items:center;gap:14px;font-weight:750;letter-spacing:.2px}.brand-logo{display:block;flex:0 0 auto;width:66px;height:58px;object-fit:contain;background:#fff;border-radius:9px;padding:3px}.brand-title,.brand>span:last-child{font-size:clamp(18px,2vw,24px);line-height:1.15}.mark{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;background:var(--gold);color:var(--navy);border-radius:8px;font:800 19px Georgia,serif}
.nav{background:#fff;border-bottom:1px solid var(--line)}.nav-inner{min-height:50px;display:flex;align-items:center;gap:16px;padding-block:6px}.nav a,.link-button{color:var(--blue);text-decoration:none;font-weight:650}.nav form{margin:0}.spacer{flex:1}.link-button{min-height:38px;border:0;background:none;cursor:pointer;padding:6px}
.content{flex:1;padding:22px 0;min-height:calc(100vh - 128px);min-height:calc(100svh - 128px)}h1{font-size:clamp(25px,2.7vw,34px);line-height:1.08;margin:6px 0 9px;letter-spacing:-.7px}h2{font-size:17px;margin:0 0 16px}.eyebrow{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:1.3px}.muted{color:var(--muted)}
.login-card,.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(12,39,66,.07)}.login-card{width:100%;max-width:410px;margin:0 auto;padding:22px 26px}.login-card h1{font-size:clamp(25px,2.5vw,30px)}.login-card .muted{margin-block:0 10px}
.form-stack{display:grid;gap:5px;margin-top:12px}.form-stack label{font-weight:700;margin-top:4px}input,select{width:100%;min-height:39px;border:1px solid #bdcbd5;border-radius:8px;padding:8px 10px;background:#fff}input:focus,select:focus{outline:3px solid rgba(14,90,120,.15);border-color:var(--blue)}select{cursor:pointer}.primary{min-height:39px;border:0;border-radius:8px;padding:8px 16px;background:var(--blue);color:#fff;font-weight:750;cursor:pointer}.form-stack .primary{margin-top:7px}.alert{padding:9px 11px;background:#fff1f1;color:#8b2626;border-radius:8px}.demo-note{margin-top:11px;padding:8px;background:#f2f7f9;border-radius:8px;color:var(--muted);font-size:11px}
.portal-choice{display:grid;grid-template-columns:1fr 1fr;gap:6px;border:0;padding:0;margin:1px 0 5px}.portal-choice legend{grid-column:1/-1;padding:0;margin:0 0 2px;font-weight:700}.portal-option{display:flex;align-items:flex-start;gap:6px!important;min-width:0;margin:0!important;padding:8px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.portal-option:has(input:checked){border-color:var(--blue);background:#eef6f8}.portal-option input{flex:0 0 auto;width:15px;height:15px;min-height:0;margin:2px 0 0;padding:0;accent-color:var(--blue)}.portal-option span{min-width:0}.portal-option strong,.portal-option small{display:block}.portal-option strong{font-size:11px}.portal-option small{margin-top:1px;color:var(--muted);font-size:9px;font-weight:500}.student-placeholder{max-width:620px;margin:0 auto}.student-placeholder h1{font-size:30px}.selected-campus{display:inline-block;padding:7px 10px;background:#e9f2f5;color:var(--blue);border-radius:8px}.integration-status{display:grid;gap:7px;margin:18px 0;padding:14px;background:#f2f7f9;border-radius:9px}.integration-status span:before{content:"•";margin-right:8px;color:var(--blue)}.inline-action{display:inline-flex;align-items:center;text-decoration:none}
.page-head{display:flex;align-items:end;justify-content:space-between;gap:18px}.count{font-size:29px;font-weight:800;color:var(--navy)}.count small{display:block;font-size:10px;text-transform:uppercase;color:var(--muted)}.search{display:flex;gap:10px;margin:22px 0}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}th{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);background:#f9fbfc}td span{display:block;color:var(--muted);font-size:12px}
.pill,.status{display:inline-block!important;width:max-content;padding:4px 9px;border-radius:99px;background:#e9f2f5;color:var(--blue)!important;font-weight:700}.view,.back{color:var(--blue);font-weight:700;text-decoration:none}.back{display:block;margin-bottom:16px}.profile{padding:24px;display:flex;align-items:center;gap:16px}.profile h1{font-size:27px}.profile p{margin:0;color:var(--muted)}.avatar{display:grid;place-items:center;flex:0 0 auto;width:60px;height:60px;border-radius:16px;background:var(--navy);color:#fff;font-size:27px;font-weight:800}.status{margin-left:auto;background:#e7f6ef;color:var(--green)!important}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.panel{padding:24px}dl{display:grid;grid-template-columns:120px minmax(0,1fr);margin:0}dt,dd{padding:10px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted)}dd{font-weight:650;margin-inline-start:0}.dependent{display:grid;grid-template-columns:1fr auto;gap:2px 15px;padding:12px 0;border-bottom:1px solid var(--line)}.dependent span{color:var(--muted)}.dependent code{grid-column:1/-1}
.footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0 calc(18px + env(safe-area-inset-bottom));color:var(--muted);font-size:11px;border-top:1px solid var(--line)}.footer-contact{display:flex;gap:16px}.footer a{color:var(--blue);font-weight:650;text-decoration:none}.footer a:hover{text-decoration:underline}
@media(min-width:721px){.login-page .content,.content:has(.login-card){display:grid;place-items:center;flex:1;width:100%;padding:12px 0;min-height:0}.login-page .login-card,.content:has(.login-card) .login-card{padding:17px 26px}.login-page .login-card h1,.content:has(.login-card) .login-card h1{margin:3px 0 6px}.login-page .form-stack,.content:has(.login-card) .form-stack{margin-top:8px}.login-page .demo-note,.content:has(.login-card) .demo-note{margin-top:8px}.login-page .footer,body:has(.login-card) .footer{flex:0 0 auto;padding-block:10px}}
@media(min-width:721px) and (max-height:760px){.topbar{padding-block:6px}.brand-logo{width:58px;height:50px}.brand-title,.brand>span:last-child{font-size:20px}.login-page .login-card,.content:has(.login-card) .login-card{padding-block:13px}.login-page .login-card h1,.content:has(.login-card) .login-card h1{font-size:25px}.login-page .form-stack,.content:has(.login-card) .form-stack{gap:3px;margin-top:6px}.login-page input,.login-page select,.login-page .primary,.content:has(.login-card) input,.content:has(.login-card) select,.content:has(.login-card) .primary{min-height:35px;padding-block:6px}.login-page .portal-option,.content:has(.login-card) .portal-option{padding:6px}.login-page .demo-note,.content:has(.login-card) .demo-note{margin-top:6px;padding:6px}.login-page .footer,body:has(.login-card) .footer{padding-block:7px}}
@media(max-width:720px){body{font-size:14px}.shell{width:min(100% - 24px,1020px)}.topbar{padding-block:8px}.brand{gap:10px}.brand-logo{width:54px;height:48px}.brand-title,.brand>span:last-child{font-size:clamp(15px,4.5vw,19px)}.mark{width:31px;height:31px;font-size:18px}.nav-inner{align-items:flex-start;flex-wrap:wrap;gap:5px 12px;padding-block:8px}.nav-inner .spacer{display:none}.nav-inner>span{width:100%;font-size:12px;color:var(--muted);order:3}.content{padding:16px 0;min-height:auto}h1{font-size:27px}.login-card{max-width:440px;padding:20px 19px;border-radius:13px}.login-card h1{font-size:27px}.login-card input:not([type=radio]),.login-card select{min-height:44px;font-size:16px}.primary{min-height:44px}.portal-option strong{font-size:12px}.portal-option small{font-size:10px}.page-head{align-items:flex-start;flex-direction:column;gap:8px}.search{flex-direction:column;margin:18px 0}.search input{font-size:16px}.grid{grid-template-columns:1fr}.profile{align-items:flex-start;flex-wrap:wrap;padding:20px}.profile h1{font-size:24px}.status{margin-left:0}.panel{padding:20px}th,td{padding:12px}th:nth-child(2),td:nth-child(2),th:nth-child(4),td:nth-child(4){display:none}.footer{align-items:flex-start;flex-direction:column}.footer-contact{flex-direction:column;gap:5px}}
@media(max-width:420px){.shell{width:calc(100% - 20px)}.brand span:last-child{font-size:12px}.login-card{padding:18px 15px}.login-card h1{font-size:24px;letter-spacing:-.4px}.portal-choice{grid-template-columns:1fr}.student-placeholder h1{font-size:25px}dl{grid-template-columns:1fr}dt{padding-bottom:2px;border-bottom:0}dd{padding-top:2px}.dependent{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.search button{white-space:nowrap;flex:0 0 auto;padding-inline:20px}
td .status{margin-left:0}.status.inactive{background:#fdecec;color:#b42318!important}
.dependent .status{margin-left:8px;font-size:12px;padding:2px 8px}.status.possible{background:#fff4e5;color:#9a5b00!important}.dependent small{grid-column:1/-1}
a.brand{text-decoration:none;color:inherit}.nav .home-link{font-weight:800}
.home-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.home-card.disabled{opacity:.6}@media(max-width:720px){.home-cards{grid-template-columns:1fr}}
.topbar-inner{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.topbar-inner .brand{color:#fff;text-decoration:none}
.vendor-brand{display:flex;align-items:center;gap:12px;margin-left:auto}.vendor-sep{color:#9fb3c8;font-size:20px}
.vendor-logo{display:block;height:50px;max-width:180px;object-fit:contain;background:#fff;border-radius:9px;padding:4px}
@media(max-width:600px){.vendor-brand{margin-left:0}.vendor-logo{height:40px;max-width:130px}}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.button{display:inline-block;padding:10px 18px;border-radius:10px;text-decoration:none;font-weight:700}.button.primary,a.button.primary{background:var(--blue);color:#fff}
.notice{padding:12px 16px;border-radius:10px;background:#e7f6ef;color:#0b6b3a;margin:12px 0}
.admin-form{max-width:640px}.admin-form .form-stack{display:grid;gap:8px}.admin-form small{display:block;margin-top:-4px}
.check{display:flex;align-items:center;gap:8px;font-weight:600}.check input{width:auto}
fieldset.choice{border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;flex-wrap:wrap;gap:8px 18px}fieldset.choice legend{font-weight:700;padding:0 6px}
.form-actions{display:flex;gap:14px;align-items:center;margin-top:10px}
.vendor-thumb{height:32px;max-width:90px;object-fit:contain}.logo-preview{display:flex;align-items:center;gap:14px}.logo-preview img{height:48px;max-width:160px;object-fit:contain;border:1px solid var(--line);border-radius:8px;padding:4px;background:#fff}
.problem{max-width:680px}.problem h1{margin-top:0}
.table-wrap{overflow-x:auto}.admin-table th,.admin-table td{white-space:nowrap}
