/* Ana Gabriela Pilates — interface baseada na paleta do logotipo */
:root {
  --brand-mauve: #b49a9d;
  --brand-mauve-dark: #967b80;
  --brand-plum: #625b68;
  --brand-plum-dark: #48424e;
  --brand-bg: #f4f0f4;
  --brand-surface: #ffffff;
  --brand-text: #39343c;
  --brand-muted: #77717a;
  --brand-border: #e4dce4;
  --brand-soft: #eee7ee;
  --brand-shadow: 0 8px 28px rgba(72, 55, 72, .08);
}
* { box-sizing: border-box; }
html { min-height: 100%; }
body {
  margin: 0; min-height: 100vh; background: var(--brand-bg);
  color: var(--brand-text); font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 15px; line-height: 1.5;
}
a { color: var(--brand-plum); }
a:hover { color: var(--brand-plum-dark); }
.topbar {
  width: 100%; min-height: 78px; padding: 12px clamp(16px, 3vw, 42px);
  display: flex; align-items: center; gap: 26px; flex-wrap: wrap;
  background: #fff; border-bottom: 1px solid var(--brand-border);
  box-shadow: 0 3px 14px rgba(65, 51, 67, .06); position: relative; z-index: 10;
}
.brand { display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--brand-plum-dark); flex-shrink:0; }
.brand-mark { width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-mauve-dark);font-size:20px; }
.brand-copy { display:flex;flex-direction:column;line-height:1.2; }
.brand-copy strong { font-family: Georgia, serif; font-size:18px; font-weight:600; }
.brand-copy small { color:var(--brand-muted);font-size:11px;margin-top:4px; }
.top-menu { display:flex; align-items:center; gap:5px; flex:1; flex-wrap:wrap; }
.menu-item {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:42px; padding:10px 13px; border-radius:10px;
  color:var(--brand-plum); text-decoration:none; font-weight:600; white-space:nowrap;
  transition:background .15s ease,color .15s ease;
}
.menu-item i { font-size:15px; }
.menu-item:hover { background:var(--brand-soft);color:var(--brand-plum-dark); }
.menu-item.ativo { background:var(--brand-plum);color:#fff;box-shadow:0 3px 8px rgba(72,66,78,.16); }
.logout-link { display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid var(--brand-border);border-radius:10px;color:var(--brand-plum);text-decoration:none;font-weight:600;white-space:nowrap; }
.logout-link:hover { background:#f8eeee;color:#8c4d57;border-color:#e6cbd0; }
.dashboard-body { display:block !important; min-height:100vh; background:var(--brand-bg); }
.dashboard-main, main.dashboard-main, .conteudo-principal, .main-content {
  width:100%; min-width:0; max-width:1600px; margin:0 auto; padding:clamp(18px,3vw,36px);
}
h1,h2,h3,h4,h5 { color:var(--brand-plum-dark);font-weight:650;letter-spacing:-.02em; }
h1 { font-size:clamp(1.55rem,2.3vw,2rem);margin:0 0 22px; }
h2 { font-size:1.35rem; }
p { color:inherit; }
.card, .painel, .formulario, .caixa, .stat-card, .dashboard-card {
  background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:16px;
  box-shadow:var(--brand-shadow);
}
.card { overflow:hidden; }
.card-header { background:#faf7fa;border-bottom:1px solid var(--brand-border);color:var(--brand-plum-dark);font-weight:650; }
.card-body { padding:22px; }
.table { --bs-table-bg: transparent; margin-bottom:0; vertical-align:middle; }
.table thead th { background:#f4eef4;color:var(--brand-plum-dark);font-size:.82rem;text-transform:uppercase;letter-spacing:.035em;border-bottom-color:var(--brand-border);white-space:nowrap; }
.table td,.table th { padding:13px 14px;border-color:var(--brand-border); }
.table tbody tr:hover > * { --bs-table-bg: #fbf8fb; }
.form-label, label { color:var(--brand-plum-dark);font-weight:600; }
.form-control,.form-select,input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="date"],input[type="time"],input[type="file"],select,textarea {
  border:1px solid #d8cdd9;border-radius:9px;padding:10px 12px;color:var(--brand-text);background:#fff;max-width:100%;
}
.form-control:focus,.form-select:focus,input:focus,select:focus,textarea:focus {
  border-color:var(--brand-mauve);box-shadow:0 0 0 .22rem rgba(180,154,157,.2);outline:0;
}
.btn,button,.botao-link,.botao-pequeno,.botao-editar,.botao-secundario,.botao-acao {
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border-radius:9px;padding:9px 14px;text-decoration:none;
  border:1px solid transparent;cursor:pointer;line-height:1.35;transition:all .15s ease;
}
.btn-primary,button[type="submit"],.botao-link { background:var(--brand-plum);color:#fff;border-color:var(--brand-plum); }
.btn-primary:hover,button[type="submit"]:hover,.botao-link:hover { background:var(--brand-plum-dark);color:#fff;border-color:var(--brand-plum-dark); }
.btn-secondary,.botao-secundario { background:#fff;color:var(--brand-plum);border-color:#d8cdd9; }
.btn-secondary:hover,.botao-secundario:hover { background:var(--brand-soft);color:var(--brand-plum-dark); }
.botao-pequeno,.botao-editar,.botao-acao { padding:0px 0px;}
.botao-editar { background:#f0e8f0;color:#62516a;border-color:#e0d2e2; }
.botao-desativar,.botao-remover { background:#fff0f0;color:#9c3544;border-color:#f0d0d4; }
.botao-pagar { background:#e8f3ed;color:#286847;border-color:#cfe6d8; }
.btn-danger { background:#a74754;border-color:#a74754; }
.btn-success { background:#527e68;border-color:#527e68; }
.btn-outline-primary { color:var(--brand-plum);border-color:var(--brand-mauve); }
.btn-outline-primary:hover { background:var(--brand-plum);border-color:var(--brand-plum); }
.badge { font-weight:600;letter-spacing:.01em; }
.alert { border-radius:12px; }
hr { border-color:var(--brand-border);opacity:1; }
.login-page {
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 16px;
  background:radial-gradient(ellipse at top left, #e6dce6 0%, transparent 48%),linear-gradient(135deg,#f6f2f6,#ebe4eb);
}
.login-card {
  width:min(100%,470px);padding:clamp(24px,4vw,42px);background:#fff;
  border:1px solid rgba(180,154,157,.35);border-radius:22px;box-shadow:0 20px 60px rgba(72,55,72,.14);
}
.login-logo { display:block;width:100%;max-width:390px;height:auto;object-fit:contain;margin:0 auto 24px;border-radius:8px; }
.login-heading { text-align:center;margin-bottom:25px; }
.login-heading h1 { font-size:1.45rem;margin-bottom:7px; }
.login-heading p { color:var(--brand-muted);margin:0; }
.login-card .form-label { font-size:.9rem;margin-bottom:7px; }
.login-card .input-group-text { background:#f6f1f6;border-color:#d8cdd9;color:var(--brand-mauve-dark); }
.login-card .form-control { min-height:46px; }
.login-card .btn { min-height:47px; }
.login-footer { text-align:center;color:var(--brand-muted);font-size:.78rem;margin:22px 0 0; }
.campo { margin-bottom:18px; }
.campo label { display:block;margin-bottom:7px; }
.mensagem-erro { color:#a3293b;background:#fff0f1;border:1px solid #f0d0d4;padding:10px 12px;border-radius:9px; }
@media (max-width: 900px) {
  .topbar { gap:12px; }
  .top-menu { order:3; flex-basis:100%; }
  .menu-item { flex:1; }
}
@media (max-width: 600px) {
  .topbar { padding:12px; }
  .brand { flex:1; }
  .logout-link { padding:9px 10px; }
  .top-menu { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:5px; }
  .menu-item { justify-content:flex-start;padding:10px;font-size:.9rem; }
  .dashboard-main, main.dashboard-main, .conteudo-principal, .main-content { padding:16px 12px; }
  .card-body { padding:16px; }
  .table-responsive { border-radius:10px; }
  .login-card { padding:23px 19px; }
}


/* Cor dos números e botões da paginação */
.pagination .page-link {
    color: #198754;
    background-color: #ffffff;
    border-color: #dee2e6;
}

/* Cor ao passar o mouse */
.pagination .page-link:hover {
    color: #ffffff;
    background-color: #157347;
    border-color: #157347;
}

/* Cor da página selecionada */
.pagination .page-item.active .page-link {
    color: #ffffff;
    background-color: #198754;
    border-color: #198754;
}

/* Botões desabilitados */
.pagination .page-item.disabled .page-link {
    color: #adb5bd;
    background-color: #f8f9fa;
}

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');

body {
    font-family: 'Inter', sans-serif;
}

h1, h2, h3, .titulo-pagina {
    font-family: 'Playfair Display', serif;
    font-weight: 600;
}

