:root {
    --tarsis-sky: #A8C0D2;
    --tarsis-gold: #F0C04D;
    --tarsis-navy: #062B60;
    --tarsis-cloud: #CAD1DD;
    --tarsis-white: #FEFDFC;
    --text: #173454;
    --muted: #66758A;
    --line: #DBE2EA;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; color: var(--text); font-family: Karla, system-ui, sans-serif; background: linear-gradient(135deg, #FEFDFC 0%, #E4EDF2 48%, #CBDDEA 100%); overflow-x: hidden; }

.login-page { position: relative; display: flex; align-items: center; min-height: 100vh; padding: 36px 0; overflow: hidden; }
.login-decoration { position: absolute; border-radius: 999px; pointer-events: none; }
.decoration-one { width: 560px; height: 560px; top: -310px; left: -170px; background: radial-gradient(circle at 60% 60%, rgba(168,192,210,.75), rgba(168,192,210,.04) 66%); }
.decoration-two { width: 500px; height: 500px; right: -260px; bottom: -310px; border: 62px solid rgba(6,43,96,.08); }

.login-card { position: relative; z-index: 1; max-width: 1080px; margin: auto; overflow: hidden; border: 1px solid rgba(255,255,255,.78); border-radius: 26px; background: rgba(254,253,252,.92); box-shadow: 0 28px 75px rgba(6,43,96,.18); }
.login-brand-section { position: relative; display: flex; min-height: 600px; overflow: hidden; padding: 38px; background: linear-gradient(150deg, #062B60 0%, #0E437C 62%, #306891 100%); color: #fff; }
.login-brand-section::before { position: absolute; inset: 0; content: ""; background: linear-gradient(125deg, transparent 0 42%, rgba(240,192,77,.11) 42% 43%, transparent 43% 100%); }
.login-brand-section::after { position: absolute; right: -135px; bottom: -175px; width: 410px; height: 410px; content: ""; border: 55px solid rgba(168,192,210,.14); border-radius: 50%; }
.brand-content { position: relative; z-index: 1; display: flex; flex-direction: column; width: 100%; }
.login-logo { display: block; width: min(100%, 350px); height: auto; padding: 11px 13px; border-radius: 12px; background: #fff; box-shadow: 0 12px 26px rgba(0,0,0,.17); }
.brand-copy { margin-top: 54px; }
.brand-kicker, .login-small-title { display: block; color: var(--tarsis-gold); font-size: 11px; font-weight: 700; letter-spacing: 1.8px; }
.brand-content h1 { max-width: 360px; margin: 12px 0 16px; font-size: 38px; font-weight: 700; line-height: 1.12; }
.brand-content h1 span { color: #DCE9F0; font-weight: 400; }
.brand-content p { max-width: 330px; margin: 0; color: rgba(254,253,252,.82); font-size: 15px; line-height: 1.65; }
.brand-illustration { margin-top: auto; padding-top: 28px; }
.brand-illustration svg { width: 100%; height: auto; fill: none; stroke: rgba(254,253,252,.82); stroke-linecap: round; stroke-linejoin: round; stroke-width: 4; }
.brand-illustration .cargo { fill: rgba(240,192,77,.76); stroke: var(--tarsis-gold); }

.login-form-section { display: flex; flex-direction: column; justify-content: center; min-height: 600px; padding: 62px 72px; }
.login-header { margin-bottom: 33px; }
.login-small-title { margin-bottom: 9px; }
.login-header h2 { margin: 0 0 10px; color: var(--tarsis-navy); font-size: 32px; font-weight: 700; }
.login-header p { margin: 0; color: var(--muted); font-size: 14px; }
.form-group { margin-bottom: 22px; }
.form-group label { display: block; margin-bottom: 8px; color: #294568; font-size: 13px; font-weight: 700; }
.input-group-custom { position: relative; }
.input-group-custom > i { position: absolute; z-index: 2; top: 50%; left: 17px; transform: translateY(-50%); color: #71849A; font-size: 20px; }
.input-group-custom .form-control { height: 53px; padding-right: 45px; padding-left: 49px; border: 1px solid var(--line); border-radius: 10px; background: #FBFCFD; color: var(--text); font-size: 14px; transition: border-color .2s, box-shadow .2s; }
.input-group-custom .form-control::placeholder { color: #9AA8B8; }
.input-group-custom .form-control:focus { border-color: var(--tarsis-sky); box-shadow: 0 0 0 4px rgba(168,192,210,.27); background: #fff; }
.input-group-custom:focus-within > i, .show-password:hover { color: var(--tarsis-navy); }
.show-password { position: absolute; top: 50%; right: 14px; z-index: 3; transform: translateY(-50%); padding: 0; border: 0; background: transparent; color: #71849A; font-size: 20px; cursor: pointer; }
.login-btn { display: flex; align-items: center; justify-content: center; gap: 10px; height: 53px; margin-top: 10px; border: 0; border-radius: 10px; background: linear-gradient(90deg, #062B60, #154D88); box-shadow: 0 12px 24px rgba(6,43,96,.22); color: #fff !important; font-size: 15px; font-weight: 700; transition: transform .2s, box-shadow .2s; }
.login-btn:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(6,43,96,.3); }
.login-btn:focus, .show-password:focus { outline: 3px solid rgba(240,192,77,.6); outline-offset: 3px; }
.login-btn i { font-size: 20px; }
.login-footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid #E8EDF1; text-align: center; }
.login-footer p { margin: 0 0 3px; color: #607087; font-size: 12px; }
.login-footer > span { color: #96A2B0; font-size: 11px; }

@media (max-width: 991px) { .login-form-section { padding: 52px; } .login-brand-section { padding: 32px; } .brand-content h1 { font-size: 32px; } }
@media (max-width: 767px) { .login-page { padding: 20px 14px; } .login-card { border-radius: 20px; } .login-brand-section { min-height: auto; padding: 28px; } .login-logo { width: min(100%, 310px); } .brand-copy { margin-top: 28px; } .brand-illustration { display: none; } .login-form-section { min-height: auto; padding: 42px 30px; } .brand-content h1 { font-size: 27px; } }
@media (max-width: 390px) { .login-form-section { padding: 35px 22px; } .login-brand-section { padding: 25px 22px; } .login-header h2 { font-size: 28px; } }
