
:root{
  --app-bg:#f5f7fb;
  --card-bg:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --border:#e5e7eb;
  --sidebar-bg:#0b1220;
  --sidebar-bg-2:#0f172a;
  --sidebar-text:#cbd5e1;
  --sidebar-text-dim:#94a3b8;
  --sidebar-active-bg:rgba(255,255,255,.08);
  --shadow:0 8px 30px rgba(15, 23, 42, .08);
}

html, body{ height:100%; }
body{
  background:var(--app-bg);
  color:var(--text);
}

/* Shell */
.app-shell{
  min-height:100vh;
  display:flex;
}

/* Sidebar */
.app-sidebar{
  width: 264px;
  background: linear-gradient(180deg, var(--sidebar-bg), var(--sidebar-bg-2));
  color: var(--sidebar-text);
  display:flex;
  flex-direction:column;
  padding: 14px 14px 12px;
  position:sticky;
  top:0;
  height:100vh;
  overflow:hidden;
  flex-shrink:0;
}

.sidebar-brand{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 10px 10px 14px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  margin-bottom: 10px;
}
.brand-icon{
  width:44px;
  height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.10);
  color:#e2e8f0;
  font-size: 18px;
  overflow:hidden;
}
.brand-icon--image{
  padding:4px;
  background:rgba(255,255,255,.14);
}
.brand-logo-image{
  width:100%;
  height:100%;
  object-fit:contain;
}
.auth-brand{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
  padding:18px 20px;
  border-radius:20px;
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(248,250,252,.96));
  border:1px solid rgba(148,163,184,.18);
  box-shadow:0 12px 24px rgba(15,23,42,.06);
}
.auth-brand-logo{
  width:64px;
  height:64px;
  object-fit:contain;
  flex-shrink:0;
}
.auth-brand-title{
  font-size:1.45rem;
  font-weight:800;
  letter-spacing:-.02em;
  color:#0f172a;
}
.auth-brand-subtitle{
  margin-top:4px;
  color:var(--muted);
  font-size:.95rem;
}
.brand-title{ font-weight:800; letter-spacing:.2px; }
.brand-subtitle{ color: var(--sidebar-text-dim); font-size: 12px; margin-top:2px; }

.sidebar-brand--logo-only{
  justify-content:center;
  padding: 12px 10px 18px;
}
.brand-icon--sidebar-centered{
  width: 112px;
  height: 112px;
  border-radius: 24px;
  padding: 10px;
  background: transparent;
  box-shadow: none;
}
.brand-logo-image--sidebar{
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.28));
}
.app-offcanvas-header-brand{
  background: linear-gradient(180deg, var(--sidebar-bg), var(--sidebar-bg-2));
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.offcanvas-brand-wrap{
  width: 100%;
  display:flex;
  justify-content:center;
  align-items:center;
}
.offcanvas-brand-logo{
  width: 116px;
  height: 116px;
  object-fit: contain;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.28));
}

