/* PlantãoPro v1.96.2 — experiência clean, clínica e comercial. */
:root {
  --fc-ink: #10243b;
  --fc-muted: #60748a;
  --fc-navy: #09243c;
  --fc-graphite: #142c40;
  --fc-cyan: #087f8c;
  --fc-cyan-soft: #dff5f5;
  --fc-surface: rgba(255, 255, 255, .88);
  --fc-surface-solid: #f8fbfc;
  --fc-border: rgba(39, 80, 108, .15);
  --fc-border-active: rgba(8, 127, 140, .38);
  --fc-shadow: 0 14px 38px rgba(13, 41, 62, .08);
  --fc-radius: 16px;
  --fc-focus: 0 0 0 3px rgba(8, 127, 140, .24);
  --fc-success: #18794e;
  --fc-warning: #9a6700;
  --fc-danger: #b4233c;
  --fc-info: #1261a0;
  --fc-canvas: #f3f7f8;
  --fc-surface-raised: #ffffff;
  --fc-surface-muted: #edf3f5;
  --fc-radius-sm: 10px;
  --fc-radius-lg: 20px;
  --fc-shadow-xs: 0 1px 3px rgba(13, 41, 62, .05);
  --fc-shadow-sm: 0 8px 24px rgba(13, 41, 62, .06);
  --fc-shadow-lg: 0 24px 64px rgba(13, 41, 62, .12);
  --fc-space-page: clamp(1rem, 2.2vw, 2rem);
  --fc-reading-width: 68ch;
}

html { color-scheme: light; }
body.pp-body {
  color: var(--fc-ink);
  background-color: #eef4f6;
  background-image: radial-gradient(circle at 88% 4%, rgba(34, 156, 165, .08), transparent 27rem), linear-gradient(145deg, #f5f8fa 0%, #edf4f5 55%, #f7fafb 100%);
  background-attachment: fixed;
}
::selection { color: #fff; background: var(--fc-cyan); }
:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--fc-cyan); outline-offset: 3px; box-shadow: var(--fc-focus); }
:where(button, .btn, input, select, textarea):disabled { cursor: not-allowed; opacity: .58; filter: saturate(.65); }

