@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --bs-body-font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bs-body-line-height: 1.55;
  --bs-border-radius: .75rem;
  --bs-border-radius-lg: 1rem;
  --uwp-ink: #152238;
  --uwp-muted: #6f7d91;
  --uwp-primary: #635bff;
  --uwp-primary-dark: #5148e8;
  --uwp-surface: #ffffff;
  --uwp-page: #f5f7fb;
  --uwp-border: #e8edf5;
  --uwp-sidebar: #111a2e;
  --uwp-sidebar-muted: #9da9bf;
}

* { box-sizing: border-box; }
body {
  background: var(--uwp-page);
  color: var(--uwp-ink);
  font-family: var(--bs-body-font-family);
  font-size: .93rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6, .btn, .form-label, .badge, .nav-link { letter-spacing: -.015em; }
h1, h2, h3, h4, h5, h6 { color: var(--uwp-ink); font-weight: 700; }
a { color: var(--uwp-primary); }
.uwp-shell { min-height: 100vh; }
.uwp-sidebar { width: 272px; background: var(--uwp-sidebar); color: #fff; }
.uwp-brand { color: #fff; letter-spacing: -.04em; }
.uwp-brand:hover { color: #fff; }
.uwp-brand-mark { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:12px; background:linear-gradient(135deg,#8b83ff,#625bff); box-shadow:0 10px 24px rgba(99,91,255,.3); }
.uwp-sidebar .text-secondary { color: var(--uwp-sidebar-muted) !important; }
.uwp-section-label { color: #71809b; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.uwp-nav .nav-link { color: #b9c4d8; border-radius: 10px; padding: .7rem .8rem; font-weight: 500; display:flex; gap:.7rem; align-items:center; }
.uwp-nav .nav-link i { color:#7887a5; font-size:1rem; width:20px; text-align:center; }
.uwp-nav .nav-link:hover { background: rgba(255,255,255,.07); color:#fff; }
.uwp-nav .nav-link.active { background: linear-gradient(90deg, rgba(99,91,255,.95), rgba(99,91,255,.7)); color:#fff; box-shadow: 0 8px 18px rgba(0,0,0,.16); }
.uwp-nav .nav-link.active i { color:#fff; }
.uwp-main { min-width:0; }
.uwp-topbar { height: 76px; background: rgba(255,255,255,.86); border-bottom:1px solid var(--uwp-border); backdrop-filter: blur(12px); }
.uwp-content { max-width: 1500px; }
.uwp-eyebrow { color: var(--uwp-primary); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.uwp-page-title { font-size: clamp(1.45rem, 2vw, 2rem); letter-spacing:-.04em; font-weight:750; }
.card { border:1px solid var(--uwp-border); border-radius:18px; box-shadow: 0 10px 28px rgba(29,42,68,.055); }
.card-body { padding:1.5rem; }
.card-header, .card-footer { background: transparent; border-color: var(--uwp-border); padding:1.15rem 1.5rem; }
.card-header { font-weight: 650; }
.btn { border-radius:10px; font-weight:650; padding:.62rem .95rem; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-sm { padding:.4rem .65rem; border-radius:8px; }
.btn-primary { --bs-btn-bg: var(--uwp-primary); --bs-btn-border-color: var(--uwp-primary); --bs-btn-hover-bg: var(--uwp-primary-dark); --bs-btn-hover-border-color: var(--uwp-primary-dark); }
.btn-outline-primary { --bs-btn-color: var(--uwp-primary); --bs-btn-border-color: #c9c6ff; --bs-btn-hover-bg: var(--uwp-primary); --bs-btn-hover-border-color: var(--uwp-primary); }
.form-control, .form-select { border-color:#dfe5ef; border-radius:10px; padding:.72rem .85rem; min-height:44px; }
.form-control:focus, .form-select:focus { border-color:#aaa5ff; box-shadow:0 0 0 .25rem rgba(99,91,255,.12); }
.form-label { color:#536178; font-size:.8rem; font-weight:650; }
.table { --bs-table-bg: transparent; margin-bottom:0; }
.table thead th { color:#8490a3; font-size:.7rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; border-bottom-width:1px; white-space:nowrap; padding:1rem 1.15rem; }
.table td { border-color:#edf0f5; vertical-align:middle; padding:1rem 1.15rem; }
.table tbody tr:last-child td { border-bottom:0; }
.table tbody tr:hover { background:#fafbff; }
/* Ações de tabela seguem o espaçamento do Bootstrap gap-2 sem colar botões. */
.table td .btn + .btn,
.table td .btn + form,
.table td form + .btn,
.table td form + form { margin-left:.5rem; }
.table td form { vertical-align:middle; }
.table td.text-end { vertical-align:middle; }
.table td.text-end > .btn,
.table td.text-end > form { display:inline-flex !important; align-items:center; vertical-align:middle; }
.table td.text-end > form { margin-left:.5rem; }
.table td.text-end > .btn,
.table td.text-end > form .btn { min-width:76px; justify-content:center; text-align:center; }
.table td .uwp-icon-action { width:40px; height:40px; min-width:40px !important; padding:.35rem; border-radius:10px; }
.table td .uwp-icon-action i { font-size:1rem; line-height:1; }
.table td .uwp-icon-action:hover { box-shadow:0 6px 14px rgba(29,42,68,.1); }
@media (max-width: 575.98px) {
  .table td.text-end { white-space:normal; }
  .table td .btn, .table td form { margin-top:.2rem; margin-bottom:.2rem; }
}
.badge { border-radius:999px; padding:.45em .7em; font-weight:650; }
.uwp-stat { position:relative; overflow:hidden; min-height:138px; }
.uwp-stat::after { content:""; position:absolute; width:110px; height:110px; border-radius:50%; right:-35px; bottom:-48px; background:rgba(99,91,255,.08); }
.uwp-stat-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:#eeedff; color:var(--uwp-primary); font-size:1.1rem; }
.uwp-stat-value { font-size:2rem; font-weight:750; letter-spacing:-.05em; }
.uwp-hero { background:linear-gradient(135deg,#1c2946 0%,#263d69 55%,#635bff 140%); color:#fff; border:0; overflow:hidden; position:relative; }
.uwp-hero h1, .uwp-hero h2, .uwp-hero h3, .uwp-hero h4, .uwp-hero h5, .uwp-hero h6 { color:#fff; }
.uwp-hero::after { content:""; position:absolute; width:260px; height:260px; border:1px solid rgba(255,255,255,.16); border-radius:50%; right:-80px; top:-100px; box-shadow:0 0 0 28px rgba(255,255,255,.04),0 0 0 56px rgba(255,255,255,.03); }
.uwp-hero .text-secondary { color:#b7c3dc !important; }
.uwp-empty { border:1px dashed #dbe2ef; border-radius:14px; padding:2.5rem 1rem; text-align:center; color:var(--uwp-muted); }
.uwp-empty i { display:block; color:#b7bfd0; font-size:2rem; margin-bottom:.7rem; }
.uwp-footer { color:#9aa5b7; font-size:.78rem; }
[data-bs-theme="dark"] { --uwp-page:#0f1728; --uwp-surface:#172238; --uwp-border:#33415b; --uwp-ink:#e9eef8; }
[data-bs-theme="dark"] .uwp-topbar { background:rgba(23,34,56,.9); }
[data-bs-theme="dark"] .card, [data-bs-theme="dark"] .table tbody tr:hover { background:var(--uwp-surface); }
[data-bs-theme="dark"] .table td, [data-bs-theme="dark"] .table thead th { border-color:#33415b; }
[data-bs-theme="dark"] .form-control, [data-bs-theme="dark"] .form-select { background:#111b2e; color:#e9eef8; border-color:#33415b; }
@media (max-width: 991.98px) {
  .uwp-sidebar { width:280px; }
  .uwp-content { padding-left:1rem !important; padding-right:1rem !important; }
  .card-body { padding:1.25rem; }
  .card-header, .card-footer { padding-left:1.25rem; padding-right:1.25rem; }
}
