body:has(.icos-auth-shell) { margin:0; background:#202124; }
.icos-auth-shell { min-height:100vh; min-height:100svh; padding-bottom:40px; }
.icos-auth-shell .auth-startup { display:grid; justify-items:center; align-content:center; gap:16px; min-height:calc(100svh - 40px); padding:32px; text-align:center; }
.icos-auth-shell .auth-startup .auth-loading { margin:0; }
.icos-auth-shell .auth-route-content:has(> *) + .auth-startup { display:none; }
.icos-auth-shell .auth-logout { width:min(480px,calc(100% - 32px)); margin:10vh auto; }
.icos-auth-shell .auth-header { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:88px; padding:16px max(32px,calc((100vw - 1180px)/2)); border-bottom:1px solid var(--arelo-dark-border); }
.icos-auth-shell .auth-brand { display:flex; align-items:center; gap:20px; }
.icos-auth-shell .auth-brand img { width:110px; height:auto; }
.icos-auth-shell .auth-brand span { color:var(--arelo-dark-text-muted); padding-left:20px; border-left:1px solid var(--arelo-dark-border); font-size:14px; }
.icos-auth-shell .auth-change-institution { color:var(--arelo-dark-text-muted); font-size:14px; padding:10px 0; }
.icos-auth-shell .auth-change-institution:hover, .icos-auth-shell .auth-text-link:hover { color:var(--arelo-dark-accent); }
.icos-auth-shell .auth-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,430px); grid-template-rows:auto 1fr; gap:28px 64px; width:min(1180px,calc(100% - 64px)); margin:56px auto 0; align-items:start; }
.icos-auth-shell .auth-grid-wide { grid-template-columns:minmax(0,1fr) minmax(0,540px); gap:28px 44px; }
.icos-auth-shell .auth-institution { grid-column:1; grid-row:1; display:flex; align-items:center; gap:24px; min-width:0; }
.icos-auth-shell .auth-institution-logo { display:grid; place-items:center; flex:0 0 128px; width:128px; min-height:104px; padding:12px; background:#fff; border-radius:8px; overflow:hidden; }
.icos-auth-shell .auth-institution-logo img { max-width:104px; max-height:100px; object-fit:contain; }
.icos-auth-shell .auth-institution-logo>span { color:#176b67; font-size:48px; font-weight:750; }
.icos-auth-shell .auth-eyebrow { color:var(--arelo-dark-accent); font-size:11px; font-weight:750; letter-spacing:.1em; text-transform:uppercase; margin:0 0 10px; }
.icos-auth-shell .auth-institution h2 { font-size:clamp(23px,2.2vw,30px); line-height:1.25; letter-spacing:-.025em; }
.icos-auth-shell .auth-card { grid-column:2; grid-row:1/span 2; min-width:0; padding:32px; border:1px solid var(--arelo-dark-border); border-radius:8px; background:var(--arelo-dark-surface-raised); }
.icos-auth-shell .auth-card h1 { font-size:28px; line-height:1.25; letter-spacing:-.025em; }
.icos-auth-shell .auth-description { color:var(--arelo-dark-text-muted); font-size:14px; line-height:1.65; margin-top:12px; }
.icos-auth-shell .auth-message { grid-column:1; grid-row:2; min-width:0; overflow:hidden; border:1px solid var(--arelo-dark-border); border-radius:8px; background:#fff; }
.icos-auth-shell .auth-message>.arelo-alert, .icos-auth-shell .auth-message>.secondary-button, .icos-auth-shell .auth-message>.auth-loading { margin:20px; }
.icos-auth-shell .auth-loading { display:flex; align-items:center; gap:12px; color:var(--arelo-dark-text-muted); font-size:14px; padding:20px 0; }
.icos-auth-shell .auth-form { margin-top:28px; }
.icos-auth-shell fieldset { margin:0; padding:0; border:0; min-width:0; }
.icos-auth-shell .auth-card .row { display:flex; flex-wrap:wrap; gap:0; margin:0; }
.icos-auth-shell .auth-card :is(.col-12,.col-md-12) { width:100%; min-width:0; padding:0; }
.icos-auth-shell .auth-card :is(.mb-3,.mb-15px) { margin-bottom:18px; }
.icos-auth-shell .auth-card .form-label { display:block; color:var(--arelo-dark-text); font-size:14px; font-weight:650; margin-bottom:8px; }
.icos-auth-shell .auth-card :is(.form-control,.form-select) { display:block; width:100%; min-height:46px; padding:10px 12px; color:var(--arelo-dark-text); background:#202124; border:1px solid var(--arelo-dark-border); border-radius:6px; font:inherit; font-size:14px; }
.icos-auth-shell .auth-card :is(.form-control,.form-select):focus { border-color:var(--arelo-dark-accent); outline:0; box-shadow:0 0 0 3px var(--arelo-dark-focus); }
.icos-auth-shell .auth-card .is-invalid { border-color:#ffb4ab; }
.icos-auth-shell .auth-card .validation-message { color:#ffb4ab; font-size:12px; margin-top:6px; }
.icos-auth-shell .auth-card .text-muted { color:var(--arelo-dark-text-muted)!important; }
.icos-auth-shell .auth-card .small { display:block; font-size:12px; line-height:1.65; }
.icos-auth-shell .auth-card .form-check { display:flex; gap:10px; align-items:flex-start; margin:8px 0; }
.icos-auth-shell .auth-card .form-check-input { accent-color:#176b67; width:18px; height:18px; margin:3px 0 0; flex-shrink:0; }
.icos-auth-shell .auth-card .form-check-label { font-size:13px; line-height:1.6; }
.icos-auth-shell .auth-card .primary-button { min-height:46px; justify-content:space-between; margin-top:8px; }
.icos-auth-shell .auth-secondary-actions { display:grid; gap:14px; border-top:1px solid var(--arelo-dark-border); padding-top:22px; margin-top:24px; text-align:center; }
.icos-auth-shell .auth-secondary-actions>p { color:var(--arelo-dark-text-muted); font-size:13px; }
.icos-auth-shell .auth-text-link { display:inline-block; color:var(--arelo-dark-text-muted); font-size:13px; text-decoration:underline; text-underline-offset:3px; padding:6px 0; }
.icos-auth-shell .auth-card-footer { margin-top:28px; padding-top:20px; border-top:1px solid var(--arelo-dark-border); color:var(--arelo-dark-text-muted); font-size:11px; }
.icos-auth-shell .auth-notice { color:var(--arelo-dark-text-muted); background:#202124; line-height:1.65; }
.icos-auth-shell .auth-result { margin-top:24px; }
.icos-auth-shell .auth-result h2 { font-size:21px; margin-bottom:12px; }
.icos-auth-shell .auth-result p { color:var(--arelo-dark-text-muted); font-size:14px; margin:12px 0; line-height:1.65; }
.icos-auth-shell .auth-password-control { position:relative; }
.icos-auth-shell .auth-password-control input { padding-right:52px!important; }
.icos-auth-shell .auth-password-toggle { position:absolute; right:4px; top:3px; display:grid; place-items:center; width:40px; height:40px; border:0; color:var(--arelo-dark-text-muted); background:transparent; cursor:pointer; }
.icos-auth-shell .auth-password-toggle svg { width:20px; height:20px; }
@media(max-width:1000px) {
 .icos-auth-shell .auth-grid { gap:28px 32px; }
 .icos-auth-shell .auth-card { padding:24px; }
 .icos-auth-shell .auth-institution { gap:16px; }
 .icos-auth-shell .auth-institution-logo { flex-basis:96px; width:96px; min-height:84px; }
 .icos-auth-shell .auth-institution-logo img { max-width:72px; max-height:80px; }
}
@media(max-width:850px) {
 .icos-auth-shell .auth-header { min-height:76px; padding:14px 20px; }
 .icos-auth-shell .auth-brand { gap:12px; }
 .icos-auth-shell .auth-brand img { width:90px; }
 .icos-auth-shell .auth-brand span { padding-left:12px; font-size:13px; }
 .icos-auth-shell .auth-change-institution { max-width:120px; text-align:right; font-size:12px; }
 .icos-auth-shell .auth-grid { grid-template-columns:minmax(0,1fr); grid-template-rows:auto; width:min(580px,calc(100% - 40px)); margin-top:28px; gap:24px; }
 .icos-auth-shell .auth-institution { grid-column:1; grid-row:1; }
 .icos-auth-shell .auth-card { grid-column:1; grid-row:2; }
 .icos-auth-shell .auth-message { grid-column:1; grid-row:3; }
 .icos-auth-shell .auth-institution h2 { font-size:22px; }
 .icos-auth-shell .auth-card h1 { font-size:26px; }
}
@media(max-width:380px) { .icos-auth-shell .auth-grid { width:calc(100% - 32px); } .icos-auth-shell .auth-card { padding:20px; } }
