@font-face {
  font-family: "Euromar UI";
  src: local("Segoe UI Variable"), local("Segoe UI");
}

:root {
  --navy-980: #06111d;
  --navy-950: #091829;
  --navy-930: #0d2035;
  --navy-900: #132842;
  --blue-800: #0f5d97;
  --blue-700: #1776be;
  --blue-600: #2391dc;
  --blue-100: #ebf5fc;
  --red-700: #9a1721;
  --red-600: #b70005;
  --red-100: #fdebed;
  --amber-700: #8a5a0d;
  --amber-100: #fff4de;
  --green-700: #15663f;
  --green-100: #e8f5ee;
  --slate-980: #0f1720;
  --slate-950: #16212c;
  --slate-900: #202d3a;
  --slate-800: #324150;
  --slate-700: #4b5a68;
  --slate-600: #62717f;
  --slate-500: #7a8895;
  --slate-400: #9da9b4;
  --slate-300: #c9d1d8;
  --slate-200: #dfe6eb;
  --slate-150: #e9eef2;
  --slate-100: #f4f7f9;
  --surface: #ffffff;
  --bg: #edf2f6;
  --shadow-sm: 0 1px 2px rgba(10,20,35,.06), 0 8px 22px rgba(10,20,35,.05);
  --shadow-md: 0 18px 48px rgba(10,20,35,.12);
  --radius: 14px;
  --radius-sm: 10px;
  --sidebar: 250px;
}

