:root{color-scheme:light;--navy:#071f39;--navy-2:#103b63;--gold:#d5a746;--ink:#102b45;--muted:#617386;--line:#dce4ea;--paper:#fff;--warm:#f7f4ed}
*{box-sizing:border-box}
html{min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{min-height:100vh;margin:0;background:radial-gradient(circle at 18% 10%,#fff 0,#f8f7f3 35%,#eef3f5 100%);color:var(--ink)}
a{color:inherit}
.home-shell{min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:28px;position:relative;overflow:hidden}
.home-glow{position:absolute;width:min(74vw,750px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#e6edf2 0,transparent 68%);filter:blur(8px);pointer-events:none}
.home-card{position:relative;display:grid;justify-items:center;gap:26px;width:min(100%,450px);padding:42px 36px 48px;border:1px solid rgba(255,255,255,.88);border-radius:28px;background:rgba(255,255,255,.78);box-shadow:0 25px 80px rgba(7,31,57,.09);backdrop-filter:blur(16px)}
.home-logo{width:min(72vw,280px);height:auto;display:block}
.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:13px 22px;border:1px solid var(--navy);border-radius:13px;background:var(--navy);color:#fff;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
.primary-button:hover{background:var(--navy-2);transform:translateY(-1px);box-shadow:0 8px 22px rgba(7,31,57,.17)}
.primary-button:focus-visible,.back-link:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.home-card .primary-button{width:min(100%,250px)}
.login-shell{width:min(100%,920px);margin:0 auto;padding:32px 24px 64px}
.back-link{display:inline-flex;margin-bottom:26px;color:var(--navy);font-weight:650;text-decoration:none}
.back-link:hover{text-decoration:underline}
.login-heading{text-align:center;margin-bottom:29px}
.login-heading img{width:118px;height:118px;object-fit:contain}
.login-heading>p{margin:15px 0 0;color:var(--muted);line-height:1.6}
h1{margin:4px 0 0;color:var(--navy);font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,5vw,42px);line-height:1.12}
.login-grid{display:grid;grid-template-columns:1fr;gap:20px;width:min(100%,540px);margin-inline:auto}
.login-card{min-width:0;padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--paper);box-shadow:0 15px 35px rgba(7,31,57,.06)}
.card-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#e9f0f5;color:var(--navy-2);font-size:25px}
h2{margin:18px 0 8px;color:var(--navy);font-size:23px}
.login-card p{min-height:45px;margin:0 0 19px;color:var(--muted);line-height:1.5}
.login-card .primary-button{width:100%}
.company-quick-link{display:inline-flex;align-items:center;gap:8px;margin:-5px 0 18px;color:var(--navy-2);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.company-quick-link:hover{color:var(--navy)}
.login-card form{display:grid;gap:10px}
.company-hint{display:block;color:var(--muted);font-size:12px;line-height:1.45}
.company-hint code{font:inherit;font-weight:700}
label{font-size:14px;font-weight:700;color:var(--ink)}
.company-input{display:flex;align-items:center;min-width:0;border:1px solid #bfcbd5;border-radius:12px;background:#fff;overflow:hidden}
.company-input:focus-within{outline:3px solid #e7cd92;outline-offset:2px}
.company-input input{min-width:0;width:100%;height:48px;padding:0 12px;border:0;background:transparent;color:var(--ink);font:inherit;outline:0}
.company-input span{flex:none;padding:0 12px 0 0;color:var(--muted);font-size:13px}
.login-card .form-error{min-height:0;margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fff0ed;color:#9d2b1f;font-size:14px}
.login-note{text-align:center;color:var(--muted);font-size:13px;margin:28px 0 0}
@media(max-width:650px){.login-shell{padding:21px 16px 40px}.login-grid{grid-template-columns:1fr}.login-card{padding:22px}.login-heading img{width:102px;height:102px}.home-card{padding:29px 22px 36px}}
@media(prefers-reduced-motion:reduce){.primary-button{transition:none}.primary-button:hover{transform:none}}
