.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #EAEDF8 0%, #607CFF 42%, #00033D 100%);
    padding: 20px;
}

.auth-card {
    background: var(--surface);
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, .25);
    padding: 36px;
    width: 100%;
    max-width: 420px;
}

.auth-card h1 {
    margin: 0 0 6px;
    font-size: 1.5rem;
}

.auth-brand {
    margin-bottom: 20px;
}

.auth-brand a {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--text);
    letter-spacing: -.5px;
}

.auth-brand span {
    color: var(--primary);
}

.field {
    margin-bottom: 14px;
}

.field label {
    display: block;
    font-weight: 600;
    font-size: .88rem;
    margin-bottom: 6px;
}

.field input[type="text"],
.field input[type="email"],
.field input[type="password"],
.field input[type="number"] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font-size: .95rem;
    outline: none;
}

.field input:focus {
    border-color: var(--primary);
}

.row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 400;
}

.checkbox input {
    margin: 0;
}

.btn-block {
    width: 100%;
    justify-content: center;
    text-align: center;
    display: block;
}

.auth-alt {
    margin-top: 16px;
    text-align: center;
    font-size: .9rem;
    color: var(--muted);
}

.alert {
    padding: 12px 14px;
    border-radius: var(--radius);
    margin-bottom: 16px;
    font-size: .9rem;
}

.alert p {
    margin: 0 0 4px;
}

.alert p:last-child {
    margin-bottom: 0;
}

.alert-error {
    background: #fee2e2;
    border: 1px solid #fecaca;
    color: var(--danger);
}

.alert-success {
    background: #dcfce7;
    border: 1px solid #bbf7d0;
    color: var(--success);
}

.account-info {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px;
    margin-bottom: 16px;
}

.account-info p {
    margin: 0 0 8px;
}

.account-info p:last-child {
    margin-bottom: 0;
}

