/* Local premium login. No external font, JS, CDN or image dependency beyond the existing logo. */
:root {color-scheme:light;--violet:#555cbd;--violet-deep:#3f459c;--text:#282d42;--muted:#80869a;--outline:#e5e8f0;}
* {box-sizing:border-box;}
html {min-height:100%;}
body {min-height:100vh;min-height:100dvh;margin:0;color:var(--text);background:#fff;font:14px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;}
a {text-decoration:none;color:inherit;}
button,input {font:inherit;}
:where(a,button,input):focus-visible {outline:3px solid #9b9fee;outline-offset:3px;}
.login-shell {display:grid;grid-template-columns:minmax(340px,450px) minmax(0,1fr);min-height:100vh;min-height:100dvh;}
.login-aside {display:flex;flex-direction:column;padding:29px clamp(22px,3vw,46px) 23px;background:#fff;z-index:1;}
.login-header {display:flex;justify-content:center;align-items:center;}
.login-logo {display:inline-flex;gap:11px;align-items:center;min-width:0;}
.login-logo .logo-art {width:41px;height:41px;background:#f1f2fc;border-radius:10px;display:grid;place-items:center;overflow:hidden;}
.login-logo .logo-art {position:relative;}.logo-letter {font-weight:850;font-size:13px;color:#555cbd;}.login-logo img {position:absolute;inset:3px;margin:auto;display:block;object-fit:contain;max-width:100%;background:#f1f2fc;}.login-logo img[hidden] {display:none;}
.login-logo strong {display:block;color:#272b44;font-size:16px;font-weight:820;letter-spacing:-.45px;line-height:1.2;}
.login-logo small {display:block;font-size:10.5px;color:#8b90a7;margin-top:4px;}
.login-content {width:100%;max-width:365px;margin:auto; padding:50px 0 75px;}
.signin-heading {text-align:center;margin-bottom:30px;}
.signin-tag {display:inline-block;color:#5860bd;background:#eeeefe;border-radius:50px;padding:5px 11px;font-size:10px;font-weight:800;letter-spacing:.8px;margin-bottom:17px;}
.signin-heading h1 {font-size:clamp(26px,2vw,31px);line-height:1.2;letter-spacing:-.9px;margin:0 0 10px;color:#26293b;}
.signin-heading p {margin:0;color:var(--muted);font-size:12.5px;line-height:1.75;}
.login-field {margin-bottom:19px;}
.login-field label {display:block;font-size:12.5px;font-weight:730;color:#35384d;margin-bottom:8px;}
.login-field input {width:100%;min-width:0;display:block;height:45px;padding:11px 14px;background:#fafbfe;color:#2a2e44;border:1px solid #e0e4ed;border-radius:8px;outline:0;transition:border-color .16s,box-shadow .16s;}
.login-field input::placeholder {color:#a4abbb;}
.login-field input:focus {border-color:#888ce1;box-shadow:0 0 0 4px #676bc81a;background:white;}
.password-wrap {position:relative;}
.password-wrap input {padding-right:99px;}
.show-password {position:absolute;right:9px;top:50%;transform:translateY(-50%);border:0;background:transparent;padding:7px;color:#565db7;font-weight:750;font-size:11.5px;border-radius:6px;cursor:pointer;}
.show-password:hover {background:#f0f0fd;}
.login-submit {width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--violet);background:var(--violet);border-radius:8px;color:#fff;font-weight:760;box-shadow:0 4px 12px #555cbd2d;cursor:pointer;margin-top:26px;transition:background .16s,transform .16s,box-shadow .16s;}
.login-submit:hover {background:var(--violet-deep);box-shadow:0 7px 19px #555cbd36;transform:translateY(-1px);}
.login-submit span {font-size:18px;line-height:1;}
.login-alert {border-radius:8px;border:1px solid #f5c8d0;background:#fff3f4;color:#b44157;padding:11px 13px;margin-bottom:20px;font-size:12.5px;}
.login-safe {display:flex;align-items:center;justify-content:center;gap:7px;color:#979eaf;margin-top:23px;font-size:11px;}
.login-safe svg {color:#20a47e;}
.login-footer {display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8f95a8;font-size:11px;}
.login-footer a {color:var(--violet);font-weight:700;}
.login-footer a:hover {text-decoration:underline;}
.login-visual {position:relative;isolation:isolate;overflow:hidden;display:grid;align-items:center;background:linear-gradient(132deg,#505cbe 0%,#5055b1 42%,#32397e 100%);color:#fff;padding:48px clamp(32px,6vw,105px);min-width:0;}
.login-visual:before {content:"";position:absolute;inset:0;background:radial-gradient(circle at 92% 10%,#b7baff2c 0,transparent 33%),radial-gradient(circle at 0% 90%,#c4c0ff22 0,transparent 46%);pointer-events:none;}
.login-visual:after {content:"";position:absolute;right:-100px;bottom:-180px;width:390px;height:390px;border:1px solid #ffffff28;border-radius:50%;box-shadow:0 0 0 50px #ffffff09,0 0 0 110px #ffffff06;pointer-events:none;}
.visual-glow {position:absolute;border-radius:28px;transform:rotate(26deg);background:#ffffff14;pointer-events:none;}
.glow-one {width:130px;height:130px;top:15%;right:12%;}
.glow-two {width:60px;height:60px;bottom:18%;left:8%;}
.visual-inner {position:relative;width:min(100%,710px);margin:0 auto;z-index:1;}
.visual-kicker {display:flex;align-items:center;gap:9px;color:#e8e9ff;font-size:10px;font-weight:800;letter-spacing:1.7px;}
.visual-kicker span {display:inline-block;width:7px;height:7px;border-radius:50%;background:#55e1ad;box-shadow:0 0 0 5px #55e1ad25;}
.visual-inner h2 {font-size:clamp(31px,3vw,51px);line-height:1.19;letter-spacing:-1.7px;margin:24px 0 18px;font-weight:800;}
.visual-inner h2 em {font-style:normal;color:#d2d5ff;}
.visual-inner>p {color:#e6e7ff;max-width:485px;line-height:1.8;font-size:14px;margin:0 0 35px;}
.mock-dashboard {height:315px;max-width:640px;background:#fdfdff;border-radius:13px;overflow:hidden;box-shadow:0 25px 65px #10185455;transform:perspective(1200px) rotateX(2deg) rotateY(-4deg);border:1px solid #ffffff70;}
.mock-top {height:38px;border-bottom:1px solid #e7e8f1;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:#fafafe;}
.mock-brand {display:flex;align-items:center;gap:8px;color:#5e6485;font-size:10px;font-weight:800;}
.mock-brand i {width:12px;height:12px;border-radius:3px;background:#555fc6;}
.mock-dots {display:flex;gap:5px;}
.mock-dots i {width:6px;height:6px;border-radius:50%;background:#c5c8d6;}
.mock-body {display:flex;height:calc(100% - 38px);}
.mock-side {width:67px;display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:20px 15px;background:#f4f4fb;border-right:1px solid #ebecf5;}
.mock-side i {height:8px;border-radius:4px;background:#d5d7e9;}
.mock-side i.selected {background:#656bc7;}
.mock-main {flex:1;min-width:0;padding:22px;}
.mock-welcome {height:12px;width:32%;border-radius:5px;background:#383d5a;margin-bottom:21px;}
.mock-cards {display:grid;grid-template-columns:repeat(3,1fr);gap:11px;}
.mock-cards>div {height:71px;background:#fff;border:1px solid #e7e8f2;border-radius:7px;padding:12px;display:flex;flex-direction:column;gap:8px;}
.mock-cards b {height:6px;width:40%;background:#c8ccdc;border-radius:4px;}
.mock-cards i {height:11px;width:60%;background:#414966;border-radius:4px;}
.mock-cards u {height:6px;width:38%;background:#68d5aa;border-radius:4px;}
.mock-plots {display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;margin-top:13px;}
.mock-bars,.mock-ring {height:111px;background:#fff;border:1px solid #e7e8f2;border-radius:7px;}
.mock-bars {display:flex;align-items:flex-end;gap:10px;padding:14px 18px;}
.mock-bars i {flex:1;background:linear-gradient(0deg,#5b65c4,#9599e1);border-radius:3px 3px 0 0;}
.mock-ring {display:grid;place-items:center;}
.mock-ring i {width:68px;height:68px;border-radius:50%;background:conic-gradient(#545fc6 0 60%,#53cba1 60% 84%,#e7e9f4 84% 100%);position:relative;}
.mock-ring i:after {content:"";position:absolute;inset:13px;border-radius:50%;background:#fff;}
.visual-caption {display:flex;align-items:center;gap:10px;margin-top:35px;color:#d1d5ff;font-size:12px;letter-spacing:.3px;}
.caption-line {height:1px;width:36px;background:#c7cafa88;}
@media (max-width:1000px) {.login-shell {grid-template-columns:minmax(325px,410px) minmax(0,1fr);}.login-visual {padding:42px 32px;}.visual-inner h2 {font-size:36px;}.mock-dashboard {height:255px;}.mock-cards>div {height:55px;padding:9px;}.mock-plots .mock-bars,.mock-plots .mock-ring {height:90px;}.mock-welcome {margin-bottom:13px;}}
@media (max-width:760px) {.login-shell {display:block;}.login-aside {min-height:100dvh;padding:24px clamp(18px,7vw,40px) 22px;}.login-content {padding:52px 0 60px;}.login-visual {display:none;}}
@media (max-width:390px) {.signin-heading {margin-bottom:23px;}.login-content {padding:37px 0 42px;}.login-header {justify-content:center;}.login-footer {font-size:10px;gap:7px;}}
@media (prefers-reduced-motion:reduce) {.login-submit {transition:none;}.login-submit:hover {transform:none;}}
/* Desktop: form and welcome copy are on the right; mobile stays single-column. */
@media (min-width:761px){.login-shell{grid-template-columns:minmax(0,1fr) minmax(340px,450px)}.login-aside{grid-column:2;grid-row:1}.login-visual{grid-column:1;grid-row:1}}
@media (min-width:761px) and (max-width:1000px){.login-shell{grid-template-columns:minmax(0,1fr) minmax(325px,410px)}}
