/* Shellloader Auth Graphite v21.4 — unified public and authentication surfaces */
:root{--auth-bg:#f2f4f5;--auth-panel:#fafbfb;--auth-soft:#f5f7f8;--auth-line:#dfe5e8;--auth-text:#3f4b54;--auth-muted:#7b868f;--auth-cyan:#5aa8b8;--auth-cyan-soft:#e9f3f5;--auth-green:#62a582;--auth-red:#c76b73;--auth-shadow:0 22px 70px rgba(48,64,74,.10);color-scheme:light}
html{background:var(--auth-bg)!important;color-scheme:light!important}
body.auth-graphite,body.installer-graphite{margin:0;background:var(--auth-bg)!important;color:var(--auth-text)!important;font-family:Inter,"Segoe UI",system-ui,sans-serif}
body.auth-graphite *,body.installer-graphite *{box-sizing:border-box}

/* Login, registration, OTP and account recovery */
body.auth-graphite .ai-auth{min-height:100vh;background:linear-gradient(145deg,#f7f9fa,#eef2f4)!important;color:var(--auth-text)!important}
body.auth-graphite .ai-auth::before{background-image:linear-gradient(rgba(80,110,121,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(80,110,121,.035) 1px,transparent 1px)!important;opacity:.7!important}
body.auth-graphite .ai-auth::after{border-color:rgba(90,168,184,.09)!important;box-shadow:0 0 0 95px rgba(90,168,184,.025),0 0 0 190px rgba(90,168,184,.018)!important}
body.auth-graphite .ai-shell{border:1px solid var(--auth-line)!important;background:var(--auth-panel)!important;box-shadow:var(--auth-shadow)!important}
body.auth-graphite .ai-visual{background:linear-gradient(150deg,#edf4f5,#e3ecee 62%,#eef3f4)!important;border-color:var(--auth-line)!important;color:var(--auth-text)!important}
body.auth-graphite .ai-visual::before{background:linear-gradient(122deg,transparent 42%,rgba(90,168,184,.08) 42.2%,transparent 42.6%)!important}
body.auth-graphite .ai-visual::after{border-color:rgba(90,168,184,.13)!important;box-shadow:inset 0 0 90px rgba(90,168,184,.04)!important}
body.auth-graphite .ai-logo,body.auth-graphite .ai-form-logo{object-fit:contain!important;background:transparent!important;border:0!important;filter:none!important;box-shadow:none!important}
body.auth-graphite .ai-brand-copy b{color:#45525b!important}.auth-graphite .ai-brand-copy span{color:#7b8890!important}
body.auth-graphite .ai-kicker{color:#558f9b!important}.auth-graphite .ai-kicker::before{background:#68a9b7!important;box-shadow:none!important}
body.auth-graphite .ai-story h1{color:#3d4952!important;text-shadow:none!important}
body.auth-graphite .ai-story h1 span{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;color:#568e9a!important}
body.auth-graphite .ai-story>p{color:#71808a!important}
body.auth-graphite .ai-chip{border-color:#d5e4e7!important;background:rgba(250,251,251,.68)!important;color:#65747d!important;box-shadow:none!important}
body.auth-graphite .ai-chip i,body.auth-graphite .ai-status i{background:#68aa87!important;box-shadow:0 0 0 3px rgba(104,170,135,.10)!important}
body.auth-graphite .ai-network path{stroke:#71adba!important}.auth-graphite .ai-network circle{fill:#71adba!important;filter:none!important}
body.auth-graphite .ai-status{border-color:#d8e3e6!important;color:#6f7d86!important;background:rgba(247,249,250,.55)!important}
body.auth-graphite .ai-form-side{background:#fafbfb!important;color:var(--auth-text)!important}
body.auth-graphite .ai-form-wrap{color:var(--auth-text)!important}
body.auth-graphite .ai-form-head h2{color:#3d4952!important;text-shadow:none!important}.auth-graphite .ai-form-head p{color:#7b868f!important}
body.auth-graphite .step-pill{border-color:#d3e4e7!important;background:#eaf3f5!important;color:#548e9a!important}.auth-graphite .step-pill::before{background:#67a9b7!important;box-shadow:none!important}
body.auth-graphite .ai-field-group label,body.auth-graphite .ai-avatar-title{color:#5f6d76!important}
body.auth-graphite .ai-field{border:1px solid #dce3e6!important;background:#f6f8f9!important;box-shadow:none!important}
body.auth-graphite .ai-field:focus-within{border-color:#8fc3cd!important;background:#fafbfb!important;box-shadow:0 0 0 3px rgba(90,168,184,.08)!important}
body.auth-graphite .ai-field svg{color:#7a929a!important}
body.auth-graphite .ai-field input,body.auth-graphite .ai-field textarea,body.auth-graphite .ai-field select{background:transparent!important;border:0!important;color:#46525b!important;box-shadow:none!important}
body.auth-graphite .ai-field input::placeholder{color:#9aa3aa!important}
body.auth-graphite .ai-field button{color:#71808a!important;background:transparent!important}.auth-graphite .ai-field button:hover{background:#eaf2f4!important;color:#568e9a!important}
body.auth-graphite .ai-check{color:#6d7982!important}.auth-graphite .ai-check input{accent-color:#5aa8b8!important}
body.auth-graphite .ai-link{color:#4f8996!important}.auth-graphite .ai-link:hover{color:#3f7885!important}
body.auth-graphite .ai-submit{border:1px solid #549dac!important;background:#5fa9b8!important;color:#fff!important;box-shadow:0 10px 24px rgba(73,143,157,.14)!important}
body.auth-graphite .ai-submit:hover{background:#559dac!important;box-shadow:0 12px 28px rgba(73,143,157,.17)!important;filter:none!important}
body.auth-graphite .ai-footer-note{color:#89939b!important}.auth-graphite .ai-footer-note svg{color:#679aa5!important}
body.auth-graphite .ai-alert{border-color:#ead6d8!important;background:#f9eeee!important;color:#9a5960!important;box-shadow:none!important}.auth-graphite .ai-alert.ok{border-color:#d4e5dc!important;background:#eef6f2!important;color:#4e8068!important}
body.auth-graphite .ai-avatar-option{border-color:#dce3e6!important;background:#f6f8f9!important;color:#68757e!important}.auth-graphite .ai-avatars input:checked+.ai-avatar-option{border-color:#9ec9d2!important;background:#ebf4f5!important;color:#4d8490!important;box-shadow:inset 0 0 0 1px rgba(90,168,184,.18)!important}
body.auth-graphite .password-meter{background:#e4e9ec!important}.auth-graphite .password-meter i,.auth-graphite .otp-progress i.done{background:#67aebb!important}
body.auth-graphite .otp-icon{border-color:#d4e5e8!important;background:#edf5f6!important;color:#5c96a2!important;box-shadow:none!important}
body.auth-graphite .otp-input{border-color:#d9e1e5!important;background:#f6f8f9!important;color:#46525b!important;box-shadow:none!important}.auth-graphite .otp-input:focus{border-color:#8fc3cd!important;box-shadow:0 0 0 4px rgba(90,168,184,.08)!important}
body.auth-graphite .otp-target,body.auth-graphite .otp-help{color:#7f8991!important}.auth-graphite .otp-target b{color:#4f8996!important}
body.auth-graphite .otp-secondary{border-color:#dce3e6!important;background:#f3f6f7!important;color:#65727b!important;box-shadow:none!important}.auth-graphite .otp-secondary:hover{background:#ebf2f4!important;color:#4e8591!important}

/* Compact authentication cards: WhatsApp login and administrator reset */
body.auth-graphite.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f6f8f9,#edf2f4)!important}
body.auth-graphite .auth-card{width:min(470px,100%);padding:30px;border:1px solid var(--auth-line)!important;border-radius:20px;background:#fafbfb!important;color:var(--auth-text)!important;box-shadow:var(--auth-shadow)!important}
body.auth-graphite .auth-card>img{display:block;width:min(320px,86%);height:86px;margin:0 auto 20px;object-fit:contain;background:transparent!important;filter:none!important}
body.auth-graphite .auth-card h2{color:#3e4a53!important;text-align:center}.auth-graphite .auth-card p{color:#7b868f!important;text-align:center}
body.auth-graphite .auth-card label{color:#5f6c75!important}.auth-graphite .auth-card input{background:#f6f8f9!important;border:1px solid #dce3e6!important;color:#46525b!important;box-shadow:none!important}.auth-graphite .auth-card input:focus{border-color:#8fc3cd!important;box-shadow:0 0 0 3px rgba(90,168,184,.08)!important}
body.auth-graphite .auth-card .btn{background:#f0f4f5!important;border:1px solid #dae3e6!important;color:#5d6a73!important;box-shadow:none!important}.auth-graphite .auth-card .btn.green,.auth-graphite .auth-card button.btn{background:#5fa9b8!important;border-color:#559eae!important;color:#fff!important}

/* Splash screen */
body.auth-graphite .digital-grid{background-image:linear-gradient(rgba(77,111,122,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(77,111,122,.035) 1px,transparent 1px)!important}
body.auth-graphite .constellation path{stroke:#7baeb8!important;stroke-opacity:.14!important}.auth-graphite .constellation circle{fill:#7baeb8!important;filter:none!important}
body.auth-graphite .orb,body.auth-graphite .orb::before,body.auth-graphite .orb::after{border-color:rgba(90,168,184,.11)!important}
body.auth-graphite .splash{color:#44515a!important}.auth-graphite .splash h1{color:#3d4952!important;text-shadow:none!important}.auth-graphite .splash p,.auth-graphite .welcome{color:#7b868f!important}
body.auth-graphite .logo-wrap{background:transparent!important;border:0!important;box-shadow:none!important;filter:none!important}
body.auth-graphite .eyebrow,body.auth-graphite .status{color:#568f9b!important}.auth-graphite .module-row span{border-color:#d9e5e7!important;background:rgba(250,251,251,.72)!important;color:#65747d!important}.auth-graphite .progress{background:#dfe6e9!important}.auth-graphite .progress span{background:#67aebb!important}.auth-graphite .skip{color:#6f7c85!important}
body.auth-graphite .welcome-avatar{border-color:#d5e4e7!important;background:#edf4f5!important;box-shadow:none!important}

/* Public isolation page */
body.auth-graphite.isolir-graphite{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f6f8f9,#eef2f4)!important}
body.auth-graphite .box{background:#fafbfb!important;border:1px solid var(--auth-line)!important;color:#46525b!important;box-shadow:var(--auth-shadow)!important}.auth-graphite .box::before{background:#c97a80!important;height:2px!important}.auth-graphite .brand{border-color:#e2e7e9!important}.auth-graphite .brand img{background:transparent!important}.auth-graphite .brand span{color:#8d686c!important}.auth-graphite .icon{border-color:#ead4d6!important;background:#f8eeee!important;color:#ad6269!important;box-shadow:none!important}.auth-graphite .box h1{color:#3f4b54!important}.auth-graphite .box p{color:#76818a!important}.auth-graphite .notice{border-color:#ead9da!important;background:#f8f0f0!important;color:#7e6467!important}.auth-graphite .user{color:#9f5d63!important}.auth-graphite .box .btn{background:#c4777d!important;box-shadow:none!important;color:#fff!important}

/* Installer */
body.installer-graphite{min-height:100vh;background:linear-gradient(145deg,#f6f8f9,#eef2f4)!important}
body.installer-graphite .wrap{color:var(--auth-text)!important}.installer-graphite .card{background:#fafbfb!important;border:1px solid var(--auth-line)!important;color:var(--auth-text)!important;box-shadow:var(--auth-shadow)!important}.installer-graphite .installer-brand{border-color:#e1e6e9!important}.installer-graphite .installer-brand span{color:#568e9a!important}.installer-graphite h1,.installer-graphite h2{color:#3e4a53!important}.installer-graphite .subtitle,.installer-graphite .server-meta,.installer-graphite label,.installer-graphite .hint,.installer-graphite .footer-note{color:#77838c!important}.installer-graphite .version{background:#eaf3f5!important;border-color:#d4e5e8!important;color:#538c98!important}.installer-graphite .req{background:#f3f6f7!important;border-color:#dce4e7!important;color:#536069!important}.installer-graphite .req small{color:#7d8991!important}.installer-graphite .req.bad{background:#f8eeee!important;border-color:#ead4d6!important}.installer-graphite .req.optional.bad{background:#f8f4ea!important;border-color:#e9dfc8!important}.installer-graphite input{background:#f6f8f9!important;border-color:#dce3e6!important;color:#46525b!important;box-shadow:none!important}.installer-graphite input:focus{border-color:#8fc3cd!important;box-shadow:0 0 0 3px rgba(90,168,184,.08)!important}.installer-graphite button,.installer-graphite .btn{background:#5fa9b8!important;color:#fff!important;box-shadow:none!important}.installer-graphite .secondary{background:#7d98a1!important}.installer-graphite .alert.success{background:#edf5f1!important;border-color:#d4e5dc!important;color:#507c67!important}.installer-graphite .alert.error{background:#f8eeee!important;border-color:#ead4d6!important;color:#98585f!important}.installer-graphite .alert.warning{background:#f8f4ea!important;border-color:#e9dfc8!important;color:#826f4c!important}

@media(max-width:820px){body.auth-graphite .ai-shell{border-radius:0!important;box-shadow:none!important}.auth-graphite .ai-form-side{background:#f8fafb!important}}
@media(max-width:520px){body.auth-graphite.auth-page,body.auth-graphite.isolir-graphite{padding:0}.auth-graphite .auth-card,.auth-graphite .box{min-height:100vh;border:0!important;border-radius:0!important;box-shadow:none!important}.auth-graphite .ai-form-wrap{padding-left:18px!important;padding-right:18px!important}}

/* v21.5.0 Authentication Final Harmony */
body.auth-graphite::before,body.auth-graphite::after,
body.installer-graphite::before,body.installer-graphite::after{filter:none!important;opacity:.35!important}
body.auth-graphite :is(h1,h2,h3,h4,h5,h6,b,strong),
body.installer-graphite :is(h1,h2,h3,h4,h5,h6,b,strong){color:#414d56!important;text-shadow:none!important}
body.auth-graphite :is(p,small,.muted,.help,.hint),
body.installer-graphite :is(p,small,.muted,.help,.hint){color:#7d8992!important;text-shadow:none!important}
body.auth-graphite :is(.ai-shell,.ai-form-side,.ai-form-wrap,.auth-card,.box,.splash),
body.installer-graphite :is(.installer,.installer-card,.panel,.card){border-color:#dfe5e8!important;color:#414d56!important;box-shadow:0 16px 55px rgba(48,64,74,.09)!important}
body.auth-graphite :is(input,select,textarea),
body.installer-graphite :is(input,select,textarea){background:#f7f9fa!important;border-color:#dce3e6!important;color:#48545d!important;box-shadow:none!important}
body.auth-graphite :is(input,select,textarea):focus,
body.installer-graphite :is(input,select,textarea):focus{background:#fff!important;border-color:#91c7d2!important;box-shadow:0 0 0 3px rgba(90,168,184,.08)!important}
body.auth-graphite :is(.ai-logo,.ai-form-logo,.auth-card>img,.logo-wrap img,.brand img),
body.installer-graphite :is(.installer-brand img,.brand img){background:transparent!important;border:0!important;filter:none!important;object-fit:contain!important;box-shadow:none!important}
body.auth-graphite :is(.ai-submit,.auth-card button.btn),
body.installer-graphite :is(button,.btn.primary){background:#61aaba!important;border-color:#579fae!important;color:#fff!important;box-shadow:none!important}
