/* XWISE — sistema visual claro profissional */
:root {
  color-scheme: light;
  --xw-bg:#f4f7f6; --xw-surface:#ffffff; --xw-surface-soft:#f8faf9;
  --xw-border:#e1e8e4; --xw-text:#17251e; --xw-muted:#69786f;
  --xw-green:#16834b; --xw-green-dark:#10683b; --xw-green-soft:#e8f6ed;
  --xw-red:#c83e4d; --xw-shadow:0 8px 24px rgba(20,50,34,.06);
}
html { background:var(--xw-bg); }
body { font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif!important; background:var(--xw-bg)!important; color:var(--xw-text)!important; }
body::before, body::after { pointer-events:none; }
.layout { min-height:100vh; background:var(--xw-bg)!important; }
.main { padding:32px clamp(18px,3vw,42px)!important; min-width:0; }
.container { max-width:1500px; }
h1,h2,h3,h4,p,label,small { text-shadow:none!important; }
h1,.boas-vindas h1,.page-header-text h1 { color:var(--xw-text)!important; background:none!important; -webkit-text-fill-color:currentColor!important; }
.sub-header,.boas-vindas p,.page-header-text .sub { color:var(--xw-muted)!important; }
.card,.chart-card,.table-card,.form-card,.painel-card,.secao-card,.stat-card,.bloco-card,.box-card,
.card-menu,.alerta-msg,.alerta,.main-header,.filtros-periodo {
  background:var(--xw-surface)!important; color:var(--xw-text)!important;
  border-color:var(--xw-border)!important; box-shadow:var(--xw-shadow);
}
.card,.chart-card,.table-card,.form-card,.painel-card,.secao-card,.stat-card,.bloco-card,.box-card { border-radius:16px!important; }
.card::before { background:var(--xw-green)!important; }
.card:hover,.card-menu:hover { transform:translateY(-2px); box-shadow:0 14px 30px rgba(20,50,34,.1)!important; }
.card-label,.card-detail,.contador,.timestamp { color:var(--xw-muted)!important; }
.value-green,.badge-buy { color:var(--xw-green)!important; }
.value-blue,.value-purple,.value-yellow { color:#4a6d5a!important; }
.progress { background:#e8efeb!important; }
.progress-bar { background:linear-gradient(90deg,#16834b,#55b77e)!important; }
button,.btn,button[type=submit],input[type=submit],.btn-primary,.btn-salvar,.btn-acao {
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
button[type=submit],input[type=submit],.btn-primary,.btn-salvar { background:var(--xw-green)!important; border-color:var(--xw-green)!important; color:#fff!important; }
button[type=submit]:hover,input[type=submit]:hover,.btn-primary:hover,.btn-salvar:hover { background:var(--xw-green-dark)!important; }
input:not([type=checkbox]):not([type=radio]):not([type=submit]),select,textarea {
  background:#fff!important; color:var(--xw-text)!important; border:1px solid #d6e0da!important;
  border-radius:10px!important; box-shadow:none!important;
}
input:focus,select:focus,textarea:focus { outline:none!important; border-color:#45a66e!important; box-shadow:0 0 0 3px rgba(22,131,75,.11)!important; }
label { color:#425349!important; }
table,table.dados { color:var(--xw-text)!important; }
table thead th,table.dados thead th { background:#f3f7f4!important; color:#627268!important; border-color:var(--xw-border)!important; }
table td,table th,table.dados tbody td { border-color:var(--xw-border)!important; }
table tbody tr:hover,table.dados tbody tr:hover { background:#f4faf6!important; }
.badge-buy { background:#e7f7ed!important; }
.badge-sell { background:#fff0f1!important; color:var(--xw-red)!important; }
.btn-voltar,.btn-limpar,.filtro-btn,.toggle-pontos { background:#fff!important; color:#425349!important; border-color:var(--xw-border)!important; }
.filtro-btn.ativo { background:var(--xw-green)!important; color:#fff!important; border-color:var(--xw-green)!important; }
footer { color:var(--xw-muted)!important; border-color:var(--xw-border)!important; }
/* Login e cadastro */
.login-card,.auth-card,.cadastro-card,.form-login,.login-container,.register-card {
  background:#fff!important; color:var(--xw-text)!important; border:1px solid var(--xw-border)!important;
  box-shadow:0 24px 70px rgba(20,50,34,.12)!important; border-radius:22px!important;
}
body:has(.login-card),body:has(.auth-card),body:has(.form-login),body:has(.login-container),body:has(.register-card) {
  background:radial-gradient(circle at 12% 8%,#e7f6ec 0,transparent 34%),var(--xw-bg)!important;
}
/* Sidebar do cliente: fixa, recolhível e responsiva */
.sidebar {
  position:sticky!important; top:0!important; height:100vh!important; align-self:flex-start;
  flex:0 0 248px!important; width:248px!important; padding:22px 14px!important;
  background:#fff!important; border-right:1px solid var(--xw-border)!important;
  box-shadow:4px 0 18px rgba(22,50,34,.025); z-index:50; transition:width .22s ease,flex-basis .22s ease,padding .22s ease;
}
.logo-side { margin-bottom:22px!important; padding:0 8px 20px!important; border-bottom:1px solid var(--xw-border)!important; }
.logo-side .logo-img { max-height:58px!important; }
.menu { gap:5px!important; }
.menu-item { min-height:44px; padding:11px 12px!important; border-radius:11px!important; color:#66766c!important; font-size:13px!important; font-weight:600!important; }
.menu-item:hover { background:#f2f8f4!important; color:var(--xw-green-dark)!important; }
.menu-item.ativo { background:var(--xw-green-soft)!important; color:var(--xw-green-dark)!important; border-left:0!important; box-shadow:inset 3px 0 var(--xw-green); }
.menu-item .icon { width:22px!important; font-size:16px!important; }
.menu-item .construcao { color:#7b887f!important; background:#f1f4f2!important; }
.user-box { padding-top:15px!important; border-top:1px solid var(--xw-border)!important; }
.user-box .nome { color:var(--xw-text)!important; }
.user-box .email { color:var(--xw-muted)!important; }
.btn-sair { background:#f2f6f3!important; color:#526158!important; border:1px solid var(--xw-border); border-radius:10px!important; }
.btn-sair:hover { background:#fff0f1!important; color:var(--xw-red)!important; }
.sidebar-toggle { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid var(--xw-border); border-radius:10px; padding:9px; margin:0 0 14px; background:#f8faf9; color:#526158; cursor:pointer; font:600 12px Inter,sans-serif; }
.sidebar-toggle:hover { background:var(--xw-green-soft); color:var(--xw-green-dark); }
.sidebar.recolhida { flex-basis:78px!important; width:78px!important; padding:20px 10px!important; }
.sidebar.recolhida .logo-side { padding:0 0 16px!important; }
.sidebar.recolhida .logo-img { max-height:38px!important; object-fit:contain; }
.sidebar.recolhida .menu-item { justify-content:center; padding:12px 8px!important; }
.sidebar.recolhida .menu-item span:not(.icon):not(.badge),.sidebar.recolhida .user-box > div,.sidebar.recolhida .btn-sair-label { display:none!important; }
.sidebar.recolhida .menu-item .icon { display:inline!important; }
.sidebar.recolhida .menu-item .badge { position:absolute; top:2px; right:2px; margin:0; padding:1px 5px; }
.sidebar.recolhida .btn-sair { font-size:0; }
.sidebar.recolhida .btn-sair::after { content:'↪'; font-size:17px; }
/* Administração: navegação lateral com identidade consistente */
body:has(.admin-topbar) { padding:24px 28px 24px 284px!important; background:var(--xw-bg)!important; }
.admin-topbar {
  position:fixed!important; top:0!important; bottom:0!important; left:0!important; width:256px!important;
  margin:0!important; border:0!important; border-right:1px solid var(--xw-border)!important;
  border-radius:0!important; padding:22px 14px!important; background:#fff!important;
  box-shadow:4px 0 18px rgba(22,50,34,.025); display:flex!important; flex-direction:column!important;
  align-items:stretch!important; justify-content:flex-start!important; flex-wrap:nowrap!important; z-index:60;
}
.admin-brand { padding:6px 10px 22px; margin-bottom:18px; border-bottom:1px solid var(--xw-border); }
.brand-x { color:var(--xw-green)!important; background:none!important; -webkit-text-fill-color:var(--xw-green)!important; font-size:21px!important; }
.brand-admin { color:#748177!important; letter-spacing:2px!important; }
.admin-nav { display:flex!important; flex-direction:column!important; gap:5px!important; width:100%; }
.admin-nav-item { min-height:44px; padding:12px!important; border-radius:11px!important; color:#66766c!important; font-size:13px!important; }
.admin-nav-item:hover { background:#f2f8f4!important; color:var(--xw-green-dark)!important; }
.admin-nav-item.ativo { background:var(--xw-green-soft)!important; color:var(--xw-green-dark)!important; box-shadow:inset 3px 0 var(--xw-green)!important; }
.admin-nav-sair { margin-top:auto; color:var(--xw-red)!important; }
.admin-nav-sair:hover { background:#fff0f1!important; }
body:has(.admin-topbar) .container { max-width:none!important; width:100%!important; margin:0!important; }
body:has(.admin-topbar) .page-header { padding:8px 0 20px; border-bottom:1px solid var(--xw-border); }
/* Responsividade */
@media(max-width:900px) {
  .main { padding:24px 18px!important; }
  body:has(.admin-topbar) { padding:18px!important; padding-top:90px!important; }
  .admin-topbar { right:0!important; bottom:auto!important; width:auto!important; height:auto!important; min-height:72px; padding:10px 14px!important; border-right:0!important; border-bottom:1px solid var(--xw-border)!important; }
  .admin-brand { padding:0 0 8px; margin:0; border:0; }
  .admin-nav { flex-direction:row!important; overflow-x:auto; }
  .admin-nav-item { flex:0 0 auto; }
}
@media(max-width:768px) {
  .sidebar,.sidebar.recolhida { width:100%!important; flex:0 0 auto!important; height:auto!important; position:sticky!important; top:0; padding:10px 12px!important; flex-direction:column!important; align-items:stretch!important; gap:8px!important; border-right:0!important; border-bottom:1px solid var(--xw-border)!important; }
  .sidebar .logo-side { display:none; }
  .sidebar-toggle { margin:0; }
  .sidebar .menu { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px!important; }
  .sidebar .menu-item,.sidebar.recolhida .menu-item { min-height:40px; flex-direction:column; gap:3px!important; padding:6px 3px!important; font-size:10px!important; text-align:center; }
  .sidebar .menu-item .icon { display:block!important; font-size:15px!important; }
  .sidebar .menu-item span:not(.icon):not(.badge),.sidebar.recolhida .menu-item span:not(.icon):not(.badge) { display:block!important; }
  .sidebar .menu-item .construcao { display:none!important; }
  .sidebar .user-box { display:flex; flex-direction:row; align-items:center; justify-content:space-between; padding-top:8px!important; }
  .sidebar .user-box > div { display:block!important; }
  .sidebar .btn-sair { font-size:12px!important; }
  .sidebar .btn-sair::after { content:none!important; }
  .main { padding:20px 14px!important; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; scroll-behavior:auto!important; } }
/* Remove os fundos decorativos escuros das telas antigas de autenticação. */
body:has(.logo-xwise)::before, body:has(.logo-xwise)::after,
body:has(.footer-brand)::before, body:has(.footer-brand)::after { display:none!important; }
.logo-xwise,.logo-forex,.logo-sub,.form-title { color:var(--xw-green-dark)!important; background:none!important; -webkit-text-fill-color:currentColor!important; }
.neon-line { background:var(--xw-green)!important; box-shadow:none!important; }
.erro { color:#a72c3a!important; background:#fff0f1!important; border-color:#f0c7cd!important; }
.aviso { color:#785a16!important; background:#fff8df!important; border-color:#f0df9d!important; }
