
:root{
  --pro-bg:#f3f6fb;
  --pro-surface:#ffffff;
  --pro-surface-2:#f8fbff;
  --pro-line:#dbe6f3;
  --pro-text:#1f2937;
  --pro-muted:#64748b;
  --pro-primary:#4f7cff;
  --pro-primary-2:#315ee8;
  --pro-sidebar:#3d6df2;
  --pro-sidebar-2:#274ec9;
  --pro-success:#10b981;
  --pro-warn:#f59e0b;
  --pro-danger:#ef4444;
  --pro-shadow:0 12px 30px rgba(15, 23, 42, .08);
  --pro-shadow-soft:0 8px 20px rgba(15, 23, 42, .06);
}
html,body{background:var(--pro-bg)!important;color:var(--pro-text)!important;}
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
#app-wrapper{background:var(--pro-bg)!important;}
.crm-sidebar, aside, nav.crm-sidebar{
  background:linear-gradient(180deg,#ffffff 0%, #f8fafc 100%)!important;
  border-right:1px solid var(--pro-line)!important;
  box-shadow:var(--pro-shadow-soft)!important;
}
.dark .crm-sidebar, .dark aside, .dark nav.crm-sidebar{
  background:linear-gradient(180deg,#0f172a 0%, #111827 100%)!important;
  border-right:1px solid #334155!important;
}
.crm-sidebar *, nav.crm-sidebar *{color:var(--pro-text)!important;}
.dark .crm-sidebar *, .dark nav.crm-sidebar *{color:#e5eefc!important;}
.crm-sidebar .text-slate-500, .crm-sidebar .text-slate-400, .crm-sidebar .dark\:text-slate-400,
.crm-sidebar .dark\:text-slate-500{color:var(--pro-muted)!important;}
.dark .crm-sidebar .text-slate-500, .dark .crm-sidebar .text-slate-400, .dark .crm-sidebar .dark\:text-slate-400,
.dark .crm-sidebar .dark\:text-slate-500{color:#94a3b8!important;}
.crm-sidebar .border-slate-200, .crm-sidebar .border-slate-700, .crm-sidebar .border-slate-100{border-color:var(--pro-line)!important;}
.dark .crm-sidebar .border-slate-200, .dark .crm-sidebar .border-slate-700, .dark .crm-sidebar .border-slate-100{border-color:#334155!important;}
.crm-sidebar a, .crm-sidebar button{border-radius:14px!important; transition:all .2s ease!important;}
.crm-sidebar a:hover, .crm-sidebar button:hover{background:#f8fafc!important; transform:translateX(2px);}
.dark .crm-sidebar a:hover, .dark .crm-sidebar button:hover{background:rgba(255,255,255,.08)!important;}
.crm-sidebar .active, .crm-sidebar a.bg-blue-50, .crm-sidebar button.bg-blue-50{
  background:#eff6ff!important; color:var(--pro-primary-2)!important; box-shadow:0 8px 18px rgba(49,94,232,.08)!important;
}
.dark .crm-sidebar .active, .dark .crm-sidebar a.bg-blue-50, .dark .crm-sidebar button.bg-blue-50{
  background:rgba(59,130,246,.18)!important; color:#93c5fd!important; box-shadow:none!important;
}
.crm-sidebar .active *, .crm-sidebar a.bg-blue-50 *, .crm-sidebar button.bg-blue-50 *{color:var(--pro-primary-2)!important;}
.dark .crm-sidebar .active *, .dark .crm-sidebar a.bg-blue-50 *, .dark .crm-sidebar button.bg-blue-50 *{color:#93c5fd!important;}
main, .crm-main, .page-shell, .content-area{background:var(--pro-bg)!important;}
header:not(#mobile-topbar), .topbar-card, .page-topbar, .content-header{
  background:rgba(255,255,255,.92)!important; backdrop-filter:blur(10px); border:1px solid var(--pro-line)!important;
  box-shadow:var(--pro-shadow-soft)!important; border-radius:18px!important;
}
.bg-white, .dark\:bg-slate-800{background:var(--pro-surface)!important;}
.bg-slate-50, .dark\:bg-slate-700, .dark\:bg-slate-900\/95{background:var(--pro-surface-2)!important;}
.border-slate-200, .border-slate-100, .dark\:border-slate-700, .dark\:border-slate-600, .dark\:border-slate-700\/50{border-color:var(--pro-line)!important;}
.rounded-2xl, .rounded-xl, .rounded-3xl{box-shadow:var(--pro-shadow-soft);}
.card, .dashboard-card, .metric-card, .panel-card,
section.bg-white, div.bg-white.rounded-2xl, div.bg-white.rounded-xl, div.bg-white.rounded-3xl{
  border:1px solid var(--pro-line)!important;
  box-shadow:var(--pro-shadow-soft)!important;
}
.text-slate-900,.text-slate-800,.text-slate-700,.dark\:text-white,.dark\:text-slate-200,.dark\:text-slate-300{color:var(--pro-text)!important;}
.text-slate-600,.text-slate-500,.text-slate-400,.dark\:text-slate-400,.dark\:text-slate-500{color:var(--pro-muted)!important;}
.text-blue-600,.dark\:text-blue-400{color:var(--pro-primary)!important;}
.bg-blue-600,.hover\:bg-blue-700:hover,.bg-blue-500{
  background:linear-gradient(135deg,var(--pro-primary),var(--pro-primary-2))!important;
  border:none!important; color:#fff!important;
}
button, .btn, .btn-primary, a[role="button"]{transition:all .2s ease;}
button:hover, .btn:hover, a[role="button"]:hover{transform:translateY(-1px); box-shadow:0 10px 20px rgba(79,124,255,.2);}
.input-base, input, select, textarea{
  background:#fff!important; border:1px solid var(--pro-line)!important; border-radius:14px!important; color:var(--pro-text)!important;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
}
input:focus, select:focus, textarea:focus{outline:none!important; border-color:rgba(79,124,255,.65)!important; box-shadow:0 0 0 4px rgba(79,124,255,.12)!important;}
.table-wrap table, table{
  border-collapse:separate!important; border-spacing:0!important;
}
table thead th{background:#f7faff!important; color:var(--pro-muted)!important; font-size:11px!important; letter-spacing:.08em; text-transform:uppercase;}
table th, table td{border-bottom:1px solid #eaf0f7!important;}
table tbody tr:hover{background:#f8fbff!important;}
canvas{max-width:100%!important;}
#toast-container > *, .toast{border:1px solid var(--pro-line)!important; box-shadow:var(--pro-shadow)!important;}
.kpi-card, .metric-card{position:relative; overflow:hidden;}
.kpi-card::before, .metric-card::before, div.bg-white.rounded-2xl.p-5::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--pro-primary),#65c7f7);
}
@media (max-width: 768px){
  #app-wrapper{padding-top:72px;}
  .crm-sidebar{border-radius:0!important;}
}


/* ===== Ajustes finos de legibilidade e alinhamento ===== */
html{font-size:16px;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;}
body{line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
button,input,select,textarea{font:inherit;}

.crm-sidebar{display:flex;flex-direction:column;}
.crm-sidebar .nav-btn,
.crm-sidebar .mobile-nav-btn,
.crm-sidebar a.nav-btn,
.crm-sidebar button.nav-btn{
  min-height:42px!important;
  line-height:1.15!important;
  align-items:center!important;
  text-align:left!important;
  white-space:normal!important;
}
.crm-sidebar .menu-caption,
.crm-sidebar .reports-divider + .nav-btn,
.crm-sidebar .reports-divider + .nav-btn + .nav-btn{
  letter-spacing:.04em;
}
.crm-sidebar .menu-caption{color:#94a3b8!important;}
.dark .crm-sidebar .menu-caption{color:rgba(226,232,240,.7)!important;}
.crm-sidebar .reports-divider{height:1px;background:#e2e8f0!important;margin:10px 6px!important;}
.dark .crm-sidebar .reports-divider{background:#334155!important;}

/* Botão de tema e rodapé do menu com contraste correto */
.crm-sidebar .mt-auto .px-4 button,
.crm-sidebar .mt-auto .px-4 button *{
  color:var(--pro-text)!important;
}
.dark .crm-sidebar .mt-auto .px-4 button,
.dark .crm-sidebar .mt-auto .px-4 button *{
  color:#e5eefc!important;
}
.crm-sidebar .mt-auto .px-4 button{
  background:#f8fafc!important;
  border:1px solid var(--pro-line)!important;
}
.dark .crm-sidebar .mt-auto .px-4 button{
  background:rgba(255,255,255,.08)!important;
  border:1px solid #334155!important;
}
.crm-sidebar .mt-auto .px-4 button:hover{
  background:#eef2f7!important;
}
.dark .crm-sidebar .mt-auto .px-4 button:hover{
  background:rgba(255,255,255,.12)!important;
}
.crm-sidebar .sidebar-footer-box{
  background:#f8fafc!important;
  border-color:var(--pro-line)!important;
}
.dark .crm-sidebar .sidebar-footer-box{
  background:rgba(255,255,255,.06)!important;
  border-color:#334155!important;
}
.crm-sidebar .sidebar-footer-box p,
.crm-sidebar .sidebar-footer-box strong,
.crm-sidebar .text-center.pb-4 p,
.crm-sidebar .text-center.pb-4 strong{
  color:var(--pro-text)!important;
  opacity:.96;
}
.dark .crm-sidebar .sidebar-footer-box p,
.dark .crm-sidebar .sidebar-footer-box strong,
.dark .crm-sidebar .text-center.pb-4 p,
.dark .crm-sidebar .text-center.pb-4 strong{
  color:#e5eefc!important;
}

/* Topbar e cabeçalhos com melhor contraste */
#mobile-topbar .text-slate-400,
#mobile-topbar .dark\:text-slate-500,
header .text-slate-400,
header .dark\:text-slate-500{
  color:#64748b!important;
}
.dark #mobile-topbar .text-slate-400,
.dark #mobile-topbar .dark\:text-slate-500,
.dark header .text-slate-400,
.dark header .dark\:text-slate-500{
  color:#94a3b8!important;
}

/* Conteúdo geral */
h1,h2,h3,h4,h5,h6{line-height:1.18;}
p,li,label,td,th,span{line-height:1.4;}
.text-xs{font-size:.75rem!important;line-height:1.25rem!important;}
.text-sm{font-size:.875rem!important;line-height:1.35rem!important;}
.text-base{line-height:1.5rem!important;}

/* Inputs e selects mais legíveis */
.input-base,input,select,textarea{
  min-height:42px;
}
textarea{min-height:110px;}
select{padding-right:2.2rem!important;}

/* Melhor leitura no modo escuro fora da sidebar */
.dark .bg-slate-700,
.dark .bg-slate-800,
.dark .bg-slate-900\/95,
.dark .bg-slate-900{
  color:#e5eefb!important;
}
.dark .text-slate-600,
.dark .text-slate-500,
.dark .text-slate-400{
  color:#aab8cf!important;
}
.dark .border-slate-600,
.dark .border-slate-700,
.dark .border-slate-700\/50{
  border-color:#334155!important;
}


/* ===== Correções de Escala e Ponto ===== */
.ponto-hero{background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 55%,#2563eb 100%)!important;color:#fff!important;border-color:rgba(255,255,255,.08)!important;}
.ponto-hero .text-white\/70{color:rgba(255,255,255,.72)!important;}
.ponto-hero .text-white\/80{color:rgba(255,255,255,.84)!important;}
.ponto-hero h2,.ponto-hero h3,.ponto-hero p,.ponto-hero span{color:#fff!important;}
.ponto-hero [id^="ponto-header-"]{color:#fff!important;}

.ponto-stat-card{background:#ffffff!important;border:1px solid var(--pro-line)!important;}
.ponto-stat-card p:first-child{color:var(--pro-muted)!important;}
.ponto-stat-card h3{color:var(--pro-text)!important;}
.ponto-stat-card h3.text-emerald-600{color:#10b981!important;}
.ponto-stat-card h3.text-amber-600{color:#d97706!important;}
.ponto-stat-card h3.text-blue-600{color:#2563eb!important;}
.ponto-stat-card h3.text-rose-600{color:#e11d48!important;}
.dark .ponto-stat-card{background:#0f172a!important;border-color:#334155!important;}
.dark .ponto-stat-card p:first-child{color:#94a3b8!important;}
.dark .ponto-stat-card h3{color:#f8fafc!important;}
.dark .ponto-stat-card h3.text-emerald-600,.dark .ponto-stat-card h3.dark\:text-emerald-400{color:#34d399!important;}
.dark .ponto-stat-card h3.text-amber-600,.dark .ponto-stat-card h3.dark\:text-amber-400{color:#fbbf24!important;}
.dark .ponto-stat-card h3.text-blue-600,.dark .ponto-stat-card h3.dark\:text-blue-400{color:#60a5fa!important;}
.dark .ponto-stat-card h3.text-rose-600,.dark .ponto-stat-card h3.dark\:text-rose-400{color:#fb7185!important;}

.weekly-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;align-items:stretch;}
.weekly-day{display:flex;flex-direction:column;border:1px solid #e2e8f0;border-radius:20px;background:#fff;min-height:180px;padding:14px;box-shadow:0 6px 18px rgba(15,23,42,.04);}
.weekly-day.today{border-color:#93c5fd;background:linear-gradient(180deg,#eff6ff 0%,#ffffff 100%);}
.dark .weekly-day{background:#0f172a;border-color:#334155;box-shadow:none;}
.dark .weekly-day.today{background:linear-gradient(180deg,rgba(30,64,175,.22) 0%,rgba(15,23,42,.95) 100%);border-color:#3b82f6;}
.weekly-day-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;}
.weekly-day-title{font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#64748b;}
.weekly-day-number{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:#f8fafc;color:#0f172a;font-size:13px;font-weight:900;}
.dark .weekly-day-number{background:#1e293b;color:#f8fafc;}
.weekly-day.today .weekly-day-number{background:#2563eb;color:#fff;}
.weekly-empty{font-size:12px;color:#94a3b8;border:1px dashed #cbd5e1;border-radius:14px;padding:12px;text-align:center;}
.dark .weekly-empty{border-color:#334155;color:#64748b;}
.weekly-shift{border-radius:14px;padding:10px 12px;font-size:11px;font-weight:700;line-height:1.35;margin-bottom:8px;border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;}
.weekly-shift strong{display:block;color:inherit!important;}
.weekly-shift small{display:block;font-size:10px;opacity:.75;margin-top:2px;color:inherit!important;}
.dark .weekly-shift{background:rgba(37,99,235,.14);border-color:rgba(96,165,250,.26);color:#bfdbfe;}
.weekly-legend{display:flex;flex-wrap:wrap;gap:8px;}
.weekly-legend span{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;font-size:11px;font-weight:800;color:#334155;}
.dark .weekly-legend span{background:#0f172a;border-color:#334155;color:#e2e8f0;}
@media (max-width: 1200px){.weekly-board{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 768px){.weekly-board{grid-template-columns:1fr;}.weekly-day{min-height:auto;}}


/* Correção forte de contraste do módulo Ponto */
header.ponto-hero, .ponto-hero{
  background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 55%,#2563eb 100%) !important;
  color:#ffffff !important;
  border-color:rgba(255,255,255,.10) !important;
}
header.ponto-hero *, .ponto-hero *{color:inherit;}
header.ponto-hero .text-white\/70, .ponto-hero .text-white\/70{color:rgba(255,255,255,.72) !important;}
header.ponto-hero .text-white\/80, .ponto-hero .text-white\/80{color:rgba(255,255,255,.84) !important;}
header.ponto-hero h2, header.ponto-hero h3, header.ponto-hero p, header.ponto-hero span,
.ponto-hero h2, .ponto-hero h3, .ponto-hero p, .ponto-hero span,
.ponto-hero [id^="ponto-header-"]{color:#ffffff !important;}
header.ponto-hero .rounded-2xl, .ponto-hero .rounded-2xl{
  background:rgba(255,255,255,.12) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  box-shadow:none !important;
}
header.ponto-hero .rounded-2xl p, header.ponto-hero .rounded-2xl h3, header.ponto-hero .rounded-2xl span,
.ponto-hero .rounded-2xl p, .ponto-hero .rounded-2xl h3, .ponto-hero .rounded-2xl span{color:#ffffff !important;}

.ponto-stat-card, .ponto-stat-card *{color:initial;}
.ponto-stat-card{background:#ffffff !important;border:1px solid var(--pro-line) !important;}
.ponto-stat-card p:first-child{color:var(--pro-muted) !important;}
.ponto-stat-card h3.text-emerald-600{color:#10b981 !important;}
.ponto-stat-card h3.text-amber-600{color:#d97706 !important;}
.ponto-stat-card h3.text-blue-600{color:#2563eb !important;}
.ponto-stat-card h3.text-rose-600{color:#e11d48 !important;}
.ponto-stat-card p.text-xs{color:var(--pro-muted) !important;}
.dark .ponto-stat-card{background:#0f172a !important;border-color:#334155 !important;}
.dark .ponto-stat-card p:first-child,.dark .ponto-stat-card p.text-xs{color:#94a3b8 !important;}
.dark .ponto-stat-card h3.text-emerald-600,.dark .ponto-stat-card h3.dark\:text-emerald-400{color:#34d399 !important;}
.dark .ponto-stat-card h3.text-amber-600,.dark .ponto-stat-card h3.dark\:text-amber-400{color:#fbbf24 !important;}
.dark .ponto-stat-card h3.text-blue-600,.dark .ponto-stat-card h3.dark\:text-blue-400{color:#60a5fa !important;}
.dark .ponto-stat-card h3.text-rose-600,.dark .ponto-stat-card h3.dark\:text-rose-400{color:#fb7185 !important;}
