/* =========================================================
   FisioEvo — Neo Dashboard Theme (clean + soft cards)
   Paleta clara com roxo/azul suave, cartões “glass-like”
   ========================================================= */

:root{
  /* Brand */
  --brand:#6f6af8; --brand-600:#5f58f3; --brand-100:#f3f2ff;
  --mint:#22c1b4;

  /* Neutros */
  --ink-900:#0f172a; --ink-800:#1f2937; --ink-700:#374151;
  --ink-600:#4b5563; --ink-500:#6b7280; --ink-400:#9aa3b2;

  --line:#e9eef5; --bg:#f7f9fc; --panel:#ffffff;

  /* Semânticos */
  --success:#10b981; --warning:#f59e0b; --danger:#ef4444;

  /* Raio & sombras */
  --r-xxl:20px; --r-xl:16px; --r-lg:14px; --r-md:12px;
  --shadow-1:0 10px 24px rgba(15,23,42,.06);
  --shadow-2:0 20px 48px rgba(15,23,42,.08);

  /* Gradientes suaves para “tiles” */
  --tile-1:linear-gradient(180deg,#eef2ff 0%,#ffffff 100%);
  --tile-2:linear-gradient(180deg,#e8fff8 0%,#ffffff 100%);
  --tile-3:linear-gradient(180deg,#fff6e8 0%,#ffffff 100%);

  /* Focus */
  --focus:0 0 0 4px rgba(111,106,248,.16);
}

*{ box-sizing:border-box; }
html,body{ height:100%; }

body{
  background:var(--bg);
  color:var(--ink-800);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  font-family: ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  letter-spacing:.1px;
}

/* Mídia fluida */
img, video, canvas { max-width:100%; height:auto; }

/* Links */
a{ color:var(--brand-600); text-decoration:none; }
a:hover{ color:var(--brand); text-decoration:underline; }

/* Navbar */
.navbar{
  background:var(--panel)!important;
  border-bottom:1px solid var(--line);
}
.navbar-brand{ font-weight:900; color:var(--ink-900)!important; letter-spacing:.2px; }
.navbar .nav-link{ color:var(--ink-600); font-weight:600; }
.navbar .nav-link:hover{ color:var(--ink-900); }

/* Layout grid (opcional p/ dashboard) */
.dashboard{ display:grid; gap:16px; grid-template-columns:260px 1fr; }
@media (max-width: 992px){ .dashboard{ grid-template-columns:1fr; } }

/* Sidebar */
.sidebar{
  background:var(--panel); border:1px solid var(--line);
  border-radius:var(--r-xxl); box-shadow:var(--shadow-1); padding:16px;
}
.sidebar .title{ font-weight:900; color:var(--ink-900); margin-bottom:8px; }
.sidemenu{ list-style:none; padding:0; margin:0; }
.sidemenu li a{
  display:flex; align-items:center; gap:10px;
  color:var(--ink-700); padding:10px 12px;
  border-radius:12px; border:1px solid transparent;
}
.sidemenu li a:hover{ background:#fafafe; border-color:var(--line); }
.sidemenu li a.active{ background:var(--brand-100); border-color:var(--line); color:var(--ink-900); }

/* Título página */
.page-title{
  display:flex; gap:.75rem; align-items:center; justify-content:space-between; margin:0 0 1.25rem;
}
.page-title h4{ font-weight:900; color:var(--ink-900); margin:0; letter-spacing:.2px; }

/* Card base */
.card{
  background:var(--panel); border:1px solid var(--line);
  border-radius:var(--r-xxl); box-shadow:var(--shadow-1);
}
.card:hover{ box-shadow:var(--shadow-2); transition:box-shadow .15s ease; }

/* KPIs */
.kpi{
  display:flex; align-items:center; gap:14px; padding:16px;
  border-radius:var(--r-xxl); border:1px solid var(--line); background:var(--panel);
}
.kpi .icon{
  width:44px; height:44px; border-radius:12px; display:grid; place-items:center;
  color:var(--brand-600); background:var(--brand-100); border:1px solid var(--line); font-size:20px;
}
.kpi .label{ color:var(--ink-500); font-weight:700; }
.kpi .value{ font-size:28px; font-weight:900; color:var(--ink-900); line-height:1; }
.kpi .delta{ font-size:12px; color:var(--ink-500); }

/* Tiles */
.tile{
  border-radius:var(--r-xxl); border:1px solid var(--line);
  box-shadow:var(--shadow-1); background:var(--panel); padding:16px;
}
.tile.-grad-1{ background:var(--tile-1); }
.tile.-grad-2{ background:var(--tile-2); }
.tile.-grad-3{ background:var(--tile-3); }
.tile .tile-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.tile .title{ font-weight:900; color:var(--ink-900); }
.tile .actions{ display:flex; gap:8px; }

/* Botões (desktop base) */
.btn{ border-radius:12px!important; font-weight:800; letter-spacing:.15px; }
.btn i{ margin-right:.4rem; }
.btn-primary{ background:var(--brand); border:1px solid transparent; box-shadow:0 10px 22px rgba(111,106,248,.18); }
.btn-primary:hover{ background:var(--brand-600); }
.btn-outline-secondary{ border:1px solid var(--line); color:var(--ink-700); background:#fff; }
.btn-outline-secondary:hover{ background:#fafafe; border-color:#dde3f3; color:var(--ink-900); }

/* Inputs */
.form-control,.form-select{
  border-radius:12px; border:1px solid var(--line); background:#fff; color:var(--ink-800);
  padding:.6rem .75rem;
}
.form-control:focus,.form-select:focus{ border-color:var(--brand); box-shadow:var(--focus); }
.input-search{
  display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line);
  border-radius:14px; padding:8px 12px;
}
.input-search input{ border:0; outline:0; width:100%; }
.input-search i{ color:var(--ink-400); }

/* Tabelas (SCROLL RESTAURADO) */
.table-wrap{
  background:var(--panel); border:1px solid var(--line);
  border-radius:var(--r-xxl); box-shadow:var(--shadow-1); padding:4px;
}
.table{ --bs-table-bg:transparent; color:var(--ink-800); }
.table thead th{
  background:#fbfbff; border-bottom:1px solid var(--line)!important; color:var(--ink-700); font-weight:800;
}
.table td,.table th{ border-color:var(--line)!important; }
.table-hover tbody tr:hover{ background:#fafafe; }

/* MUITO IMPORTANTE: permitir scroll horizontal em conteúdos largos  */
.table-responsive{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
@media (max-width: 576px){
  /* mantém tabela rolável no eixo x, mas permite quebrar textos longos dentro de células com classe auxiliar */
  .table { white-space: nowrap; }
  .table .text-wrap { white-space: normal; }
}

/* Gráficos */
.chart-box{ position:relative; height:240px; }
@media (max-width:1200px){ .chart-box{ height:230px; } }
@media (max-width:992px){  .chart-box{ height:220px; } }
@media (max-width:576px){  .chart-box{ height:200px; } }

/* Alerts */
.alert{ border:1px solid var(--line); border-radius:12px; }
.alert-success{ background:#ecfdf5; color:#065f46; }
.alert-danger { background:#fef2f2; color:#7f1d1d; }

/* Print */
@media print{
  body{ background:#fff; }
  .card,.kpi,.tile,.table-wrap{ box-shadow:none; }
}

/* =========================================================
   Anti-dark (força tema CLARO em mobile e toggler sempre visível)
   ========================================================= */

:root, html, body { color-scheme: light !important; }
html.dark, body.dark, [data-theme="dark"] {
  background:var(--bg) !important; color:var(--ink-800) !important;
}
html.dark:root, body.dark:root, [data-theme="dark"]:root {
  --bg:#f7f9fc; --panel:#ffffff; --line:#e9eef5;
  --ink-900:#0f172a; --ink-800:#1f2937; --ink-700:#374151; --ink-600:#4b5563;
  --ink-500:#6b7280; --ink-400:#9aa3b2;
  --brand:#6f6af8; --brand-600:#5f58f3; --brand-100:#f3f2ff;
}

/* Navbar sempre clara + toggler preto (visível) */
.navbar { background:var(--panel) !important; border-bottom:1px solid var(--line); }
.navbar .navbar-toggler { border-color:var(--line); }
.navbar .navbar-toggler:focus { box-shadow:var(--focus); }
.navbar .navbar-toggler-icon{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%231f2937' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") !important;
}

/* =========================================================
   AJUSTES DE MOBILE (<= 576px) — botões, KPIs, tiles, títulos
   ========================================================= */
@media (max-width:576px){

  /* Título empilha */
  .page-title{ flex-direction:column; align-items:stretch; gap:.5rem; }
  .page-title > .d-flex{ width:100%; }
  .page-title .btn{ width:100%; }

  /* Botões proporcionais (inclui “new step 3”) */
  .btn{
    border-radius:10px !important;
    font-weight:700;
    padding:.5rem .8rem;
    font-size:.95rem;
    max-width:100%;
  }
  .btn-lg{ padding:.6rem .9rem; font-size:1rem; border-radius:12px !important; }
  /* Se tiver grupos de ações no stepper */
  .step-actions .btn,
  .btn-group > .btn{ flex:1 1 auto; min-width:0; }

  /* KPIs/tiles mais compactos */
  .kpi{ padding:12px; gap:10px; }
  .kpi .icon{ width:36px; height:36px; border-radius:10px; font-size:18px; }
  .kpi .value{ font-size:22px; }
  .kpi .label{ font-size:.8rem; }

  .tile{ padding:12px; }
  .tile .tile-header{ margin-bottom:6px; }
  .tile .actions .btn{ padding:.45rem .7rem; font-size:.9rem; }

  /* Busca compacta */
  .input-search{ padding:6px 10px; border-radius:12px; gap:8px; }
  .input-search .btn{ padding:.45rem .7rem; font-size:.9rem; }

  /* Tabelas: cabeçalho menor */
  .table thead th{ font-size:.9rem; }
  .table td,.table th{ padding:.55rem .5rem !important; }
}
