:root{
  --ec-navy:#153b63;--ec-navy-deep:#0b2743;--ec-green:#2bb673;--ec-teal:#17c4c7;
  --ec-gold:#d6a84b;--ec-bg:#f5f7fa;--ec-surface:#fff;--ec-ink:#172033;
  --ec-muted:#667085;--ec-line:#e4e9f0;--ec-radius:16px;
  --ec-shadow:0 14px 34px rgba(21,59,99,.09);
}
html,body{background:var(--ec-bg)}
body{color:var(--ec-ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
a,button,input,select,textarea{transition:border-color .18s,box-shadow .18s,background .18s,color .18s,transform .18s}

/* Login */
body.login-page,body:not([class]){background:
 radial-gradient(circle at 12% 18%,rgba(23,196,199,.18),transparent 34%),
 radial-gradient(circle at 88% 82%,rgba(43,182,115,.18),transparent 32%),
 linear-gradient(145deg,#edf5fb,#f8fbfd 48%,#eef9f4)}
body.login-page .card{border:1px solid rgba(21,59,99,.10);box-shadow:0 28px 80px rgba(11,39,67,.16);border-radius:24px}
body.login-page .logo,.login-page .logo{max-width:230px;max-height:88px;width:auto;border-radius:0;background:transparent;padding:0}
body.login-page button,.login-page button{background:linear-gradient(135deg,var(--ec-green),#219b62);box-shadow:0 10px 24px rgba(43,182,115,.24)}
body.login-page button:hover,.login-page button:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(43,182,115,.29)}
body.login-page input:focus,.login-page input:focus{border-color:var(--ec-teal);box-shadow:0 0 0 4px rgba(23,196,199,.12)}

/* Estrutura operacional */
.layout{grid-template-columns:284px minmax(0,1fr)}
.side{background:linear-gradient(180deg,var(--ec-navy-deep),var(--ec-navy) 58%,#124e69);box-shadow:10px 0 34px rgba(11,39,67,.12);padding:18px 14px 16px}
.brandbox{padding:6px 9px 18px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.10)}
.brandlogo{width:50px;height:50px;border-radius:15px;background:#fff;padding:5px;box-shadow:0 8px 18px rgba(0,0,0,.13)}
.brand-fallback{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.08)}
.brand{font-size:21px;letter-spacing:-.025em}.brand small{text-transform:uppercase;letter-spacing:.07em;font-size:9px;color:rgba(255,255,255,.68)}
.menu-link,.menu-summary{border:1px solid transparent;border-radius:12px;padding:10px 11px;color:rgba(255,255,255,.78)}
.menu-link:hover,.menu-summary:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.07)}
.menu-link.active,.menu-group[open]>.menu-summary{background:linear-gradient(135deg,rgba(43,182,115,.23),rgba(23,196,199,.13));border-color:rgba(83,231,174,.20);color:#fff;box-shadow:inset 3px 0 0 #47d99a}
.menu-icon{color:#78e1bf}.menu-link.active .menu-icon,.menu-group[open]>.menu-summary .menu-icon{color:#fff}
.submenu a{border-left:1px solid rgba(255,255,255,.12);border-radius:0 9px 9px 0}.submenu a.active{border-left-color:#55dfa4;background:rgba(255,255,255,.10)}
.profilebox{background:rgba(255,255,255,.075);border-color:rgba(255,255,255,.13);backdrop-filter:blur(12px)}
.avatar{background:linear-gradient(135deg,#fff,#dff8ee);color:var(--ec-navy)}

.topbar{height:80px;border-bottom:1px solid var(--ec-line);box-shadow:0 4px 18px rgba(21,59,99,.035);padding:0 28px}
.menu-toggle{border-color:var(--ec-line)!important;background:#fff!important;color:var(--ec-navy)!important}
.main{background:var(--ec-bg)}
.content,.page-content,main{max-width:none}

/* Componentes comuns */
.card,.panel,.box,.metric-card,.stat-card,.dashboard-card,section.card{border:1px solid var(--ec-line)!important;border-radius:var(--ec-radius)!important;box-shadow:var(--ec-shadow)!important;background:var(--ec-surface)}
.card:hover,.metric-card:hover,.stat-card:hover{border-color:#d7e1ea!important}
h1,h2,h3{color:var(--ec-navy-deep);letter-spacing:-.02em}
.btn,button.btn,input[type=submit],button[type=submit]{border-radius:11px!important;font-weight:750!important}
.btn:not(.ghost):not(.secondary),button.btn:not(.ghost):not(.secondary),input[type=submit]{background:linear-gradient(135deg,var(--ec-green),#239e64)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 8px 18px rgba(43,182,115,.18)}
.btn:not(.ghost):not(.secondary):hover,button.btn:not(.ghost):not(.secondary):hover,input[type=submit]:hover{transform:translateY(-1px);box-shadow:0 12px 22px rgba(43,182,115,.25)}
.btn.secondary,.btn.ghost{color:var(--ec-navy)!important;border-color:#cdd9e5!important;background:#fff!important}
input,select,textarea{border-radius:10px!important;border-color:#d7dee8!important;background:#fff;color:var(--ec-ink)}
input:focus,select:focus,textarea:focus{border-color:var(--ec-teal)!important;box-shadow:0 0 0 4px rgba(23,196,199,.11)!important;outline:0}
table{border-collapse:separate!important;border-spacing:0!important;overflow:hidden;border-radius:13px}
thead th{background:#f0f5f8!important;color:var(--ec-navy)!important;text-transform:uppercase;letter-spacing:.045em;font-size:11px!important}
tbody tr:hover td{background:#f8fbfc}
.badge,.status,.pill{border-radius:999px!important;font-weight:700!important}
.alert-success,.success{border-left:4px solid var(--ec-green)!important}
.alert-error,.error{border-left:4px solid #dc4755!important}

/* Dashboard */
.dashboard-hero,.welcome-card,.hero-card{background:linear-gradient(135deg,var(--ec-navy-deep),var(--ec-navy) 57%,#15657a)!important;color:#fff!important;border:0!important;box-shadow:0 22px 48px rgba(21,59,99,.20)!important}
.dashboard-hero h1,.welcome-card h1,.hero-card h1,.dashboard-hero h2,.welcome-card h2,.hero-card h2{color:#fff!important}
.dashboard-hero p,.welcome-card p,.hero-card p{color:rgba(255,255,255,.78)!important}
.dashboard-hero:after,.welcome-card:after,.hero-card:after{content:"";position:absolute;right:-60px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(23,196,199,.28),transparent 68%);pointer-events:none}

/* Navegação mobile */
.mobile-app-nav{background:rgba(255,255,255,.96)!important;border-top:1px solid var(--ec-line)!important;box-shadow:0 -10px 30px rgba(21,59,99,.10)!important;backdrop-filter:blur(15px)}
.mobile-app-nav button.active{color:var(--ec-green)!important}

/* Rodapé e detalhes */
.foot,.footer,.app-footer{color:var(--ec-muted)}
.powered{color:var(--ec-navy)!important}
::selection{background:rgba(43,182,115,.22);color:var(--ec-navy-deep)}

@media(max-width:980px){.layout{grid-template-columns:1fr}.side{width:min(300px,88vw)}.topbar{padding:0 16px}}
@media(max-width:640px){.card{border-radius:14px!important}.topbar{height:68px}.brandbox{padding-top:3px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
