/* UltramanWA visual layer. Core routes, forms and permission gates remain intact. */
:root{--bg:#f3f6fa;--panel:#fff;--panel2:#f8fafc;--border:#e3e9f0;--text:#15243b;--muted:#58697f;--primary:#087f75;--primary2:#099b8c;--primary-soft:#e5f5f0;--radius:18px;--sidebar:280px;--header:80px;--shadow:0 5px 24px rgba(21,36,59,.035)}
[data-theme=dark]{--bg:#0b1220;--panel:#111d2e;--panel2:#152338;--border:#26364c;--text:#eef4fb;--muted:#98abc1;--primary:#62dfc0;--primary2:#81ead0;--primary-soft:#143f39;--shadow:0 5px 24px rgba(0,0,0,.08)}
body{font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;letter-spacing:-.012em}
h1,h2,h3,.logo-copy b{letter-spacing:-.035em}button,input,select,textarea{font:inherit}
.sidebar{background:#101d31;color:#b8c6d9;border-right:1px solid #243248}
.sidebar .logo{border-bottom-color:#273348;padding-top:26px;padding-bottom:27px}
.logo-icon,.brand-mark{background:linear-gradient(145deg,#67e8c5,#20b598);color:#0b302b;font-weight:850;font-size:16px;box-shadow:0 5px 17px #0002;border-radius:13px;letter-spacing:-.06em}
.logo-copy b{color:#f5f8fd;font-size:22px}.brand-dot{color:#64e4bf}.logo-copy small{color:#859bb7;font-size:10px;letter-spacing:.025em}
.logo-signal{background:#eecb89;border-color:#101d31}.sidebar .nav-section{color:#7890af;font-size:9px;letter-spacing:.115em;font-weight:700}
.sidebar nav a{color:#b4c3d8;border-radius:10px;transition:background .16s,color .16s;margin-bottom:3px;font-weight:500}
.sidebar nav a:hover{background:#1b2c43;color:#fff}.sidebar nav a.active{background:#23473f;color:#8cedcf;border-color:transparent;box-shadow:inset 3px 0 #61dfbc}
.sidebar .nav-icon{color:#829aba}.sidebar nav a.active .nav-icon{color:#83e6c7}
.sidebar .nav-count{background:#65e1bd;color:#0a3027}.sidebar-collapse{color:#8fa3be;border-color:#28364b}.sidebar-collapse:hover{background:#1a2a40;color:#f2f8ff}
.sidebar .side-foot{border-top-color:#29374c;background:#142238}.sidebar .side-profile strong{color:#eaf1fc}.sidebar .side-profile small{color:#8ea5c2}.sidebar .avatar{background:#294339;color:#8aedcd;border:1px solid #3d6558}
.mobile-drawer .logo-copy b{color:#f5f8fd}.mobile-drawer .drawer-close{color:#bbcadf}.mobile-drawer .icon-button:hover{background:#26374e}.mobile-drawer input{color:var(--text)}
.topbar{background:var(--panel);border-bottom-color:var(--border)}.top-title h2{font-size:21px;font-weight:750}.breadcrumb{font-size:10px;letter-spacing:.045em}.top-search{border-radius:10px;background:var(--panel2)}
.dashboard-intro h1{font-size:31px;letter-spacing:-.04em;font-weight:750}.eyebrow{letter-spacing:.14em;font-size:9px;font-weight:750}
.panel,.widget,.kpi{border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head h3,.widget-head h3{font-weight:700;font-size:15px}
.kpi{position:relative;overflow:hidden;border-color:var(--border);min-height:116px}.kpi strong{font-size:34px;font-weight:750;letter-spacing:-.06em}.kpi-icon{border-radius:12px;background:var(--primary-soft);color:var(--primary)}
.btn{border-radius:9px;font-weight:650;letter-spacing:-.012em}.btn.primary{box-shadow:0 3px 9px rgba(8,127,117,.13)}.btn.primary:hover{box-shadow:0 5px 13px rgba(8,127,117,.2)}
.table-wrap th{font-size:10px;letter-spacing:.06em;font-weight:700}.table-wrap td{font-size:12px}.table-wrap th,.table-wrap td{padding-top:15px;padding-bottom:15px}
input,select,textarea{border-radius:9px}.alert{border-radius:11px}.chart-bars i{border-radius:5px 5px 0 0;background:linear-gradient(180deg,#29b69c,#087f75)}
.auth-body{background:#edf2f8;background-image:radial-gradient(ellipse at 75% 5%,#dcefe8,transparent 50%);min-height:100dvh;padding:32px;display:grid;place-items:center}
[data-theme=dark] .auth-body{background:#080f1b;background-image:radial-gradient(ellipse at 75% 5%,#112d2b,transparent 50%)}
.ultra-login{width:min(1080px,100%);display:grid;grid-template-columns:1.05fr 1fr;min-height:650px;border-radius:25px;overflow:hidden;border:1px solid #dbe3ed;box-shadow:0 24px 85px #22375115}
[data-theme=dark] .ultra-login{border-color:#24344c;box-shadow:0 24px 85px #0005}
.ultra-story{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background:#101e33;color:#fff;padding:44px}
.ultra-story:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 0% 65%,#147c6850,transparent 65%);pointer-events:none}
.ultra-story>*{position:relative}.ultra-wordmark{display:flex;gap:14px;align-items:center;color:#fff;text-decoration:none;font-size:24px;font-weight:750;letter-spacing:-.05em}
.ultra-wordmark .brand-mark{margin:0;width:44px;height:44px;display:grid;place-items:center;font-size:16px;flex-shrink:0}.ultra-wordmark em{font-style:normal;color:#65e0be}
.ultra-story .eyebrow{color:#8ddbc6;display:block;margin-bottom:17px}.ultra-story h1{font-size:41px;line-height:1.13;font-weight:720;max-width:390px;margin:0 0 20px;letter-spacing:-.045em}
.ultra-story p{font-size:14px;color:#9cafc8;line-height:1.8;max-width:365px;margin:0}.ultra-capabilities{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.ultra-capabilities span{padding:7px 10px;font-size:10px;border:1px solid #345048;border-radius:20px;color:#b6e3d6;background:#152f2c}
.ultra-orbit{height:140px;position:relative;display:grid;place-items:center;margin:24px 0 10px}.ultra-orbit:before,.ultra-orbit:after{content:"";position:absolute;width:290px;height:112px;border:1px solid #365168;border-radius:50%;transform:rotate(-12deg)}.ultra-orbit:after{width:190px;height:145px;transform:rotate(25deg);border-color:#245b52}
.ultra-orbit .orbit-core{width:62px;height:62px;border-radius:18px;background:#284d43;color:#7cedcc;display:grid;place-items:center;box-shadow:0 0 55px #4bddad18;z-index:1}
.orbit-core svg{width:28px;height:28px}.orbit-node{position:absolute;border:1px solid #3f526b;background:#1b2e48;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#8debcf;font-size:12px;font-weight:650}.orbit-node.one{left:15%;top:45%}.orbit-node.two{right:18%;top:12%;color:#eed196}.orbit-node.three{right:15%;bottom:8%}
.ultra-story-footer{display:flex;gap:9px;align-items:center;font-size:10px;color:#859bb8;letter-spacing:.035em}.ultra-story-footer i{width:5px;height:5px;border-radius:50%;background:#dabb80}
.ultra-form{background:var(--panel);display:flex;flex-direction:column;justify-content:center;padding:55px 48px;min-width:0}.ultra-form .eyebrow{color:var(--primary);margin-bottom:13px}.ultra-form h2{font-size:30px;margin:0 0 10px;font-weight:730}.ultra-form>p{color:var(--muted);font-size:13px;line-height:1.7;margin:0 0 32px}.ultra-form form{display:grid;gap:20px}.ultra-form label{font-size:12px;margin-bottom:8px;font-weight:650}.ultra-form input{height:48px;background:var(--panel2);border-color:var(--border);width:100%;padding:12px 14px}.ultra-form .btn{min-height:48px;margin-top:4px;font-size:13px}.ultra-form .helper{font-size:11px;color:var(--muted);margin:22px 0 0;line-height:1.7}.ultra-form .auth-footer{font-size:10px;padding-top:26px;margin-top:26px;border-top:1px solid var(--border);color:var(--muted)}.ultra-form .alert{font-size:12px;margin-bottom:20px}
@media(min-width:1600px){.content{max-width:1650px;margin-inline:auto;width:100%}}
@media(max-width:1100px){.ultra-login{min-height:620px}.ultra-story{padding:35px}.ultra-form{padding:40px 32px}.ultra-story h1{font-size:34px}}
@media(max-width:767px){.auth-body{padding:22px}.ultra-login{grid-template-columns:1fr;min-height:auto;max-width:480px;border-radius:20px}.ultra-story{padding:27px;gap:24px}.ultra-story h1{font-size:27px;margin-bottom:10px}.ultra-story p{font-size:12px}.ultra-orbit,.ultra-capabilities,.ultra-story-footer{display:none}.ultra-story .eyebrow{margin-bottom:10px}.ultra-wordmark{font-size:23px}.ultra-form{padding:30px 27px}.ultra-form h2{font-size:25px}.ultra-form>p{margin-bottom:25px}.auth-theme{top:8px;right:8px}.dashboard-intro h1{font-size:25px}.kpi strong{font-size:29px}.kpi{min-height:108px}.top-title h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.sidebar .sidebar-collapse{background:#182b42;color:#afc0d7;border-color:#2d405a}

input::placeholder,textarea::placeholder{opacity:1}
