/* =====================================================================
   Diaconia — Tema moderno (v3)
   Paleta índigo/violeta, tipografia Inter, sombras suaves, microinterações.
   ===================================================================== */
:root{
  --brand:#6366f1;
  --brand-2:#8b5cf6;
  --brand-dark:#4338ca;
  --brand-ink:#4f46e5;

  --ink:#0f172a;
  --muted:#64748b;
  --line:#e9edf5;
  --bg:#f6f7fb;
  --card:#ffffff;

  --success:#10b981;
  --danger:#ef4444;
  --warning:#f59e0b;
  --info:#0ea5e9;

  --radius:18px;
  --radius-sm:12px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.05);
  --shadow:0 4px 14px rgba(15,23,42,.06), 0 2px 6px rgba(15,23,42,.04);
  --shadow-lg:0 18px 40px -12px rgba(79,70,229,.28);

  --bottom-nav-h:66px;
  --safe-bottom:env(safe-area-inset-bottom, 0px);
  --safe-top:env(safe-area-inset-top, 0px);
  --sidebar-w:264px;
}

*{ -webkit-tap-highlight-color:transparent; }
html{ scroll-behavior:smooth; }
body{
  background:
    radial-gradient(1200px 600px at 100% -10%, rgba(139,92,246,.06), transparent 60%),
    radial-gradient(900px 500px at -10% 0%, rgba(99,102,241,.07), transparent 55%),
    var(--bg);
  color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6{ font-weight:700; letter-spacing:-.02em; }
a{ text-decoration:none; }

.app-shell{ min-height:100vh; }
.content{ min-height:100vh; }

/* Barra do topo */
.topbar{
  position:sticky; top:0; z-index:1020;
  display:flex; align-items:center; justify-content:space-between; gap:.75rem;
  padding:calc(.7rem + var(--safe-top)) 1rem .7rem;
  background:linear-gradient(100deg,var(--brand-dark),var(--brand) 55%,var(--brand-2));
  color:#fff;
  box-shadow:0 6px 20px -8px rgba(79,70,229,.5);
}
.topbar .btn-light{ --bs-btn-padding-y:.4rem; border:0; background:rgba(255,255,255,.16); color:#fff; backdrop-filter:blur(6px); }
.topbar .btn-light:hover{ background:rgba(255,255,255,.28); color:#fff; }
.topbar-spacer{ flex:1; }
@media (min-width:992px){
  .topbar{
    background:rgba(255,255,255,.75);
    color:var(--ink);
    box-shadow:var(--shadow-sm);
    border-bottom:1px solid var(--line);
    backdrop-filter:saturate(180%) blur(12px);
  }
  .topbar .btn-light{ background:#f1f3f9; color:var(--ink); }
  .topbar .btn-light:hover{ background:#e6e9f5; color:var(--ink); }
}

.notif-menu{ width:340px; max-width:92vw; padding:0; border:0; border-radius:var(--radius); box-shadow:var(--shadow-lg); overflow:hidden; }
.notif-list{ max-height:380px; overflow-y:auto; }
.notif-menu .dropdown-item{ white-space:normal; padding:.7rem 1rem; }
.notif-menu .dropdown-item:active{ background:var(--brand); }

.app-content{
  padding:1.25rem 1rem calc(var(--bottom-nav-h) + var(--safe-bottom) + 1.25rem);
  max-width:1280px;
}

/* Sidebar */
.sidebar{
  width:var(--sidebar-w);
  background:linear-gradient(180deg,#4c1d95 0%,var(--brand-dark) 45%,var(--brand-ink) 100%);
  color:#fff; flex-direction:column; position:fixed; inset:0 auto 0 0; height:100vh; z-index:1030;
  box-shadow:6px 0 30px -18px rgba(76,29,149,.7);
}
.sidebar::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(400px 200px at 20% 0%, rgba(255,255,255,.10), transparent 60%);
}
.sidebar-brand{
  padding:1.3rem 1.15rem; font-weight:800; font-size:1.06rem;
  display:flex; gap:.6rem; align-items:center;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.sidebar-brand i{
  display:grid; place-items:center; width:34px; height:34px; border-radius:10px;
  background:rgba(255,255,255,.16); font-size:1rem;
}
.sidebar-nav{ flex:1; padding:.85rem .7rem; overflow-y:auto; }
.sidebar-nav .nav-link{
  color:rgba(255,255,255,.82); border-radius:12px; padding:.68rem .85rem;
  margin-bottom:.15rem; display:flex; gap:.7rem; align-items:center; font-weight:500;
  position:relative; transition:background .15s ease, color .15s ease, transform .1s ease;
}
.sidebar-nav .nav-link i{ font-size:1.05rem; opacity:.9; width:20px; text-align:center; }
.sidebar-nav .nav-link:hover{ background:rgba(255,255,255,.12); color:#fff; }
.sidebar-nav .nav-link.active{
  background:rgba(255,255,255,.18); color:#fff; font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.sidebar-nav .nav-link.active::before{
  content:''; position:absolute; left:-.7rem; top:50%; transform:translateY(-50%);
  width:4px; height:60%; border-radius:0 4px 4px 0; background:#fff;
}
.sidebar-nav .disabled-soft{ opacity:.5; pointer-events:none; }
.sidebar-footer{ padding:1rem; border-top:1px solid rgba(255,255,255,.12); }
.sidebar-footer .btn-outline-light{ border-color:rgba(255,255,255,.35); }

.offcanvas{ border:0 !important; }
.offcanvas-header.sidebar-brand{
  border-bottom:0;
  background:linear-gradient(100deg,var(--brand-dark),var(--brand-2));
}
.offcanvas .sidebar-nav .nav-link{ color:var(--ink); }
.offcanvas .sidebar-nav .nav-link i{ color:var(--brand-ink); }
.offcanvas .sidebar-nav .nav-link:hover{ background:#f2f0ff; }
.offcanvas .sidebar-nav .nav-link.active{ background:var(--brand); color:#fff; }
.offcanvas .sidebar-nav .nav-link.active i{ color:#fff; }
.offcanvas .sidebar-nav .disabled-soft{ color:#94a3b8; }

/* Bottom nav */
.bottom-nav{
  position:fixed; left:0; right:0; bottom:0; z-index:1030;
  display:flex; justify-content:space-around; align-items:stretch;
  background:rgba(255,255,255,.9); border-top:1px solid var(--line);
  padding-bottom:var(--safe-bottom);
  box-shadow:0 -8px 24px -14px rgba(15,23,42,.25);
  backdrop-filter:saturate(180%) blur(14px);
}
.bn-item{
  flex:1; border:0; background:none; color:var(--muted);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.15rem;
  min-height:var(--bottom-nav-h); font-size:.68rem; font-weight:600; text-decoration:none;
  position:relative; transition:color .15s ease;
}
.bn-item i{ font-size:1.3rem; transition:transform .15s ease; }
.bn-item.active{ color:var(--brand-ink); }
.bn-item.active i{ transform:translateY(-1px); }
.bn-item.active::after{
  content:''; position:absolute; top:8px; width:34px; height:34px; border-radius:12px;
  background:rgba(99,102,241,.12); z-index:-1;
}
.bn-item:active{ color:var(--brand-dark); }

/* Cards */
.card{
  border:1px solid var(--line); border-radius:var(--radius); background:var(--card);
  box-shadow:var(--shadow-sm);
  transition:box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.card:hover{ box-shadow:var(--shadow); }
.card-header{ background:transparent !important; border-bottom:1px solid var(--line); font-weight:600; }

.stat-card{ position:relative; overflow:hidden; }
.stat-card .display-6{ font-weight:800; letter-spacing:-.03em; }
.stat-card small{ text-transform:uppercase; letter-spacing:.04em; font-size:.7rem; font-weight:600; color:var(--muted); }
.stat-card::before{
  content:''; position:absolute; inset:0 auto 0 0; width:4px;
  background:linear-gradient(180deg,var(--brand),var(--brand-2));
  opacity:.9;
}

a.card, .card-hover{ cursor:pointer; }
.card-hover:hover{ transform:translateY(-2px); border-color:#dfe3f0; }

/* Botões */
.btn{ border-radius:12px; font-weight:600; letter-spacing:-.01em; transition:transform .08s ease, box-shadow .15s ease, filter .15s ease; }
.btn:active{ transform:translateY(1px); }
.btn-primary{
  --bs-btn-bg:var(--brand); --bs-btn-border-color:var(--brand);
  --bs-btn-hover-bg:var(--brand-dark); --bs-btn-hover-border-color:var(--brand-dark);
  --bs-btn-active-bg:var(--brand-dark);
  box-shadow:0 8px 18px -8px rgba(99,102,241,.6);
}
.btn-outline-primary{ --bs-btn-color:var(--brand-ink); --bs-btn-border-color:#c7ccf5; --bs-btn-hover-bg:var(--brand); --bs-btn-hover-border-color:var(--brand); }
.btn-success{ --bs-btn-bg:var(--success); --bs-btn-border-color:var(--success); --bs-btn-hover-bg:#0e9f74; --bs-btn-hover-border-color:#0e9f74; }
.btn-warning{ --bs-btn-bg:var(--warning); --bs-btn-border-color:var(--warning); color:#3d2c00; }

.badge{ font-weight:600; letter-spacing:.01em; border-radius:8px; padding:.4em .6em; }

/* Formulários */
.form-control, .form-select{
  border-radius:12px; border-color:#dfe3ee; padding:.55rem .8rem;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.form-control:focus, .form-select:focus{
  border-color:var(--brand); box-shadow:0 0 0 4px rgba(99,102,241,.14);
}
.form-label{ font-weight:600; font-size:.86rem; color:#334155; margin-bottom:.35rem; }
.form-check-input:checked{ background-color:var(--brand); border-color:var(--brand); }
.input-group-text{ border-radius:12px; background:#f4f5fb; border-color:#dfe3ee; }

/* Tabelas */
.table{ --bs-table-hover-bg:#f7f8fd; }
.table > :not(caption) > * > *{ padding:.8rem .9rem; }
.table thead th{
  text-transform:uppercase; font-size:.72rem; letter-spacing:.05em;
  color:var(--muted); font-weight:700; border-bottom:1px solid var(--line);
}
.table td{ border-color:#f1f3f9; vertical-align:middle; }
.table-responsive{ border-radius:var(--radius); }

/* Alerts */
.alert{ border:0; border-radius:14px; box-shadow:var(--shadow-sm); }
.alert-success{ background:#e8f9f1; color:#0b7a58; }
.alert-danger{ background:#fdecec; color:#b42318; }
.alert-warning{ background:#fff4e2; color:#a15c07; }
.alert-info{ background:#e8f6fd; color:#0b6a93; }

.list-group-item{ border-color:#f1f3f9; }
.list-group-item-action:hover{ background:#f7f8fd; }

/* Cabeçalho de página */
.page-head{ display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; justify-content:space-between; margin-bottom:1.15rem; }
.page-title{ display:flex; align-items:center; gap:.6rem; margin:0; }
.page-title .ico{
  display:grid; place-items:center; width:40px; height:40px; border-radius:12px;
  background:linear-gradient(135deg,rgba(99,102,241,.14),rgba(139,92,246,.14));
  color:var(--brand-ink); font-size:1.1rem;
}

.chip{
  border-radius:999px; padding:.35rem .9rem; font-weight:600; font-size:.85rem;
  border:1px solid #dfe3ee; background:#fff; color:#475569; text-decoration:none;
  display:inline-block; transition:all .15s ease;
}
.chip:hover{ border-color:#c7ccf5; color:var(--brand-ink); }
.chip.active{ background:var(--brand); border-color:var(--brand); color:#fff; box-shadow:0 6px 14px -8px rgba(99,102,241,.7); }

@media (max-width:991.98px){
  .btn{ min-height:44px; }
  .form-control, .form-select{ min-height:46px; font-size:1rem; }
  .table td, .table th{ white-space:nowrap; }
  h4{ font-size:1.2rem; }
  .app-content{ padding-left:.85rem; padding-right:.85rem; }
}

@media (min-width:992px){
  .app-shell{ display:flex; }
  .content{ flex:1; margin-left:var(--sidebar-w); }
  .app-content{ padding:1.75rem 2.25rem; margin-inline:auto; }
}

@keyframes rise{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.app-content > *{ animation:rise .3s ease both; }

*::-webkit-scrollbar{ width:10px; height:10px; }
*::-webkit-scrollbar-thumb{ background:#d3d8e6; border-radius:999px; border:2px solid transparent; background-clip:content-box; }
*::-webkit-scrollbar-thumb:hover{ background:#b9c0d6; background-clip:content-box; }