.pp-app-shell { min-height: 100dvh; }
.pp-sidebar {
  background: linear-gradient(180deg, var(--fc-navy), #0d2d45 62%, #102f43);
  border-right: 1px solid rgba(163, 215, 220, .14);
  box-shadow: 10px 0 34px rgba(6, 29, 46, .1);
}
.sidebar-brand { padding-block: 1.15rem; border-bottom-color: rgba(212, 239, 241, .1); }
.sidebar-tenant { background: rgba(220, 247, 247, .055); border: 1px solid rgba(195, 230, 234, .12); border-radius: 12px; }
.tenant-status, .pp-live-context > span { width: .5rem; height: .5rem; border-radius: 50%; background: #65c9bd; box-shadow: 0 0 0 4px rgba(101, 201, 189, .12); }
.sidebar-search { border-color: rgba(190, 224, 228, .14); background: rgba(255, 255, 255, .045); }
.sidebar-nav { padding: .7rem .75rem 1.5rem; }
.nav-section-title { margin-top: 1rem; color: #91aebb; letter-spacing: .09em; }
.nav-link-app { position: relative; margin-block: .15rem; border: 1px solid transparent; border-radius: 11px; color: #c7d8df; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.nav-link-app:hover { color: #fff; background: rgba(212, 245, 245, .07); border-color: rgba(201, 235, 237, .09); transform: translateX(2px); }
.nav-link-app.active { color: #f4ffff; background: linear-gradient(90deg, rgba(54, 161, 167, .24), rgba(54, 161, 167, .08)); border-color: rgba(119, 211, 210, .2); box-shadow: inset 3px 0 #65c9bd; }

.pp-topbar { background: rgba(248, 251, 252, .88); border-bottom: 1px solid var(--fc-border); box-shadow: 0 7px 26px rgba(17, 54, 75, .045); backdrop-filter: blur(10px); }
.pp-topbar__title { color: var(--fc-ink); letter-spacing: -.025em; }
.pp-topbar__subtitle { color: var(--fc-muted); }
.pp-live-context { align-items: center; gap: .55rem; padding: .48rem .7rem; color: #315b68; background: #edf8f7; border: 1px solid #d2eae8; border-radius: 999px; font-size: .75rem; font-weight: 700; }
.topbar-search, .pp-user-menu__trigger { background: rgba(255,255,255,.72); border: 1px solid var(--fc-border); border-radius: 11px; }
.pp-user-menu__dropdown { border: 1px solid var(--fc-border); border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: var(--fc-shadow); }

.pp-content { min-width: 0; }
.pp-content-container { max-width: 1680px; padding: var(--fc-space-page); }
.pp-future-page-header, .workspace-header {
  padding: clamp(1rem, 2vw, 1.5rem);
  background: linear-gradient(125deg, rgba(255,255,255,.94), rgba(242,249,249,.86));
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius);
  box-shadow: 0 10px 28px rgba(15, 52, 73, .055);
}
.page-header-icon { color: var(--fc-cyan); background: var(--fc-cyan-soft); border: 1px solid #c7e8e7; }
.pp-operation-toolbar { padding: .75rem; background: rgba(255,255,255,.68); border: 1px solid var(--fc-border); border-radius: 14px; }

:where(.card, .dashboard-card, .stat-card, .kpi-card, .metric-card, .module-card, .filter-panel, .table-card) {
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius);
  background: var(--fc-surface);
  box-shadow: 0 8px 24px rgba(16, 49, 70, .05);
}
:where(.card, .dashboard-card, .stat-card, .kpi-card, .metric-card, .module-card) { transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
:where(.card, .dashboard-card, .stat-card, .kpi-card, .metric-card, .module-card):hover { border-color: var(--fc-border-active); box-shadow: 0 13px 30px rgba(16, 49, 70, .075); transform: translateY(-2px); }
:where(.kpi-card, .metric-card, .stat-card) :where(.value, .metric-value, h2) { color: var(--fc-ink); letter-spacing: -.035em; }
:where(.filter-panel, .filters-panel, .filter-card) { padding: 1rem; background: rgba(242,248,249,.88); border: 1px solid var(--fc-border); border-radius: 14px; }
.pp-module-grid, .quick-actions-grid { gap: 1rem; }
.dashboard-grid, .metrics-grid, .stats-grid, .saas-dashboard-grid { gap: clamp(.85rem, 1.5vw, 1.25rem); }
.pp-page-intro__eyebrow, .pp-section-kicker { color: #14727b; font-size: .72rem; font-weight: 750; letter-spacing: .085em; text-transform: uppercase; }
:where(.pp-future-page-header, .workspace-header, .pp-operation-header) :where(h1, h2) { max-width: 24ch; margin-bottom: .35rem; letter-spacing: -.035em; }
:where(.pp-future-page-header, .workspace-header, .pp-operation-header) p { max-width: var(--fc-reading-width); color: var(--fc-muted); }

.btn { border-radius: 10px; font-weight: 650; transition: transform .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease; }
.btn:hover:not(:disabled) { transform: translateY(-1px); }
.btn-primary { color: #fff; background: #096f7b; border-color: #096f7b; box-shadow: 0 7px 16px rgba(8, 111, 123, .16); }
.btn-primary:hover { background: #075e69; border-color: #075e69; }
.btn-light, .btn-outline-secondary { color: #29485c; border-color: var(--fc-border); background: rgba(255,255,255,.74); }
.badge, .status-badge, .context-chip { border: 1px solid currentColor; border-radius: 999px; font-weight: 700; letter-spacing: .01em; }
.status-ativo, .status-concluido, .status-confirmado, .badge-success { color: var(--fc-success); background: #eaf7f0; }
.status-pendente, .status-aguardando, .badge-warning { color: var(--fc-warning); background: #fff7da; }
.status-cancelado, .status-inativo, .badge-danger { color: var(--fc-danger); background: #fff0f1; }

.table-responsive { border-radius: 13px; scrollbar-gutter: stable; }
.table { --bs-table-bg: transparent; color: var(--fc-ink); }
.table > :not(caption) > * > * { padding: .85rem .8rem; border-bottom-color: rgba(39,80,108,.1); }
.table thead th { color: #4d6577; background: rgba(228,239,241,.6); font-size: .75rem; letter-spacing: .045em; text-transform: uppercase; }
.table tbody tr { transition: background-color .15s ease; }
.table tbody tr:hover { background: rgba(222, 242, 242, .35); }
.table td { vertical-align: middle; }
.table :where(.btn, .badge, .status-badge) { white-space: nowrap; }
.table-responsive:focus-visible { outline: 2px solid var(--fc-cyan); outline-offset: 2px; }

.pp-future-empty-state, .empty-state { padding: clamp(2rem, 5vw, 4rem); border: 1px dashed rgba(49, 105, 126, .28); border-radius: var(--fc-radius); background: rgba(248,252,252,.72); }
.empty-state-icon { color: var(--fc-cyan); background: var(--fc-cyan-soft); }
.alert, .toast { border-width: 1px; border-radius: 13px; box-shadow: 0 10px 26px rgba(20,50,68,.08); }
.pp-dialog { width: min(680px, calc(100vw - 2rem)); padding: 0; border: 1px solid var(--fc-border); border-radius: 18px; background: rgba(250,253,253,.98); box-shadow: 0 28px 70px rgba(7,34,51,.2); }
.pp-dialog::backdrop { background: rgba(6,25,39,.48); backdrop-filter: blur(3px); }
.pp-command-header { padding: 1.1rem 1rem .25rem; }
.pp-command-header h2 { margin: .2rem 0 0; font-size: 1.2rem; }
.pp-command-results { max-height: min(55vh, 32rem); overflow-y: auto; }
.pp-future-modal, .pp-future-drawer, .app-drawer { border-color: var(--fc-border); background: #fbfdfd; box-shadow: -18px 0 48px rgba(8,34,51,.15); }
.app-drawer { width: min(32rem, 100vw); max-height: 100dvh; overflow: auto; }
.pp-detail-drawer__timeline { border-left-color: #91c7c8; }
.modal-content, .offcanvas { border: 1px solid var(--fc-border); border-radius: var(--fc-radius); background: rgba(252,254,254,.98); box-shadow: var(--fc-shadow-lg); }
.modal-header, .modal-footer, .offcanvas-header { border-color: rgba(39,80,108,.1); }
.form-control, .form-select { min-height: 2.75rem; border-color: rgba(45,86,110,.2); border-radius: var(--fc-radius-sm); background-color: rgba(255,255,255,.9); }
.form-control:focus, .form-select:focus { border-color: var(--fc-cyan); box-shadow: var(--fc-focus); }

/* Login: produto e segurança em equilíbrio, sem conteúdo decorativo falso. */
.pp-auth-body { min-height: 100dvh; background: #09243c; background-image: radial-gradient(circle at 18% 20%, rgba(47,154,159,.18), transparent 28rem), linear-gradient(145deg, #081f34, #10364b 64%, #174c58); }
.auth-main { min-height: 100dvh; }
.pp-auth-page { min-height: 100dvh; display: grid; place-items: center; padding: clamp(1rem, 4vw, 3rem); }
.pp-auth-shell { width: min(1120px, 100%); display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(22rem, .92fr); overflow: hidden; border: 1px solid rgba(194,229,231,.2); border-radius: 24px; background: rgba(244,250,250,.08); box-shadow: 0 30px 80px rgba(1,15,26,.28); backdrop-filter: blur(8px); }
.pp-auth-brand-panel { padding: clamp(2rem, 5vw, 4.5rem); color: #eaf6f7; background: linear-gradient(145deg, rgba(7,34,55,.58), rgba(12,62,72,.34)); }
.pp-auth-brand-panel h1 { max-width: 15ch; color: #fff; letter-spacing: -.035em; }
.pp-auth-brand-panel p { color: #bed3da; }
.pp-auth-kicker { color: #80d2cb; }
.pp-auth-benefit-grid li { background: rgba(232,250,249,.055); border: 1px solid rgba(198,232,232,.12); border-radius: 13px; }
.pp-auth-benefit-grid span { color: #bcd1d8; }
.pp-auth-form-panel { display: grid; align-items: center; padding: clamp(1.25rem, 4vw, 3rem); background: rgba(250,253,253,.97); }
.pp-auth-card { max-width: 27rem; margin-inline: auto; }
.pp-form-control { border-color: rgba(45,86,110,.22); border-radius: 11px; background: rgba(255,255,255,.88); }
.pp-form-control:focus { border-color: var(--fc-cyan); box-shadow: var(--fc-focus); }
.auth-security { color: #506b7d; background: #edf6f5; border: 1px solid #d8eae9; border-radius: 12px; }

@media (max-width: 991.98px) {
  .pp-topbar { backdrop-filter: none; }
  .pp-auth-shell { grid-template-columns: 1fr; max-width: 42rem; }
  .pp-auth-brand-panel { padding: 2rem; }
  .pp-auth-benefit-grid { grid-template-columns: repeat(3, 1fr); }
  .pp-auth-form-panel { padding: 2rem; }
}
@media (max-width: 767.98px) {
  .pp-content-container { padding-inline: .85rem; }
  .pp-topbar { min-height: auto; padding: .65rem .8rem; }
  .pp-topbar__actions { gap: .35rem; }
  .pp-future-page-header, .workspace-header { border-radius: 13px; }
  .pp-operation-toolbar .btn { flex: 1 1 auto; }
  .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table { min-width: 42rem; }
  .table[data-mobile-cards] { min-width: 0; }
  .pp-kpi-grid, .dashboard-grid, .metrics-grid, .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-auth-page { padding: .75rem; align-items: start; }
  .pp-auth-shell { border-radius: 18px; }
  .pp-auth-brand-panel { padding: 1.5rem; }
  .pp-auth-brand-panel h1 { font-size: clamp(1.65rem, 8vw, 2.25rem); }
  .pp-auth-benefit-grid { grid-template-columns: 1fr; }
  .pp-auth-form-panel { padding: 1.4rem; }
}
@media (max-width: 380px) {
  .pp-auth-page { padding: 0; }
  .pp-auth-shell { border: 0; border-radius: 0; }
  .pp-auth-brand-panel, .pp-auth-form-panel { padding: 1.15rem; }
  .pp-auth-brand-panel p, .pp-auth-benefit-grid { display: none; }
  .pp-user-menu .user-info { display: none; }
  .pp-kpi-grid, .dashboard-grid, .metrics-grid, .stats-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto; animation-duration: .01ms; animation-iteration-count: 1; transition-duration: .01ms; }
}
@media (prefers-contrast: more) {
  :root { --fc-border: rgba(15, 48, 68, .42); }
  .nav-link-app { color: #fff; }
}

.pp-auth-trust-row { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.pp-auth-trust-row span { display: inline-flex; align-items: center; gap: .35rem; padding: .48rem .65rem; color: #d5e8ea; border: 1px solid rgba(194,229,231,.15); border-radius: 999px; font-size: .75rem; font-weight: 650; }
.pp-strategic-surface { --pp-card-border: var(--fc-border); }
.pp-future-error-state { border-radius: var(--fc-radius); }
/* PlantãoPro v1.97.0 — acabamento premium clean sobre o design system existente. */
:root {
  --pp-v1970-canvas: #f3f7f9;
  --pp-v1970-surface: #ffffff;
  --pp-v1970-surface-subtle: #f7fafb;
  --pp-v1970-navy: #09243c;
  --pp-v1970-blue: #164e78;
  --pp-v1970-cyan: #087f8c;
  --pp-v1970-health: #18794e;
  --pp-v1970-ink: #10243b;
  --pp-v1970-muted: #5d7185;
  --pp-v1970-border: #d8e4e9;
  --pp-v1970-border-strong: #b8cbd3;
  --pp-v1970-focus: #087f8c;
  --pp-v1970-shadow-card: 0 6px 20px rgb(13 41 62 / .055);
  --pp-v1970-shadow-float: 0 18px 48px rgb(13 41 62 / .12);
  --pp-v1970-control-height: 2.75rem;
  --pp-v1970-table-cell-y: .8rem;
  --pp-v1970-card-padding: clamp(1rem, 1.6vw, 1.4rem);
  --pp-v1970-page-gap: clamp(1rem, 2vw, 1.5rem);
}

body.pp-body { color: var(--pp-v1970-ink); background: var(--pp-v1970-canvas); }
.pp-content-container { display: grid; gap: var(--pp-v1970-page-gap); }
.pp-dashboard-workspace { display: grid; gap: var(--pp-v1970-page-gap); }
.pp-dashboard-workspace > :where(header, section, div) { min-width: 0; }

.pp-sidebar { background: var(--pp-v1970-navy); box-shadow: 8px 0 28px rgb(9 36 60 / .08); }
.nav-link-app:hover { transform: none; }
.nav-link-app.active { background: rgb(34 141 151 / .17); box-shadow: inset 3px 0 #70cbc5; }
.pp-topbar { background: rgb(255 255 255 / .94); box-shadow: 0 3px 14px rgb(13 41 62 / .04); }
.pp-live-context { color: #24555d; background: #eff8f7; border-color: #cfe6e4; }

:where(.pp-page-hero, .pp-profile-focus, .pp-filter-bar, .pp-section, .pp-kpi-card, .pp-action-card, .pp-operational-card) {
  border-color: var(--pp-v1970-border);
  box-shadow: var(--pp-v1970-shadow-card);
}
.pp-page-hero { background: var(--pp-v1970-surface); }
.pp-profile-focus { background: var(--pp-v1970-surface-subtle); }
.pp-kpi-strip { gap: .85rem; }
.pp-kpi-card { position: relative; overflow: hidden; background: var(--pp-v1970-surface); }
.pp-kpi-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--pp-v1970-cyan); }
.pp-kpi-card--warning::before { background: var(--fc-warning); }
.pp-kpi-card--danger::before { background: var(--fc-danger); }
.pp-action-card { background: var(--pp-v1970-surface); }
.pp-action-card:hover { transform: translateY(-1px); border-color: #9ec5ca; box-shadow: 0 10px 26px rgb(13 41 62 / .075); }
.pp-action-card__icon { color: var(--pp-v1970-cyan); background: #e8f5f5; border: 1px solid #d1e9e8; }
.pp-action-card__meta { color: #126a73; }

:where(.btn, .form-control, .form-select, .input-group-text) { min-height: var(--pp-v1970-control-height); }
.btn-sm { min-height: 2.25rem; }
.form-control, .form-select { color: var(--pp-v1970-ink); background-color: #fff; border-color: var(--pp-v1970-border-strong); }
.form-control::placeholder { color: #718597; opacity: 1; }
.form-control:focus, .form-select:focus { border-color: var(--pp-v1970-focus); box-shadow: 0 0 0 3px rgb(8 127 140 / .2); }
.field-validation-error, .pp-form-error { color: #a51d35; font-weight: 600; }
.input-validation-error { border-color: #b4233c; }
.input-validation-error:focus { box-shadow: 0 0 0 3px rgb(180 35 60 / .18); }

.table > :not(caption) > * > * { padding-block: calc(var(--pp-v1970-table-cell-y) * var(--pp-density, 1)); }
.table thead th { color: #40596c; background: #edf3f5; }
.table tbody tr:hover { background: #f2f8f8; }
.pagination .page-link { min-width: 2.5rem; min-height: 2.5rem; display: inline-grid; place-items: center; color: var(--pp-v1970-blue); border-color: var(--pp-v1970-border); }
.pagination .active > .page-link { color: #fff; background: var(--pp-v1970-cyan); border-color: var(--pp-v1970-cyan); }

.pp-auth-body { background: var(--pp-v1970-navy); }
.pp-auth-shell { background: #12354a; border-color: rgb(194 229 231 / .17); box-shadow: 0 24px 64px rgb(1 15 26 / .25); }
.pp-auth-brand-panel { background: #0c2c43; }
.pp-auth-form-panel { background: #fbfdfd; }
.pp-auth-card h2 { color: var(--pp-v1970-ink); letter-spacing: -.03em; }
.pp-login-form .btn-primary { min-height: 3rem; }

@media (max-width: 767.98px) {
  .pp-content-container { gap: 1rem; }
  .pp-page-hero, .pp-profile-focus, .pp-section, .pp-filter-bar { padding: 1rem; }
  .pp-page-hero__copy h1 { max-width: 22ch; }
  .pp-hero-actions, .pp-filter-bar__actions { width: 100%; }
  .pp-hero-actions .btn, .pp-filter-bar__actions .btn { flex: 1 1 10rem; }
  .pp-action-grid { grid-template-columns: 1fr; }
  .pp-auth-brand-panel { background: #0c2c43; }
}

@media (max-width: 479.98px) {
  .pp-kpi-strip { grid-template-columns: 1fr; }
  .pp-page-hero__copy h1 { font-size: 1.65rem; }
  .pp-auth-trust-row { display: none; }
  .pp-auth-card { width: 100%; }
}

@media (forced-colors: active) {
  :where(.pp-kpi-card, .pp-action-card, .nav-link-app.active) { border: 2px solid CanvasText; }
}
/* PlantãoPro v1.98.0 — camada operacional premium, calma e responsiva. */
:root {
  --pp-canvas: #f2f6f8;
  --pp-surface: #fff;
  --pp-surface-soft: #f7fafb;
  --pp-ink: #10283e;
  --pp-muted: #607487;
  --pp-brand: #123f63;
  --pp-accent: #087e89;
  --pp-health: #267a59;
  --pp-line: #d9e4e9;
  --pp-radius: .875rem;
  --pp-radius-lg: 1.125rem;
  --pp-shadow: 0 8px 24px rgb(12 43 66 / .06);
}

body.pp-body { color: var(--pp-ink); background: var(--pp-canvas); }
.pp-content { background: radial-gradient(circle at 96% 0, rgb(8 126 137 / .045), transparent 22rem), var(--pp-canvas); }
.pp-content-container { width: min(100%, 96rem); margin-inline: auto; }

/* Navegação: uma marca, hierarquia estável e alvos confortáveis. */
.pp-sidebar { border-right: 1px solid rgb(190 218 226 / .16); }
.sidebar-brand { border-bottom: 1px solid rgb(220 237 241 / .11); }
.sidebar-logo img { max-width: 9.75rem; }
.nav-section-title { margin-top: 1rem; color: #a9c1ce; letter-spacing: .09em; }
.nav-link-app { min-height: 2.65rem; border-radius: .65rem; color: #dce9ee; }
.nav-link-app app-icon { color: #9fc5cf; }
.nav-link-app.active { color: #fff; background: rgb(56 171 179 / .16); box-shadow: inset 3px 0 #66c8c9; }
.nav-link-app.active app-icon { color: #8fdddd; }
.pp-topbar { min-height: 4.75rem; border-bottom: 1px solid var(--pp-line); }
.pp-topbar__title { color: var(--pp-ink); letter-spacing: -.025em; }
.pp-topbar__subtitle { color: var(--pp-muted); }

/* Cabeçalhos, filtros, cards e blocos formam uma mesma linguagem. */
:where(.pp-page-hero, .pp-profile-focus, .pp-section, .pp-filter-bar, .pp-kpi-card, .pp-action-card, .pp-operational-card, .card, .modal-content) {
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius-lg);
  box-shadow: var(--pp-shadow);
}
.pp-page-hero { position: relative; overflow: hidden; padding: clamp(1.25rem, 2.4vw, 2rem); }
.pp-page-hero::after { content: ""; position: absolute; inset: 0 0 auto auto; width: 10rem; height: 10rem; pointer-events: none; background: radial-gradient(circle at top right, rgb(8 126 137 / .1), transparent 68%); }
.pp-page-hero__copy, .pp-hero-actions { position: relative; z-index: 1; }
.pp-eyebrow, .pp-section-kicker { color: #176d75; letter-spacing: .055em; }
.pp-section-heading h2 { color: var(--pp-ink); letter-spacing: -.02em; }
.pp-section-heading p, .pp-page-hero p { color: var(--pp-muted); }
.pp-kpi-card { min-height: 8.25rem; padding: 1.15rem; }
.pp-kpi-card strong { color: var(--pp-ink); font-variant-numeric: tabular-nums; }
.pp-action-card { min-height: 12rem; padding: 1.2rem; }
.pp-action-card:focus-visible { transform: translateY(-1px); }
.pp-profile-focus { border-left: 3px solid var(--pp-accent); }

/* Controles e tabelas de CRUD sem aparência de scaffolding cru. */
:where(.form-control, .form-select, .btn, .input-group-text) { border-radius: .65rem; }
:where(.form-control, .form-select):focus { border-color: var(--pp-accent); box-shadow: 0 0 0 3px rgb(8 126 137 / .18); }
.btn-primary { background: var(--pp-brand); border-color: var(--pp-brand); box-shadow: 0 3px 10px rgb(18 63 99 / .12); }
.btn-primary:hover { background: #0d3453; border-color: #0d3453; }
.btn-danger { background: #a83343; border-color: #a83343; }
.pp-data-table, .table-responsive { border-radius: var(--pp-radius); }
.table { --bs-table-bg: transparent; color: var(--pp-ink); }
.table thead th { border-bottom-color: #cbdbe1; color: #486174; font-size: .75rem; letter-spacing: .045em; text-transform: uppercase; }
.table tbody tr { border-color: #e5edf0; }
.table tbody tr:hover { background: #f3f8f9; }
.badge, .pp-status-badge { border-radius: 999px; font-weight: 650; letter-spacing: .01em; }
.pp-empty-state { min-height: 12rem; border: 1px dashed #bfd0d7; border-radius: var(--pp-radius); background: var(--pp-surface-soft); }

/* Login comercial: composição discreta, sem duplicar a marca. */
.pp-auth-body { background: #09283f; }
.pp-auth-body::before { content: ""; position: fixed; inset: 0; pointer-events: none; background: radial-gradient(circle at 15% 10%, rgb(49 151 163 / .18), transparent 30rem), linear-gradient(135deg, transparent 55%, rgb(255 255 255 / .025)); }
.pp-auth-shell { isolation: isolate; max-width: 70rem; border-radius: 1.4rem; box-shadow: 0 28px 70px rgb(1 17 29 / .25); }
.pp-auth-brand-panel { background: linear-gradient(155deg, #0b3049, #0b263b); }
.pp-auth-logo { height: auto; }
.pp-auth-form-panel { background: #fbfdfd; }
.pp-auth-card { max-width: 27rem; }
.pp-error-panel:not(:empty) { padding: .85rem 1rem; border: 1px solid #e6b7bd; border-radius: .7rem; color: #8e2635; background: #fff3f4; }

@media (max-width: 1199.98px) {
  .pp-topbar__actions > :where(.pp-plan-usage-mini, .tenant-context-badge) { display: none; }
  .pp-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .pp-topbar { min-height: 4rem; padding-inline: .75rem; }
  .pp-topbar__actions { gap: .35rem; }
  .pp-content { padding-inline: .75rem; }
  .pp-page-hero { align-items: stretch; }
  .pp-hero-actions { display: grid; grid-template-columns: 1fr; }
  .pp-filter-grid { grid-template-columns: 1fr; }
  .pp-auth-shell { width: min(100% - 1rem, 34rem); border-radius: 1rem; }
  .pp-auth-brand-panel { padding: 1.25rem; }
  .pp-auth-benefit-grid, .pp-auth-trust-row { display: none; }
  .pp-auth-form-panel { padding: 1.25rem; }
}
@media (max-width: 479.98px) {
  .pp-kpi-strip { grid-template-columns: 1fr; }
  .pp-topbar__actions > :not(#sidebarToggle, .user-menu, [data-notification-menu]) { display: none; }
  .btn { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@media (forced-colors: active) {
  :where(.pp-page-hero, .pp-section, .pp-kpi-card, .pp-action-card, .nav-link-app.active) { border: 2px solid CanvasText; }
}

/* PlantãoPro Design System 2.0 — canonical premium experience */
:root {
  --pp-navy-950:#071827; --pp-navy-900:#0a2238; --pp-navy-800:#10344f;
  --pp-teal-600:#087f8c; --pp-teal-500:#0f9ba8; --pp-canvas:#f4f7f9;
  --pp-surface:#fff; --pp-surface-muted:#f8fafb; --pp-line:#dce5ea;
  --pp-text:#172b3a; --pp-text-muted:#607482; --pp-success:#16845b;
  --pp-warning:#a86408; --pp-danger:#c33b46; --pp-info:#176ba0;
  --pp-radius-sm:.55rem; --pp-radius-md:.8rem; --pp-radius-lg:1.1rem; --pp-radius-xl:1.5rem;
  --pp-shadow-sm:0 1px 2px rgb(7 24 39 / 5%),0 8px 24px rgb(7 24 39 / 4%);
  --pp-shadow-md:0 16px 40px rgb(7 24 39 / 9%); --pp-focus:0 0 0 3px rgb(15 155 168 / 24%);
  --pp-space-1:.25rem; --pp-space-2:.5rem; --pp-space-3:.75rem; --pp-space-4:1rem;
  --pp-space-5:1.25rem; --pp-space-6:1.5rem; --pp-space-8:2rem; --pp-sidebar-width:17.5rem;
  --pp-topbar-height:5.25rem; --pp-transition:160ms cubic-bezier(.2,.7,.2,1); --pp-z-sidebar:40; --pp-z-overlay:50; --pp-z-toast:80;
}
html{background:var(--pp-canvas);scroll-behavior:smooth} body{color:var(--pp-text);background:var(--pp-canvas);font-feature-settings:"ss01" 1,"cv11" 1;text-rendering:optimizeLegibility}
*:focus-visible{outline:0;box-shadow:var(--pp-focus)!important;border-radius:var(--pp-radius-sm)}
::selection{color:#fff;background:var(--pp-teal-600)}
.pp-app-shell{min-height:100dvh;background:linear-gradient(135deg,#f2f7f9 0,#f8fafb 46%,#f1f5f7 100%)}
.pp-sidebar{width:var(--pp-sidebar-width);background:var(--pp-navy-950);border-right:1px solid rgb(255 255 255 / 8%);box-shadow:none;z-index:var(--pp-z-sidebar)}
.sidebar-brand{background:linear-gradient(180deg,rgb(255 255 255 / 4%),transparent);border-bottom:1px solid rgb(255 255 255 / 8%)}
.sidebar-logo{min-height:3rem}.brand-logo{max-width:9.8rem}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#315068 transparent}
.nav-section-title{color:#86a3b5;letter-spacing:.11em;font-size:.67rem;font-weight:750;text-transform:uppercase}
.nav-link-app{position:relative;min-height:2.75rem;margin:.15rem .65rem;border-radius:.7rem;color:#c5d5de;transition:background var(--pp-transition),color var(--pp-transition),transform var(--pp-transition)}
.nav-link-app:hover{color:#fff;background:rgb(255 255 255 / 7%);transform:translateX(2px)}
.nav-link-app.active{color:#fff;background:linear-gradient(90deg,rgb(15 155 168 / 26%),rgb(15 155 168 / 10%));box-shadow:inset 3px 0 0 #4ecbd1}
.pp-main-shell{min-width:0}.pp-topbar{min-height:var(--pp-topbar-height);background:rgb(255 255 255 / 88%);border-bottom:1px solid var(--pp-line);backdrop-filter:blur(18px);box-shadow:0 1px 0 rgb(7 24 39 / 2%)}
.pp-topbar__title{letter-spacing:-.025em;color:var(--pp-navy-900)}.pp-breadcrumb{color:var(--pp-text-muted)}
.pp-content{background:transparent}.pp-content-container{width:min(100%,94rem);margin-inline:auto;padding:clamp(1rem,2.2vw,2rem)}
.card,.pp-card,.metric-card,.operational-card,.table-card,.filter-card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-sm)}
.card,.pp-card,.metric-card,.operational-card{transition:transform var(--pp-transition),border-color var(--pp-transition),box-shadow var(--pp-transition)}
.card:hover,.pp-card:hover,.metric-card:hover,.operational-card:hover{border-color:#bfd1da;box-shadow:var(--pp-shadow-md);transform:translateY(-2px)}
.btn{min-height:2.65rem;border-radius:var(--pp-radius-md);font-weight:680;transition:transform var(--pp-transition),box-shadow var(--pp-transition),background var(--pp-transition)}
.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--pp-navy-800);border-color:var(--pp-navy-800);box-shadow:0 5px 14px rgb(16 52 79 / 15%)}.btn-primary:hover{background:var(--pp-navy-900);border-color:var(--pp-navy-900)}
.btn:disabled,[aria-disabled="true"]{opacity:.55;cursor:not-allowed;box-shadow:none!important}
.form-control,.form-select,.pp-form-control{min-height:2.75rem;border:1px solid #cbd9e0;border-radius:var(--pp-radius-md);background:#fff;color:var(--pp-text)}
.form-control:hover,.form-select:hover,.pp-form-control:hover{border-color:#9eb5c1}.form-control:focus,.form-select:focus,.pp-form-control:focus{border-color:var(--pp-teal-600);box-shadow:var(--pp-focus)}
.table-responsive{border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);background:#fff;box-shadow:var(--pp-shadow-sm)}
.table{margin:0;color:var(--pp-text)}.table thead th{padding:.8rem 1rem;background:#f3f7f8;color:#506874;border-bottom:1px solid var(--pp-line);font-size:.72rem;letter-spacing:.055em;text-transform:uppercase}.table tbody td{padding:.9rem 1rem;border-color:#e8eef1;vertical-align:middle}.table tbody tr{transition:background var(--pp-transition)}.table tbody tr:hover{background:#f5fafb}
.badge,.pp-status-badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:99rem;padding:.38rem .65rem;font-weight:700;line-height:1}.badge:before,.pp-status-badge:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:currentColor}
.alert{border:0;border-left:3px solid currentColor;border-radius:var(--pp-radius-md);box-shadow:none}
.pp-empty-state,.empty-state{padding:clamp(2rem,5vw,4rem);text-align:center;border:1px dashed #bdd0d9;border-radius:var(--pp-radius-lg);background:var(--pp-surface-muted)}
[aria-busy="true"],.is-loading{cursor:progress}.skeleton{position:relative;overflow:hidden;background:#e7eef1;border-radius:.5rem;color:transparent}.skeleton:after{position:absolute;inset:0;content:"";transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgb(255 255 255 / 70%),transparent);animation:pp-shimmer 1.4s infinite}
@keyframes pp-shimmer{to{transform:translateX(100%)}}
.modal-content,.drawer{border:1px solid var(--pp-line);border-radius:var(--pp-radius-xl);box-shadow:0 28px 70px rgb(7 24 39 / 24%);animation:pp-enter 180ms ease-out}.toast{border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);box-shadow:var(--pp-shadow-md)}
@keyframes pp-enter{from{opacity:0;transform:translateY(8px) scale(.99)}}
.pp-auth-page{min-height:100dvh;padding:clamp(1rem,4vw,3rem);background:radial-gradient(circle at 12% 8%,rgb(15 155 168 / 16%),transparent 34%),linear-gradient(145deg,#071827,#0d2d45 58%,#0c3b4a)}
.pp-auth-shell{width:min(72rem,100%);min-height:min(44rem,calc(100dvh - 6rem));margin:auto;border:1px solid rgb(255 255 255 / 16%);border-radius:1.65rem;background:rgb(255 255 255 / 97%);box-shadow:0 30px 80px rgb(0 10 20 / 30%);overflow:hidden}
.pp-auth-brand-panel{position:relative;color:#e9f5f7;background:linear-gradient(155deg,#0a2238 0%,#103c54 100%)}.pp-auth-brand-panel:after{position:absolute;right:-8rem;bottom:-8rem;width:22rem;height:22rem;border:1px solid rgb(105 216 220 / 18%);border-radius:50%;content:""}
.pp-auth-brand-panel h1{color:#fff;letter-spacing:-.035em}.pp-auth-brand-panel p,.pp-auth-benefit-grid span{color:#bdd0db}.pp-auth-card{width:min(28rem,100%)}
.auth-logo-surface{display:inline-flex;padding:.75rem 1rem;border-radius:.9rem;background:#fff}.pp-auth-logo{width:min(13rem,100%);height:auto}
.pp-login-actions .btn-primary{width:100%;justify-content:center}.auth-recovery-link{display:inline-flex;justify-content:center;width:100%;margin-top:.8rem;color:var(--pp-teal-600);font-weight:680}
@media (max-width:1023.98px){.pp-sidebar{box-shadow:18px 0 55px rgb(7 24 39 / 30%)}.pp-content-container{padding:1.25rem}.pp-topbar{min-height:4.5rem}.pp-topbar__actions>*:not(.btn-icon):not(.user-menu){display:none!important}}
@media (max-width:767.98px){:root{--pp-radius-lg:.9rem}.pp-content-container{padding:1rem}.pp-topbar{padding-inline:1rem}.pp-topbar__subtitle,.pp-breadcrumb{display:none!important}.pp-auth-page{padding:0;background:#fff}.pp-auth-shell{min-height:100dvh;border:0;border-radius:0;box-shadow:none}.pp-auth-brand-panel{padding:1.5rem}.pp-auth-brand-panel h1{font-size:1.55rem}.pp-auth-benefit-grid,.pp-auth-trust-row{display:none}.pp-auth-form-panel{padding:1.5rem}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.action-bar,.filter-bar{align-items:stretch;flex-direction:column}.action-bar .btn,.filter-bar .btn{width:100%;justify-content:center}}
@media (max-width:389.98px){.pp-content-container{padding:.75rem}.pp-auth-brand-panel,.pp-auth-form-panel{padding:1.15rem}.pp-topbar{padding-inline:.75rem}.btn{min-height:2.75rem}}
@media (min-width:1440px){.pp-content-container{padding:2.25rem 2.5rem}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v2.02 — visualizações operacionais reutilizáveis */
.operation-command{display:grid;gap:1rem}.operation-command__hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:clamp(1.1rem,2.4vw,1.8rem);color:#effcff;background:linear-gradient(125deg,#09243c 0%,#103a4c 72%,#0b5961 100%);border:1px solid rgba(107,205,207,.2);border-radius:var(--fc-radius-lg);box-shadow:var(--fc-shadow-lg)}.operation-command__hero h1{margin:.2rem 0 .35rem;font-size:clamp(1.65rem,3vw,2.35rem);letter-spacing:-.045em}.operation-command__hero p{max-width:65ch;margin:0;color:#bdd2da}.operation-command__hero .pp-section-kicker{color:#79d7d1}.operation-command__live{display:flex;align-items:center;gap:.55rem;padding:.5rem .75rem;border:1px solid rgba(147,226,222,.22);border-radius:999px;background:rgba(220,255,252,.07);font-size:.75rem;font-weight:750}.operation-command__live span{width:.5rem;height:.5rem;border-radius:50%;background:#70d3c2;box-shadow:0 0 0 5px rgba(112,211,194,.12)}.operation-command__actions{grid-column:1/-1;display:flex;gap:.6rem;flex-wrap:wrap}.operation-command__hero .btn-outline-primary{color:#e9ffff;border-color:rgba(185,234,232,.35);background:rgba(255,255,255,.04)}
.coverage-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.coverage-card{position:relative;display:grid;grid-template-columns:auto 1fr;gap:.75rem;padding:1rem;background:var(--fc-surface);border:1px solid var(--fc-border);border-radius:var(--fc-radius);box-shadow:var(--fc-shadow-xs);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.coverage-card:hover{transform:translateY(-2px);border-color:var(--fc-border-active);box-shadow:var(--fc-shadow-sm)}.coverage-card__signal{width:.25rem;min-height:3.75rem;border-radius:1rem;background:#7390a0}.coverage-card--positive .coverage-card__signal{background:var(--fc-success)}.coverage-card--attention .coverage-card__signal{background:#c58a10}.coverage-card--risk .coverage-card__signal,.coverage-card--critical .coverage-card__signal{background:var(--fc-danger)}.coverage-card__label,.coverage-card__context{display:block;color:var(--fc-muted);font-size:.76rem}.coverage-card__label{font-weight:750;text-transform:uppercase;letter-spacing:.045em}.coverage-card__value{display:block;margin:.12rem 0;font-size:1.65rem;line-height:1;color:var(--fc-ink)}.coverage-card__link{grid-column:2;font-size:.75rem;font-weight:700;text-decoration:none;color:#087681}
.operation-view-switcher{display:flex;align-items:center;gap:.4rem;overflow-x:auto;padding:.45rem;background:rgba(255,255,255,.72);border:1px solid var(--fc-border);border-radius:13px}.operation-view-switcher__label{padding:0 .55rem;color:var(--fc-muted);font-size:.74rem;font-weight:750;white-space:nowrap}.operation-view-switcher a{display:flex;align-items:center;gap:.4rem;padding:.5rem .7rem;border-radius:9px;color:#355568;font-size:.8rem;font-weight:700;text-decoration:none;white-space:nowrap}.operation-view-switcher a:hover,.operation-view-switcher a.is-active{color:#075e69;background:var(--fc-cyan-soft)}
.operation-command__grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(18rem,.85fr);gap:1rem}.operation-panel{padding:1rem;background:var(--fc-surface);border:1px solid var(--fc-border);border-radius:var(--fc-radius);box-shadow:var(--fc-shadow-xs)}.operation-panel__header{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem}.operation-panel__header h2{margin:.1rem 0 0;font-size:1.05rem}.operation-panel__header>a{font-size:.78rem;font-weight:700;text-decoration:none}.operation-panel__note{margin:.8rem 0 0;color:var(--fc-muted);font-size:.75rem}.coverage-heatmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.coverage-heatmap__cell{position:relative;display:flex;min-height:8rem;flex-direction:column;justify-content:end;padding:.8rem;border:1px solid #d8e5e8;border-radius:12px;background:linear-gradient(145deg,#f5f9fa,#edf3f4)}.coverage-heatmap__cell::before{content:"";position:absolute;inset:.45rem .45rem auto auto;width:.55rem;height:.55rem;border-radius:50%;background:#708c9c}.coverage-heatmap__cell--covered{background:linear-gradient(145deg,#edf9f4,#dff2e9)}.coverage-heatmap__cell--covered::before{background:var(--fc-success)}.coverage-heatmap__cell--waiting{background:linear-gradient(145deg,#fffaf0,#f8edcf)}.coverage-heatmap__cell--waiting::before{background:#b67b08}.coverage-heatmap__cell--risk,.coverage-heatmap__cell--critical{background:linear-gradient(145deg,#fff5f5,#f8e4e7)}.coverage-heatmap__cell--risk::before,.coverage-heatmap__cell--critical::before{background:var(--fc-danger)}.coverage-heatmap__cell span,.coverage-heatmap__cell small{color:var(--fc-muted);font-size:.72rem}.coverage-heatmap__cell strong{font-size:1.45rem}
.risk-panel__item,.operation-quick-actions a{display:flex;align-items:center;gap:.7rem;padding:.7rem;border-radius:11px;color:var(--fc-ink);text-decoration:none}.risk-panel__item:hover,.operation-quick-actions a:hover{background:#edf6f6}.risk-panel__item>span:nth-child(2),.operation-quick-actions span{display:grid;flex:1}.risk-panel__item small,.operation-quick-actions small{color:var(--fc-muted);font-size:.72rem}.risk-panel__icon,.operation-quick-actions>a>i{display:grid;flex:0 0 2.2rem;height:2.2rem;place-items:center;border-radius:10px;color:#126a73;background:var(--fc-cyan-soft)}.risk-panel__icon--critical,.risk-panel__icon--risk{color:var(--fc-danger);background:#fae8eb}.risk-panel__icon--waiting{color:#956706;background:#fbf1d8}.operational-timeline{display:grid}.operational-timeline__item{display:grid;grid-template-columns:7rem minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.75rem;border-top:1px solid var(--fc-border);color:var(--fc-ink);text-decoration:none}.operational-timeline__item:first-child{border-top:0}.operational-timeline__item time{color:var(--fc-muted);font-size:.74rem;font-weight:700}.operational-timeline__item>span:nth-child(2){display:grid}.operational-timeline__item small{color:var(--fc-muted)}.demo-empty-state{display:flex;align-items:center;gap:.85rem;min-height:9rem;justify-content:center;padding:1.2rem;text-align:left;border:1px dashed #bed2d7;border-radius:14px;background:#f4f9f9}.demo-empty-state__icon{display:grid;width:2.8rem;height:2.8rem;place-items:center;border-radius:12px;color:#087681;background:var(--fc-cyan-soft)}.demo-empty-state p{max-width:52ch;margin:.2rem 0 0;color:var(--fc-muted);font-size:.82rem}
@media(max-width:1199.98px){.coverage-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.coverage-heatmap{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767.98px){.operation-command__hero{grid-template-columns:1fr}.operation-command__live{width:max-content}.operation-command__actions{grid-column:1}.operation-command__actions .btn{flex:1;min-height:44px}.coverage-overview{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.2rem}.coverage-card{flex:0 0:min(78vw,17rem);scroll-snap-align:start}.operation-command__grid{grid-template-columns:1fr}.coverage-heatmap__cell{min-height:6.8rem}.operational-timeline__item{grid-template-columns:1fr auto}.operational-timeline__item time{grid-column:1/-1}.operation-view-switcher{margin-inline:-.25rem}.operation-panel{padding:.85rem}}@media(max-width:390px){.coverage-heatmap{grid-template-columns:1fr 1fr}.coverage-heatmap__cell{padding:.65rem}.operation-panel__header{display:block}.operation-panel__header>a{display:inline-flex;margin-top:.4rem}}
@media(prefers-reduced-motion:reduce){.coverage-card{transition:none}}
