:root {
  /* Sidebar / login (escuro) */
  --w3-bg: #161b2c;
  --w3-bg-alt: #1a2036;
  --w3-card: #1e2438;
  --w3-card-soft: #232a42;
  --w3-border: #2c3350;
  --w3-text: #eef0f7;
  --w3-text-muted: #8b93b0;
  --w3-label: #7c86ad;

  /* Conteúdo principal (claro) */
  --w3-light-bg: #f4f6fb;
  --w3-light-card: #ffffff;
  --w3-light-border: #e8eaf2;
  --w3-light-text: #1b1f33;
  --w3-light-text-muted: #8991ab;
  --w3-light-label: #9299b8;
  --w3-light-hover: #f7f8fc;

  /* Paleta compartilhada */
  --w3-green: #2fd999;
  --w3-green-dark: #1fae7c;
  --w3-green-soft-bg: #e3faf0;
  --w3-green-soft-text: #0f9d6c;
  --w3-blue: #3d5cf5;
  --w3-blue-hover: #3450d8;
  --w3-blue-soft-bg: #eaedfd;
  --w3-blue-soft-text: #3d5cf5;
  --w3-input-bg: #e9ecfb;
  --w3-input-text: #1b1f33;
  --w3-danger: #ff5c7a;
  --w3-danger-soft-bg: #ffe8ec;
  --w3-danger-soft-text: #d1314f;
  --w3-warning: #ffb547;
  --w3-warning-soft-bg: #fff6e0;
  --w3-warning-soft-text: #a97600;
  --w3-radius: 14px;
}

body { background: var(--w3-light-bg); color: var(--w3-light-text); }