.nav-section,
.sidebar-section{
  padding: 10px 10px 6px;
  color: var(--sidebar-text-dim);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.sidebar-nav{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding-right:4px;
  margin-right:-4px;
  scrollbar-width:thin;
  scrollbar-color: rgba(148,163,184,.35) transparent;
}
.sidebar-nav::-webkit-scrollbar{ width:6px; }
.sidebar-nav::-webkit-scrollbar-thumb{
  background: rgba(148,163,184,.28);
  border-radius:999px;
}
.sidebar-nav::-webkit-scrollbar-thumb:hover{
  background: rgba(148,163,184,.42);
}

.sidebar-nav .nav-link{
  display:flex;
  align-items:center;
  gap:10px;
  color: var(--sidebar-text);
  padding: 10px 10px;
  border-radius: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}

.sidebar-nav .nav-link i{ width:18px; text-align:center; opacity:.95; }
.sidebar-nav .nav-link span{ flex:0 0 auto; }
.sidebar-nav .nav-link:hover{ background: rgba(255,255,255,.06); color:#fff; }
.sidebar-nav .nav-link.active,
.sidebar-nav .nav-link[aria-expanded="true"]{ background: var(--sidebar-active-bg); color:#fff; }

.nav-link-sub{
  font-weight: 600;
  padding-left: 34px !important;
  color: var(--sidebar-text-dim) !important;
}
.nav-link-sub:hover{ color:#fff !important; }

.sidebar-divider{
  height:1px;
  margin: 10px 10px;
  background: rgba(255,255,255,.08);
}


.logout-link{ color: var(--sidebar-text); opacity:.9; text-decoration:none; }
.logout-link:hover{ color:#fff; opacity:1; }
/* Footer user pill */
.sidebar-footer{
  margin-top:auto;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.08);
  flex-shrink:0;
}
.user-pill{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 10px;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
}
.user-avatar{
  width:34px; height:34px;
  border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.12);
  font-weight: 800;
}
.user-meta{ flex:1; min-width:0; }
.user-name{ font-weight: 700; font-size: 13px; line-height: 1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-email{ font-size: 12px; color: var(--sidebar-text-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-logout{
  color: var(--sidebar-text);
  text-decoration:none;
  padding: 6px 8px;
  border-radius: 10px;
}
.user-logout:hover{ background: rgba(255,255,255,.10); color:#fff; }

/* Main */
.app-main{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
}
.app-topbar{
  height: 58px;
  display:flex;
  align-items:center;
  gap:12px;
  padding: 0 18px;
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.topbar-title{ font-weight: 800; font-size: 14px; color: var(--muted); }
.app-content{
  padding: 18px;
}

/* Cards look a bit more modern */
.card{
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow);
}
.card .card-header{
  background: transparent;
  border-bottom: 1px solid var(--border);
}

/* Auth shell */
.auth-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 24px;
}
.auth-card{
  width: min(520px, 100%);
}

/* Tables */
.table thead th{
  color: var(--muted);
  font-weight: 700;
}

/* Small helpers */
.badge-soft{
  border-radius: 999px;
  padding: .25rem .6rem;
  font-weight: 700;
}


/* Sidebar quality/responsiveness */
.sidebar-brand,
.sidebar-footer{
  flex-shrink:0;
}

.offcanvas.offcanvas-start{
  width:min(304px, 88vw);
  background: linear-gradient(180deg, var(--sidebar-bg), var(--sidebar-bg-2));
  color: var(--sidebar-text);
}
.offcanvas-header{
  border-bottom:1px solid rgba(255,255,255,.08);
}
.offcanvas-title{
  color:#fff;
  font-weight:800;
}
.offcanvas .btn-close{
  filter:invert(1) grayscale(1);
}
.offcanvas .offcanvas-body{
  overflow-y:auto;
}
.offcanvas .sidebar-nav{
  overflow:visible;
  margin-right:0;
  padding-right:0;
}

@media (max-height: 860px){
  .app-sidebar{
    padding: 12px 12px 10px;
  }
  .sidebar-brand{
    padding: 8px 8px 12px;
    margin-bottom: 8px;
  }
  .sidebar-nav .nav-link{
    padding: 9px 10px;
  }
  .nav-section,
  .sidebar-section{
    padding-top: 8px;
    padding-bottom: 4px;
  }
  .sidebar-footer{
    padding-top: 10px;
  }
}

/* Responsive */
@media (max-width: 991.98px){
  .app-sidebar{ display:none; }
  .app-content{ padding: 14px; }
}


/* Typography + rhythm */
body{
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a{ text-decoration: none; }
a:hover{ text-decoration: none; }

/* Page headings */
.app-content h1, .app-content h2, .app-content h3{
  letter-spacing: -0.01em;
}
.app-content h1{ font-size: 1.55rem; font-weight: 800; margin-bottom: .75rem; }
.app-content h2{ font-size: 1.25rem; font-weight: 800; margin-bottom: .75rem; }
.app-content h3{ font-size: 1.10rem; font-weight: 800; margin-bottom: .75rem; }
.app-content .text-muted{ color: var(--muted) !important; }

/* Cards */
.card{
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, .10);
  box-shadow: 0 8px 30px rgba(15, 23, 42, .06);
}
.card-header{
  background: rgba(15, 23, 42, .02);
  border-bottom: 1px solid rgba(15, 23, 42, .06);
  font-weight: 700;
}

/* Tables */
.table{
  color: var(--text);
}
.table thead th{
  font-size: .80rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(15, 23, 42, .65);
  background: rgba(15, 23, 42, .02);
  border-bottom: 1px solid rgba(15, 23, 42, .08) !important;
}
.table tbody tr:hover{
  background: rgba(15, 23, 42, .02);
}
.table td, .table th{ vertical-align: middle; }

/* Forms */
.form-control, .form-select, .input-group-text{
  border-radius: 12px;
}
.form-control:focus, .form-select:focus{
  border-color: rgba(37, 99, 235, .35);
  box-shadow: 0 0 0 .2rem rgba(37, 99, 235, .15);
}
.input-group-text{
  background: rgba(15, 23, 42, .03);
  border-color: rgba(15, 23, 42, .12);
}

/* Buttons */
.btn{
  border-radius: 12px;
}
.btn-primary{
  background: #2563eb;
  border-color: #2563eb;
}
.btn-primary:hover{
  background: #1d4ed8;
  border-color: #1d4ed8;
}
.btn-outline-secondary{
  border-color: rgba(15, 23, 42, .18);
}
.btn-outline-secondary:hover{
  background: rgba(15, 23, 42, .04);
}

/* Badges / Pills */
.badge, .pill{
  border-radius: 999px;
  font-weight: 700;
}


/* Despesas: padroniza botões de ação (Editar/Excluir) */
.btn-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  padding:.28rem .55rem;
  border-radius:.6rem;
}
.table td .btn-action{ margin:0 .15rem; }


.sidebar-system-note{
  color: var(--sidebar-text-dim);
  font-size: 11px;
  padding: 0 10px 10px;
}

.alert{
  border-radius: 14px;
  box-shadow: 0 4px 18px rgba(15, 23, 42, .06);
}


.page-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:1rem}
.page-header .page-title{margin:0}
.page-subtitle{color:var(--muted);font-size:.92rem}
.filter-card,.table-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:18px;box-shadow:var(--shadow)}
.filter-card{padding:1rem;margin-bottom:1rem}
.table-card{overflow:hidden}
.app-table thead th{white-space:nowrap}
.app-table tbody tr:nth-child(even){background:rgba(15,23,42,.015)}
.app-table .actions-cell{white-space:nowrap;min-width:320px}
.action-group{display:flex;gap:.35rem;justify-content:flex-end;flex-wrap:nowrap;align-items:center}
.action-group .btn{white-space:nowrap}
.btn-icon{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}
.btn-xs{padding:.22rem .5rem;font-size:.8rem;border-radius:10px}
.section-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}
.section-tabs .btn{display:inline-flex;align-items:center;gap:.45rem}
.kpi-card{border-radius:18px;text-align:center;padding:.9rem 1rem;height:100%}
.kpi-card .kpi-label{font-size:.85rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.kpi-card .kpi-value{font-size:1.35rem;font-weight:800;margin-top:.25rem}
.app-alert{position:relative;padding-right:3rem}
.app-alert .alert-icon{width:1.25rem;text-align:center;margin-top:.1rem}
.form-help{font-size:.8rem;color:var(--muted)}
.table-empty{padding:2rem 1rem;text-align:center;color:var(--muted)}
.sort-link{color:inherit;text-decoration:none;display:inline-flex;gap:.35rem;align-items:center}
.sort-link:hover{color:#1d4ed8}
.required-dot{color:#dc2626;font-weight:800}
.input-group .btn{z-index:0}
@media (max-width: 767.98px){.page-header{align-items:flex-start}.action-group{justify-content:flex-start;flex-wrap:wrap}.filter-card,.table-card{border-radius:16px}}


/* ===== Ajuste 2 Fase 5: layout global + responsividade ===== */
body{overflow-x:hidden;}
.app-shell,.app-main,.app-content{width:100%;}
.app-content{
  padding:20px 24px 24px;
}

/* Faz as telas seguirem a largura útil do Dashboard/Backup */
.app-content > .container,
.app-content > .container-sm,
.app-content > .container-md,
.app-content > .container-lg,
.app-content > .container-xl,
.app-content > .container-xxl{
  max-width:none !important;
  width:100%;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

.app-content > .container-fluid{
  max-width:none !important;
  width:100%;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* Padronização geral de cards, filtros e tabelas */
.app-content .card,
.app-content .filter-card,
.app-content .table-card{
  width:100%;
}

.table-responsive{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.app-table{
  min-width:980px;
}

/* Formulários e grids ficam mais fluidos em tablet */
.app-content .row{
  --bs-gutter-x:1rem;
  --bs-gutter-y:1rem;
}

.app-content .btn-icon{
  justify-content:center;
}

/* Coluna de ações: desktop sempre em uma linha */
.app-table .actions-cell{
  min-width:330px;
}

/* Tablet */
@media (max-width: 1199.98px){
  .app-content{
    padding:16px 18px 20px;
  }

  .page-header{
    margin-bottom:.9rem;
  }

  .filter-card{
    padding:.95rem;
  }

  .app-table{
    min-width:900px;
  }
}

/* Mobile e telas menores */
@media (max-width: 991.98px){
  .app-topbar{
    height:54px;
    padding:0 12px;
  }

  .app-content{
    padding:12px;
  }

  .app-content > .container,
  .app-content > .container-sm,
  .app-content > .container-md,
  .app-content > .container-lg,
  .app-content > .container-xl,
  .app-content > .container-xxl,
  .app-content > .container-fluid{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .page-header{
    align-items:flex-start;
    gap:10px;
    margin-bottom:.85rem;
  }

  .page-header > *{
    width:100%;
  }

  .page-header .btn,
  .page-header .btn-icon{
    width:100%;
  }

  .page-subtitle{
    font-size:.88rem;
  }

  .filter-card,
  .table-card,
  .card{
    border-radius:14px;
  }

  .filter-card{
    padding:.85rem;
  }

  .section-tabs{
    gap:.4rem;
  }

  .section-tabs .btn{
    flex:1 1 calc(50% - .4rem);
    justify-content:center;
  }

  .action-group{
    justify-content:flex-start;
    flex-wrap:wrap;
  }

  .app-table{
    min-width:860px;
  }
}

@media (max-width: 575.98px){
  .app-content{
    padding:10px;
  }

  .app-content h1{font-size:1.3rem;}
  .app-content h2{font-size:1.15rem;}
  .app-content h3{font-size:1.02rem;}

  .filter-card,
  .table-card,
  .card{
    border-radius:12px;
  }

  .filter-card{
    padding:.75rem;
  }

  .filter-card .d-flex.flex-wrap.gap-2,
  .filter-card .d-flex.gap-2,
  .filter-card .d-flex.gap-2.flex-wrap{
    width:100%;
  }

  .filter-card .d-flex.flex-wrap.gap-2 > .btn,
  .filter-card .d-flex.gap-2 > .btn,
  .filter-card .d-flex.gap-2.flex-wrap > .btn,
  .filter-card .d-flex.flex-wrap.gap-2 > a.btn,
  .filter-card .d-flex.gap-2 > a.btn,
  .filter-card .d-flex.gap-2.flex-wrap > a.btn{
    flex:1 1 100%;
  }

  .section-tabs .btn{
    flex:1 1 100%;
  }

  .app-alert{
    padding-right:2.5rem;
  }
}


/* Ajuste 3 - agenda e categorias */
.agenda-week-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.agenda-week-range,
.agenda-week-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.agenda-week-range .btn,
.agenda-week-actions .btn {
  white-space: nowrap;
}

@media (max-width: 768px) {
  .agenda-week-toolbar {
    align-items: stretch;
  }
  .agenda-week-range,
  .agenda-week-actions {
    width: 100%;
  }
}


/* Ajuste fino despesas */
.expense-kpi-row{margin-bottom:1rem;}
.expense-list-toolbar{
  display:grid;
  grid-template-columns:minmax(240px,auto) minmax(360px,1fr) minmax(260px,auto);
  align-items:center;
  gap:.9rem;
  margin-top:1rem;
  margin-bottom:.75rem;
}
.expense-list-toolbar__left,
.expense-list-toolbar__right,
.expense-inline-category-form{
  display:flex;
  align-items:center;
  gap:.65rem;
  flex-wrap:wrap;
}
.expense-list-toolbar__right{justify-content:flex-end;}
.expense-inline-category-form{justify-content:center;margin:0;}
.expense-inline-category-form .form-control{min-width:220px;max-width:320px;}
.expenses-table{min-width:1080px;}
.expenses-table .btn-group{display:inline-flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end;}
.expenses-table .btn-group form{display:inline-flex!important;}
.expense-categories-table{min-width:520px;}
.expense-category-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;}
@media (max-width: 1199.98px){
  .expense-list-toolbar{grid-template-columns:1fr;align-items:stretch;}
  .expense-list-toolbar__left,
  .expense-list-toolbar__right,
  .expense-inline-category-form{justify-content:flex-start;}
}
@media (max-width: 767.98px){
  .expenses-table{display:block;min-width:0;}
  .expenses-table thead{display:none;}
  .expenses-table tbody{display:grid;gap:.85rem;padding:.15rem 0 .85rem;}
  .expenses-table tr{
    display:block;
    border:1px solid rgba(148,163,184,.18);
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
    overflow:hidden;
  }
  .expenses-table tbody td{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.72rem .9rem;
    border:0;
    border-bottom:1px solid rgba(226,232,240,.86);
    white-space:normal;
    text-align:right!important;
  }
  .expenses-table tbody td::before{
    content:attr(data-label);
    flex:0 0 94px;
    text-align:left;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#64748b;
  }
  .expenses-table tbody td:nth-child(3){
    display:block;
    text-align:left!important;
    padding:1rem;
  }
  .expenses-table tbody td:nth-child(3)::before{display:none;}
  .expenses-table tbody td:last-child{border-bottom:0;}
  .expenses-table tbody td[colspan]{
    display:block;
    text-align:center!important;
  }
  .expenses-table tbody td[colspan]::before{display:none;}
  .expenses-table .btn-group{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.5rem;
    width:100%;
  }
  .expenses-table .btn-group .btn,
  .expenses-table .btn-group form{width:100%;}
  .expenses-table .btn-group .btn{
    min-height:38px;
    white-space:normal;
  }
  .expense-categories-table{display:block;min-width:0;}
  .expense-categories-table thead{display:none;}
  .expense-categories-table tbody{display:grid;gap:.65rem;padding:.2rem 0 .85rem;}
  .expense-categories-table tr{
    display:block;
    border:1px solid rgba(148,163,184,.18);
    border-radius:14px;
    background:#fff;
    overflow:hidden;
  }
  .expense-categories-table tbody td{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.65rem .75rem;
    border:0;
    border-bottom:1px solid rgba(226,232,240,.86);
    white-space:normal;
    text-align:right!important;
  }
  .expense-categories-table tbody td::before{
    content:attr(data-label);
    flex:0 0 72px;
    text-align:left;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#64748b;
  }
  .expense-categories-table tbody td:last-child{border-bottom:0;}
  .expense-categories-table tbody td[colspan]{
    display:block;
    text-align:center!important;
  }
  .expense-categories-table tbody td[colspan]::before{display:none;}
  .expense-category-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.5rem;
    width:100%;
  }
  .expense-category-actions .btn{width:100%;min-height:36px;}
}
@media (max-width: 575.98px){
  .expense-list-toolbar .btn,
  .expense-inline-category-form .form-control{width:100%;}
  .expenses-table tbody td{
    display:block;
    text-align:left!important;
  }
  .expenses-table tbody td::before{
    display:block;
    margin-bottom:.2rem;
  }
  .expenses-table .btn-group{grid-template-columns:1fr;}
  .expense-categories-table tbody td{
    display:block;
    text-align:left!important;
  }
  .expense-categories-table tbody td::before{
    display:block;
    margin-bottom:.2rem;
  }
  .expense-category-actions{grid-template-columns:1fr;}
}


/* Sidebar user pill verde */
.user-pill{
  background: linear-gradient(180deg, rgba(34,197,94,.28), rgba(22,163,74,.22));
  border: 1px solid rgba(34,197,94,.35);
}
.user-pill:hover{
  background: linear-gradient(180deg, rgba(34,197,94,.34), rgba(21,128,61,.28));
}
.user-avatar{
  background: rgba(15,23,42,.28);
  color:#ffffff;
}
.user-name, .logout-link{
  color:#ffffff;
}
.user-email{
  color: rgba(220,252,231,.92);
}
.logout-link:hover{
  color:#dcfce7;
}

/* ===== 2026-04-05 | Enterprise Clean Premium foundation ===== */
:root{
  --app-bg: #f4f7fb;
  --app-surface: #ffffff;
  --app-surface-alt: #f8fafc;
  --app-surface-soft: #f1f5f9;
  --app-primary: #1d4ed8;
  --app-primary-strong: #1e3a8a;
  --app-primary-soft: #dbeafe;
  --app-text: #0f172a;
  --app-text-soft: #475569;
  --app-border: rgba(15, 23, 42, .09);
  --app-border-strong: rgba(15, 23, 42, .14);
  --app-shadow-sm: 0 8px 24px rgba(15, 23, 42, .04);
  --app-shadow-md: 0 18px 45px rgba(15, 23, 42, .06);
  --app-radius-lg: 22px;
  --app-radius-md: 18px;
  --app-radius-sm: 14px;
  --bs-primary: #1d4ed8;
  --bs-primary-rgb: 29,78,216;
  --bs-success: #16a34a;
  --bs-success-rgb: 22,163,74;
  --bs-warning: #d97706;
  --bs-warning-rgb: 217,119,6;
  --bs-danger: #dc2626;
  --bs-danger-rgb: 220,38,38;
  --bs-info: #0891b2;
  --bs-info-rgb: 8,145,178;
}

body{
  background:
    radial-gradient(circle at top left, rgba(219,234,254,.65), transparent 26%),
    linear-gradient(180deg, #f8fbff 0%, #f4f7fb 48%, #f6f8fc 100%);
  color: var(--app-text);
}

.app-topbar{
  height: 68px;
  padding: 0 24px;
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(148, 163, 184, .18);
  box-shadow: 0 6px 18px rgba(15, 23, 42, .03);
  position: sticky;
  top: 0;
  z-index: 20;
}

.app-content{
  padding: 24px 28px 28px;
}

.app-content > .container,
.app-content > .container-fluid{
  margin-top: 0 !important;
}

.app-content .container,
.app-content .container-fluid{
  max-width: none;
}

.page-header{
  margin-bottom: 1.25rem;
  padding: 1.35rem 1.5rem;
  background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.78));
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: var(--app-radius-lg);
  box-shadow: var(--app-shadow-sm);
}

.page-title,
.page-header .page-title,
.app-content h1.page-title,
.app-content h2.page-title{
  margin: 0;
  color: var(--app-text);
  font-size: clamp(1.35rem, 1.05rem + 1vw, 1.9rem);
  font-weight: 800;
  letter-spacing: -.03em;
}

.page-subtitle{
  margin-top: .4rem;
  color: var(--app-text-soft);
  font-size: .95rem;
  max-width: 76ch;
  line-height: 1.55;
}

.card,
.table-card,
.filter-card{
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(255,255,255,.985));
  border: 1px solid rgba(148, 163, 184, .15);
  border-radius: var(--app-radius-lg);
  box-shadow: var(--app-shadow-sm);
}

.card:hover,
.table-card:hover,
.filter-card:hover{
  box-shadow: var(--app-shadow-md);
}

.filter-card,
.table-card{
  overflow: hidden;
}

.filter-card{
  padding: 1.2rem 1.25rem;
}

.table-card{
  padding: 0;
}

.table-card > .table-responsive,
.table-card > .table,
.table-card > .p-4,
.table-card > .p-3{
  position: relative;
}

.card .card-header{
  padding: 1rem 1.25rem 0;
  background: transparent;
  border-bottom: 0;
}

.card .card-body{
  padding: 1.2rem 1.25rem 1.25rem;
}

.form-label{
  color: var(--app-text);
  font-size: .87rem;
  font-weight: 700;
  letter-spacing: .01em;
  margin-bottom: .45rem;
}

.form-control,
.form-select,
.input-group-text,
textarea.form-control{
  min-height: 46px;
  border-radius: 14px;
  border-color: rgba(148, 163, 184, .42);
  background: rgba(248,250,252,.9);
  color: var(--app-text);
  box-shadow: none;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

textarea.form-control{
  min-height: 110px;
}

.form-control::placeholder,
.form-select,
textarea.form-control::placeholder{
  color: #94a3b8;
}

.form-control:hover,
.form-select:hover,
textarea.form-control:hover{
  border-color: rgba(100, 116, 139, .55);
  background: #fff;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus{
  background: #fff;
  border-color: rgba(29, 78, 216, .48);
  box-shadow: 0 0 0 .22rem rgba(37, 99, 235, .11);
}

.form-check-input{
  width: 1.05rem;
  height: 1.05rem;
  margin-top: .18rem;
  border-color: rgba(148,163,184,.75);
}

.form-check-input:checked{
  background-color: var(--app-primary);
  border-color: var(--app-primary);
}

.btn{
  min-height: 44px;
  border-radius: 14px;
  font-weight: 700;
  letter-spacing: -.01em;
  padding: .62rem 1rem;
  box-shadow: none;
}

.btn-sm{
  min-height: 36px;
  border-radius: 12px;
  padding: .42rem .78rem;
}

.btn-primary,
.btn-success{
  color: #fff;
}

.btn-primary{
  background: linear-gradient(180deg, #2563eb, #1d4ed8);
  border-color: #1d4ed8;
  box-shadow: 0 10px 22px rgba(37, 99, 235, .18);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active{
  background: linear-gradient(180deg, #1d4ed8, #1e40af);
  border-color: #1e40af;
}

.btn-success{
  background: linear-gradient(180deg, #16a34a, #15803d);
  border-color: #15803d;
  box-shadow: 0 10px 22px rgba(22, 163, 74, .16);
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active{
  background: linear-gradient(180deg, #15803d, #166534);
  border-color: #166534;
}

.btn-secondary,
.btn-outline-secondary,
.btn-outline-primary,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-dark{
  background: rgba(255,255,255,.78);
}

.btn-secondary{
  background: linear-gradient(180deg, #64748b, #475569);
  border-color: #475569;
}

.btn-outline-secondary,
.btn-outline-primary,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-dark{
  border-width: 1px;
}

.btn-outline-secondary{
  color: #334155;
  border-color: rgba(148,163,184,.7);
}
.btn-outline-secondary:hover{ background: #eef2f7; color:#0f172a; border-color: rgba(100,116,139,.75); }

.btn-outline-primary{ color:#1d4ed8; border-color: rgba(37,99,235,.28); }
.btn-outline-primary:hover{ background: rgba(219,234,254,.75); color:#1e3a8a; border-color: rgba(37,99,235,.45); }

.btn-outline-success{ color:#15803d; border-color: rgba(22,163,74,.26); }
.btn-outline-success:hover{ background: rgba(220,252,231,.82); color:#166534; border-color: rgba(22,163,74,.4); }

.btn-outline-danger{ color:#dc2626; border-color: rgba(220,38,38,.24); }
.btn-outline-danger:hover{ background: rgba(254,226,226,.9); color:#991b1b; border-color: rgba(220,38,38,.4); }

.btn-outline-dark{ color:#0f172a; border-color: rgba(15,23,42,.14); }
.btn-outline-dark:hover{ background: rgba(226,232,240,.8); color:#020617; border-color: rgba(15,23,42,.26); }

.badge{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 30px;
  padding: .38rem .8rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.badge.text-bg-success,
.badge.bg-success{
  background: rgba(220,252,231,.95) !important;
  color: #166534 !important;
  border: 1px solid rgba(134, 239, 172, .85);
}

.badge.text-bg-secondary,
.badge.bg-secondary{
  background: rgba(226,232,240,.95) !important;
  color: #334155 !important;
  border: 1px solid rgba(203,213,225,.95);
}

.badge.text-bg-dark,
.badge.bg-dark{
  background: rgba(15,23,42,.92) !important;
  color: #fff !important;
}

.badge.bg-primary,
.badge.text-bg-primary{
  background: rgba(219,234,254,.92) !important;
  color: #1e3a8a !important;
  border: 1px solid rgba(147,197,253,.75);
}

.table{
  margin-bottom: 0;
}

.table thead th{
  position: sticky;
  top: 0;
  z-index: 1;
  padding: .95rem 1rem;
  background: linear-gradient(180deg, #f8fafc, #f1f5f9);
  color: #475569;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(148,163,184,.28) !important;
}

.table tbody td{
  padding: .95rem 1rem;
  border-color: rgba(226,232,240,.9);
}

.table tbody tr:nth-child(even){
  background: rgba(248,250,252,.62);
}

.table tbody tr:hover{
  background: rgba(219,234,254,.18);
}

.app-table .actions-cell{
  min-width: 350px;
}

.action-group{
  gap: .5rem;
}

.alert{
  border: 0;
  background: #fff;
  box-shadow: var(--app-shadow-sm);
}

.alert-success{ border-left: 4px solid #16a34a; }
.alert-warning{ border-left: 4px solid #d97706; }
.alert-danger{ border-left: 4px solid #dc2626; }
.alert-info{ border-left: 4px solid #0891b2; }

.text-muted,
.page-subtitle,
.kpi-card .kpi-label,
.kpi-card .kpi-subvalue,
.form-text,
.form-help{
  color: var(--app-text-soft) !important;
}

.display-6{
  font-size: clamp(1.9rem, 1.55rem + .9vw, 2.4rem);
  line-height: 1;
  letter-spacing: -.04em;
}

.app-content .row > [class*="col-"] > .table-card.p-3,
.app-content .row > [class*="col-"] > .table-card.p-4{
  height: 100%;
}

.offcanvas .sidebar-nav .nav-link{
  margin-bottom: .2rem;
}

@media (max-width: 1199.98px){
  .app-topbar{ padding: 0 18px; }
  .app-content{ padding: 20px; }
  .page-header{ padding: 1.15rem 1.2rem; }
}

@media (max-width: 991.98px){
  .app-topbar{
    height: 60px;
    padding: 0 12px;
  }
  .app-content{
    padding: 14px;
  }
  .page-header{
    padding: 1rem 1rem;
    border-radius: 18px;
  }
  .page-header .btn,
  .page-header .btn-icon{
    width: auto;
  }
  .table thead th{
    padding: .82rem .85rem;
  }
  .table tbody td{
    padding: .82rem .85rem;
  }
}

@media (max-width: 767.98px){
  .page-header{
    gap: .9rem;
  }
  .page-header > div:last-child,
  .page-header > .d-flex{
    width: 100%;
  }
  .page-header .d-flex.gap-2,
  .page-header .d-flex.flex-wrap{
    width: 100%;
  }
  .page-header .d-flex.gap-2 > .btn,
  .page-header .d-flex.flex-wrap > .btn,
  .page-header .d-flex.flex-wrap > a.btn{
    flex: 1 1 100%;
    justify-content: center;
  }
  .filter-card{
    padding: 1rem;
  }
  .app-table{
    min-width: 780px;
  }
}

@media (max-width: 575.98px){
  .app-content{
    padding: 10px;
  }
  .page-header{
    padding: .95rem;
    border-radius: 16px;
  }
  .page-title,
  .page-header .page-title{
    font-size: 1.28rem;
  }
  .page-subtitle{
    font-size: .9rem;
  }
  .filter-card,
  .table-card,
  .card{
    border-radius: 16px;
  }
  .btn{
    width: 100%;
  }
}


/* ===== 2026-04-05 | Módulo Pacientes ===== */
.eyebrow-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border-radius:999px;background:rgba(29,78,216,.10);color:#1e40af;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.75rem}
.patients-page .page-header{align-items:flex-start}
.patients-header-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.patients-summary-row{margin-top:-.1rem}
.patient-stat-card{height:100%;display:flex;align-items:center;gap:1rem;padding:1.1rem 1.15rem;border-radius:20px;border:1px solid rgba(148,163,184,.16);background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.84));box-shadow:var(--app-shadow-sm)}
.patient-stat-card--total{background:linear-gradient(180deg,rgba(219,234,254,.75),rgba(255,255,255,.96))}
.patient-stat-card--active{background:linear-gradient(180deg,rgba(220,252,231,.9),rgba(255,255,255,.96))}
.patient-stat-card--inactive{background:linear-gradient(180deg,rgba(254,242,242,.95),rgba(255,255,255,.96))}
.patient-stat-icon{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:#0f172a;background:rgba(255,255,255,.82);border:1px solid rgba(148,163,184,.16)}
.patient-stat-label{font-size:.82rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--app-text-soft)}
.patient-stat-value{margin-top:.2rem;font-size:1.7rem;font-weight:800;color:var(--app-text);line-height:1}
.patients-filter-card,.patients-table-card,.patient-form-card{border-radius:22px;border:1px solid rgba(148,163,184,.16);box-shadow:var(--app-shadow-sm);background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.92))}
.filter-card-header,.table-card-header,.patient-form-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.filter-card-header h3,.table-card-header h3,.patient-form-section-header h3{margin:0;font-size:1.02rem;font-weight:800;color:var(--app-text)}
.filter-card-header p,.table-card-header p,.patient-form-section-header p{margin:.35rem 0 0;color:var(--app-text-soft);font-size:.92rem;line-height:1.5}
.patients-filter-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}
.table-card-header{padding:1.15rem 1.2rem 0}
.patients-table-card .table-responsive{padding:0 1rem 1rem}
.patients-table{min-width:1180px}
.patients-table th,.patients-table td{white-space:nowrap}
.patients-table .actions-cell{min-width:360px}
.patients-table .action-group{display:flex;gap:.45rem;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.patients-table .action-group .btn{width:auto;min-height:34px;justify-content:center;line-height:1.15}
.patient-row-main{display:flex;align-items:center;gap:.85rem;min-width:250px}
.patient-avatar{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#dbeafe,#bfdbfe);color:#1e3a8a;font-weight:800;flex-shrink:0;border:1px solid rgba(59,130,246,.16)}
.patient-name{font-weight:800;color:var(--app-text)}
.patient-meta{font-size:.82rem;color:var(--app-text-soft);margin-top:.1rem;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.patient-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .78rem;font-size:.78rem;border:1px solid transparent}
.patient-badge--active{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.patient-badge--inactive{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
.patients-empty-state{display:flex;align-items:center;justify-content:center;gap:.85rem;color:var(--app-text-soft);padding:1.5rem 0}
.patients-empty-state i{font-size:1.5rem;color:#94a3b8}
.patient-form-shell .form-label{font-weight:700;color:var(--app-text);margin-bottom:.45rem}
.patient-form-shell .form-control,.patient-form-shell .form-select{min-height:48px;border-color:rgba(148,163,184,.28);background:#fff}
.patient-form-shell .form-control[readonly]{background:rgba(248,250,252,.9)}
.patient-form-card .card-body{padding:1.4rem 1.45rem!important}
.patient-form-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem 0 .25rem}
.patient-form-actions-right{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}
.patient-form-hero,.patients-hero{position:relative;overflow:hidden}
.patient-form-hero::after,.patients-hero::after{content:"";position:absolute;inset:auto -40px -40px auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(219,234,254,.85),transparent 70%);pointer-events:none}
@media (max-width: 1199.98px){.patients-table{min-width:1120px}.patients-table .actions-cell{min-width:320px}}
@media (max-width: 991.98px){.patients-header-actions,.patients-filter-actions,.patient-form-actions,.patient-form-actions-right{width:100%}.patients-header-actions .btn,.patients-filter-actions .btn,.patient-form-actions .btn,.patient-form-actions-right .btn{flex:1 1 100%}.patient-stat-value{font-size:1.5rem}.patients-table-card .table-responsive{padding:0 .85rem .85rem}.patients-table{min-width:1060px}.patients-table .action-group .btn{padding-left:.55rem;padding-right:.55rem}}
@media (max-width: 767.98px){.patient-stat-card{padding:1rem}.patient-row-main{min-width:0}.table-card-header{padding:1rem 1rem 0}.patient-form-card .card-body{padding:1.1rem!important}.patients-table-card{overflow:visible}.patients-table-card .table-responsive{padding:.2rem .85rem 1rem;overflow:visible}.patients-table{display:block;min-width:0}.patients-table thead{display:none}.patients-table tbody{display:grid;gap:.85rem}.patients-table tr{display:block;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(15,23,42,.06);overflow:hidden}.patients-table tbody td{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:0;border-bottom:1px solid rgba(226,232,240,.86);white-space:normal;text-align:right!important}.patients-table tbody td::before{content:attr(data-label);flex:0 0 110px;text-align:left;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.patients-table tbody td:first-child{display:block;text-align:left!important;padding:1rem}.patients-table tbody td:first-child::before{display:none}.patients-table tbody td:last-child{border-bottom:0}.patients-table .actions-cell{min-width:0}.patients-table .action-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;width:100%;justify-content:stretch}.patients-table .action-group .btn{width:100%;min-height:38px;white-space:normal}.patient-meta{max-width:100%;white-space:normal}.patient-badge{justify-content:center}}
@media (max-width: 575.98px){.patients-filter-card .row{--bs-gutter-y:.85rem}.filter-card-header,.table-card-header{gap:.65rem}.filter-card-header p,.table-card-header p{font-size:.86rem}.patients-summary-row{--bs-gutter-y:.75rem}.patient-stat-icon{width:42px;height:42px;border-radius:14px}.patient-stat-value{font-size:1.35rem}.patients-table-card .table-responsive{padding:.15rem .65rem .85rem}.patients-table tbody td{display:block;text-align:left!important;padding:.72rem .9rem}.patients-table tbody td::before{display:block;margin-bottom:.2rem}.patients-table .action-group{grid-template-columns:1fr 1fr}.patients-table .action-group .btn{font-size:.82rem}.patient-row-main{align-items:flex-start}.patient-avatar{width:40px;height:40px;border-radius:13px}}


/* Users module */
.users-page,
.users-form-page{ padding-bottom: 10px; }
.users-hero{
  background: linear-gradient(135deg, rgba(29,78,216,.10), rgba(14,165,233,.08));
  border: 1px solid rgba(59,130,246,.10);
  border-radius: 24px;
  padding: 22px 24px;
  margin-bottom: 1.5rem;
  align-items: flex-start;
}
.users-form-hero{ margin-bottom: 1.25rem; }
.users-header-actions{ display:flex; gap:.75rem; flex-wrap:wrap; }
.users-summary-row{ margin-bottom: 1rem; }
.user-stat-card{
  min-height: 126px;
  border-radius: 20px;
  border: 1px solid rgba(148,163,184,.18);
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 16px 34px rgba(15, 23, 42, .08);
  padding: 1.25rem;
  display:flex;
  align-items:center;
  gap: 1rem;
}
.user-stat-card--total .user-stat-icon{ background: rgba(29,78,216,.12); color:#1d4ed8; }
.user-stat-card--professional .user-stat-icon{ background: rgba(8,145,178,.12); color:#0891b2; }
.user-stat-card--link .user-stat-icon{ background: rgba(124,58,237,.12); color:#7c3aed; }
.user-stat-card--inactive .user-stat-icon{ background: rgba(220,38,38,.12); color:#dc2626; }
.user-stat-icon{
  width: 56px;
  height: 56px;
  border-radius: 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 1.2rem;
  flex-shrink:0;
}
.user-stat-label{ color: var(--muted); font-size: .92rem; margin-bottom: .2rem; }
.user-stat-value{ font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; line-height: 1; }
.users-insight-card{ padding: 1.25rem; }
.users-role-grid{ margin-top: .25rem; }
.users-role-item{
  height: 100%;
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 18px;
  padding: 1rem;
  background: linear-gradient(180deg, rgba(248,250,252,.95), rgba(255,255,255,1));
}
.users-role-item-header{ display:flex; align-items:center; gap:.75rem; margin-bottom: .5rem; }
.users-role-item-icon{
  width: 38px; height: 38px; border-radius: 12px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(29,78,216,.10); color:#1d4ed8;
}
.users-role-item-text{ color: var(--muted); font-size: .92rem; }
.users-quick-list{ display:grid; gap:.75rem; }
.users-quick-item{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding: .85rem 1rem; border-radius: 16px;
  border:1px solid rgba(148,163,184,.18); background:#fff;
}
.users-quick-item strong{ font-size:1.05rem; }
.users-quick-item--accent{ background: rgba(29,78,216,.06); border-color: rgba(29,78,216,.16); }
.users-quick-item--warning{ background: rgba(245,158,11,.10); border-color: rgba(245,158,11,.22); }
.users-quick-item--ok{ background: rgba(22,163,74,.10); border-color: rgba(22,163,74,.18); }
.users-table-card{ overflow:hidden; }
.user-row-main{ display:flex; align-items:center; gap:.85rem; }
.user-avatar-badge{
  width: 42px; height: 42px; border-radius: 14px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, rgba(29,78,216,.16), rgba(14,165,233,.14));
  color:#1e3a8a; font-weight:800; flex-shrink:0;
}
.user-row-name{ font-weight: 700; color: var(--text); }
.user-row-meta,
.user-linked-meta{ color: var(--muted); font-size: .88rem; }
.user-linked-name,
.user-clinic-name{ font-weight: 600; }
.users-role-badge,
.users-status-badge{
  display:inline-flex; align-items:center; gap:.35rem; font-weight:700;
  border-radius:999px; padding:.5rem .8rem; border:1px solid transparent;
}
.users-role-badge--gestor{ background: rgba(29,78,216,.10); color:#1d4ed8; border-color: rgba(29,78,216,.16); }
.users-role-badge--financeiro{ background: rgba(2,132,199,.10); color:#0369a1; border-color: rgba(2,132,199,.16); }
.users-role-badge--recepcao{ background: rgba(124,58,237,.10); color:#6d28d9; border-color: rgba(124,58,237,.16); }
.users-role-badge--profissional{ background: rgba(22,163,74,.10); color:#15803d; border-color: rgba(22,163,74,.16); }
.users-role-badge--administrativo{ background: rgba(217,119,6,.10); color:#b45309; border-color: rgba(217,119,6,.16); }
.users-role-badge--neutro{ background: rgba(100,116,139,.10); color:#475569; border-color: rgba(100,116,139,.16); }
.users-status-badge--active{ background: rgba(22,163,74,.10); color:#15803d; border-color: rgba(22,163,74,.16); }
.users-status-badge--inactive{ background: rgba(220,38,38,.10); color:#b91c1c; border-color: rgba(220,38,38,.16); }
.users-table{ min-width: 1060px; }
.users-table .actions-cell{ min-width: 280px; }
.users-table .action-group{ display:flex; gap:.45rem; flex-wrap:wrap; align-items:center; }
.users-table .action-group form{ display:inline-flex!important; }
.users-form-shell{ max-width: 1160px; }
.users-form-card{ border-radius: 22px; }
.users-form-section-header{ display:flex; justify-content:space-between; gap:1rem; margin-bottom: 1.25rem; }
.users-form-section-header h3{ margin:0 0 .25rem; font-size:1.05rem; font-weight: 800; }
.users-form-section-header p{ margin:0; color: var(--muted); }
.users-form-actions{ display:flex; justify-content:flex-end; gap:1rem; flex-wrap:wrap; }
.users-form-actions-right{ display:flex; gap:.75rem; flex-wrap:wrap; }
@media (max-width: 991.98px){
  .users-hero{ padding: 18px; }
}
@media (max-width: 767.98px){
  .users-header-actions,
  .users-form-actions-right{ width:100%; }
  .users-header-actions .btn,
  .users-form-actions-right .btn{ width:100%; justify-content:center; }
  .users-hero{ border-radius: 20px; }
  .user-stat-card{ min-height: auto; }
  .users-table-card .table-responsive{ overflow:visible; padding:.2rem .85rem 1rem; }
  .users-table{ display:block; min-width:0; }
  .users-table thead{ display:none; }
  .users-table tbody{ display:grid; gap:.85rem; }
  .users-table tr{
    display:block;
    border:1px solid rgba(148,163,184,.18);
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
    overflow:hidden;
  }
  .users-table tbody td{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.75rem 1rem;
    border:0;
    border-bottom:1px solid rgba(226,232,240,.86);
    white-space:normal;
    text-align:right!important;
  }
  .users-table tbody td::before{
    content:attr(data-label);
    flex:0 0 98px;
    text-align:left;
    color:#64748b;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .users-table tbody td:first-child{
    display:block;
    text-align:left!important;
    padding:1rem;
  }
  .users-table tbody td:first-child::before{ display:none; }
  .users-table tbody td:last-child{ border-bottom:0; }
  .users-table tbody td[colspan]{
    display:block;
    text-align:center!important;
  }
  .users-table tbody td[colspan]::before{ display:none; }
  .users-table .actions-cell{ min-width:0; }
  .users-table .action-group{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.5rem;
    width:100%;
    justify-content:stretch!important;
  }
  .users-table .action-group .btn,
  .users-table .action-group form{ width:100%; }
  .users-table .action-group .btn{
    min-height:38px;
    white-space:normal;
  }
}
@media (max-width: 575.98px){
  .users-table-card .table-responsive{ padding:.15rem .65rem .85rem; }
  .users-table tbody td{
    display:block;
    text-align:left!important;
  }
  .users-table tbody td::before{
    display:block;
    margin-bottom:.2rem;
  }
  .users-table .action-group{ grid-template-columns:1fr; }
}

/* Professional list */
.professional-table{ min-width:1180px; }
.professional-table .actions-cell{ min-width:280px; }
.professional-table .action-group{ display:flex; gap:.45rem; flex-wrap:wrap; align-items:center; }
.professional-table .action-group form{ display:inline-flex!important; }
@media (max-width: 767.98px){
  .professional-table{ display:block; min-width:0; }
  .professional-table thead{ display:none; }
  .professional-table tbody{ display:grid; gap:.85rem; padding:.2rem .85rem 1rem; }
  .professional-table tr{
    display:block;
    border:1px solid rgba(148,163,184,.18);
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
    overflow:hidden;
  }
  .professional-table tbody td{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.75rem 1rem;
    border:0;
    border-bottom:1px solid rgba(226,232,240,.86);
    white-space:normal;
    text-align:right!important;
  }
  .professional-table tbody td::before{
    content:attr(data-label);
    flex:0 0 100px;
    text-align:left;
    color:#64748b;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .professional-table tbody td:first-child{
    display:block;
    text-align:left!important;
    padding:1rem;
  }
  .professional-table tbody td:first-child::before{ display:none; }
  .professional-table tbody td:last-child{ border-bottom:0; }
  .professional-table tbody td[colspan]{
    display:block;
    text-align:center!important;
  }
  .professional-table tbody td[colspan]::before{ display:none; }
  .professional-table .actions-cell{ min-width:0; }
  .professional-table .action-group{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.5rem;
    width:100%;
    justify-content:stretch!important;
  }
  .professional-table .action-group .btn,
  .professional-table .action-group form{ width:100%; }
  .professional-table .action-group .btn{
    min-height:38px;
    white-space:normal;
  }
}
@media (max-width: 575.98px){
  .professional-table tbody{ padding:.15rem .65rem .85rem; }
  .professional-table tbody td{
    display:block;
    text-align:left!important;
  }
  .professional-table tbody td::before{
    display:block;
    margin-bottom:.2rem;
  }
  .professional-table .action-group{ grid-template-columns:1fr; }
}

/* Clinics list */
.clinics-table{ min-width:1080px; }
.clinics-table .clinic-actions{ align-items:center; }
.clinics-table .clinic-actions form{ display:inline-flex; margin:0; }
@media (max-width: 767.98px){
  .clinics-table{ display:block; min-width:0; }
  .clinics-table thead{ display:none; }
  .clinics-table tbody{ display:grid; gap:.85rem; padding:.2rem 0 .85rem; }
  .clinics-table tr{
    display:block;
    border:1px solid rgba(148,163,184,.18);
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
    overflow:hidden;
  }
  .clinics-table tbody td{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.75rem 1rem;
    border:0;
    border-bottom:1px solid rgba(226,232,240,.86);
    white-space:normal;
    text-align:right!important;
  }
  .clinics-table tbody td::before{
    content:attr(data-label);
    flex:0 0 92px;
    text-align:left;
    color:#64748b;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .clinics-table tbody td:first-child{
    display:block;
    text-align:left!important;
    padding:1rem;
  }
  .clinics-table tbody td:first-child::before{ display:none; }
  .clinics-table tbody td:last-child{ border-bottom:0; }
  .clinics-table tbody td[colspan]{
    display:block;
    text-align:center!important;
  }
  .clinics-table tbody td[colspan]::before{ display:none; }
  .clinics-table .clinic-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:.5rem!important;
    width:100%;
    justify-content:stretch!important;
  }
  .clinics-table .clinic-actions .btn,
  .clinics-table .clinic-actions form{ width:100%; }
  .clinics-table .clinic-actions .btn{
    min-height:38px;
    white-space:normal;
  }
}
@media (max-width: 575.98px){
  .clinics-table tbody td{
    display:block;
    text-align:left!important;
  }
  .clinics-table tbody td::before{
    display:block;
    margin-bottom:.2rem;
  }
  .clinics-table .clinic-actions{ grid-template-columns:1fr!important; }
}


/* Finance module */
.finance-shell{padding-bottom:12px}
.finance-hero,.finance-subhero{background:linear-gradient(135deg,rgba(29,78,216,.10),rgba(14,165,233,.08));border:1px solid rgba(59,130,246,.10);border-radius:24px;padding:22px 24px;margin-bottom:1.5rem;align-items:flex-start}
.finance-subhero{margin-bottom:1.1rem}
.finance-stats-row{margin-bottom:1.1rem}
.finance-stat-card{height:100%;display:flex;align-items:center;gap:1rem;padding:1.15rem 1.2rem;border-radius:20px;border:1px solid rgba(148,163,184,.18);background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 16px 34px rgba(15,23,42,.08)}
.finance-stat-card--total{background:linear-gradient(180deg,rgba(219,234,254,.75),rgba(255,255,255,.98))}
.finance-stat-card--info{background:linear-gradient(180deg,rgba(224,242,254,.88),rgba(255,255,255,.98))}
.finance-stat-card--accent{background:linear-gradient(180deg,rgba(243,232,255,.88),rgba(255,255,255,.98))}
.finance-stat-card--success{background:linear-gradient(180deg,rgba(220,252,231,.88),rgba(255,255,255,.98))}
.finance-stat-icon{width:52px;height:52px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.84);border:1px solid rgba(148,163,184,.16);color:#1d4ed8;font-size:1.1rem;flex-shrink:0}
.finance-stat-label{font-size:.82rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--app-text-soft)}
.finance-stat-value{margin-top:.18rem;font-size:clamp(1.35rem,2.8vw,2rem);font-weight:800;color:var(--app-text);line-height:1.1}
.finance-filter-card,.finance-table-card,.finance-form-card,.finance-bulk-card,.finance-recurring-card{border-radius:22px;border:1px solid rgba(148,163,184,.16);box-shadow:var(--app-shadow-sm);background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.92))}
.finance-filter-card,.finance-form-card .card-body{padding:1.25rem}
.finance-filter-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.finance-bulk-card{padding:1rem 1.1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.finance-bulk-card__meta{color:var(--app-text-soft);font-size:.92rem;font-weight:600}
.finance-bulk-card__actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.finance-paid-date-group{width:220px}
.finance-table-card{overflow:hidden}
.finance-table-card .table-responsive{padding:0 1rem 1rem}
.finance-monthlies-table-card .table-responsive{overflow-x:auto;overflow-y:hidden}
.finance-monthlies-table{width:100%;min-width:1180px;table-layout:fixed}
.finance-monthlies-table th,.finance-monthlies-table td{overflow-wrap:anywhere}
.finance-monthlies-col-select{width:42px}
.finance-monthlies-col-id{width:56px}
.finance-monthlies-col-patient{width:250px}
.finance-monthlies-col-month{width:74px}
.finance-monthlies-col-amount{width:92px}
.finance-monthlies-col-sessions{width:92px}
.finance-monthlies-col-carryover{width:100px}
.finance-monthlies-col-status{width:112px}
.finance-monthlies-col-paid{width:84px}
.finance-monthlies-col-due{width:112px}
.finance-monthlies-col-actions{width:266px}
.finance-monthlies-table .actions-cell{min-width:0}
.finance-monthlies-table .finance-table-person{min-width:0}
.finance-monthlies-table .finance-table-person__name{overflow-wrap:anywhere;line-height:1.25}
.finance-monthly-row-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;align-items:center;justify-content:stretch}
.finance-monthly-row-actions .finance-inline-date{grid-column:1 / -1;width:100%}
.finance-monthly-row-actions .btn{width:100%;min-height:34px;padding-left:.5rem;padding-right:.5rem}
.finance-monthly-row-actions .btn-success{grid-column:1 / -1}
.finance-table-person{display:flex;align-items:center;gap:.85rem;min-width:220px}
.finance-table-person__avatar{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(29,78,216,.16),rgba(14,165,233,.14));color:#1e3a8a;font-weight:800;flex-shrink:0}
.finance-table-person__name{font-weight:800;color:var(--app-text)}
.finance-table-person__meta{font-size:.82rem;color:var(--app-text-soft);margin-top:.1rem}
.finance-status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.48rem .82rem;border-radius:999px;font-size:.78rem;font-weight:800;border:1px solid transparent}
.finance-status-badge--paid{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.finance-status-badge--pending{background:#fef3c7;color:#b45309;border-color:#fde68a}
.finance-status-badge--neutral{background:#e2e8f0;color:#475569;border-color:#cbd5e1}
.finance-status-badge--info{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.finance-filter-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .75rem;border-radius:999px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;font-size:.78rem;font-weight:800}
.external-money{font-size:clamp(1.05rem,2.1vw,1.45rem)}
.external-alert{border-radius:18px;display:flex;align-items:center;gap:.65rem}
.external-row-overdue{background:rgba(245,158,11,.06)!important}
.finance-external-table{min-width:1120px}
.finance-external-table .actions-cell{min-width:260px}
.finance-external-table .finance-action-group{display:flex;gap:.45rem;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.finance-external-table .finance-action-group form{display:inline-flex!important}
.finance-sessions-table{min-width:860px}
.finance-sessions-table .actions-cell{min-width:260px}
.finance-sessions-table .finance-action-group{display:flex;gap:.45rem;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.finance-sessions-table .finance-action-group form{display:inline-flex!important}
.finance-inline-date{width:145px}
.finance-action-group{justify-content:flex-end}
.finance-form-shell{max-width:1180px}
.monthly-form-shell{width:100%;max-width:none}
.monthly-form-shell .card-body{padding:1.35rem 1.5rem}
.monthly-form-shell .finance-form-section-header{max-width:760px}
.finance-form-shell .form-label{font-weight:700;color:var(--app-text);margin-bottom:.45rem}
.finance-form-shell .form-control,.finance-form-shell .form-select{min-height:48px;border-color:rgba(148,163,184,.28);background:#fff}
.finance-form-section-header{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.finance-form-section-header h3{margin:0 0 .25rem;font-size:1.05rem;font-weight:800}
.finance-form-section-header p{margin:0;color:var(--app-text-soft)}
.finance-form-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;padding:1rem 1.25rem}
.finance-recurring-card{padding:1rem 1.1rem;background:linear-gradient(180deg,rgba(248,250,252,.96),rgba(255,255,255,1))}
.finance-recurring-card__title{font-size:1rem;font-weight:800;color:var(--app-text);margin-bottom:.85rem}
@media (max-width:991.98px){.finance-filter-actions,.finance-bulk-card__actions,.finance-form-actions{width:100%}.finance-filter-actions .btn,.finance-form-actions .btn{flex:1 1 100%}.finance-paid-date-group{width:100%}}
@media (max-width:991.98px){.finance-monthlies-table{min-width:1080px}.finance-monthlies-col-patient{width:220px}.finance-monthlies-col-actions{width:230px}.finance-monthly-row-actions{grid-template-columns:1fr}.finance-monthly-row-actions .btn-success{grid-column:auto}.finance-monthly-row-actions .finance-inline-date{grid-column:auto}}
@media (max-width:767.98px){.finance-hero,.finance-subhero{padding:18px;border-radius:20px}.finance-stat-card{padding:1rem}.finance-table-card .table-responsive{padding:0 .85rem .85rem}.finance-table-person{min-width:200px}.finance-inline-date{width:100%}.finance-action-group{justify-content:flex-start}.finance-external-table,.finance-sessions-table{display:block;min-width:0}.finance-external-table thead,.finance-sessions-table thead{display:none}.finance-external-table tbody,.finance-sessions-table tbody{display:grid;gap:.85rem;padding:.2rem 0 .85rem}.finance-external-table tr,.finance-sessions-table tr{display:block;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(15,23,42,.06);overflow:hidden}.finance-external-table tbody td,.finance-sessions-table tbody td{display:flex;justify-content:space-between;gap:1rem;padding:.72rem .9rem;border:0;border-bottom:1px solid rgba(226,232,240,.86);white-space:normal;text-align:right!important}.finance-external-table tbody td::before,.finance-sessions-table tbody td::before{content:attr(data-label);flex:0 0 96px;text-align:left;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.finance-external-table tbody td:nth-child(3){display:block;text-align:left!important;padding:1rem}.finance-external-table tbody td:nth-child(3)::before{display:none}.finance-sessions-table tbody td:first-child{display:block;text-align:left!important;padding:1rem;font-weight:800;color:#0f172a}.finance-sessions-table tbody td:first-child::before{display:none}.finance-external-table tbody td:last-child,.finance-sessions-table tbody td:last-child{border-bottom:0}.finance-external-table tbody td[colspan],.finance-sessions-table tbody td[colspan]{display:block;text-align:center!important}.finance-external-table tbody td[colspan]::before,.finance-sessions-table tbody td[colspan]::before{display:none}.finance-external-table .finance-table-person{min-width:0}.finance-external-table .finance-table-person__meta{overflow-wrap:anywhere}.finance-external-table .actions-cell,.finance-sessions-table .actions-cell{min-width:0}.finance-external-table .finance-action-group,.finance-sessions-table .finance-action-group{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%;justify-content:stretch}.finance-external-table .finance-action-group .btn,.finance-external-table .finance-action-group form,.finance-sessions-table .finance-action-group .btn,.finance-sessions-table .finance-action-group form{width:100%}.finance-external-table .finance-action-group .btn,.finance-sessions-table .finance-action-group .btn{min-height:38px;white-space:normal}}
@media (max-width:575.98px){.finance-external-table tbody td,.finance-sessions-table tbody td{display:block;text-align:left!important}.finance-external-table tbody td::before,.finance-sessions-table tbody td::before{display:block;margin-bottom:.2rem}.finance-external-table .finance-action-group,.finance-sessions-table .finance-action-group{grid-template-columns:1fr}.finance-bulk-card__actions .btn{width:100%}}


/* Notifications tables */
.notifications-table{min-width:980px}
.notifications-table .input-group{min-width:260px}
.notifications-table form{margin:0}
@media (max-width:767.98px){
  .notifications-table{display:block;min-width:0}
  .notifications-table thead{display:none}
  .notifications-table tbody{display:grid;gap:.85rem;padding:.2rem 0 .85rem}
  .notifications-table tr{display:block;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(15,23,42,.06);overflow:hidden}
  .notifications-table tbody td{display:flex;justify-content:space-between;gap:1rem;padding:.72rem .9rem;border:0;border-bottom:1px solid rgba(226,232,240,.86);white-space:normal;text-align:right!important;max-width:none!important}
  .notifications-table tbody td::before{content:attr(data-label);flex:0 0 96px;text-align:left;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}
  .notifications-table tbody td:first-child{display:block;text-align:left!important;padding:1rem;font-weight:800;color:#0f172a}
  .notifications-table tbody td:first-child::before{display:none}
  .notifications-table tbody td:last-child{border-bottom:0}
  .notifications-table tbody td[colspan]{display:block;text-align:center!important}
  .notifications-table tbody td[colspan]::before{display:none}
  .notifications-table .input-group{min-width:0;width:100%}
  .notifications-table .btn{min-height:38px;white-space:normal}
  .notifications-table form,
  .notifications-table form .btn{width:100%}
}
@media (max-width:575.98px){
  .notifications-table tbody td{display:block;text-align:left!important}
  .notifications-table tbody td::before{display:block;margin-bottom:.2rem}
  .notifications-table .input-group{display:grid;grid-template-columns:1fr}
  .notifications-table .input-group .form-control,
  .notifications-table .input-group .btn{width:100%;border-radius:.375rem!important}
}

/* Legacy consultations */
.legacy-consultations-table{min-width:980px}
.legacy-appointments-table{min-width:760px}
@media (max-width:767.98px){
  .legacy-consultations-table,
  .legacy-appointments-table{display:block;min-width:0}
  .legacy-consultations-table thead,
  .legacy-appointments-table thead{display:none}
  .legacy-consultations-table tbody,
  .legacy-appointments-table tbody{display:grid;gap:.85rem;padding:.2rem 0 .85rem}
  .legacy-consultations-table tr,
  .legacy-appointments-table tr{display:block;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(15,23,42,.06);overflow:hidden}
  .legacy-consultations-table tbody td,
  .legacy-appointments-table tbody td{display:flex;justify-content:space-between;gap:1rem;padding:.72rem .9rem;border:0;border-bottom:1px solid rgba(226,232,240,.86);white-space:normal;text-align:right!important}
  .legacy-consultations-table tbody td::before,
  .legacy-appointments-table tbody td::before{content:attr(data-label);flex:0 0 102px;text-align:left;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}
  .legacy-consultations-table tbody td:first-child,
  .legacy-appointments-table tbody td:first-child{display:block;text-align:left!important;padding:1rem;font-weight:800;color:#0f172a}
  .legacy-consultations-table tbody td:first-child::before,
  .legacy-appointments-table tbody td:first-child::before{display:none}
  .legacy-consultations-table tbody td:last-child,
  .legacy-appointments-table tbody td:last-child{border-bottom:0}
}
@media (max-width:575.98px){
  .legacy-consultations-table tbody td,
  .legacy-appointments-table tbody td{display:block;text-align:left!important}
  .legacy-consultations-table tbody td::before,
  .legacy-appointments-table tbody td::before{display:block;margin-bottom:.2rem}
}

/* Tools / backup */
.backup-action-group{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.backup-action-group form{margin:0}
.tools-backup-table{min-width:520px}
@media (max-width:767.98px){
  .backup-action-group .btn,
  .backup-action-group form{width:100%}
  .tools-backup-table{display:block;min-width:0}
  .tools-backup-table thead{display:none}
  .tools-backup-table tbody{display:grid;gap:.65rem;padding:.65rem}
  .tools-backup-table tr{display:block;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:#fff;overflow:hidden}
  .tools-backup-table tbody td{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border:0;border-bottom:1px solid rgba(226,232,240,.86);white-space:normal;text-align:right!important;overflow-wrap:anywhere}
  .tools-backup-table tbody td::before{content:attr(data-label);flex:0 0 86px;text-align:left;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}
  .tools-backup-table tbody td:last-child{border-bottom:0}
  .tools-backup-table tbody td[colspan]{display:block;text-align:center!important}
  .tools-backup-table tbody td[colspan]::before{display:none}
}
@media (max-width:575.98px){
  .tools-backup-table tbody td{display:block;text-align:left!important}
  .tools-backup-table tbody td::before{display:block;margin-bottom:.2rem}
}

/* Salus Mea — Auth premium refresh */
:root{
  --salus-copper:#c77b53;
  --salus-copper-dark:#9e5b38;
  --salus-navy:#0f172a;
  --salus-ink:#1f2937;
  --salus-soft:#f8fafc;
}

.salus-auth-shell{
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(circle at top left, rgba(199,123,83,.24), transparent 28%),
    radial-gradient(circle at bottom right, rgba(199,123,83,.16), transparent 24%),
    linear-gradient(135deg, #0b1220 0%, #111827 42%, #1b2432 100%);
}
.salus-auth-shell::before{
  content:"";
  position:fixed;
  inset:0;
  background:
    url("../img/salusmea-logo.png") center center / min(42vw, 520px) auto no-repeat;
  opacity:.085;
  filter:grayscale(1) brightness(1.9) contrast(.8) drop-shadow(0 0 24px rgba(255,255,255,.08));
  transform:scale(1.08);
  pointer-events:none;
  z-index:-2;
}
.salus-auth-shell::after{
  content:"";
  position:fixed;
  inset:0;
  background:
    radial-gradient(circle at center, rgba(255,255,255,.045), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));
  pointer-events:none;
  z-index:-1;
}
.auth-layout{
  position:relative;
  width:min(1180px, 100%);
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(420px, 470px);
  gap:28px;
  align-items:stretch;
}
.auth-hero,
.auth-panel-inner{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.18);
  box-shadow:0 24px 60px rgba(15,23,42,.10);
  backdrop-filter:blur(16px);
}
.auth-hero{
  border-radius:32px;
  padding:34px;
  background:
    linear-gradient(160deg, rgba(15,23,42,.96), rgba(30,41,59,.94) 55%, rgba(86,52,37,.92)),
    linear-gradient(135deg, rgba(199,123,83,.24), transparent 55%);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:680px;
}
.auth-hero::after{
  content:"";
  position:absolute;
  inset:auto -40px -40px auto;
  width:240px;
  height:240px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.14), transparent 68%);
  pointer-events:none;
}
.auth-hero-brand-pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-size:.9rem;
  font-weight:600;
  color:rgba(255,255,255,.88);
  width:fit-content;
}
.auth-hero-brand-pill-icon{ width:18px; height:18px; object-fit:contain; }
.auth-brand--hero{
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
  margin:28px 0 18px;
  align-items:center;
}
.auth-brand-logo-wrap{
  width:108px;
  height:108px;
  border-radius:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.auth-brand-logo--hero{ width:84px; height:84px; }
.auth-brand-title--hero{
  color:#fff;
  font-size:2.3rem;
  line-height:1.05;
}
.auth-brand-subtitle--hero{
  color:rgba(255,255,255,.78);
  font-size:1rem;
}
.auth-hero-copy h1{
  font-size:clamp(2.2rem, 4vw, 3.5rem);
  line-height:1.02;
  letter-spacing:-.04em;
  margin:0 0 16px;
  max-width:12ch;
}
.auth-hero-copy p{
  max-width:56ch;
  color:rgba(255,255,255,.76);
  font-size:1.02rem;
  line-height:1.7;
  margin:0;
}
.auth-hero-highlights{
  display:grid;
  gap:14px;
  margin-top:26px;
}
.auth-highlight-card{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:14px;
  align-items:flex-start;
  padding:16px 18px;
  border-radius:22px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1);
}
.auth-highlight-card i{
  width:44px;
  height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(199,123,83,.24);
  color:#ffd8c2;
  font-size:1.1rem;
}
.auth-highlight-card strong{
  display:block;
  font-size:1rem;
  margin-bottom:4px;
}
.auth-highlight-card span{
  color:rgba(255,255,255,.72);
  line-height:1.55;
  font-size:.93rem;
}
.auth-panel{
  display:flex;
  align-items:center;
}
.auth-panel-inner{
  border-radius:32px;
  padding:28px;
  background:rgba(255,255,255,.92);
}
.auth-form-card{
  border-radius:28px;
  padding:16px;
}
.auth-form-header{ margin-bottom:22px; }
.auth-form-kicker{
  display:inline-block;
  margin-bottom:12px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(199,123,83,.12);
  color:var(--salus-copper-dark);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.auth-form-header h2{
  margin:0 0 10px;
  font-size:2.1rem;
  line-height:1.05;
  letter-spacing:-.03em;
  color:var(--salus-navy);
}
.auth-form-header p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
  font-size:.98rem;
}
.auth-label{
  font-weight:700;
  color:var(--salus-ink);
  margin-bottom:8px;
}
.auth-input-wrap{
  position:relative;
}
.auth-input-wrap > i{
  position:absolute;
  left:16px;
  top:50%;
  transform:translateY(-50%);
  color:#94a3b8;
  font-size:1rem;
  z-index:3;
}
.auth-input{
  min-height:58px;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.28);
  background:#f8fafc;
  padding-left:46px;
  font-size:1rem;
  box-shadow:none !important;
}
.auth-input:focus{
  border-color:rgba(199,123,83,.55);
  background:#fff;
  box-shadow:0 0 0 4px rgba(199,123,83,.12) !important;
}
.auth-input-wrap--password .password-toggle-btn,
.auth-input-wrap--password button{
  right:12px;
}
.btn-auth-primary{
  min-height:56px;
  border:none;
  border-radius:18px;
  font-weight:700;
  font-size:1rem;
  color:#fff;
  background:linear-gradient(135deg, var(--salus-copper), var(--salus-copper-dark));
  box-shadow:0 16px 28px rgba(158,91,56,.22);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn-auth-primary:hover,
.btn-auth-primary:focus{
  color:#fff;
  transform:translateY(-1px);
  filter:brightness(1.02);
  box-shadow:0 18px 34px rgba(158,91,56,.28);
}
.auth-form-footer{
  padding-top:18px;
  text-align:center;
}
.auth-link-inline{
  font-weight:700;
  color:var(--salus-copper-dark);
  text-decoration:none;
}
.auth-link-inline:hover{ color:var(--salus-copper); }
.auth-footnote{
  margin-top:10px;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.55;
}
.app-flash-stack{ margin-bottom:18px; }
.commercial-billing-alert{
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  margin-bottom:18px;
  padding:14px 16px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:18px;
  background:#f8fafc;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}
.commercial-billing-alert__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  flex:0 0 34px;
  border-radius:12px;
  background:rgba(15,23,42,.08);
}
.commercial-billing-alert strong{
  display:block;
  color:#0f172a;
  line-height:1.25;
}
.commercial-billing-alert p{
  margin:.15rem 0 0;
  color:var(--muted);
  line-height:1.45;
}
.commercial-billing-alert--danger{ background:#fef3f2; border-color:#fecdca; }
.commercial-billing-alert--danger .commercial-billing-alert__icon{ background:#fee4e2; color:#b42318; }
.commercial-billing-alert--warning{ background:#fffaeb; border-color:#fedf89; }
.commercial-billing-alert--warning .commercial-billing-alert__icon{ background:#fef0c7; color:#b54708; }
.commercial-billing-alert--info{ background:#eff8ff; border-color:#b2ddff; }
.commercial-billing-alert--info .commercial-billing-alert__icon{ background:#d1e9ff; color:#175cd3; }
.auth-panel .app-alert{
  border-radius:18px;
  border:none;
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}
@media (max-width: 991.98px){
  .auth-layout{
    grid-template-columns:1fr;
    max-width:700px;
  }
  .auth-hero{ min-height:auto; }
  .auth-panel{ display:block; }
}
@media (max-width: 575.98px){
  .salus-auth-shell{ padding:16px; }
  .salus-auth-shell::before{ background-size:min(72vw, 320px) auto; opacity:.07; }
  .auth-hero,
  .auth-panel-inner{ border-radius:24px; padding:20px; }
  .auth-brand-logo-wrap{ width:84px; height:84px; }
  .auth-brand-logo--hero{ width:64px; height:64px; }
  .auth-brand-title--hero{ font-size:1.8rem; }
  .auth-form-header h2{ font-size:1.7rem; }
  .auth-highlight-card{ grid-template-columns:1fr; }
}

@media (max-width: 991.98px){
  .brand-icon--sidebar-centered{
    width: 108px;
    height: 108px;
  }
  .offcanvas-brand-logo{
    width: 104px;
    height: 104px;
  }
}