* { box-sizing: border-box; }
html { font-size: 15px; }
body {
  margin: 0;
  font-family: "Euromar UI", "Segoe UI", Arial, sans-serif;
  color: var(--slate-950);
  background:
    radial-gradient(circle at top right, rgba(35,145,220,.09), transparent 18%),
    linear-gradient(180deg, #f4f7fb, #edf2f6);
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button { cursor: pointer; }

.app-shell { min-height: 100vh; display: flex; }
.sidebar {
  width: var(--sidebar);
  position: fixed;
  left: 0; top: 0; bottom: 0;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(circle at 18% 0%, rgba(35,145,220,.24), transparent 34%),
    linear-gradient(180deg, #0d1c2f, #081220);
  color: #fff;
  padding: 18px 18px 16px;
  z-index: 30;
  box-shadow: 8px 0 26px rgba(8,18,32,.16);
}
.brand {
  display:flex; align-items:center; gap:13px;
  padding: 8px 10px 18px;
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.brand-copy strong { display:block; font-size:1.18rem; letter-spacing:.08em; }
.brand-copy small { display:block; color: rgba(255,255,255,.68); font-size:.74rem; margin-top:2px; }
.brand-mark {
  width: 44px; height: 44px; border-radius: 12px;
  background: linear-gradient(145deg, #ca2028, #6d1015);
  border: 1px solid rgba(255,255,255,.16);
  position: relative; overflow:hidden;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 6px 16px rgba(0,0,0,.18);
}
.brand-mark span {
  position:absolute; left:-6px; width:54px; height:3px;
  background: rgba(255,255,255,.86);
  transform: rotate(-24deg);
}
.brand-mark span:nth-child(1){ top:12px; }
.brand-mark span:nth-child(2){ top:20px; }
.brand-mark span:nth-child(3){ top:28px; }
.brand-mark em {
  position:absolute; inset:0; display:grid; place-items:center;
  color:#fff; font-style:normal; font-weight:800; letter-spacing:.04em; font-size:1rem;
  text-shadow:0 2px 6px rgba(0,0,0,.24);
}

.sidebar-block {
  margin: 16px 8px 6px; padding: 12px 12px 10px;
  background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08);
  border-radius: 12px;
}
.sidebar-kicker {
  display:block; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700;
  color:#9fcdf5; margin-bottom:6px;
}
.sidebar-block p { margin:0; color:rgba(255,255,255,.78); font-size:.73rem; line-height:1.45; }

.nav { display:grid; gap:6px; padding-top:16px; }
.nav-item {
  color: rgba(255,255,255,.72);
  background: transparent;
  border: 0;
  border-radius: 10px;
  display:flex; align-items:center; gap:12px;
  padding: 11px 12px; text-align:left; transition:.18s ease;
}
.nav-item:hover { background: rgba(255,255,255,.07); color:#fff; }
.nav-item.active {
  background: rgba(35,145,220,.18); color:#fff;
  box-shadow: inset 3px 0 var(--blue-600);
}
.nav-item svg, .btn svg {
  width: 18px; height: 18px; fill:none; stroke: currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
}

.sidebar-footer {
  margin-top:auto; border-top:1px solid rgba(255,255,255,.10); padding:16px 10px 0;
  display:flex; gap:10px; align-items:center;
}
.sidebar-footer span { display:block; color:rgba(255,255,255,.54); font-size:.68rem; text-transform:uppercase; letter-spacing:.09em; }
.sidebar-footer small { display:block; color:rgba(255,255,255,.90); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:165px; }
.system-dot { width:8px; height:8px; background:#53c785; border-radius:50%; box-shadow:0 0 0 4px rgba(83,199,133,.15); }

.main { margin-left: var(--sidebar); width: calc(100% - var(--sidebar)); min-width:0; }
.topbar {
  height: 74px; position: sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding: 0 22px;
  background: rgba(255,255,255,.95); backdrop-filter: blur(12px);
  border-bottom:1px solid var(--slate-200);
}
.mobile-brand { display:none; }
.eyebrow, .panel-kicker {
  display:block; font-size:.67rem; letter-spacing:.14em; text-transform:uppercase; font-weight:800; color:var(--blue-800);
}
.topbar h1 { font-size:1.1rem; margin:3px 0 0; letter-spacing:-.02em; color:var(--navy-930); }
.topbar-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.period-control {
  display:flex; align-items:center; gap:10px; padding:7px 8px 7px 11px;
  border:1px solid var(--slate-200); border-radius:10px; background:#fff;
}
.period-control label { color:var(--slate-600); font-size:.73rem; font-weight:700; }
.period-control select {
  border:0; background:var(--slate-100); color:var(--slate-950);
  border-radius:8px; padding:7px 10px; outline:none; font-weight:700;
}
.segmented {
  display:inline-flex; background:var(--slate-100); padding:3px; border-radius:10px; border:1px solid var(--slate-200);
}
.seg-btn {
  border:0; background:transparent; color:var(--slate-700); border-radius:8px; padding:8px 10px; font-size:.73rem; font-weight:700;
}
.seg-btn.active { background:#fff; color:var(--navy-930); box-shadow:var(--shadow-sm); }

.btn {
  border:0; border-radius:10px; padding:10px 12px;
  display:inline-flex; gap:8px; align-items:center; justify-content:center; font-weight:700; transition:.18s ease;
}
.btn.secondary { background:var(--slate-100); color:var(--slate-900); border:1px solid var(--slate-200); }
.btn.secondary:hover { background:#fff; box-shadow:var(--shadow-sm); }
.btn.primary { background:var(--navy-900); color:#fff; box-shadow:0 6px 16px rgba(19,40,66,.18); }
.btn.primary:hover { transform:translateY(-1px); }

.view { display:none; padding:18px 22px 16px; }
.view.active { display:block; }
.page-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:14px; }
.page-head.compact h2 { margin:3px 0 3px; font-size:1.35rem; letter-spacing:-.03em; color:var(--navy-930); }
.page-head p { margin:0; color:var(--slate-700); }
.breadcrumb { color:var(--slate-500); font-size:.74rem; font-weight:700; }
.head-right { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.quick-chip {
  padding:10px 12px; border-radius:11px;
  background:linear-gradient(180deg,#fff,#f5f9fc); border:1px solid var(--slate-200);
  color:var(--slate-800); font-size:.74rem; font-weight:700;
}
.health-badge {
  min-width:200px; display:flex; align-items:center; gap:11px; padding:10px 12px;
  border:1px solid var(--slate-200); background:#fff; border-radius:11px;
}
.health-badge strong { display:block; font-size:.82rem; color:var(--navy-930); }
.health-badge small { display:block; color:var(--slate-600); margin-top:2px; }
.health-dot { width:9px; height:9px; border-radius:50%; background:var(--slate-400); box-shadow:0 0 0 5px var(--slate-100); }
.health-badge.ok .health-dot { background:#44aa73; box-shadow:0 0 0 5px var(--green-100); }
.health-badge.attention .health-dot { background:#d18c12; box-shadow:0 0 0 5px var(--amber-100); }
.health-badge.critical .health-dot { background:#d1484e; box-shadow:0 0 0 5px var(--red-100); }

.kpi-grid {
  display:grid; grid-template-columns: repeat(5, minmax(170px, 1fr)); gap:10px; margin-bottom:12px;
}
.kpi-card {
  background:linear-gradient(180deg,#fff,#fbfdff); border:1px solid var(--slate-200); border-radius:var(--radius);
  padding:14px 14px 12px; min-height:126px; box-shadow:var(--shadow-sm);
  position:relative; overflow:hidden; cursor:pointer; transition:.16s ease;
}
.kpi-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:var(--slate-300); }
.kpi-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--slate-300); }
.kpi-card.good::before { background:#45ad75; }
.kpi-card.attention::before { background:#d79525; }
.kpi-card.critical::before { background:#d1484e; }
.kpi-card.info::before { background:var(--blue-600); }
.kpi-title-row { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
.kpi-title { color:var(--slate-700); font-size:.73rem; font-weight:700; line-height:1.25; }
.status-pill { padding:4px 7px; border-radius:99px; font-size:.61rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.status-pill.good { color:var(--green-700); background:var(--green-100); }
.status-pill.attention { color:var(--amber-700); background:var(--amber-100); }
.status-pill.critical { color:var(--red-700); background:var(--red-100); }
.status-pill.neutral, .status-pill.info { color:var(--blue-800); background:var(--blue-100); }
.kpi-value { display:block; margin:10px 0 2px; font-size:1.33rem; font-weight:800; letter-spacing:-.04em; color:var(--navy-930); }
.kpi-sub { color:var(--slate-600); font-size:.68rem; min-height:16px; }
.kpi-footer { margin-top:10px; padding-top:9px; border-top:1px solid var(--slate-150); display:flex; justify-content:space-between; gap:8px; align-items:center; }
.trend-badge { font-size:.68rem; font-weight:800; }
.trend-badge.up { color:var(--green-700); }
.trend-badge.down { color:var(--red-700); }
.trend-badge.flat { color:var(--slate-600); }
.goal-mini { font-size:.66rem; color:var(--slate-600); text-align:right; }

.panel {
  background:#fff; border:1px solid var(--slate-200); border-radius:var(--radius);
  box-shadow:var(--shadow-sm); padding:14px 15px;
}
.panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px; }
.panel-head h3 { margin:3px 0 0; font-size:.98rem; letter-spacing:-.015em; color:var(--navy-930); }
.panel-note, .legend { color:var(--slate-600); font-size:.68rem; align-self:center; }
.text-button { border:0; background:none; padding:0; color:var(--blue-800); font-size:.72rem; font-weight:700; }
.mini-head { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:10px; }
.mini-head strong { font-size:.8rem; color:var(--navy-930); }
.mini-sub { color:var(--slate-600); font-size:.69rem; }

.top-panels { display:grid; grid-template-columns: 1fr 1.1fr; gap:12px; margin-bottom:12px; }
.priority-list { display:grid; gap:8px; }
.priority-item {
  display:grid; grid-template-columns:6px 1fr auto; gap:11px; align-items:start;
  padding:9px 10px 9px 0; border-bottom:1px solid var(--slate-150);
}
.priority-item:last-child { border-bottom:0; }
.priority-bar { width:4px; height:100%; min-height:44px; border-radius:99px; background:var(--slate-300); }
.priority-item.critical .priority-bar { background:#d1484e; }
.priority-item.attention .priority-bar { background:#d79525; }
.priority-item.good .priority-bar { background:#45ad75; }
.priority-item strong { display:block; font-size:.8rem; margin-bottom:2px; color:var(--slate-950); }
.priority-item p { margin:0; color:var(--slate-700); font-size:.71rem; line-height:1.34; }
.priority-action { color:var(--slate-600); font-size:.66rem; max-width:150px; text-align:right; line-height:1.28; }

.chart-area { min-height:205px; position:relative; }
.compact-chart { min-height:190px; }
.chart-area.large { min-height:280px; }
.analysis-panel { margin-bottom:12px; }
.panel-tabs { display:flex; gap:7px; flex-wrap:wrap; }
.tab-btn {
  border:1px solid var(--slate-200); background:var(--slate-100); color:var(--slate-800);
  border-radius:10px; padding:8px 10px; font-size:.72rem; font-weight:700;
}
.tab-btn.active { background:var(--navy-900); color:#fff; border-color:var(--navy-900); }
.tab-content { display:none; }
.tab-content.active { display:block; }
.dual-grid { display:grid; grid-template-columns: 1.1fr .9fr; gap:18px; align-items:start; }

.bar-list { display:grid; gap:11px; }
.bar-row { display:grid; grid-template-columns: 145px 1fr 86px; gap:10px; align-items:center; }
.bar-label { font-size:.72rem; color:var(--slate-800); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bar-track { height:10px; border-radius:99px; background:#eff3f6; overflow:hidden; }
.bar-fill { height:100%; border-radius:99px; background:linear-gradient(90deg,var(--blue-800),var(--blue-600)); min-width:2px; }
.bar-value { text-align:right; font-size:.71rem; font-weight:800; color:var(--slate-900); }

.mix-wrap { display:grid; grid-template-columns: 150px 1fr; gap:16px; align-items:center; min-height:188px; }
.donut { width:144px; height:144px; border-radius:50%; position:relative; background:conic-gradient(var(--slate-200) 0 100%); margin:auto; }
.donut::after { content:""; position:absolute; inset:28px; border-radius:50%; background:#fff; box-shadow:inset 0 0 0 1px var(--slate-150); }
.donut-center { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; pointer-events:none; }
.donut-center strong { font-size:.9rem; color:var(--navy-930); }
.donut-center span { font-size:.62rem; color:var(--slate-600); margin-top:2px; }
.mix-legend { display:grid; gap:8px; }
.mix-legend-row { display:grid; grid-template-columns:8px 1fr auto; gap:8px; align-items:center; font-size:.7rem; }
.mix-color { width:8px; height:8px; border-radius:2px; }
.mix-legend-row span:nth-child(2) { color:var(--slate-700); }
.mix-legend-row strong { font-size:.7rem; color:var(--slate-900); }

.table-wrap { overflow:auto; }
.data-table { width:100%; border-collapse:collapse; font-size:.72rem; }
.data-table th { text-align:left; color:var(--slate-700); font-weight:800; border-bottom:1px solid var(--slate-200); padding:8px 8px; white-space:nowrap; }
.data-table td { padding:9px 8px; border-bottom:1px solid var(--slate-150); color:var(--slate-900); }
.data-table tr:last-child td { border-bottom:0; }
.data-table td.num, .data-table th.num { text-align:right; font-variant-numeric:tabular-nums; }
.data-table tfoot td { font-weight:800; color:var(--slate-950); border-top:1px solid var(--slate-300); }
.table-status { display:inline-flex; align-items:center; gap:5px; font-weight:700; }
.table-status::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--slate-400); }
.table-status.good::before, .table-status.ok::before { background:#45ad75; }
.table-status.attention::before { background:#d79525; }
.table-status.critical::before { background:#d1484e; }

.conference-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:12px; }
.summary-card { padding:13px 14px; background:#fff; border:1px solid var(--slate-200); border-radius:12px; box-shadow:var(--shadow-sm); }
.summary-card span { display:block; color:var(--slate-600); font-size:.69rem; }
.summary-card strong { display:block; margin-top:4px; font-size:1.05rem; letter-spacing:-.03em; color:var(--navy-930); }
.conference-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:12px; margin-bottom:12px; }
.files-check { display:grid; gap:6px; }
.file-row { display:grid; grid-template-columns:18px 1fr auto; gap:9px; align-items:center; padding:8px 0; border-bottom:1px solid var(--slate-150); }
.file-row:last-child { border-bottom:0; }
.file-icon { width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.62rem; font-weight:800; background:var(--red-100); color:var(--red-700); }
.file-row.present .file-icon { background:var(--green-100); color:var(--green-700); }
.file-row strong { display:block; font-size:.73rem; color:var(--slate-950); }
.file-row small { display:block; color:var(--slate-600); margin-top:1px; font-size:.66rem; }
.file-type { color:var(--slate-500); font-size:.64rem; }
.log-panel { min-height:110px; }
.log-list { display:grid; gap:7px; }
.log-row { padding:8px 10px; background:var(--slate-100); border-radius:8px; font-size:.7rem; color:var(--slate-800); }
.log-row.error { background:var(--red-100); color:var(--red-700); }
.log-row.warning { background:var(--amber-100); color:var(--amber-700); }

.history-table-panel { margin-top:12px; }
.settings-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:12px; }
.settings-form { display:grid; gap:14px; }
.field { display:grid; gap:6px; }
.field > span { font-size:.72rem; font-weight:700; color:var(--slate-900); }
.field small { color:var(--slate-600); font-size:.66rem; }
.field input {
  width:100%; border:1px solid var(--slate-300); border-radius:9px; padding:10px 11px;
  color:var(--slate-950); background:#fff; outline:none;
}
.field input:focus { border-color:var(--blue-600); box-shadow:0 0 0 3px rgba(35,145,220,.14); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.settings-actions { display:flex; align-items:center; gap:12px; padding-top:4px; }
#settingsFeedback { color:var(--slate-600); font-size:.72rem; }
.flow-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.flow-list li { display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:start; }
.flow-list li > span { width:28px; height:28px; border-radius:8px; background:var(--navy-900); color:#fff; display:grid; place-items:center; font-size:.7rem; font-weight:800; }
.flow-list strong { display:block; font-size:.76rem; color:var(--slate-950); }
.flow-list small { display:block; margin-top:2px; color:var(--slate-700); line-height:1.35; }

.global-alert {
  margin:12px 22px 0; padding:12px 14px; border-radius:10px;
  background:var(--red-100); border:1px solid #f1c8cb; color:var(--red-700); font-size:.76rem;
}
.hidden { display:none !important; }
.app-footer { display:flex; justify-content:space-between; gap:12px; padding:0 22px 18px; color:var(--slate-500); font-size:.66rem; }

.drawer-backdrop { position:fixed; inset:0; background:rgba(6,17,29,.45); opacity:0; pointer-events:none; transition:.2s; z-index:50; }
.detail-drawer { position:fixed; right:0; top:0; bottom:0; width:min(460px,95vw); background:#fff; z-index:51; transform:translateX(101%); transition:.24s ease; box-shadow:-20px 0 50px rgba(7,23,38,.18); padding:22px; overflow:auto; }
.drawer-backdrop.open { opacity:1; pointer-events:auto; }
.detail-drawer.open { transform:translateX(0); }
.drawer-close { position:absolute; right:14px; top:12px; border:0; background:var(--slate-100); width:32px; height:32px; border-radius:8px; font-size:1.3rem; color:var(--slate-700); }
.drawer-head { padding-right:35px; }
.drawer-head h3 { font-size:1.25rem; margin:5px 0; color:var(--navy-930); }
.drawer-value { font-size:1.85rem; font-weight:800; color:var(--navy-930); letter-spacing:-.04em; margin:14px 0 6px; }
.drawer-section { border-top:1px solid var(--slate-200); margin-top:18px; padding-top:14px; }
.drawer-section h4 { margin:0 0 10px; font-size:.82rem; color:var(--slate-950); }
.drawer-metric { display:flex; justify-content:space-between; gap:20px; padding:8px 0; font-size:.74rem; border-bottom:1px solid var(--slate-150); }
.drawer-metric span { color:var(--slate-600); }
.drawer-metric strong { text-align:right; color:var(--slate-950); }

.toast { position:fixed; right:20px; bottom:20px; background:var(--navy-900); color:#fff; padding:11px 14px; border-radius:9px; box-shadow:var(--shadow-md); font-size:.74rem; transform:translateY(20px); opacity:0; pointer-events:none; transition:.2s; z-index:70; }
.toast.show { transform:translateY(0); opacity:1; }

.skeleton-grid::before {
  content:"Carregando indicadores...";
  color:var(--slate-700); grid-column:1/-1; padding:28px; background:#fff; border:1px solid var(--slate-200); border-radius:var(--radius); text-align:center;
}

svg.chart-svg { width:100%; height:100%; overflow:visible; }
.chart-grid-line { stroke:#e6edf3; stroke-width:1; }
.chart-axis-label { font-size:10px; fill:var(--slate-600); }
.chart-value-label { font-size:10px; fill:var(--slate-800); font-weight:700; }
.chart-line { fill:none; stroke:var(--blue-700); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.chart-area-fill { fill:url(#areaGradient); }
.chart-point { fill:#fff; stroke:var(--blue-700); stroke-width:2; }
.chart-target { stroke:var(--slate-500); stroke-width:1.5; stroke-dasharray:5 5; }
.chart-bar { fill:var(--blue-800); rx:4; }
.chart-bar-soft { fill:#9fcdf5; rx:4; }
.chart-line-secondary { fill:none; stroke:var(--navy-930); stroke-width:2; }

.preview-mobile .app-shell { justify-content:center; }
.preview-mobile .sidebar { display:none; }
.preview-mobile .main {
  margin-left:0; width:430px; max-width:100%; min-height:100vh;
  background: var(--bg); box-shadow: 0 0 0 1px rgba(0,0,0,.05), 0 12px 34px rgba(0,0,0,.12);
}
.preview-mobile .topbar { position:static; padding:10px 14px; height:auto; min-height:72px; flex-wrap:wrap; }
.preview-mobile .topbar-title { display:none; }
.preview-mobile .mobile-brand { display:block; font-weight:800; letter-spacing:.08em; color:var(--navy-930); }
.preview-mobile .topbar-actions { width:100%; justify-content:space-between; }
.preview-mobile .view { padding:14px; }
.preview-mobile .global-alert { margin:12px 14px 0; }
.preview-mobile .page-head,
.preview-mobile .top-panels,
.preview-mobile .dual-grid,
.preview-mobile .conference-grid,
.preview-mobile .settings-grid,
.preview-mobile .field-row { grid-template-columns:1fr; flex-direction:column; }
.preview-mobile .kpi-grid { grid-template-columns:1fr; }
.preview-mobile .conference-summary { grid-template-columns:1fr 1fr; }
.preview-mobile .panel-tabs { overflow:auto; flex-wrap:nowrap; padding-bottom:4px; }
.preview-mobile .mix-wrap { grid-template-columns:1fr; }
.preview-mobile .app-footer { padding:0 14px 18px; }

@media (max-width: 1280px) {
  .kpi-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 980px) {
  :root { --sidebar: 0px; }
  .sidebar { display:none; }
  .main { margin-left:0; width:100%; }
  .mobile-brand { display:block; font-weight:800; letter-spacing:.08em; color:var(--navy-930); }
  .topbar-title { display:none; }
  .topbar { height:auto; min-height:72px; padding:12px 16px; flex-wrap:wrap; }
  .topbar-actions { width:100%; justify-content:space-between; }
  .view { padding:16px; }
  .global-alert { margin:12px 16px 0; }
  .kpi-grid { grid-template-columns:repeat(2,1fr); }
  .top-panels, .conference-grid, .settings-grid, .dual-grid { grid-template-columns:1fr; }
  .conference-summary { grid-template-columns:repeat(2,1fr); }
  .app-footer { padding:0 16px 18px; }
}
@media (max-width: 640px) {
  .topbar-actions { gap:6px; }
  .period-control { flex:1; }
  .period-control select { width:100%; }
  .segmented { order:3; }
  .page-head { flex-direction:column; }
  .head-right { width:100%; }
  .health-badge { width:100%; }
  .quick-chip { width:100%; text-align:center; }
  .kpi-grid { grid-template-columns:1fr; }
  .conference-summary { grid-template-columns:1fr; }
  .panel { padding:13px; }
  .view { padding:14px; }
  .mix-wrap { grid-template-columns:1fr; }
  .bar-row { grid-template-columns:92px 1fr 68px; }
  .panel-tabs { overflow:auto; flex-wrap:nowrap; }
}


/* v1.2 - Identidade real e leitura factual */
.brand {
  min-height: 94px;
  justify-content: center;
  background: rgba(255,255,255,.98);
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.18);
  padding: 10px;
  margin-bottom: 8px;
}
.brand-logo {
  display:block;
  width: 100%;
  max-width: 205px;
  height: 68px;
  object-fit: contain;
}
.sidebar-block { display:none !important; }

.period-summary {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.summary-fact {
  padding: 10px 11px;
  background: #f7fafc;
  border: 1px solid var(--slate-200);
  border-radius: 10px;
  min-height: 66px;
}
.summary-fact span {
  display:block;
  color:var(--slate-600);
  font-size:.67rem;
  font-weight:700;
  margin-bottom:4px;
}
.summary-fact strong {
  display:block;
  color:var(--navy-930);
  font-size:.94rem;
  letter-spacing:-.02em;
}
.summary-fact small {
  display:block;
  color:var(--slate-600);
  font-size:.64rem;
  margin-top:3px;
}
.summary-fact.good { border-left:4px solid #45ad75; }
.summary-fact.attention { border-left:4px solid #d79525; }
.summary-fact.critical { border-left:4px solid #d1484e; }
.summary-fact.info { border-left:4px solid var(--blue-600); }

.kpi-grid {
  grid-template-columns: repeat(6, minmax(150px, 1fr));
}
.kpi-card { min-height: 122px; }
.kpi-value { font-size:1.22rem; }
.top-panels { grid-template-columns: .95fr 1.25fr; }

@media (max-width: 1450px) {
  .kpi-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 980px) {
  .kpi-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 640px) {
  .kpi-grid { grid-template-columns:1fr; }
  .period-summary { grid-template-columns:1fr; }
  .brand-logo { max-width:180px; }
}


/* v1.3 - Conteúdo igual ao relatório original, aparência modernizada */
.report-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}
.report-head h2 {
  margin:3px 0 0;
  color:var(--navy-930);
  font-size:1.35rem;
  letter-spacing:-.03em;
}

.original-kpis {
  grid-template-columns: repeat(5, minmax(170px, 1fr)) !important;
  margin-bottom:12px;
}
.original-kpis .kpi-card {
  min-height:118px;
}
.original-kpis .kpi-value {
  font-size:1.24rem;
}
.original-kpis .kpi-footer {
  margin-top:8px;
  padding-top:7px;
}

.report-grid {
  display:grid;
  gap:12px;
}
.row-main {
  grid-template-columns: 1.05fr .82fr .95fr .95fr;
  margin-bottom:12px;
}
.row-bottom {
  grid-template-columns: 1.02fr 1fr;
  margin-bottom:12px;
}
.operations-panel,
.share-panel,
.ecom-panel,
.operation-table-panel {
  min-height:260px;
}
.clients-panel,
.percap-panel {
  min-height:270px;
}

.report-bars .bar-row {
  grid-template-columns: 112px 1fr 76px;
  gap:8px;
}
.report-mix {
  grid-template-columns:132px 1fr;
  gap:10px;
  min-height:190px;
}
.report-mix .donut {
  width:126px;
  height:126px;
}
.report-mix .donut::after {
  inset:25px;
}
.report-client-bars {
  gap:9px;
}
.report-client-bars .bar-row {
  grid-template-columns:150px 1fr 76px;
}
.report-percap {
  min-height:215px;
}
.operation-table-panel .data-table td,
.operation-table-panel .data-table th,
.ecom-panel .data-table td,
.ecom-panel .data-table th {
  padding:7px 6px;
  font-size:.69rem;
}
.panel {
  min-width:0;
}
.view {
  padding-bottom:12px;
}

@media (max-width: 1500px) {
  .row-main {
    grid-template-columns:1fr 1fr;
  }
  .original-kpis {
    grid-template-columns:repeat(3,1fr) !important;
  }
}
@media (max-width: 980px) {
  .original-kpis {
    grid-template-columns:repeat(2,1fr) !important;
  }
  .row-main,
  .row-bottom {
    grid-template-columns:1fr;
  }
}
@media (max-width: 640px) {
  .original-kpis {
    grid-template-columns:1fr !important;
  }
  .report-head {
    flex-direction:column;
    align-items:stretch;
  }
  .report-mix {
    grid-template-columns:1fr;
  }
}


/* v1.3.1 - correções de estabilidade e estado sem dados */
.empty-state {
  min-height: 120px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  color: var(--slate-700);
  font-size: .74rem;
  padding: 18px 16px;
}
.empty-state strong {
  color: var(--navy-930);
  font-size: .84rem;
}
.empty-state span {
  line-height: 1.4;
}


/* v1.4 - aproximação estrutural do relatório original, mantendo estilo corporativo */
.original-kpis .kpi-card .kpi-footer {
  min-height: 23px;
}
.original-kpis .kpi-card .trend-badge {
  font-size: .64rem;
}
.report-bars .bar-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ecom-panel .data-table th:nth-child(2),
.ecom-panel .data-table td:nth-child(2) {
  border-left: 1px solid #d3e2ee;
}
.ecom-panel .data-table td strong {
  color: var(--navy-930);
}
.operation-table-panel tfoot td,
.ecom-panel tfoot td {
  font-weight: 800;
}


/* v1.4.1 - contraste e legibilidade */
body {
  color: #0f1b28;
}
.panel {
  border-color: #ccd6df;
  box-shadow: 0 2px 10px rgba(10,20,35,.06), 0 10px 26px rgba(10,20,35,.05);
}
.topbar h1,
.report-head h2,
.page-head.compact h2,
.panel-head h3,
.kpi-value,
.health-badge strong,
.data-table tfoot td,
.bar-value,
.mix-legend-row strong {
  color: #0b1624 !important;
  font-weight: 800 !important;
}
.eyebrow,
.panel-kicker,
.breadcrumb,
.kpi-title,
.kpi-sub,
.goal-mini,
.health-badge small,
.panel-note,
.legend,
.bar-label,
.mix-legend-row span:nth-child(2),
.data-table th,
.data-table td,
.file-row strong,
.file-row small,
.summary-card span,
.summary-card strong,
.flow-list strong,
.flow-list small,
.field > span,
.field small,
#settingsFeedback,
.app-footer,
.page-head p,
.global-alert,
.empty-state,
.empty-state span {
  color: #2c3d4e !important;
}
.kpi-title {
  font-weight: 800 !important;
}
.kpi-sub,
.bar-label,
.data-table td,
.data-table th,
.mix-legend-row span:nth-child(2) {
  font-weight: 700 !important;
}
.bar-value,
.data-table td.num,
.data-table th.num {
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}
.bar-track {
  background: #dfe6ec;
}
.data-table th {
  border-bottom-color: #c8d4de;
}
.data-table td {
  border-bottom-color: #dee6ed;
}
.global-alert {
  color: #8b1f27 !important;
}

/* Ajuste simples dos cancelamentos mensais. Sem rateio entre empresas. */
.cancelamentos-form { margin-top: 14px; padding: 12px 0 2px; border-top: 1px solid var(--slate-200); }
.cancelamentos-form label { display:block; font-size:.76rem; font-weight:800; margin-bottom:7px; color:var(--slate-800); }
.cancelamentos-controls { display:flex; gap:8px; align-items:stretch; }
.cancelamentos-controls input { flex:1; min-width:0; width:100%; padding:9px 10px; border:1px solid var(--slate-300); border-radius:9px; outline:none; background:white; }
.cancelamentos-controls input:focus { border-color:var(--blue-700); box-shadow:0 0 0 3px var(--blue-100); }
.cancelamentos-controls button { flex:0 0 auto; }
.cancelamentos-form small {display:block; font-size:.68rem; margin-top:7px; color:var(--slate-600); line-height:1.4; }
.cancelamentos-form small.error { color:var(--red-700); font-weight:700; }
.ecommerce-original tfoot .cancelamentos-row td { background:#fff6f6; color:var(--red-700); font-weight:650; }
.ecommerce-original tfoot .ecommerce-final-row td { background:#e9f4fb; color:var(--navy-900); font-weight:850; border-top:2px solid var(--blue-700); }
.ecommerce-original tfoot .ecommerce-final-row td:first-child { font-size:.77rem; }
.ecommerce-original tfoot td { padding-top:10px; padding-bottom:10px; }
@media(max-width:760px) { .cancelamentos-controls {flex-wrap:wrap;} .cancelamentos-controls input {min-width:110px;} }


/* v1.7 - Leitura executiva: tipografia, hierarquia e menos ruído. */
:root {
  --navy-900: #173047;
  --navy-930: #14283a;
  --blue-800: #226489;
  --blue-700: #2b7b9c;
  --blue-600: #3b8daf;
  --bg: #f4f6f8;
  --slate-200: #e3e9ef;
  --shadow-sm: 0 3px 14px rgba(17,37,54,.04);
  --radius: 12px;
  --sidebar: 218px;
}
html {font-size: 15px;}
body {background:#f4f6f8; color:#183046;}
.sidebar {background:#152c42; box-shadow:none; padding:16px 12px;}
.brand {min-height:80px; margin:0 2px 14px; padding:10px; border-radius:10px;}
.brand-logo {height:56px;}
.nav {gap:4px; padding-top:0;}
.nav-item {font-size:.86rem; padding:11px 13px; border-radius:8px;}
.nav-item.active {background:#224863; box-shadow:none; border-left:3px solid #86b5cf; padding-left:10px;}
.topbar {height:70px; box-shadow:none; padding:0 24px; border-bottom:1px solid #e4eaf0;}
.topbar h1 {font-size:1.15rem;}
.view {padding:20px 24px 8px;}
.report-head {margin-bottom:16px;}
.report-head h2 {font-size:1.48rem; letter-spacing:-.03em; margin:3px 0 0;}
.eyebrow,.panel-kicker {letter-spacing:.105em; font-size:.65rem; color:#557080!important;}
.breadcrumb {font-size:.72rem; color:#617589!important;}
.health-badge {min-width:190px; box-shadow:none; padding:10px 12px; background:#fff;}
.kpi-grid.original-kpis {display:grid; grid-template-columns: repeat(5,minmax(0,1fr)) !important; gap:12px; margin-bottom:14px;}
.original-kpis .kpi-card {min-height:124px; padding:15px 17px 11px; border:1px solid #e2e8ee; background:#fff; box-shadow:none; border-radius:11px;}
.original-kpis .kpi-card::before {width:0;}
.original-kpis .kpi-card:hover {transform:none; border-color:#c0d0da; box-shadow:0 6px 18px rgba(20,44,63,.06);}
.original-kpis .kpi-title {font-size:.73rem; font-weight:650!important; color:#5c6d7d!important;}
.original-kpis .kpi-value {font-size:1.48rem; letter-spacing:-.045em; font-weight:750!important; margin:10px 0 4px;}
.original-kpis .kpi-sub {font-size:.67rem; font-weight:450!important; min-height:auto; line-height:1.4; color:#6e7d8d!important;}
.original-kpis .kpi-footer {margin-top:9px; padding-top:8px; min-height:18px; border-color:#eff2f5;}
.original-kpis .trend-badge {font-size:.67rem; font-weight:650;}
.panel {padding:18px 19px; border:1px solid #e1e8ed; box-shadow:none; background:#fff; border-radius:12px;}
.panel-head {margin-bottom:14px;}
.panel-head h3 {font-size:1.06rem; font-weight:750!important; letter-spacing:-.015em;}
/* Duas visualizações centrais, sem tabelas/gráficos redundantes.
   A composição detalhada continua disponível em Conferência. */
#view-executive .row-main {display:grid; grid-template-columns:minmax(0, .92fr) minmax(0,1.08fr); gap:14px; align-items:stretch;}
#view-executive .share-panel,#view-executive .operation-table-panel {display:none;}
#view-executive .operations-panel {grid-column:1; min-height:286px;}
#view-executive .ecom-panel {grid-column:2; min-height:286px;}
#view-executive .row-bottom {grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:14px; margin-bottom:14px;}
#view-executive .clients-panel,#view-executive .percap-panel {min-height:255px;}
.report-bars .bar-row {grid-template-columns:156px 1fr 119px; gap:13px; margin:1px 0;}
.bar-list {gap:14px;}
.bar-label {font-size:.78rem!important; font-weight:580!important; color:#405469!important;}
.bar-track {height:8px; background:#edf1f4;}
.bar-fill {background:#3b88a7; border-radius:10px;}
.bar-value {font-size:.76rem; font-weight:700!important;}
.report-client-bars .bar-row {grid-template-columns:165px 1fr 120px;}
.report-percap {min-height:185px;}
.data-table {font-size:.80rem;}
.data-table th {font-size:.72rem; font-weight:650!important; padding:9px 10px; color:#687888!important; background:#f8fafb;}
.data-table td {font-size:.78rem; font-weight:500!important; padding:10px 10px; border-bottom:1px solid #edf1f4;}
.data-table .num {font-weight:700!important; color:#20364a;}
.ecom-panel .data-table th:nth-child(2),.ecom-panel .data-table td:nth-child(2) {border-left:0;}
.ecom-panel .ecommerce-original-total td {background:#f8fafb; font-weight:700!important; border-top:1px solid #cdd8e1;}
.ecom-panel .data-table tfoot .cancelamentos-row td {background:#fff8f6; font-weight:650!important; color:#a0443b!important;}
.ecom-panel .data-table tfoot .ecommerce-final-row td {background:#eef5f8; color:#183a51!important; font-weight:800!important; border-top:1px solid #cbdce7; padding:12px 10px; font-size:.82rem;}
.cancelamentos-form {margin-top:12px; padding-top:11px;}
.cancelamentos-source-note {margin-top:13px; border-top:1px solid #e9eef2; padding:11px 2px 0; font-size:.73rem; line-height:1.42; color:#60788a;}
.cancelamentos-source-note strong {display:block; color:#2a5b7a; font-size:.73rem; margin-bottom:3px;}
.cancelamentos-source-note span {display:block;}
.cancelamentos-source-note b {color:#25475e; font-weight:700;}
.btn.primary {background:#193a54; box-shadow:none;}
.btn.primary:hover {background:#214f70; transform:none;}
.btn.secondary {background:#f7f9fb;}
@media(max-width:1380px) {
  .kpi-grid.original-kpis {grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  #view-executive .row-main {grid-template-columns:1fr 1fr;}
  .report-bars .bar-row {grid-template-columns:110px 1fr 100px;}
}
@media(max-width:980px) {
  :root {--sidebar:0px;}
  .kpi-grid.original-kpis {grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  #view-executive .row-main,#view-executive .row-bottom {grid-template-columns:1fr;}
  #view-executive .operations-panel,#view-executive .ecom-panel {grid-column:1;}
  .view {padding:16px;}
}
@media(max-width:640px) {
  .kpi-grid.original-kpis {grid-template-columns:1fr!important;}
  .report-client-bars .bar-row,.report-bars .bar-row {grid-template-columns:94px 1fr 90px; gap:7px;}
}


/* v1.8 - resumo gerencial: faturamento original, cancelamentos e consolidado */
#view-executive .row-main {
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.16fr) minmax(0, .99fr);
  gap: 14px;
  align-items: stretch;
}
#view-executive .share-panel {display:none;}
#view-executive .operations-panel {grid-column:1; min-height:310px;}
#view-executive .ecom-panel {grid-column:2; min-height:310px;}
#view-executive .operation-table-panel {display:block; grid-column:3; min-height:310px;}
#view-executive .operation-table-panel .panel-head h3 {line-height:1.25;}
#view-executive .operation-table-panel .data-table th,
#view-executive .operation-table-panel .data-table td {padding:12px 9px; font-size:.78rem;}
#view-executive .operation-table-panel .consolidated-total td {
  background:#eef5f8; color:#183a51; font-weight:800!important;
  border-top:1px solid #cbdce7; padding:13px 9px;
}
#view-executive .operation-table-panel .consolidated-note {
  margin:12px 2px 0; font-size:.7rem; line-height:1.45;
  color:#63788a;
}
#view-executive .ecom-panel .ecommerce-final-row td {background:#eaf3f8;}
@media (max-width: 1550px) and (min-width: 981px) {
  #view-executive .row-main {grid-template-columns: minmax(0,1fr) minmax(0,1fr);}
  #view-executive .operations-panel {grid-column:1/-1; min-height:auto;}
  #view-executive .ecom-panel {grid-column:1;}
  #view-executive .operation-table-panel {grid-column:2;}
}
@media (max-width: 980px) {
  #view-executive .row-main {grid-template-columns:minmax(0,1fr);}
  #view-executive .operations-panel,
  #view-executive .ecom-panel,
  #view-executive .operation-table-panel {grid-column:1; min-height:auto;}
}