.w3-logo { display: inline-flex; align-items: baseline; font-weight: 800; font-size: 1.6rem; letter-spacing: .5px; }
.w3-logo .w3-mark { color: var(--w3-green); }
.w3-logo .w3-rest { color: #fff; }
.w3-logo .w3-dot {
  display: inline-block; width: 14px; height: 14px; border-radius: 50%;
  background: var(--w3-green); position: relative; margin: 0 2px;
  box-shadow: 0 0 0 3px rgba(47,217,153,.15);
}

/* ---------- Login (tema escuro) ---------- */
.w3-auth-wrapper { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--w3-bg); padding: 1.25rem; }
.w3-auth-card {
  width: 380px; max-width: 100%; background: var(--w3-card); border-radius: 18px; padding: 2.25rem 1.5rem;
  box-shadow: 0 30px 60px -15px rgba(0,0,0,.55), 0 0 0 1px var(--w3-border);
  text-align: center;
}
.w3-auth-card h1 { font-size: 1.3rem; font-weight: 700; color: #fff; margin: 1.25rem 0 .15rem; }
.w3-auth-card .subtitle { color: var(--w3-text-muted); font-size: .85rem; margin-bottom: 1.5rem; }
.w3-field { text-align: left; margin-bottom: 1rem; }
.w3-field label {
  display: block; font-size: .7rem; font-weight: 700; letter-spacing: .08em;
  color: var(--w3-label); text-transform: uppercase; margin-bottom: .4rem;
}
.w3-field input {
  width: 100%; border: none; border-radius: 10px; padding: .75rem .9rem;
  background: var(--w3-input-bg); color: var(--w3-input-text); font-size: .95rem;
}
.w3-field input:focus { outline: 2px solid var(--w3-blue); outline-offset: 1px; }
.w3-btn-primary {
  width: 100%; border: none; border-radius: 10px; padding: .8rem;
  background: var(--w3-blue); color: #fff; font-weight: 700; font-size: .95rem;
  transition: background .15s ease;
}
.w3-btn-primary:hover { background: var(--w3-blue-hover); color: #fff; }

/* ---------- Admin shell: sidebar escura + conteúdo claro ---------- */
.w3-shell { display: flex; min-height: 100vh; }
.w3-sidebar {
  width: 250px; background: var(--w3-bg-alt); display: flex; flex-direction: column; padding: 1.25rem 1rem; flex-shrink: 0;
  transition: transform .2s ease; z-index: 1050;
}
.w3-sidebar .brand { padding: 0 .25rem .5rem; display: flex; align-items: center; justify-content: space-between; }
.w3-nav-section {
  color: #545e82; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  margin: 1rem 0 .4rem .75rem;
}
.w3-nav a {
  display: flex; align-items: center; gap: .6rem; color: var(--w3-text-muted);
  text-decoration: none; padding: .55rem .75rem; border-radius: 10px; font-size: .88rem; margin-bottom: .1rem;
}
.w3-nav a:hover { background: var(--w3-card-soft); color: #fff; }
.w3-nav a.active { background: var(--w3-blue); color: #fff; font-weight: 600; }
.w3-main { flex: 1; padding: 1.75rem 2rem; background: var(--w3-light-bg); min-height: 100vh; color: var(--w3-light-text); min-width: 0; }

/* Topbar mobile: só aparece em telas pequenas, com o botão de abrir o menu */
.w3-mobile-topbar { display: none; }
.w3-sidebar-close { display: none; }
.w3-sidebar-backdrop { display: none; }

@media (max-width: 991.98px) {
  .w3-shell { display: block; }
  .w3-mobile-topbar {
    display: flex; align-items: center; justify-content: space-between;
    background: var(--w3-bg-alt); color: #fff; padding: .75rem 1rem; position: sticky; top: 0; z-index: 1030;
  }
  .w3-mobile-topbar button { background: transparent; border: none; color: #fff; font-size: 1.4rem; line-height: 1; padding: .25rem .5rem; }
  .w3-sidebar {
    position: fixed; top: 0; left: 0; height: 100vh; transform: translateX(-100%);
    box-shadow: 10px 0 30px rgba(0,0,0,.25); overflow-y: auto;
  }
  .w3-sidebar.open { transform: translateX(0); }
  .w3-sidebar-close { display: inline-flex; background: transparent; border: none; color: var(--w3-text-muted); font-size: 1.4rem; align-self: flex-start; }
  .w3-sidebar-backdrop {
    display: none; position: fixed; inset: 0; background: rgba(10,12,22,.5); z-index: 1040;
  }
  .w3-sidebar-backdrop.open { display: block; }
  .w3-main { padding: 1.25rem 1rem; }
}

/* Botões dentro da sidebar escura usam a paleta escura, não a clara do conteúdo */
.w3-sidebar .btn-outline-secondary { color: var(--w3-text-muted); border-color: var(--w3-border); background: transparent; }
.w3-sidebar .btn-outline-secondary:hover { background: var(--w3-card-soft); color: #fff; border-color: var(--w3-border); }
.w3-sidebar hr, .w3-sidebar .border-top { border-color: var(--w3-border) !important; }

.w3-main h1, .w3-main h2, .w3-main h3, .w3-main h4, .w3-main h5, .w3-main h6 { color: var(--w3-light-text); }
.w3-main .text-muted { color: var(--w3-light-text-muted) !important; }
.w3-main small, .w3-main .small { color: var(--w3-light-text-muted); }
.w3-main code { color: var(--w3-blue-soft-text); background: var(--w3-blue-soft-bg); padding: .1rem .35rem; border-radius: 6px; }
.w3-main a { color: var(--w3-blue); }

.card {
  background: var(--w3-light-card); border: 1px solid var(--w3-light-border); border-radius: var(--w3-radius);
  color: var(--w3-light-text); box-shadow: 0 1px 3px rgba(20,24,48,.04);
}
.card-body { color: var(--w3-light-text); }
.card-header {
  background: transparent; border-bottom: 1px solid var(--w3-light-border); color: var(--w3-light-text);
  font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--w3-light-label);
}

.table { color: var(--w3-light-text); }
.table thead { color: var(--w3-light-label); font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; background: var(--w3-light-hover); }
.table > :not(caption) > * > * { background: transparent; border-bottom-color: var(--w3-light-border); color: var(--w3-light-text); padding: .7rem .75rem; }
.table-hover > tbody > tr:hover > * { background: var(--w3-light-hover); }

.form-control, .form-select, textarea.form-control {
  background: #fff; color: var(--w3-light-text); border: 1px solid var(--w3-light-border); border-radius: 10px;
}
.form-control:focus, .form-select:focus { background: #fff; color: var(--w3-light-text); border-color: var(--w3-blue); box-shadow: 0 0 0 2px rgba(61,92,245,.15); }
.form-label { color: var(--w3-light-label); font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }

.btn-primary,
.btn-primary:visited { background-color: var(--w3-blue) !important; border-color: var(--w3-blue) !important; color: #fff !important; font-weight: 600; }
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-check:checked + .btn-primary {
  background-color: var(--w3-blue-hover) !important; border-color: var(--w3-blue-hover) !important; color: #fff !important;
  box-shadow: 0 0 0 .2rem rgba(61,92,245,.25) !important;
}
.btn-success,
.btn-success:visited { background-color: var(--w3-green) !important; border-color: var(--w3-green) !important; color: #073d2a !important; font-weight: 700; }
.btn-success:hover,
.btn-success:focus,
.btn-success:active {
  background-color: var(--w3-green-dark) !important; border-color: var(--w3-green-dark) !important; color: #073d2a !important;
  box-shadow: 0 0 0 .2rem rgba(47,217,153,.25) !important;
}
.btn-outline-primary { color: var(--w3-blue); border-color: var(--w3-blue); }
.btn-outline-primary:hover { background: var(--w3-blue-soft-bg); color: var(--w3-blue); border-color: var(--w3-blue); }
.btn-outline-secondary { color: var(--w3-light-text-muted); border-color: var(--w3-light-border); }
.btn-outline-secondary:hover { background: var(--w3-light-hover); color: var(--w3-light-text); border-color: var(--w3-light-border); }
.btn-outline-danger:hover { color: #fff; }

/* Badges/pills no estilo "status" da referência: fundo suave + texto colorido */
.badge { font-weight: 600; font-size: .72rem; padding: .4em .65em; border-radius: 6px; }
.badge.bg-success { background: var(--w3-green-soft-bg) !important; color: var(--w3-green-soft-text) !important; }
.badge.bg-secondary { background: var(--w3-blue-soft-bg) !important; color: var(--w3-blue-soft-text) !important; }
.badge.bg-warning { background: var(--w3-warning-soft-bg) !important; color: var(--w3-warning-soft-text) !important; }
.badge.bg-danger { background: var(--w3-danger-soft-bg) !important; color: var(--w3-danger-soft-text) !important; }
.badge.bg-info { background: var(--w3-blue-soft-bg) !important; color: var(--w3-blue-soft-text) !important; }

.alert-success { background: var(--w3-green-soft-bg); color: var(--w3-green-soft-text); border: 1px solid rgba(47,217,153,.25); }
.alert-danger { background: var(--w3-danger-soft-bg); color: var(--w3-danger-soft-text); border: 1px solid rgba(255,92,122,.25); }
.alert-warning { background: var(--w3-warning-soft-bg); color: var(--w3-warning-soft-text); border: 1px solid rgba(255,181,71,.25); }
.alert-info { background: var(--w3-blue-soft-bg); color: var(--w3-blue-soft-text); border: 1px solid rgba(61,92,245,.2); }

.text-dark { color: var(--w3-light-text) !important; }