/* UHIMA premium authentication */
.auth-page { min-height:100vh; display:block; padding:0; background:#EAEDF8; color:#030812; }
.auth-shell { min-height:100vh; display:grid; grid-template-columns:minmax(420px,1.02fr) minmax(500px,.98fr); }
.auth-visual { position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; padding:54px clamp(42px,6vw,92px); color:#fff; background:radial-gradient(circle at 80% 18%,rgba(0,51,255,.42),transparent 38%),linear-gradient(135deg,#030812 0%,#00033D 70%,#07176f 125%); }
.auth-visual::after { content:"UHIMA"; position:absolute; z-index:-1; right:-30px; bottom:6%; color:rgba(255,255,255,.035); font-size:clamp(7rem,14vw,14rem); font-weight:900; letter-spacing:-.08em; }
.auth-grid { position:absolute; z-index:-1; inset:0; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px); background-size:62px 62px; -webkit-mask-image:linear-gradient(130deg,#000,transparent 80%); mask-image:linear-gradient(130deg,#000,transparent 80%); }
.auth-logo-link { display:inline-flex; width:max-content; min-height:90px; align-items:center; }
.auth-logo-link img { width:150px; height:92px; object-fit:contain; filter:brightness(0) invert(1); }
.auth-logo-link strong { color:#fff; font-size:2rem; letter-spacing:.12em; }
.auth-visual-copy { max-width:690px; margin:auto 0; padding:80px 0; }
.auth-visual-copy>span,.auth-eyebrow { color:#98a8ff; font-size:.7rem; font-weight:900; letter-spacing:.2em; text-transform:uppercase; }
.auth-visual-copy>span { display:flex; align-items:center; gap:12px; }
.auth-visual-copy>span::before { content:""; width:38px; height:2px; background:#0033FF; box-shadow:0 0 14px #0033FF; }
.auth-visual-copy h2 { margin:20px 0 26px; font-size:clamp(3.6rem,6.2vw,6.8rem); line-height:.88; letter-spacing:-.065em; text-transform:uppercase; }
.auth-visual-copy p { max-width:570px; color:#b4bddf; font-size:1.05rem; line-height:1.8; }
.auth-trust { display:flex; flex-wrap:wrap; gap:24px; color:#a8b0ce; font-size:.66rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.auth-trust span { display:flex; align-items:center; gap:8px; }
.auth-trust span::before { content:""; width:6px; height:6px; border-radius:50%; background:#607cff; box-shadow:0 0 0 4px rgba(96,124,255,.12); }
.auth-panel { position:relative; display:grid; place-items:center; padding:60px clamp(30px,6vw,92px); background:radial-gradient(circle at 100% 0,rgba(135,125,255,.14),transparent 30%),#fff; }
.auth-panel::before { content:""; position:absolute; width:180px; height:180px; right:4%; bottom:5%; border:1px solid rgba(0,51,255,.08); border-radius:50%; box-shadow:0 0 0 36px rgba(0,51,255,.025),0 0 0 72px rgba(0,51,255,.018); pointer-events:none; }
.auth-card { position:relative; z-index:1; width:100%; max-width:510px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.auth-back { display:inline-flex; margin-bottom:66px; color:#68708b; font-size:.76rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.auth-back:hover { color:#0033FF; }
.auth-card h1 { margin:12px 0 12px; color:#00033D; font-size:clamp(2.3rem,4vw,3.5rem); line-height:1; letter-spacing:-.05em; }
.auth-intro { margin:0 0 36px; max-width:470px; color:#707890; line-height:1.7; }
.field { margin-bottom:20px; }
.field label { color:#00033D; font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.field-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:7px; }
.field-heading label { margin:0; }
.field-heading a { font-size:.74rem; font-weight:800; }
.auth-input { position:relative; height:56px; display:flex; align-items:center; border:1px solid #dfe3f1; border-radius:14px; background:#f8f9fd; box-shadow:inset 0 1px 0 #fff; transition:border-color .25s ease,box-shadow .25s ease,background .25s ease; }
.auth-input:focus-within { border-color:rgba(0,51,255,.65); background:#fff; box-shadow:0 0 0 4px rgba(0,51,255,.08),0 12px 28px rgba(0,3,61,.06); }
.auth-input>span { width:48px; display:grid; place-items:center; color:#697596; font-size:.82rem; font-weight:900; }
.auth-input input[type="text"],.auth-input input[type="email"],.auth-input input[type="password"] { width:calc(100% - 48px); height:100%; padding:0 16px 0 0; border:0; border-radius:0; outline:0; background:transparent; color:#030812; font-size:.92rem; }
.auth-input input::placeholder { color:#9ba2b8; }
.auth-card .input-group { height:60px; overflow:hidden; border:1px solid #d8ddeb; border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(0,3,61,.055),inset 0 1px 0 rgba(255,255,255,.9); }
.auth-card .input-group::after { content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:linear-gradient(90deg,#0033FF,#877DFF); transition:width .3s ease; }
.auth-card .input-group:focus-within { border-color:rgba(0,51,255,.58); box-shadow:0 0 0 4px rgba(0,51,255,.09),0 14px 32px rgba(0,3,61,.09); transform:translateY(-1px); }
.auth-card .input-group:focus-within::after { width:100%; }
.auth-card .input-group .input-group-text { align-self:stretch; flex:0 0 54px; width:54px; display:grid; place-items:center; margin:0; color:#0033FF; border:0; border-right:1px solid #e5e8f3; background:linear-gradient(145deg,#f5f7ff,#e9edff); font-size:.88rem; font-weight:900; transition:color .25s ease,background .25s ease; }
.auth-card .input-group:focus-within .input-group-text { color:#fff; background:linear-gradient(145deg,#0033FF,#6f65ff); border-right-color:transparent; }
.auth-card .input-group .form-control { flex:1; width:auto; height:100%; padding:0 18px; border:0; border-radius:0; background:transparent; color:#00033D; font-size:.93rem; font-weight:600; box-shadow:none; outline:none; }
.auth-card .input-group .form-control::placeholder { color:#a3a9bc; font-weight:400; }
.auth-lock { position:relative; }
.auth-lock::before { content:""; width:12px; height:10px; margin-top:7px; border:2px solid currentColor; border-radius:3px; }
.auth-lock::after { content:""; position:absolute; width:8px; height:8px; left:21px; top:17px; border:2px solid currentColor; border-bottom:0; border-radius:8px 8px 0 0; }
.auth-card .input-group:has(.form-control:valid:not(:placeholder-shown)):not(:focus-within) { border-color:rgba(0,51,255,.28); }
.register-form .row { gap:14px; }
.register-form .field { margin-bottom:16px; }
.register-form .input-group { height:56px; }
.auth-user,.auth-phone,.auth-check { position:relative; }
.auth-user::before { content:""; position:absolute; width:8px; height:8px; top:15px; left:22px; border:2px solid currentColor; border-radius:50%; }
.auth-user::after { content:""; position:absolute; width:15px; height:8px; left:18px; bottom:14px; border:2px solid currentColor; border-bottom:0; border-radius:12px 12px 0 0; }
.auth-phone::before { content:""; width:16px; height:16px; border:2px solid currentColor; border-radius:5px; transform:rotate(-18deg); }
.auth-phone::after { content:""; position:absolute; width:5px; height:2px; left:24px; bottom:18px; border-radius:3px; background:currentColor; transform:rotate(-18deg); }
.auth-check::before { content:""; width:15px; height:15px; border:2px solid currentColor; border-radius:50%; }
.auth-check::after { content:""; position:absolute; width:7px; height:4px; left:23px; top:24px; border-left:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); }
.password-hint { display:flex; align-items:center; gap:8px; margin-top:8px; color:#858da4; font-size:.7rem; }
.password-hint i { width:6px; height:6px; border-radius:50%; background:#877DFF; box-shadow:0 0 0 4px rgba(135,125,255,.1); }
@media(max-width:600px){.register-form .row{grid-template-columns:1fr;gap:0}}
.auth-options { margin-top:-3px; }
.checkbox { width:max-content; color:#68708b; font-size:.8rem; text-transform:none!important; letter-spacing:0!important; cursor:pointer; }
.checkbox input { width:17px; height:17px; accent-color:#0033FF; }
.auth-submit { height:56px; display:flex; align-items:center; justify-content:space-between; padding:0 20px 0 24px; border:0; border-radius:14px; color:#fff; background:linear-gradient(120deg,#0033FF,#244dff 60%,#877DFF); box-shadow:0 16px 32px rgba(0,51,255,.24); font-size:.78rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; cursor:pointer; transition:transform .25s ease,box-shadow .25s ease; }
.auth-submit b { width:32px; height:32px; display:grid; place-items:center; border-radius:9px; background:rgba(255,255,255,.15); font-size:1rem; transition:transform .25s ease,background .25s ease; }
.auth-submit:hover { color:#fff; transform:translateY(-2px); box-shadow:0 20px 38px rgba(0,51,255,.32); }
.auth-submit:hover b { transform:translateX(3px); background:rgba(255,255,255,.24); }
.auth-alt { margin-top:26px; color:#7a829a; }
.auth-alt a { font-weight:900; }
.auth-card .alert { border-radius:13px; }

@media(max-width:980px){.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:310px;padding:38px 34px}.auth-logo-link img{height:68px;width:120px}.auth-visual-copy{padding:32px 0}.auth-visual-copy h2{font-size:3.5rem;margin:12px 0}.auth-visual-copy p{display:none}.auth-panel{padding:56px 28px 72px}.auth-back{margin-bottom:44px}}
@media(max-width:600px){.auth-visual{min-height:230px;padding:26px 22px}.auth-visual-copy{padding:16px 0}.auth-visual-copy h2{font-size:2.55rem}.auth-trust{display:none}.auth-panel{padding:42px 20px 60px}.auth-back{margin-bottom:34px}.auth-card h1{font-size:2.35rem}.auth-intro{margin-bottom:28px}}
