:root{
  --navy:#073f73;
  --navy-2:#0b4e89;
  --blue:#3589e8;
  --workspace:#d6e9f8;
  --ink:#111827;
  --muted:#7288ab;
  --line:#d8e1eb;
  --coral:#ea6d56;
  --coral-dark:#dc5e48;
  --green:#58cf7d;
  --red:#d83e3e;
  --font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:var(--font);color:var(--ink);background:var(--workspace)}
body{overflow-x:hidden}
button,input,select,textarea{font:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.label{display:block;font-size:12px;margin-bottom:7px;color:#2f3c50}
.field,.select,.textarea{width:100%;height:42px;border:1px solid #d7dee7;border-radius:9px;background:#fff;padding:0 13px;color:#1f2937;outline:0;transition:.15s}
.textarea{height:92px;padding-top:12px;resize:vertical}
.field:focus,.select:focus,.textarea:focus{border-color:#76aee7;box-shadow:0 0 0 3px rgba(53,137,232,.1)}
.field::placeholder,.textarea::placeholder{color:#a4afbd}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.form-group.full{grid-column:1/-1}
.btn{border:0;border-radius:999px;padding:10px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;line-height:1;min-height:38px;transition:.18s;cursor:pointer}
.btn-primary{background:var(--coral);color:#fff}.btn-primary:hover{background:var(--coral-dark);transform:translateY(-1px)}
.auth-export{min-height:100vh;background:#d6e9f8;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;padding:55px 9vw;gap:7vw}
.auth-illustration{display:grid;place-items:center}.auth-illustration img{width:min(590px,100%);max-height:650px;object-fit:contain}
.auth-card-export{width:min(470px,100%);justify-self:center;background:#fff;border-radius:18px;padding:40px 43px;box-shadow:0 15px 36px rgba(7,63,115,.08)}
.auth-card-export.signup{width:min(620px,100%)}
.auth-logo{display:flex;align-items:center;justify-content:center;color:#073f73;font-size:22px;font-weight:700}
.auth-logo img{width:190px;height:auto;max-height:56px;object-fit:contain}
.auth-card-export h1{text-align:center;font-size:31px;margin:22px 0 30px}
.auth-row{display:flex;justify-content:space-between;align-items:center;margin:12px 3px 20px;font-size:12px;color:#7185a3}
.auth-row label{display:flex;align-items:center;gap:6px}.auth-row a,.auth-switch a{color:var(--coral)}
.auth-submit{width:100%;height:44px}.auth-switch{text-align:left;color:#7185a3;font-size:12px;margin:18px 0 0}
.auth-back{text-align:center;margin:13px 0 0;font-size:11px;color:#8da0b9}.auth-back a:hover{color:var(--navy)}
.admin-auth{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#f8fbfe}
.admin-auth-visual{background:linear-gradient(150deg,#063b6e,#0b5a99);padding:55px;color:white;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.admin-auth-visual:before{content:"";position:absolute;width:470px;height:470px;border-radius:50%;background:rgba(255,255,255,.08);right:-190px;top:-150px}
.brand-lockup{display:flex;align-items:center;gap:14px;position:relative;z-index:1}.brand-lockup img{width:58px;height:48px;object-fit:contain}.brand-lockup strong{font-size:25px;font-weight:600}
.admin-auth-copy{position:relative;max-width:620px}.admin-auth-copy .eyebrow{font-size:15px}.admin-auth-copy h1{font-size:clamp(42px,5vw,70px);line-height:1.04;letter-spacing:-.04em;margin:20px 0}.admin-auth-copy p{font-size:18px;line-height:1.65;color:rgba(255,255,255,.78)}
.login-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;position:relative;z-index:1}.login-stat{padding:18px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px)}.login-stat b{font-size:22px;display:block;margin-bottom:4px}.login-stat span{font-size:12px;color:rgba(255,255,255,.72)}
.admin-auth-panel{display:grid;place-items:center;padding:45px}.admin-auth-card{width:min(455px,100%);background:#fff;border-radius:23px;padding:42px;box-shadow:0 28px 70px rgba(9,57,101,.14)}.admin-auth-card h1{margin:0 0 8px;font-size:31px}.admin-auth-card>p{color:#7288ab;margin:0 0 28px}.demo-note{margin-top:18px;padding:13px 14px;border-radius:12px;background:#eff7ff;color:#4e6d91;font-size:13px;line-height:1.5}
.client-auth{min-height:100vh;background:#d7eafa;display:grid;place-items:center;padding:40px}.client-auth-card{width:min(1060px,100%);display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 70px rgba(7,63,115,.16)}.client-auth-art{min-height:650px;background:linear-gradient(0deg,rgba(3,35,65,.64),rgba(3,35,65,.05)),url('../images/client-hero.jpg') center/cover;display:flex;align-items:flex-end;padding:40px;color:#fff}.client-auth-art h2{font-size:38px;margin:0 0 8px}.client-auth-art p{font-size:16px;max-width:470px;line-height:1.6}.client-auth-form{padding:50px;align-self:center}.portal-brand{display:flex;align-items:center;color:#073f73;font-size:23px;font-weight:700}.portal-brand img{width:205px;max-height:62px;object-fit:contain;object-position:left}.client-auth-form h1{font-size:34px;margin:35px 0 8px}.client-auth-form>p{color:#7288ab;line-height:1.6;margin:0 0 28px}
.ss-flash{display:flex;gap:9px;align-items:flex-start;border-radius:10px;padding:11px 13px;font-size:12px;margin:0 0 18px}.ss-flash svg{width:17px;height:17px;flex:0 0 auto}.ss-flash.success{background:#e9f9ee;color:#277c45}.ss-flash.error{background:#fff0ef;color:#a43e35}.ss-flash ul{margin:0;padding-left:17px}
.auth-errors{margin-bottom:16px;padding:11px 13px;border-radius:10px;background:#fff0ef;color:#a43e35;font-size:12px}.auth-errors ul{margin:0;padding-left:17px}
@media(max-width:1000px){.auth-export,.admin-auth{grid-template-columns:1fr}.auth-illustration,.admin-auth-visual{display:none}.client-auth-card{grid-template-columns:1fr}.client-auth-art{min-height:260px}.auth-card-export.signup{width:min(620px,100%)}}
@media(max-width:760px){.auth-export{padding:20px;align-items:center}.auth-card-export,.auth-card-export.signup{padding:28px 22px;width:min(470px,100%)}.auth-logo img{width:195px}.auth-card-export h1{margin-top:23px}.form-grid{grid-template-columns:1fr}.admin-auth-panel{padding:20px}.admin-auth-card{padding:29px 23px}.client-auth{padding:18px}.client-auth-art{display:none}.client-auth-form{padding:29px 22px}.client-auth-card{display:block}.portal-brand img{width:190px}}
@media(max-width:420px){.auth-export{padding:18px}.auth-card-export{border-radius:18px}.auth-row{align-items:flex-start}.admin-auth-card{border-radius:18px}.client-auth{padding:0}.client-auth-card{border-radius:0;min-height:100vh}.client-auth-form{padding:34px 22px}}
.client-code-field{font-size:24px;font-weight:700;letter-spacing:.35em;text-align:center;color:#073f73}.client-code-help{font-size:11px!important;margin:9px 0 0!important;color:#8396aa!important}.client-resend-form{display:flex;justify-content:space-between;align-items:center;margin-top:15px;font-size:12px}.client-resend-form button{border:0;background:transparent;color:#ea6d56;padding:0;cursor:pointer}.client-resend-form a{color:#7185a3}.ss-role-grid:has(.ss-role-card:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}

/* Client OTP + auth flash fixes */
.source-flash{position:static!important;z-index:auto!important;max-width:none!important;display:flex!important;align-items:flex-start!important;gap:10px!important;margin:0 0 18px!important;padding:11px 13px!important;border-radius:10px!important;box-shadow:none!important;font-size:12px!important;line-height:1.45!important}
.source-flash.success{background:#e9f9ee!important;color:#277c45!important;border:1px solid #cbeed6!important;border-left:4px solid #58cf7d!important}
.source-flash.error{background:#fff0ef!important;color:#a43e35!important;border:1px solid #f2ccc7!important;border-left:4px solid #ea6d56!important}
.source-flash .ui-icon,.source-flash svg{width:17px!important;height:17px!important;min-width:17px!important;max-width:17px!important;flex:0 0 17px!important;margin-top:1px!important}
.source-flash ul{margin:0!important;padding-left:18px!important}
.client-code-group{margin-top:16px}
.client-primary-action{width:100%;margin-top:22px;height:45px}
.client-secondary-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-top:15px;color:#7185a3;font-size:12px}
.client-secondary-actions form{margin:0}
.client-secondary-actions a,.client-text-action{color:#ea6d56;background:transparent;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:none}
.client-secondary-actions a:hover,.client-text-action:hover{text-decoration:underline}
.client-secondary-actions span{color:#b3bfcc}
@media(max-width:760px){.client-auth-form h1{font-size:30px}.client-secondary-actions{flex-wrap:wrap}}

/* Shared success/error popup v4.4 */
.app-toast-stack{position:fixed;z-index:500;top:24px;right:24px;width:min(430px,calc(100vw - 32px));display:grid;gap:12px;pointer-events:none}.app-toast{position:relative;overflow:hidden;display:grid;grid-template-columns:40px minmax(0,1fr) 30px;align-items:start;gap:11px;padding:15px 14px 17px;background:#fff;border:1px solid #e5ebf1;border-radius:15px;box-shadow:0 20px 60px rgba(15,44,72,.22);pointer-events:auto;animation:appToastIn .24s ease both}.app-toast-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center}.app-toast-icon svg{width:20px;height:20px}.app-toast-success .app-toast-icon{background:#e8f8ee;color:#1d9b51}.app-toast-error .app-toast-icon{background:#fff0ef;color:#d94f49}.app-toast-copy strong{display:block;margin:1px 0 4px;font-size:13px;color:#172b41}.app-toast-copy p{margin:0;color:#647890;font-size:12px;line-height:1.5}.app-toast-copy p+p{margin-top:4px}.app-toast-close{width:28px;height:28px;border:0;border-radius:9px;background:#f3f6f9;color:#718298;font-size:19px;line-height:1;cursor:pointer}.app-toast-progress{position:absolute;left:0;right:0;bottom:0;height:3px;transform-origin:left center;animation:appToastProgress 5.2s linear both}.app-toast-success .app-toast-progress{background:#38b86a}.app-toast-error .app-toast-progress{background:#e86862;animation-duration:8.5s}.app-toast.is-leaving{animation:appToastOut .24s ease both}@keyframes appToastIn{from{opacity:0;transform:translate3d(28px,-5px,0) scale(.97)}to{opacity:1;transform:none}}@keyframes appToastOut{to{opacity:0;transform:translate3d(25px,0,0) scale(.97)}}@keyframes appToastProgress{from{transform:scaleX(1)}to{transform:scaleX(0)}}@media(max-width:640px){.app-toast-stack{left:16px;right:16px;top:16px;width:auto}}
