:root {
    --red: #a7111b;
    --red2: #c1121f;
    --navy: #0f1a2e;
    --navy2: #14233b;
    --bg: #f3f6fb;
    --card: #ffffff;
    --text: #071326;
    --muted: #607087;
    --border: #dce5f2;
    --shadow: 0 18px 50px rgba(15, 26, 46, .10);
    --radius: 18px;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; background: var(--bg); color: var(--text); }
a { color: inherit; text-decoration: none; }
.topbar { height: 58px; background: linear-gradient(90deg,var(--red),#871018); color:#fff; display:flex; align-items:center; justify-content:space-between; padding:0 22px; position:sticky; top:0; z-index:20; box-shadow:0 8px 25px rgba(0,0,0,.12); }
.brand { display:flex; align-items:center; gap:12px; font-size:18px; font-weight:700; }
.brand span { width:38px; height:38px; border-radius:12px; background:#fff; color:var(--red); display:grid; place-items:center; font-weight:900; }
.brand.big { color:var(--text); justify-content:center; margin-bottom:20px; }
.brand.big span { background:var(--red); color:#fff; }
.topbar nav { display:flex; gap:24px; align-items:center; }
.topbar nav a { color:#fff; opacity:.96; }
.hamb { display:none; background:rgba(255,255,255,.15); border:0; color:#fff; font-size:24px; border-radius:10px; padding:6px 10px; }
.shell { display:grid; grid-template-columns: 262px 1fr; min-height: calc(100vh - 58px); }
.sidebar { background: linear-gradient(180deg,var(--navy),#091324); color:#fff; padding:22px 12px; display:flex; flex-direction:column; gap:18px; }
.userbox { padding:0 6px 18px; border-bottom:1px solid rgba(255,255,255,.16); }
.userbox strong { display:block; margin-bottom:7px; }
.userbox small { color:#9fb5d5; }
.side-nav { display:flex; flex-direction:column; gap:6px; }
.side-nav h4 { font-size:12px; color:#9fb5d5; margin:20px 8px 8px; text-transform:uppercase; letter-spacing:.05em; }
.side-nav a { display:flex; align-items:center; gap:12px; padding:12px 12px; border-radius:12px; color:#fff; }
.side-nav a.active, .side-nav a:hover { background:linear-gradient(90deg,rgba(193,18,31,.85),rgba(193,18,31,.35)); }
.side-nav svg { width:22px; height:22px; fill:currentColor; flex:none; }
.source-mini { margin-top:auto; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:12px; }
.source-mini label { display:block; color:#b8c8df; margin-bottom:8px; font-size:13px; }
select, input { width:100%; border:1px solid var(--border); border-radius:10px; padding:11px 12px; background:#fff; color:var(--text); }
.source-mini select { background:#1a2a45; color:#fff; border-color:#334763; }
.content { padding:34px 26px 52px; overflow:hidden; }
.page-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.page-head h1 { font-size:34px; margin:0 0 8px; }
.page-head p { margin:0; color:#40516a; }
.nice-select { max-width:360px; }
.dashboard-grid { display:grid; grid-template-columns: repeat(6, minmax(170px,1fr)); gap:18px; }
.dash-card { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:20px; min-height:260px; display:flex; flex-direction:column; position:relative; box-shadow:var(--shadow); transition:.18s ease; }
.dash-card:hover { transform: translateY(-3px); box-shadow:0 24px 70px rgba(15,26,46,.14); }
.icon-badge { width:58px; height:58px; border-radius:16px; display:grid; place-items:center; background:#eef4ff; color:var(--red); margin-bottom:18px; }
.icon-badge svg { width:34px; height:34px; fill:currentColor; }
.dash-card h2 { margin:0 0 14px; font-size:24px; line-height:1.15; }
.dash-card p { color:#40516a; line-height:1.55; margin:0; }
.go { margin-top:auto; align-self:flex-end; width:38px; height:38px; border-radius:12px; background:#eef4ff; display:grid; place-items:center; color:var(--red); font-size:24px; }
.visual-layout { display:grid; grid-template-columns:1fr; gap:20px; }
.chart-card, .admin-card { background:#fff; border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; }
.chart-card.large { min-height:640px; }
.card-title { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:15px; }
.card-title h2 { margin:0; font-size:20px; }
canvas { width:100% !important; height:540px !important; }
.btn { border:0; border-radius:11px; padding:11px 16px; cursor:pointer; background:#e7edf7; color:#0f1a2e; font-weight:700; }
.btn.primary { background:var(--red2); color:#fff; }
.btn.danger { background:#ffe3e3; color:#b00000; }
.btn.small { padding:7px 11px; font-size:13px; }
.alert { padding:14px 16px; border-radius:12px; margin:12px 0; }
.alert.error { background:#ffe0e0; color:#b00000; border:1px solid #ffbcbc; }
.alert.info { background:#e8f1ff; color:#17406f; border:1px solid #bdd8ff; }
.hidden { display:none !important; }
.table-wrap { overflow:auto; max-width:100%; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th, td { padding:10px 12px; border-bottom:1px solid var(--border); text-align:left; white-space:nowrap; max-width:280px; overflow:hidden; text-overflow:ellipsis; }
th { background:#f7f9fd; position:sticky; top:0; }
.kpi-box strong { display:block; font-size:48px; margin:18px 0 4px; }
.kpi-box span { color:var(--muted); }
.form-grid { display:grid; grid-template-columns: repeat(3,minmax(180px,1fr)); gap:14px; align-items:end; }
.form-grid label { display:flex; flex-direction:column; gap:6px; color:#40516a; font-weight:700; }
.form-grid .check { flex-direction:row; align-items:center; font-weight:400; color:var(--text); }
.form-grid .check input { width:auto; }
.admin-card { margin-bottom:20px; }
.admin-card h2 { margin-top:0; }
.admin-card h2 small { display:block; font-size:13px; color:var(--muted); margin-top:4px; }
.permissions-grid { display:grid; grid-template-columns: repeat(2, minmax(300px,1fr)); gap:18px; }
.checks { display:grid; grid-template-columns: repeat(2,minmax(180px,1fr)); gap:8px; margin-bottom:18px; }
.checks label { background:#f8fafd; border:1px solid var(--border); border-radius:10px; padding:9px 10px; }
.checks input { width:auto; }
.source-detail { border:1px solid var(--border); border-radius:14px; padding:14px; margin-bottom:12px; }
.source-detail summary { cursor:pointer; font-weight:700; margin-bottom:12px; }
.auth-body { min-height:100vh; display:grid; place-items:center; background:linear-gradient(135deg,#0f1a2e,#a7111b); padding:20px; }
.auth-card { width:min(420px,100%); background:#fff; border-radius:22px; padding:30px; box-shadow:0 30px 90px rgba(0,0,0,.25); }
.auth-card h1 { text-align:center; margin:0 0 22px; }
.auth-card form { display:grid; gap:10px; }
.muted, .muted-link { color:var(--muted); }
.muted-link { display:block; text-align:center; margin-top:16px; }

@media (max-width: 1450px) {
    .dashboard-grid { grid-template-columns: repeat(3, minmax(220px,1fr)); }
}
@media (max-width: 980px) {
    .topbar nav { display:none; }
    .hamb { display:block; }
    .shell { grid-template-columns: 1fr; }
    .sidebar { position:fixed; left:-290px; top:58px; bottom:0; width:280px; z-index:30; transition:.2s; }
    .sidebar.open { left:0; }
    .content { padding:24px 16px; }
    .dashboard-grid { grid-template-columns: repeat(2, minmax(160px,1fr)); }
    .permissions-grid, .form-grid { grid-template-columns: 1fr; }
    .page-head { flex-direction:column; align-items:stretch; }
    canvas { height:420px !important; }
}
@media (max-width: 620px) {
    .dashboard-grid { grid-template-columns: 1fr; }
    .dash-card { min-height:220px; }
    .page-head h1 { font-size:28px; }
    .checks { grid-template-columns:1fr; }
    canvas { height:360px !important; }
}


/* dashboard filters and improved chart readability */
.filter-panel {
    background:#fff;
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:14px 16px;
    margin-bottom:18px;
}
.filter-row {
    display:grid;
    grid-template-columns: 2fr 140px 190px 150px;
    gap:12px;
    align-items:end;
}
.filter-row label {
    display:flex;
    flex-direction:column;
    gap:6px;
    font-weight:700;
    color:#40516a;
}
.drill-info {
    margin-top:12px;
    padding:10px 12px;
    border-radius:12px;
    background:#fff3f3;
    color:#8a1018;
    border:1px solid #ffd0d0;
}
.chart-card.large {
    min-height:720px;
}
canvas {
    height:610px !important;
}
.chart-card .table-wrap table td,
.chart-card .table-wrap table th {
    max-width: 420px;
}
@media (max-width: 980px) {
    .filter-row {
        grid-template-columns: 1fr 1fr;
    }
    canvas {
        height:480px !important;
    }
}
@media (max-width: 620px) {
    .filter-row {
        grid-template-columns: 1fr;
    }
    canvas {
        height:420px !important;
    }
}


/* Power BI inspired multi-visual dashboard */
.topbar {
    gap: 16px;
}
.top-source {
    margin-left: auto;
    min-width: 260px;
    max-width: 360px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255,255,255,.12);
    padding: 6px 8px;
    border-radius: 12px;
}
.top-source span {
    font-size: 12px;
    opacity: .9;
    white-space: nowrap;
}
.top-source select {
    height: 34px;
    padding: 5px 30px 5px 10px;
    border: 1px solid rgba(255,255,255,.25);
    background: #fff;
    color: #0f1a2e;
    min-width: 0;
}
.dashboard-head h1,
.chart-card h2,
.admin-card h2 {
    color: #0b8bdc;
}
.sticky-filter {
    position: sticky;
    top: 58px;
    z-index: 9;
}
.visual-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 18px;
}
.visual-card {
    grid-column: span 6;
    min-height: 440px;
}
.visual-card.wide {
    grid-column: span 7;
    min-height: 520px;
}
.visual-card.kpi-card {
    grid-column: span 3;
    min-height: 280px;
}
.visual-card .card-body {
    height: calc(100% - 52px);
    min-height: 340px;
}
.visual-card canvas {
    height: 360px !important;
}
.visual-card.wide canvas {
    height: 420px !important;
}
.visual-card.kpi-card canvas {
    display: none !important;
}
.visual-card.kpi-card .kpi-box {
    display: block;
}
.chart-card {
    overflow: hidden;
}
.table-wrap {
    max-height: 430px;
}
.table-wrap table {
    font-size: 13px;
}
.table-wrap th {
    color: #0b8bdc;
    border-bottom: 2px solid #0b8bdc;
}
.table-wrap tbody tr:nth-child(even) {
    background: #efefef;
}
.table-wrap tbody tr:nth-child(odd) {
    background: #fff;
}
.kpi-box strong {
    font-size: clamp(34px, 4vw, 64px);
    text-align: center;
}
.kpi-box span {
    display: block;
    text-align: center;
}
.kpi-box .table-wrap {
    margin-top: 18px;
    max-height: 230px;
}
.drill-info button {
    margin-left: 10px;
}
@media (max-width: 1200px) {
    .visual-card,
    .visual-card.wide {
        grid-column: span 12;
    }
    .visual-card.kpi-card {
        grid-column: span 6;
    }
}
@media (max-width: 980px) {
    .topbar {
        height: auto;
        min-height: 58px;
        flex-wrap: wrap;
        padding: 10px 14px;
    }
    .brand {
        flex: 1 1 auto;
    }
    .top-source {
        order: 3;
        flex: 1 1 100%;
        max-width: none;
        width: 100%;
        margin-left: 0;
    }
    .top-source select {
        width: 100%;
    }
    .shell {
        min-height: calc(100vh - 112px);
    }
    .sidebar {
        top: 112px;
    }
    .sticky-filter {
        top: 112px;
    }
    .visual-card.kpi-card {
        grid-column: span 12;
    }
    .visual-card canvas,
    .visual-card.wide canvas {
        height: 380px !important;
    }
}
@media (max-width: 620px) {
    .content {
        padding: 16px 10px 42px;
    }
    .chart-card, .admin-card, .filter-panel {
        border-radius: 14px;
        padding: 12px;
    }
    .visual-grid {
        gap: 12px;
    }
    .visual-card,
    .visual-card.wide,
    .visual-card.kpi-card {
        min-height: 340px;
    }
    .visual-card canvas,
    .visual-card.wide canvas {
        height: 300px !important;
    }
    .table-wrap {
        max-height: 360px;
    }
    .top-source span {
        display: none;
    }
}


/* Layout polish: tighter aligned Power BI-style cards */
.visual-grid {
    align-items: stretch;
    grid-auto-flow: dense;
}
.visual-card {
    display: flex;
    flex-direction: column;
}
.visual-card .card-title {
    min-height: 42px;
    align-items: flex-start;
}
.visual-card .card-title h2 {
    line-height: 1.15;
}
.visual-card .card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.visual-card canvas {
    flex: 1;
}
.visual-card.wide {
    grid-column: span 8;
}
.visual-card:not(.wide):not(.kpi-card) {
    grid-column: span 4;
}
.visual-card.kpi-card {
    grid-column: span 4;
}
.filter-panel {
    margin-bottom: 16px;
}
.filter-row {
    grid-template-columns: minmax(220px, 2fr) 130px 180px 145px;
}
.table-wrap {
    flex: 1;
    min-height: 0;
}
.table-wrap table {
    min-width: 650px;
}
@media (max-width: 1350px) {
    .visual-card.wide,
    .visual-card:not(.wide):not(.kpi-card),
    .visual-card.kpi-card {
        grid-column: span 6;
    }
}
@media (max-width: 980px) {
    .visual-card.wide,
    .visual-card:not(.wide):not(.kpi-card),
    .visual-card.kpi-card {
        grid-column: span 12;
    }
    .filter-row {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 620px) {
    .filter-row {
        grid-template-columns: 1fr;
    }
    .top-source {
        display: grid;
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .top-source select {
        min-height: 42px;
        font-size: 15px;
    }
}


/* Context-aware controls and gauges */
.control-hidden {
    display: none !important;
}
.visual-card.kpi-card canvas,
.visual-card canvas {
    max-width: 100%;
}
.visual-card .kpi-box + canvas {
    margin-top: 0;
}
.visual-card:has(canvas:not(.hidden)) .table-wrap:not(.hidden) {
    margin-top: 12px;
    max-height: 170px;
}
@media (max-width: 980px) {
    .filter-row:has(.control-hidden) {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    }
}


/* Stable single-visual dashboard with buttons */
.visual-buttons-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 12px;
    margin-bottom: 14px;
}

.visual-buttons {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: thin;
}

.visual-button {
    flex: 0 0 auto;
    border: 1px solid #d7e2f2;
    background: #f7faff;
    color: #0f1a2e;
    padding: 11px 15px;
    border-radius: 13px;
    cursor: pointer;
    font-weight: 800;
    white-space: nowrap;
    transition: .15s ease;
}

.visual-button:hover {
    border-color: #0b8bdc;
    color: #0b8bdc;
}

.visual-button.active {
    background: #0b8bdc;
    border-color: #0b8bdc;
    color: #fff;
    box-shadow: 0 10px 26px rgba(11, 139, 220, .25);
}

.single-dashboard-view {
    display: block;
}

.active-visual-card {
    min-height: calc(100vh - 300px);
}

.active-visual-card .card-title {
    align-items: center;
}

.active-visual-grid {
    display: grid;
    grid-template-columns: minmax(420px, 1.25fr) minmax(360px, .9fr);
    gap: 18px;
    align-items: stretch;
}

.active-chart-pane,
.active-table-pane {
    min-width: 0;
}

.active-chart-pane {
    min-height: 560px;
    display: flex;
    flex-direction: column;
}

.active-chart-pane canvas {
    height: 540px !important;
}

.active-table-pane {
    border-left: 1px solid var(--border);
    padding-left: 18px;
    display: flex;
    flex-direction: column;
    min-height: 560px;
}

.table-pane-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.table-pane-head h3 {
    margin: 0;
    color: #0b8bdc;
    font-size: 18px;
}

.row-count {
    color: var(--muted);
    font-size: 13px;
    white-space: nowrap;
}

.active-table-pane .table-wrap {
    max-height: none;
    flex: 1;
}

.active-table-pane .table-wrap table {
    min-width: 520px;
}

.control-hidden {
    display: none !important;
}

#clearDrillBtn[hidden] {
    display: none !important;
}

@media (max-width: 1200px) {
    .active-visual-grid {
        grid-template-columns: 1fr;
    }

    .active-table-pane {
        border-left: 0;
        border-top: 1px solid var(--border);
        padding-left: 0;
        padding-top: 16px;
        min-height: 360px;
    }

    .active-chart-pane {
        min-height: 460px;
    }

    .active-chart-pane canvas {
        height: 440px !important;
    }
}

@media (max-width: 620px) {
    .visual-buttons-card {
        padding: 9px;
        border-radius: 14px;
    }

    .visual-button {
        padding: 10px 12px;
        font-size: 14px;
    }

    .active-visual-card {
        min-height: auto;
    }

    .active-chart-pane {
        min-height: 340px;
    }

    .active-chart-pane canvas {
        height: 320px !important;
    }

    .active-table-pane {
        min-height: 300px;
    }

    .table-pane-head {
        flex-direction: column;
        gap: 4px;
    }
}


/* Power BI-like gauge grid for Indicadores / Faturação */
.kpi-box .powerbi-gauge-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: 22px 28px;
    width: 100%;
}
.gauge-filter-buttons {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin: 0 0 18px;
}
.period-filter {
    min-width: 150px;
    border: 1px solid #cfcfcf;
    background: #fff;
    padding: 11px 18px;
    cursor: pointer;
    font-weight: 700;
}
.period-filter.active {
    background: #262323;
    color: #fff;
    border-color: #262323;
}
.powerbi-gauge-card {
    position: relative;
    min-height: 260px;
    padding: 8px 34px 12px 8px;
}
.powerbi-gauge-card h4 {
    margin: 0 0 8px;
    color: #111;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.25;
}
.powerbi-gauge {
    position: relative;
    height: 210px;
    overflow: hidden;
}
.gauge-arc {
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: -55%;
    aspect-ratio: 2 / 1;
    border-radius: 999px 999px 0 0;
    background: conic-gradient(from 270deg at 50% 100%, #1e90ff 0deg, #1e90ff calc(var(--gauge) * 1.8deg), #f0f0f0 calc(var(--gauge) * 1.8deg), #f0f0f0 180deg, transparent 180deg);
}
.gauge-arc::after {
    content: "";
    position: absolute;
    left: 24%;
    right: 24%;
    bottom: 0;
    aspect-ratio: 2 / 1;
    border-radius: 999px 999px 0 0;
    background: #fff;
}
.gauge-value {
    position: absolute;
    width: 100%;
    top: 50%;
    text-align: center;
    transform: translateY(-50%);
    font-size: clamp(34px, 5vw, 54px);
    color: #666;
    font-weight: 400;
}
.gauge-min,
.gauge-max {
    position: absolute;
    bottom: 4px;
    color: #777;
    font-size: 14px;
}
.gauge-min { left: 4%; }
.gauge-max { right: 2%; }
.gauge-side-value {
    position: absolute;
    right: 0;
    top: 35px;
    color: #333;
    font-size: 20px;
    text-align: left;
}
.gauge-side-value strong,
.gauge-side-value span {
    display: block;
    line-height: 1.05;
}
.gauge-side-value.negative strong { color: #e84b68; }
.gauge-side-value.positive strong { color: #118d57; }
@media (max-width: 1100px) {
    .kpi-box .powerbi-gauge-grid { grid-template-columns: 1fr; }
    .powerbi-gauge-card { min-height: 240px; }
}
@media (max-width: 620px) {
    .gauge-filter-buttons { justify-content: stretch; }
    .period-filter { flex: 1; min-width: 0; }
    .powerbi-gauge-card { padding-right: 8px; }
    .gauge-side-value { position: static; text-align: center; margin-top: 6px; }
}


/* Comparison donut cards for Vendas/Faturação */
.comparison-donut-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 24px;
}
.comparison-donut-card {
    position: relative;
    min-height: 280px;
    padding: 12px 20px;
}
.comparison-donut-card h4 {
    margin: 0 0 10px;
    font-size: 16px;
    font-weight: 800;
    color: #111;
}
.comparison-donut {
    position: relative;
    width: min(260px, 90%);
    aspect-ratio: 1 / 1;
    margin: 0 auto;
}
.comparison-donut-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: conic-gradient(#1e90ff 0 calc(var(--donut) * 3.6deg), #f0f0f0 calc(var(--donut) * 3.6deg) 360deg);
}
.comparison-donut-ring::after {
    content: "";
    position: absolute;
    inset: 27%;
    border-radius: 50%;
    background: #fff;
}
.comparison-donut-value {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #666;
    font-size: clamp(28px, 4vw, 44px);
}
.comparison-target {
    margin-top: 8px;
    text-align: center;
    color: #777;
    font-size: 14px;
}
@media (max-width: 900px) {
    .comparison-donut-grid {
        grid-template-columns: 1fr;
    }
}


/* Layout repair for PowerBI-style gauges/donuts */
.active-visual-card.special-visual .active-visual-grid,
.active-visual-card.special-visual .single-visual-grid {
    grid-template-columns: 1fr !important;
}

.active-visual-card.special-visual .active-chart-pane,
.active-visual-card.special-visual .chart-pane {
    min-height: auto !important;
    overflow: visible;
}

.active-visual-card.special-visual .active-table-pane,
.active-visual-card.special-visual .table-pane {
    border-left: 0 !important;
    border-top: 1px solid var(--border);
    padding-left: 0 !important;
    padding-top: 14px;
    min-height: auto !important;
    max-height: 330px;
}

.active-visual-card.special-visual .table-wrap {
    max-height: 260px !important;
}

.active-visual-card.special-visual .kpi-box {
    width: 100%;
    overflow: visible;
}

.kpi-box .powerbi-gauge-grid {
    grid-template-columns: repeat(2, minmax(300px, 1fr)) !important;
    gap: 18px 26px !important;
    align-items: start;
}

.powerbi-gauge-card {
    min-height: 230px !important;
    padding: 6px 10px 10px !important;
    overflow: visible;
}

.powerbi-gauge-card h4 {
    font-size: 15px !important;
    line-height: 1.2 !important;
    margin-bottom: 6px !important;
    max-width: 92%;
}

.powerbi-gauge {
    height: 165px !important;
}

.gauge-value {
    font-size: clamp(26px, 3.2vw, 38px) !important;
    top: 53% !important;
}

.gauge-min,
.gauge-max {
    font-size: 12px !important;
}

.gauge-side-value,
.gauge-variation {
    font-size: 15px !important;
    top: 34px !important;
    right: 6px !important;
}

.gauge-side-value strong,
.gauge-variation strong {
    font-size: 18px !important;
}

.gauge-side-value span,
.gauge-variation span {
    font-size: 14px !important;
}

.comparison-donut-grid {
    grid-template-columns: repeat(2, minmax(300px, 1fr)) !important;
    gap: 20px 28px !important;
    align-items: start;
}

.comparison-donut-card {
    min-height: 250px !important;
    padding: 8px 12px 12px !important;
    overflow: visible;
}

.comparison-donut-card h4 {
    font-size: 15px !important;
    line-height: 1.2 !important;
    margin-bottom: 6px !important;
}

.comparison-donut {
    width: min(185px, 88%) !important;
}

.comparison-donut-value {
    font-size: clamp(22px, 3vw, 34px) !important;
}

.comparison-target {
    font-size: 13px !important;
    margin-top: 6px !important;
}

.comparison-variation,
.comparison-donut-card .gauge-side-value {
    position: static !important;
    text-align: center !important;
    font-size: 14px !important;
    margin-top: 6px !important;
}

.comparison-variation strong,
.comparison-donut-card .gauge-side-value strong {
    display: inline !important;
    font-size: 17px !important;
    margin-right: 8px;
}

.comparison-variation span,
.comparison-donut-card .gauge-side-value span {
    display: inline !important;
    font-size: 14px !important;
}

.gauge-filter-buttons {
    margin-bottom: 12px !important;
}

.period-filter {
    min-width: 130px !important;
    padding: 9px 14px !important;
    text-transform: capitalize;
}

.table-pane-head h3,
#activeTableTitle {
    font-size: 18px !important;
}

@media (max-width: 900px) {
    .kpi-box .powerbi-gauge-grid,
    .comparison-donut-grid {
        grid-template-columns: 1fr !important;
    }

    .powerbi-gauge-card,
    .comparison-donut-card {
        min-height: auto !important;
    }

    .powerbi-gauge {
        height: 150px !important;
    }
}

@media (max-width: 620px) {
    .gauge-value {
        font-size: 28px !important;
    }

    .comparison-donut {
        width: min(165px, 92%) !important;
    }

    .comparison-donut-value {
        font-size: 24px !important;
    }
}

/* Gauge readability: current value and destination value are now explicit. */
.active-visual-card.single-gauge-visual .active-chart-pane {
    padding-bottom: 8px;
}

.single-gauge-wrap {
    display: flex;
    justify-content: center;
    width: 100%;
}

.kpi-box .powerbi-gauge-grid {
    grid-template-columns: repeat(2, minmax(360px, 1fr)) !important;
    gap: 18px 28px !important;
}

.powerbi-gauge-card {
    min-height: 292px !important;
    padding: 10px 14px 12px !important;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.powerbi-gauge-card h4 {
    min-height: 38px;
    max-width: none !important;
    margin: 0 0 6px !important;
    font-size: 17px !important;
    line-height: 1.18 !important;
    color: #050b16 !important;
}

.powerbi-gauge {
    position: relative;
    height: 160px !important;
    margin-top: 2px;
    overflow: visible !important;
}

.powerbi-gauge .gauge-arc {
    position: absolute;
    left: 5%;
    right: 5%;
    bottom: 24px;
    aspect-ratio: 2 / 1;
    border-radius: 999px 999px 0 0;
    background: conic-gradient(from 270deg at 50% 100%, #1e90ff 0deg, #1e90ff calc(var(--gauge) * 1.8deg), #edf2f8 calc(var(--gauge) * 1.8deg), #edf2f8 180deg, transparent 180deg);
}

.powerbi-gauge .gauge-arc::after {
    content: "";
    position: absolute;
    left: 24%;
    right: 24%;
    bottom: 0;
    aspect-ratio: 2 / 1;
    border-radius: 999px 999px 0 0;
    background: #fff;
}

.gauge-current {
    position: absolute;
    left: 18%;
    right: 18%;
    bottom: 34px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    text-align: center;
    z-index: 2;
}

.gauge-current span,
.gauge-scale span,
.gauge-legend-values span,
.gauge-variation span {
    color: #66758a;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.gauge-current strong {
    max-width: 100%;
    color: #071326;
    font-size: clamp(26px, 3.2vw, 42px);
    font-weight: 800;
    line-height: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.powerbi-gauge .gauge-scale {
    position: absolute;
    bottom: 0;
    z-index: 2;
    max-width: 38%;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.powerbi-gauge .gauge-min {
    left: 3%;
    text-align: left;
}

.powerbi-gauge .gauge-max {
    right: 3%;
    text-align: right;
}

.powerbi-gauge .gauge-scale strong {
    color: #344258;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.05;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gauge-legend-values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 6px;
}

.gauge-legend-values > div {
    min-width: 0;
    border: 1px solid #dbe5f1;
    border-radius: 12px;
    background: #f8fbff;
    padding: 8px 10px;
}

.gauge-legend-values strong {
    display: block;
    margin-top: 2px;
    color: #071326;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gauge-variation {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 8px;
    font-size: 14px !important;
    text-align: center;
}

.gauge-variation strong {
    color: #071326;
    font-size: 16px !important;
    font-weight: 800;
}

.gauge-variation.negative strong {
    color: #b42335;
}

.gauge-variation.positive strong {
    color: #118d57;
}

.single-gauge-card {
    width: min(760px, 100%);
    min-height: 380px !important;
    padding: 16px 22px 18px !important;
}

.single-gauge-card h4 {
    min-height: auto;
    text-align: center;
    font-size: 20px !important;
    margin-bottom: 10px !important;
}

.single-gauge-card .powerbi-gauge {
    height: 220px !important;
}

.single-gauge-card .gauge-current {
    bottom: 48px;
}

.single-gauge-card .gauge-current strong {
    font-size: clamp(36px, 5vw, 58px);
}

.single-gauge-card .gauge-legend-values strong {
    font-size: 20px;
}

@media (max-width: 980px) {
    .kpi-box .powerbi-gauge-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 620px) {
    .powerbi-gauge-card {
        min-height: auto !important;
        padding: 10px 8px 12px !important;
    }

    .powerbi-gauge-card h4 {
        font-size: 15px !important;
        min-height: auto;
    }

    .powerbi-gauge {
        height: 142px !important;
    }

    .gauge-current strong {
        font-size: 26px;
    }

    .gauge-legend-values {
        grid-template-columns: 1fr;
    }

    .single-gauge-card .powerbi-gauge {
        height: 170px !important;
    }
}

/* Final responsive layout correction: chart/table visibility, compact menu and non-overlapping gauges. */
.sidebar {
    padding: 14px 10px !important;
    gap: 10px !important;
}
.userbox {
    padding: 0 6px 10px !important;
}
.userbox strong {
    margin-bottom: 4px !important;
}
.side-nav {
    gap: 2px !important;
}
.side-nav a {
    min-height: 34px !important;
    padding: 7px 10px !important;
    gap: 9px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
}
.side-nav svg {
    width: 18px !important;
    height: 18px !important;
}
.side-nav h4 {
    margin: 10px 8px 4px !important;
    font-size: 11px !important;
}
.source-mini {
    padding: 9px !important;
    border-radius: 12px !important;
}
.source-mini label {
    margin-bottom: 5px !important;
    font-size: 12px !important;
}
.source-mini select {
    min-height: 34px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    font-size: 13px !important;
}

.active-visual-grid,
.active-visual-card.special-visual .active-visual-grid,
.active-visual-card.special-visual .single-visual-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
}
.active-chart-pane,
.active-visual-card.special-visual .active-chart-pane,
.active-visual-card.special-visual .chart-pane {
    min-height: auto !important;
    overflow: visible !important;
}
.active-table-pane,
.active-visual-card.special-visual .active-table-pane,
.active-visual-card.special-visual .table-pane {
    border-left: 0 !important;
    border-top: 1px solid var(--border) !important;
    padding-left: 0 !important;
    padding-top: 12px !important;
    min-height: auto !important;
    max-height: none !important;
}
.active-table-pane .table-wrap,
.active-visual-card.special-visual .table-wrap {
    max-height: 320px !important;
    overflow: auto !important;
}
.active-chart-pane canvas {
    min-height: 360px !important;
    max-height: 780px !important;
}
.chart-hint {
    margin: 8px 0 0 !important;
    color: var(--muted) !important;
    font-size: 13px !important;
    text-align: center !important;
}
.extra-filters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
.extra-filters label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 700;
    color: #40516a;
}

.kpi-box .powerbi-gauge-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)) !important;
    gap: 14px !important;
    align-items: stretch !important;
    width: 100% !important;
}
.powerbi-gauge-card {
    min-width: 0 !important;
    min-height: 276px !important;
    padding: 12px !important;
    overflow: hidden !important;
    border: 1px solid #dbe5f1 !important;
    border-radius: 16px !important;
    background: #fff !important;
    display: grid !important;
    grid-template-rows: auto auto auto auto !important;
    gap: 8px !important;
}
.powerbi-gauge-card h4 {
    min-height: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    color: #050b16 !important;
    font-size: clamp(14px, 1.2vw, 17px) !important;
    line-height: 1.18 !important;
    overflow-wrap: anywhere !important;
}
.powerbi-gauge {
    position: relative !important;
    height: 138px !important;
    min-height: 138px !important;
    margin: 0 !important;
    overflow: hidden !important;
}
.powerbi-gauge .gauge-arc,
.gauge-arc {
    position: absolute !important;
    top: 10px !important;
    left: 10% !important;
    right: 10% !important;
    bottom: auto !important;
    height: 112px !important;
    aspect-ratio: auto !important;
    border-radius: 999px 999px 0 0 !important;
    background: conic-gradient(from 270deg at 50% 100%, #1e90ff 0deg, #1e90ff calc(var(--gauge) * 1.8deg), #edf2f8 calc(var(--gauge) * 1.8deg), #edf2f8 180deg, transparent 180deg) !important;
}
.powerbi-gauge .gauge-arc::after,
.gauge-arc::after {
    content: "" !important;
    position: absolute !important;
    left: 29% !important;
    right: 29% !important;
    bottom: 0 !important;
    height: 58px !important;
    aspect-ratio: auto !important;
    border-radius: 999px 999px 0 0 !important;
    background: #fff !important;
}
.gauge-current {
    position: absolute !important;
    left: 22% !important;
    right: 22% !important;
    bottom: 28px !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    text-align: center !important;
}
.gauge-current span,
.gauge-scale span,
.gauge-legend-values span,
.gauge-variation span,
.mini-legend span {
    color: #66758a !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
}
.gauge-current strong {
    max-width: 100% !important;
    color: #071326 !important;
    font-size: clamp(26px, 3.2vw, 42px) !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.powerbi-gauge .gauge-scale,
.gauge-scale {
    position: absolute !important;
    bottom: 0 !important;
    z-index: 2 !important;
    max-width: 38% !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
}
.powerbi-gauge .gauge-min,
.gauge-min {
    left: 2% !important;
    text-align: left !important;
}
.powerbi-gauge .gauge-max,
.gauge-max {
    right: 2% !important;
    text-align: right !important;
}
.powerbi-gauge .gauge-scale strong,
.gauge-scale strong {
    color: #344258 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.visual-legend {
    width: 100% !important;
}
.gauge-legend-values {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 0 !important;
}
.gauge-legend-values > div {
    min-width: 0 !important;
    border: 1px solid #dbe5f1 !important;
    border-radius: 12px !important;
    background: #f8fbff !important;
    padding: 8px 10px !important;
}
.gauge-legend-values strong {
    display: block !important;
    margin-top: 3px !important;
    color: #071326 !important;
    font-size: clamp(16px, 1.7vw, 22px) !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.legend-dot {
    display: inline-block !important;
    width: 9px !important;
    height: 9px !important;
    border-radius: 999px !important;
    margin-right: 5px !important;
    vertical-align: middle !important;
}
.legend-dot.current { background: #1e90ff !important; }
.legend-dot.target { background: #edf2f8 !important; border: 1px solid #cbd5e1 !important; }
.gauge-variation {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin-top: 0 !important;
    text-align: center !important;
}
.gauge-variation strong {
    color: #071326 !important;
    font-size: 16px !important;
    font-weight: 900 !important;
}
.gauge-variation.negative strong { color: #b42335 !important; }
.gauge-variation.positive strong { color: #118d57 !important; }
.single-gauge-wrap {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
}
.single-gauge-card {
    width: min(760px, 100%) !important;
    min-height: 350px !important;
}
.single-gauge-card .powerbi-gauge {
    height: 180px !important;
    min-height: 180px !important;
}
.single-gauge-card .gauge-arc {
    height: 150px !important;
}
.single-gauge-card .gauge-current {
    bottom: 42px !important;
}
.single-gauge-card .gauge-current strong {
    font-size: clamp(34px, 5vw, 56px) !important;
}
.clickable-card {
    cursor: pointer !important;
}
.clickable-card:hover {
    border-color: #0b8bdc !important;
    box-shadow: 0 14px 34px rgba(11,139,220,.14) !important;
}
.comparison-donut-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)) !important;
    gap: 14px !important;
}
.comparison-donut-card {
    min-height: 0 !important;
    border: 1px solid #dbe5f1 !important;
    border-radius: 16px !important;
    padding: 12px !important;
    overflow: hidden !important;
}
.comparison-donut-card h4 {
    margin: 0 0 8px !important;
    font-size: 15px !important;
    line-height: 1.18 !important;
}
.comparison-donut {
    width: min(170px, 70vw) !important;
}
.comparison-donut-value {
    font-size: clamp(22px, 3vw, 32px) !important;
    font-weight: 900 !important;
}
.mini-legend {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 5px !important;
    margin-top: 8px !important;
    text-align: center !important;
}
.mini-legend b {
    color: #071326 !important;
    font-size: 14px !important;
}
.comparison-variation {
    position: static !important;
    margin-top: 8px !important;
    display: flex !important;
    justify-content: center !important;
    gap: 8px !important;
}
.comparison-variation strong {
    font-size: 16px !important;
}

@media (max-width: 700px) {
    .topbar {
        padding: 8px 10px !important;
    }
    .content {
        padding: 14px 8px 36px !important;
    }
    .page-head h1 {
        font-size: 26px !important;
    }
    .chart-card, .admin-card, .filter-panel, .visual-buttons-card {
        padding: 10px !important;
        border-radius: 14px !important;
    }
    .filter-row,
    .extra-filters {
        grid-template-columns: 1fr !important;
    }
    .active-chart-pane canvas {
        min-height: 320px !important;
    }
    .powerbi-gauge-card {
        min-height: 252px !important;
        padding: 10px !important;
    }
    .powerbi-gauge-card h4 {
        font-size: 14px !important;
    }
    .powerbi-gauge {
        height: 126px !important;
        min-height: 126px !important;
    }
    .powerbi-gauge .gauge-arc,
    .gauge-arc {
        left: 8% !important;
        right: 8% !important;
        height: 100px !important;
    }
    .gauge-current strong {
        font-size: 25px !important;
    }
    .gauge-legend-values {
        grid-template-columns: 1fr !important;
    }
    .single-gauge-card .powerbi-gauge {
        height: 150px !important;
        min-height: 150px !important;
    }
    .single-gauge-card .gauge-arc {
        height: 124px !important;
    }
    .single-gauge-card .gauge-current {
        bottom: 34px !important;
    }
}


/* Compact 70% visual density: smaller typography, controls, spacing and charts without using browser zoom. */
:root {
    --radius: 12px;
    --shadow: 0 8px 24px rgba(15, 26, 46, .08);
}
body {
    font-size: 12px !important;
}
.topbar {
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    gap: 10px !important;
}
.brand {
    gap: 8px !important;
    font-size: 14px !important;
}
.brand span {
    width: 28px !important;
    height: 28px !important;
    border-radius: 9px !important;
}
.topbar nav {
    gap: 14px !important;
    font-size: 12px !important;
}
.hamb {
    font-size: 18px !important;
    padding: 4px 8px !important;
    border-radius: 8px !important;
}
.top-source {
    min-width: 210px !important;
    max-width: 300px !important;
    padding: 4px 6px !important;
    gap: 6px !important;
    border-radius: 9px !important;
}
.top-source span {
    font-size: 10px !important;
}
.top-source select {
    height: 28px !important;
    min-height: 28px !important;
    padding: 4px 24px 4px 8px !important;
    font-size: 11px !important;
}
.shell {
    grid-template-columns: 218px 1fr !important;
    min-height: calc(100vh - 44px) !important;
}
.sidebar {
    padding: 9px 7px !important;
    gap: 6px !important;
}
.userbox {
    padding: 0 5px 7px !important;
}
.userbox strong {
    margin-bottom: 2px !important;
    font-size: 12px !important;
}
.userbox small {
    font-size: 10px !important;
}
.side-nav {
    gap: 1px !important;
}
.side-nav a {
    min-height: 28px !important;
    padding: 5px 8px !important;
    gap: 7px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
    line-height: 1.05 !important;
}
.side-nav svg {
    width: 15px !important;
    height: 15px !important;
}
.side-nav h4 {
    margin: 7px 6px 3px !important;
    font-size: 9px !important;
    letter-spacing: .04em !important;
}
.source-mini {
    padding: 7px !important;
    border-radius: 10px !important;
}
.source-mini label {
    margin-bottom: 4px !important;
    font-size: 10px !important;
}
.source-mini select {
    min-height: 28px !important;
    padding: 4px 7px !important;
    font-size: 11px !important;
}
.content {
    padding: 18px 14px 28px !important;
}
.page-head {
    gap: 12px !important;
    margin-bottom: 12px !important;
}
.page-head h1 {
    font-size: 24px !important;
    margin-bottom: 4px !important;
}
.page-head p {
    font-size: 12px !important;
}
.dashboard-grid {
    grid-template-columns: repeat(6, minmax(135px, 1fr)) !important;
    gap: 10px !important;
}
.dash-card {
    min-height: 165px !important;
    padding: 12px !important;
    border-radius: 12px !important;
}
.icon-badge {
    width: 38px !important;
    height: 38px !important;
    border-radius: 11px !important;
    margin-bottom: 10px !important;
}
.icon-badge svg {
    width: 23px !important;
    height: 23px !important;
}
.dash-card h2 {
    font-size: 17px !important;
    margin-bottom: 8px !important;
}
.dash-card p {
    font-size: 12px !important;
    line-height: 1.35 !important;
}
.go {
    width: 28px !important;
    height: 28px !important;
    border-radius: 9px !important;
    font-size: 18px !important;
}
.chart-card,
.admin-card,
.filter-panel,
.visual-buttons-card {
    padding: 9px 10px !important;
    border-radius: 12px !important;
}
.visual-buttons-card {
    margin-bottom: 8px !important;
}
.visual-buttons {
    gap: 6px !important;
}
.visual-button {
    padding: 7px 10px !important;
    border-radius: 9px !important;
    font-size: 11px !important;
}
.sticky-filter {
    top: 44px !important;
}
.filter-panel {
    margin-bottom: 9px !important;
}
.filter-row,
.extra-filters {
    gap: 7px !important;
}
.filter-row {
    grid-template-columns: minmax(180px, 2fr) 92px 142px 94px !important;
}
.filter-row label,
.extra-filters label,
.form-grid label {
    gap: 3px !important;
    font-size: 11px !important;
}
select,
input {
    padding: 6px 8px !important;
    min-height: 28px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
}
.btn {
    padding: 7px 10px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
}
.btn.small {
    padding: 5px 8px !important;
    font-size: 10px !important;
}
.alert,
.drill-info {
    padding: 8px 10px !important;
    border-radius: 9px !important;
    margin: 7px 0 !important;
    font-size: 11px !important;
}
.card-title {
    min-height: 28px !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
}
.card-title h2,
.table-pane-head h3,
#activeTableTitle {
    font-size: 15px !important;
}
.active-visual-card {
    min-height: calc(100vh - 190px) !important;
}
.active-visual-grid,
.active-visual-card.special-visual .active-visual-grid,
.active-visual-card.special-visual .single-visual-grid {
    gap: 9px !important;
}
.active-chart-pane {
    min-height: 0 !important;
}
.active-chart-pane canvas {
    height: 320px !important;
    min-height: 260px !important;
    max-height: 560px !important;
}
.chart-hint {
    margin-top: 4px !important;
    font-size: 10px !important;
}
.active-table-pane {
    padding-top: 8px !important;
}
.table-pane-head {
    margin-bottom: 5px !important;
}
.row-count {
    font-size: 10px !important;
}
.table-wrap,
.active-table-pane .table-wrap,
.active-visual-card.special-visual .table-wrap {
    max-height: 235px !important;
}
table,
.table-wrap table {
    font-size: 10.5px !important;
}
th,
td {
    padding: 5px 7px !important;
    max-width: 210px !important;
}
.table-wrap table {
    min-width: 500px !important;
}
.kpi-box strong {
    font-size: clamp(24px, 3vw, 44px) !important;
}
.kpi-box span {
    font-size: 11px !important;
}
.kpi-box .powerbi-gauge-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)) !important;
    gap: 8px !important;
}
.gauge-filter-buttons {
    gap: 6px !important;
    margin-bottom: 8px !important;
}
.period-filter {
    min-width: 92px !important;
    padding: 6px 11px !important;
    font-size: 11px !important;
}
.powerbi-gauge-card {
    min-height: 204px !important;
    padding: 7px !important;
    border-radius: 12px !important;
    gap: 5px !important;
}
.powerbi-gauge-card h4 {
    font-size: clamp(11px, 1vw, 13px) !important;
    line-height: 1.12 !important;
}
.powerbi-gauge {
    height: 98px !important;
    min-height: 98px !important;
}
.powerbi-gauge .gauge-arc,
.gauge-arc {
    top: 6px !important;
    left: 11% !important;
    right: 11% !important;
    height: 78px !important;
}
.powerbi-gauge .gauge-arc::after,
.gauge-arc::after {
    left: 30% !important;
    right: 30% !important;
    height: 42px !important;
}
.gauge-current {
    left: 22% !important;
    right: 22% !important;
    bottom: 18px !important;
}
.gauge-current span,
.gauge-scale span,
.gauge-legend-values span,
.gauge-variation span,
.mini-legend span {
    font-size: 8.5px !important;
}
.gauge-current strong {
    font-size: clamp(18px, 2.35vw, 30px) !important;
}
.powerbi-gauge .gauge-scale,
.gauge-scale {
    max-width: 34% !important;
}
.powerbi-gauge .gauge-scale strong,
.gauge-scale strong {
    font-size: 9.5px !important;
}
.gauge-legend-values {
    gap: 5px !important;
}
.gauge-legend-values > div {
    padding: 5px 6px !important;
    border-radius: 8px !important;
}
.gauge-legend-values strong {
    font-size: clamp(12px, 1.25vw, 16px) !important;
}
.legend-dot {
    width: 7px !important;
    height: 7px !important;
    margin-right: 3px !important;
}
.gauge-variation {
    gap: 5px !important;
}
.gauge-variation strong {
    font-size: 12.5px !important;
}
.single-gauge-card {
    width: min(540px, 100%) !important;
    min-height: 255px !important;
    padding: 9px !important;
}
.single-gauge-card h4 {
    font-size: 15px !important;
    margin-bottom: 5px !important;
}
.single-gauge-card .powerbi-gauge {
    height: 128px !important;
    min-height: 128px !important;
}
.single-gauge-card .gauge-arc {
    height: 106px !important;
}
.single-gauge-card .gauge-current {
    bottom: 28px !important;
}
.single-gauge-card .gauge-current strong {
    font-size: clamp(26px, 4vw, 40px) !important;
}
.single-gauge-card .gauge-legend-values strong {
    font-size: 15px !important;
}
.comparison-donut-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(235px, 100%), 1fr)) !important;
    gap: 8px !important;
}
.comparison-donut-card {
    padding: 7px !important;
    border-radius: 12px !important;
}
.comparison-donut-card h4 {
    font-size: 12px !important;
    margin-bottom: 5px !important;
}
.comparison-donut {
    width: min(118px, 55vw) !important;
}
.comparison-donut-value {
    font-size: clamp(17px, 2.2vw, 24px) !important;
}
.mini-legend {
    gap: 3px !important;
    margin-top: 5px !important;
}
.mini-legend b {
    font-size: 11px !important;
}
.comparison-variation {
    gap: 5px !important;
    margin-top: 5px !important;
}
.comparison-variation strong {
    font-size: 12px !important;
}
.form-grid,
.permissions-grid,
.checks {
    gap: 8px !important;
}
.form-grid {
    grid-template-columns: repeat(3, minmax(145px, 1fr)) !important;
}
.admin-card {
    margin-bottom: 10px !important;
}
.admin-card h2 {
    font-size: 17px !important;
    margin-bottom: 8px !important;
}
.admin-card h3 {
    font-size: 13px !important;
    margin: 8px 0 6px !important;
}
.checks label,
.source-detail {
    padding: 6px 8px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
}
.auth-card {
    width: min(330px, 100%) !important;
    padding: 20px !important;
    border-radius: 16px !important;
}
.auth-card h1 {
    font-size: 22px !important;
    margin-bottom: 14px !important;
}

@media (max-width: 1450px) {
    .dashboard-grid {
        grid-template-columns: repeat(3, minmax(170px, 1fr)) !important;
    }
}
@media (max-width: 980px) {
    .topbar {
        height: auto !important;
        min-height: 44px !important;
        padding: 7px 10px !important;
    }
    .shell {
        grid-template-columns: 1fr !important;
        min-height: calc(100vh - 86px) !important;
    }
    .sidebar {
        top: 86px !important;
        width: 230px !important;
        left: -240px !important;
    }
    .sidebar.open {
        left: 0 !important;
    }
    .sticky-filter {
        top: 86px !important;
    }
    .top-source {
        max-width: none !important;
        width: 100% !important;
    }
    .filter-row,
    .filter-row:has(.control-hidden) {
        grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important;
    }
    .form-grid,
    .permissions-grid {
        grid-template-columns: 1fr !important;
    }
    .active-chart-pane canvas {
        height: 300px !important;
        min-height: 250px !important;
    }
}
@media (max-width: 700px) {
    .content {
        padding: 10px 7px 28px !important;
    }
    .page-head {
        margin-bottom: 8px !important;
    }
    .page-head h1 {
        font-size: 20px !important;
    }
    .chart-card,
    .admin-card,
    .filter-panel,
    .visual-buttons-card {
        padding: 7px !important;
        border-radius: 10px !important;
    }
    .dashboard-grid {
        grid-template-columns: 1fr !important;
        gap: 7px !important;
    }
    .dash-card {
        min-height: 120px !important;
    }
    .active-chart-pane canvas {
        height: 260px !important;
        min-height: 230px !important;
    }
    .table-wrap,
    .active-table-pane .table-wrap,
    .active-visual-card.special-visual .table-wrap {
        max-height: 205px !important;
    }
    .powerbi-gauge-card {
        min-height: 194px !important;
    }
    .powerbi-gauge {
        height: 92px !important;
        min-height: 92px !important;
    }
    .powerbi-gauge .gauge-arc,
    .gauge-arc {
        left: 8% !important;
        right: 8% !important;
        height: 74px !important;
    }
    .gauge-current strong {
        font-size: 20px !important;
    }
    .gauge-legend-values {
        grid-template-columns: 1fr 1fr !important;
    }
    .single-gauge-card .powerbi-gauge {
        height: 116px !important;
        min-height: 116px !important;
    }
    .single-gauge-card .gauge-arc {
        height: 94px !important;
    }
}
@media (max-width: 430px) {
    .gauge-legend-values {
        grid-template-columns: 1fr !important;
    }
    .powerbi-gauge-card {
        min-height: 220px !important;
    }
    .visual-button {
        font-size: 10px !important;
    }
}

/* Requested correction: taller gauge cards, non-overlapping gauge layout, calculation note and tighter sidebar. */
.sidebar {
    height: calc(100vh - 44px) !important;
    overflow-y: auto !important;
    padding: 7px 6px !important;
    gap: 4px !important;
}
.userbox {
    padding: 0 4px 5px !important;
}
.userbox strong {
    font-size: 11px !important;
    line-height: 1.1 !important;
    margin-bottom: 1px !important;
}
.userbox small {
    font-size: 9px !important;
    line-height: 1.1 !important;
}
.side-nav {
    gap: 0 !important;
}
.side-nav a {
    min-height: 24px !important;
    padding: 3px 6px !important;
    gap: 6px !important;
    border-radius: 7px !important;
    font-size: 10.5px !important;
    line-height: 1.05 !important;
}
.side-nav svg {
    width: 13px !important;
    height: 13px !important;
}
.side-nav h4 {
    margin: 5px 5px 2px !important;
    font-size: 8.5px !important;
}
.source-mini {
    padding: 5px !important;
    border-radius: 8px !important;
}
.source-mini label {
    font-size: 9px !important;
    margin-bottom: 3px !important;
}
.source-mini select {
    min-height: 24px !important;
    padding: 3px 6px !important;
    font-size: 10px !important;
}

.calculation-note {
    margin: -4px 0 8px !important;
    padding: 8px 10px !important;
    border: 1px solid #dbe5f1 !important;
    border-radius: 12px !important;
    background: #f8fbff !important;
    color: #40516a !important;
}
.calculation-note strong {
    display: block !important;
    margin-bottom: 3px !important;
    color: #0f315c !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
}
.calculation-note p {
    margin: 0 !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
}

.kpi-box .powerbi-gauge-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(560px, 100%), 1fr)) !important;
    gap: 10px !important;
    align-items: stretch !important;
}
.powerbi-gauge-card {
    min-height: 318px !important;
    padding: 10px 11px !important;
    gap: 8px !important;
    overflow: hidden !important;
    grid-template-rows: minmax(34px, auto) 160px auto auto !important;
}
.powerbi-gauge-card h4 {
    min-height: 34px !important;
    font-size: clamp(12px, .95vw, 15px) !important;
    line-height: 1.12 !important;
    display: flex !important;
    align-items: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
}
.powerbi-gauge {
    height: 160px !important;
    min-height: 160px !important;
    margin: 0 !important;
    overflow: hidden !important;
}
.powerbi-gauge .gauge-arc,
.gauge-arc {
    top: 9px !important;
    left: 7% !important;
    right: 7% !important;
    height: 128px !important;
}
.powerbi-gauge .gauge-arc::after,
.gauge-arc::after {
    left: 31% !important;
    right: 31% !important;
    height: 64px !important;
}
.gauge-current {
    left: 24% !important;
    right: 24% !important;
    bottom: 34px !important;
    gap: 3px !important;
}
.gauge-current span,
.gauge-scale span,
.gauge-legend-values span,
.gauge-variation span,
.mini-legend span {
    font-size: 9px !important;
    line-height: 1.05 !important;
}
.gauge-current strong {
    font-size: clamp(25px, 2.25vw, 38px) !important;
    line-height: .98 !important;
}
.powerbi-gauge .gauge-scale,
.gauge-scale {
    bottom: 8px !important;
    max-width: 32% !important;
}
.powerbi-gauge .gauge-min,
.gauge-min {
    left: 1.5% !important;
}
.powerbi-gauge .gauge-max,
.gauge-max {
    right: 1.5% !important;
}
.powerbi-gauge .gauge-scale strong,
.gauge-scale strong {
    font-size: 10.5px !important;
    line-height: 1.05 !important;
}
.gauge-legend-values {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
}
.gauge-legend-values > div {
    padding: 6px 8px !important;
    min-height: 48px !important;
}
.gauge-legend-values strong {
    font-size: clamp(13px, 1.25vw, 18px) !important;
    line-height: 1.05 !important;
}
.gauge-variation {
    min-height: 22px !important;
    margin-top: 0 !important;
}
.gauge-variation strong {
    font-size: 13.5px !important;
}
.single-gauge-card {
    width: min(700px, 100%) !important;
    min-height: 340px !important;
    grid-template-rows: minmax(28px, auto) 170px auto auto !important;
}
.single-gauge-card .powerbi-gauge {
    height: 170px !important;
    min-height: 170px !important;
}
.single-gauge-card .gauge-arc {
    height: 138px !important;
}
.single-gauge-card .gauge-current {
    bottom: 40px !important;
}
.single-gauge-card .gauge-current strong {
    font-size: clamp(30px, 4.2vw, 48px) !important;
}

@media (max-width: 1250px) {
    .kpi-box .powerbi-gauge-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(430px, 100%), 1fr)) !important;
    }
    .powerbi-gauge-card {
        min-height: 310px !important;
    }
}
@media (max-width: 700px) {
    .sidebar {
        height: calc(100vh - 86px) !important;
    }
    .kpi-box .powerbi-gauge-grid {
        grid-template-columns: 1fr !important;
        gap: 9px !important;
    }
    .powerbi-gauge-card {
        min-height: 300px !important;
        grid-template-rows: minmax(32px, auto) 150px auto auto !important;
    }
    .powerbi-gauge {
        height: 150px !important;
        min-height: 150px !important;
    }
    .powerbi-gauge .gauge-arc,
    .gauge-arc {
        left: 6% !important;
        right: 6% !important;
        height: 120px !important;
    }
    .gauge-current {
        bottom: 33px !important;
    }
    .gauge-current strong {
        font-size: clamp(24px, 8vw, 34px) !important;
    }
    .single-gauge-card {
        min-height: 315px !important;
    }
}
@media (max-width: 430px) {
    .powerbi-gauge-card {
        min-height: 330px !important;
        grid-template-rows: minmax(38px, auto) 145px auto auto !important;
    }
    .powerbi-gauge {
        height: 145px !important;
        min-height: 145px !important;
    }
    .gauge-current strong {
        font-size: clamp(22px, 9vw, 31px) !important;
    }
    .gauge-legend-values {
        grid-template-columns: 1fr !important;
    }
    .gauge-legend-values > div {
        min-height: 42px !important;
    }
}

/* Final correction requested: sidebar follows page height and gauge cards gain height (not width). */
.shell {
    align-items: stretch !important;
    min-height: calc(100vh - 44px) !important;
}
.sidebar {
    height: auto !important;
    min-height: calc(100vh - 44px) !important;
    align-self: stretch !important;
    overflow-y: visible !important;
}
.source-mini {
    display: none !important;
}

/* Gauge grid: avoid huge single wide card on desktop; keep cards taller with room for arc + legends. */
.kpi-box .powerbi-gauge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
    width: 100% !important;
}
.powerbi-gauge-card {
    min-width: 0 !important;
    min-height: 370px !important;
    padding: 12px 14px !important;
    gap: 10px !important;
    overflow: visible !important;
    display: grid !important;
    grid-template-rows: minmax(40px, auto) 200px auto auto !important;
}
.powerbi-gauge-card h4 {
    min-height: 40px !important;
    font-size: clamp(13px, .95vw, 16px) !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}
.powerbi-gauge {
    height: 200px !important;
    min-height: 200px !important;
    overflow: visible !important;
    margin: 0 !important;
}
.powerbi-gauge .gauge-arc,
.gauge-arc {
    top: 12px !important;
    left: 7% !important;
    right: 7% !important;
    height: 158px !important;
    bottom: auto !important;
}
.powerbi-gauge .gauge-arc::after,
.gauge-arc::after {
    left: 29% !important;
    right: 29% !important;
    height: 82px !important;
    bottom: 0 !important;
}
.gauge-current {
    left: 20% !important;
    right: 20% !important;
    bottom: 44px !important;
    gap: 4px !important;
}
.gauge-current strong {
    font-size: clamp(28px, 2.7vw, 46px) !important;
    line-height: .98 !important;
}
.gauge-current span,
.gauge-scale span,
.gauge-legend-values span,
.gauge-variation span,
.mini-legend span {
    font-size: 9.5px !important;
    line-height: 1.08 !important;
}
.powerbi-gauge .gauge-scale,
.gauge-scale {
    bottom: 10px !important;
    max-width: 34% !important;
}
.powerbi-gauge .gauge-scale strong,
.gauge-scale strong {
    font-size: 11px !important;
    line-height: 1.05 !important;
}
.gauge-legend-values {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
.gauge-legend-values > div {
    min-height: 54px !important;
    padding: 7px 9px !important;
}
.gauge-legend-values strong {
    font-size: clamp(14px, 1.35vw, 20px) !important;
    line-height: 1.05 !important;
}
.gauge-variation {
    min-height: 24px !important;
}
.gauge-variation strong {
    font-size: 14px !important;
}
.single-gauge-card {
    width: min(760px, 100%) !important;
    min-height: 380px !important;
    grid-template-rows: minmax(32px, auto) 205px auto auto !important;
}
.single-gauge-card .powerbi-gauge {
    height: 205px !important;
    min-height: 205px !important;
}
.single-gauge-card .gauge-arc {
    height: 166px !important;
}
.single-gauge-card .gauge-current {
    bottom: 48px !important;
}
.single-gauge-card .gauge-current strong {
    font-size: clamp(32px, 4.5vw, 56px) !important;
}

@media (max-width: 980px) {
    .sidebar {
        position: fixed !important;
        height: calc(100vh - 86px) !important;
        min-height: 0 !important;
        overflow-y: auto !important;
    }
    .kpi-box .powerbi-gauge-grid {
        grid-template-columns: 1fr !important;
    }
    .powerbi-gauge-card {
        min-height: 350px !important;
        grid-template-rows: minmax(36px, auto) 185px auto auto !important;
    }
    .powerbi-gauge {
        height: 185px !important;
        min-height: 185px !important;
    }
    .powerbi-gauge .gauge-arc,
    .gauge-arc {
        height: 148px !important;
    }
}

@media (max-width: 700px) {
    .powerbi-gauge-card {
        min-height: 330px !important;
        grid-template-rows: minmax(34px, auto) 165px auto auto !important;
        padding: 10px !important;
    }
    .powerbi-gauge {
        height: 165px !important;
        min-height: 165px !important;
    }
    .powerbi-gauge .gauge-arc,
    .gauge-arc {
        left: 6% !important;
        right: 6% !important;
        height: 130px !important;
    }
    .gauge-current {
        bottom: 36px !important;
    }
    .gauge-current strong {
        font-size: clamp(24px, 8vw, 34px) !important;
    }
    .single-gauge-card {
        min-height: 340px !important;
    }
}

@media (max-width: 430px) {
    .powerbi-gauge-card {
        min-height: 360px !important;
        grid-template-rows: minmax(42px, auto) 160px auto auto !important;
    }
    .powerbi-gauge {
        height: 160px !important;
        min-height: 160px !important;
    }
    .gauge-legend-values {
        grid-template-columns: 1fr !important;
    }
}


/* Final gauge + sidebar adjustments requested */
body { min-height: 100vh; }
.shell { align-items: stretch; }
.content { min-width: 0; }
.sidebar { min-height: calc(100vh - 58px); align-self: stretch; position: sticky; top: 58px; overflow-y: auto; }
.side-nav { gap: 4px; }
.side-nav a { padding: 9px 10px; }
.side-nav h4 { margin-top: 14px; }

.active-visual-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
}

.active-table-pane {
    width: 100%;
}

.active-visual-card.special-visual .active-table-pane,
.active-visual-card.single-gauge-visual .active-table-pane {
    order: 2;
}

.kpi-box .powerbi-gauge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
}

.powerbi-gauge-card {
    min-height: 510px !important;
    padding: 18px 18px 16px !important;
    border: 1px solid #dfe7f3 !important;
    border-radius: 24px !important;
    background: #ffffff !important;
    box-shadow: 0 16px 42px rgba(15, 26, 46, 0.08) !important;
    display: grid !important;
    grid-template-rows: minmax(58px, auto) 250px auto auto !important;
    gap: 10px !important;
}

.powerbi-gauge-card h4 {
    min-height: 58px !important;
    margin: 0 !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    color: #06153a !important;
}

.powerbi-gauge {
    height: 250px !important;
    min-height: 250px !important;
    margin-top: 0 !important;
}

.powerbi-gauge .gauge-arc {
    left: 6% !important;
    right: 6% !important;
    bottom: 34px !important;
    height: 196px !important;
    aspect-ratio: auto !important;
    background: conic-gradient(from 270deg at 50% 100%, #1677f2 0deg, #1677f2 calc(var(--gauge) * 1.8deg), #e6ebf3 calc(var(--gauge) * 1.8deg), #e6ebf3 180deg, transparent 180deg) !important;
}

.powerbi-gauge .gauge-arc::after {
    left: 24% !important;
    right: 24% !important;
    height: 104px !important;
    background: #ffffff !important;
}

.gauge-current {
    left: 20% !important;
    right: 20% !important;
    bottom: 42px !important;
    gap: 10px !important;
}

.gauge-current span,
.gauge-scale span,
.gauge-legend-values span,
.gauge-variation span {
    font-size: 12px !important;
    line-height: 1.1 !important;
    color: #60749a !important;
    font-weight: 800 !important;
    letter-spacing: .01em !important;
}

.gauge-current strong {
    font-size: clamp(34px, 3.1vw, 54px) !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    color: #03153c !important;
    white-space: nowrap !important;
}

.powerbi-gauge .gauge-scale {
    bottom: 6px !important;
    max-width: 26% !important;
    gap: 5px !important;
}

.powerbi-gauge .gauge-min { left: 0 !important; }
.powerbi-gauge .gauge-max { right: 0 !important; }

.powerbi-gauge .gauge-scale strong {
    font-size: 18px !important;
    color: #0e2149 !important;
    line-height: 1.1 !important;
}

.gauge-legend-values {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 0 !important;
}

.gauge-legend-values > div {
    min-height: 80px !important;
    padding: 14px 16px !important;
    border-radius: 16px !important;
    border: 1px solid #dce5f1 !important;
    background: #fbfdff !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

.gauge-legend-values strong {
    font-size: clamp(22px, 2vw, 32px) !important;
    line-height: 1.08 !important;
    margin-top: 4px !important;
    white-space: nowrap !important;
}

.legend-dot {
    width: 10px !important;
    height: 10px !important;
    display: inline-block !important;
    border-radius: 999px !important;
    margin-right: 8px !important;
}

.legend-dot.current { background: #1677f2 !important; }
.legend-dot.target { background: #e1e7f0 !important; border: 1px solid #bac8db !important; }

.gauge-variation {
    min-height: 64px !important;
    border-radius: 16px !important;
    border: 1px solid #f1d5d9 !important;
    background: #fff8f8 !important;
    margin-top: 0 !important;
    padding: 10px 16px !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
}

.gauge-variation strong {
    font-size: clamp(22px, 2.2vw, 34px) !important;
    line-height: 1 !important;
}

.single-gauge-wrap { justify-content: center !important; }
.single-gauge-card {
    width: min(1100px, 100%) !important;
    min-height: 540px !important;
    grid-template-rows: minmax(56px, auto) 290px auto auto !important;
    padding: 22px 22px 18px !important;
}
.single-gauge-card h4 { text-align: left !important; font-size: 22px !important; }
.single-gauge-card .powerbi-gauge { height: 290px !important; min-height: 290px !important; }
.single-gauge-card .powerbi-gauge .gauge-arc { height: 230px !important; }
.single-gauge-card .powerbi-gauge .gauge-arc::after { height: 124px !important; }
.single-gauge-card .gauge-current { bottom: 48px !important; }
.single-gauge-card .gauge-current strong { font-size: clamp(40px, 4.4vw, 70px) !important; }
.single-gauge-card .gauge-legend-values strong { font-size: clamp(24px, 2vw, 34px) !important; }

@media (max-width: 1280px) {
    .kpi-box .powerbi-gauge-grid {
        grid-template-columns: 1fr !important;
    }
    .powerbi-gauge-card {
        min-height: 500px !important;
    }
}

@media (max-width: 980px) {
    .sidebar {
        position: fixed !important;
        top: 58px !important;
        height: calc(100vh - 58px) !important;
        min-height: 0 !important;
    }
    .powerbi-gauge-card {
        min-height: 470px !important;
        grid-template-rows: minmax(58px, auto) 225px auto auto !important;
    }
    .powerbi-gauge { height: 225px !important; min-height: 225px !important; }
    .powerbi-gauge .gauge-arc { height: 176px !important; }
    .powerbi-gauge .gauge-arc::after { height: 94px !important; }
    .gauge-current strong { font-size: clamp(32px, 6vw, 46px) !important; }
    .gauge-legend-values strong { font-size: clamp(20px, 4vw, 26px) !important; }
}

@media (max-width: 620px) {
    .powerbi-gauge-card {
        min-height: 430px !important;
        padding: 14px !important;
        grid-template-rows: minmax(54px, auto) 190px auto auto !important;
    }
    .powerbi-gauge { height: 190px !important; min-height: 190px !important; }
    .powerbi-gauge .gauge-arc { left: 4% !important; right: 4% !important; bottom: 28px !important; height: 148px !important; }
    .powerbi-gauge .gauge-arc::after { left: 23% !important; right: 23% !important; height: 80px !important; }
    .gauge-current { left: 16% !important; right: 16% !important; bottom: 34px !important; gap: 6px !important; }
    .gauge-current strong { font-size: clamp(24px, 9vw, 38px) !important; }
    .powerbi-gauge .gauge-scale strong { font-size: 15px !important; }
    .gauge-legend-values { grid-template-columns: 1fr !important; }
    .gauge-legend-values > div { min-height: 68px !important; }
    .gauge-legend-values strong { font-size: clamp(18px, 7vw, 24px) !important; }
    .gauge-variation strong { font-size: clamp(18px, 8vw, 26px) !important; }
    .single-gauge-card { min-height: 470px !important; grid-template-rows: minmax(56px, auto) 220px auto auto !important; }
    .single-gauge-card .powerbi-gauge { height: 220px !important; min-height: 220px !important; }
    .single-gauge-card .powerbi-gauge .gauge-arc { height: 174px !important; }
    .single-gauge-card .powerbi-gauge .gauge-arc::after { height: 92px !important; }
}

/* Correction: desktop gauge cards should not occupy the whole row; gauges keep a true half-circle shape. */
.kpi-box .powerbi-gauge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 100% !important;
    max-width: 1320px !important;
    margin: 0 auto !important;
}

.powerbi-gauge-card {
    width: 100% !important;
    max-width: none !important;
    min-height: 500px !important;
    grid-template-rows: minmax(58px, auto) 235px auto auto !important;
}

.powerbi-gauge {
    width: min(100%, 520px) !important;
    height: 235px !important;
    min-height: 235px !important;
    margin: 0 auto !important;
    overflow: visible !important;
}

.powerbi-gauge .gauge-arc {
    left: 50% !important;
    right: auto !important;
    bottom: 28px !important;
    width: min(100%, 500px) !important;
    height: auto !important;
    aspect-ratio: 2 / 1 !important;
    transform: translateX(-50%) !important;
    border-radius: 999px 999px 0 0 !important;
}

.powerbi-gauge .gauge-arc::after {
    left: 23% !important;
    right: 23% !important;
    bottom: 0 !important;
    height: auto !important;
    aspect-ratio: 2 / 1 !important;
    border-radius: 999px 999px 0 0 !important;
}

.gauge-current {
    left: 22% !important;
    right: 22% !important;
    bottom: 40px !important;
}

.powerbi-gauge .gauge-scale {
    bottom: 2px !important;
    max-width: 28% !important;
}

.gauge-legend-values > div {
    min-height: 76px !important;
}

.gauge-variation {
    min-height: 58px !important;
}

.single-gauge-wrap {
    justify-content: flex-start !important;
}

.single-gauge-card {
    width: min(640px, 100%) !important;
    max-width: 50vw !important;
    min-height: 500px !important;
    grid-template-rows: minmax(58px, auto) 235px auto auto !important;
}

.single-gauge-card .powerbi-gauge {
    height: 235px !important;
    min-height: 235px !important;
    width: min(100%, 520px) !important;
}

.single-gauge-card .powerbi-gauge .gauge-arc {
    width: min(100%, 500px) !important;
    height: auto !important;
    aspect-ratio: 2 / 1 !important;
}

.single-gauge-card .powerbi-gauge .gauge-arc::after {
    height: auto !important;
    aspect-ratio: 2 / 1 !important;
}

.single-gauge-card .gauge-current {
    bottom: 40px !important;
}

.single-gauge-card .gauge-current strong {
    font-size: clamp(34px, 3.2vw, 54px) !important;
}

@media (max-width: 860px) {
    .kpi-box .powerbi-gauge-grid {
        grid-template-columns: 1fr !important;
    }

    .single-gauge-wrap {
        justify-content: center !important;
    }

    .single-gauge-card {
        max-width: 100% !important;
        width: 100% !important;
    }
}

@media (max-width: 620px) {
    .powerbi-gauge-card,
    .single-gauge-card {
        min-height: 450px !important;
        grid-template-rows: minmax(54px, auto) 205px auto auto !important;
    }

    .powerbi-gauge,
    .single-gauge-card .powerbi-gauge {
        height: 205px !important;
        min-height: 205px !important;
        width: 100% !important;
    }

    .powerbi-gauge .gauge-arc,
    .single-gauge-card .powerbi-gauge .gauge-arc {
        width: min(100%, 430px) !important;
        bottom: 26px !important;
    }

    .gauge-current,
    .single-gauge-card .gauge-current {
        left: 17% !important;
        right: 17% !important;
        bottom: 34px !important;
    }
}


/* Sidebar spacing and active dashboard correction polish */
@media (min-width: 981px) {
    .shell {
        grid-template-columns: 292px 1fr !important;
    }
    .sidebar {
        width: 292px !important;
        padding: 18px 14px !important;
    }
}

.side-nav {
    gap: 6px !important;
}

.side-nav a {
    padding: 11px 12px !important;
    min-height: 40px !important;
    font-size: 15px !important;
    line-height: 1.22 !important;
}

.side-nav svg {
    width: 20px !important;
    height: 20px !important;
}

.side-nav h4 {
    margin: 16px 8px 7px !important;
    font-size: 12px !important;
}

.userbox {
    padding: 0 6px 14px !important;
}

@media (max-width: 980px) {
    .sidebar {
        width: 292px !important;
        left: -304px;
        padding: 18px 14px !important;
    }
    .sidebar.open {
        left: 0;
    }
}

/* Requested adjustment: lateral menu at about 80% of previous desktop width. */
@media (min-width: 981px) {
    .shell {
        grid-template-columns: 234px 1fr !important;
    }

    .sidebar {
        width: 234px !important;
        padding: 16px 10px !important;
    }

    .side-nav a {
        padding: 10px 10px !important;
        min-height: 38px !important;
        gap: 10px !important;
        font-size: 14px !important;
    }

    .side-nav svg {
        width: 18px !important;
        height: 18px !important;
    }

    .side-nav h4 {
        margin: 14px 7px 6px !important;
    }

    .userbox {
        padding: 0 5px 12px !important;
    }
}

/* Dashboard cards compact header: icon and title on the same line */
.dashboard-grid {
    grid-template-columns: repeat(3, minmax(250px, 1fr)) !important;
    gap: 12px !important;
}

.dash-card {
    min-height: 150px !important;
    padding: 14px 16px !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    grid-template-rows: auto 1fr auto !important;
    column-gap: 12px !important;
    row-gap: 8px !important;
    align-items: start !important;
}

.dash-card .icon-badge,
.icon-badge {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 13px !important;
    margin: 0 !important;
}

.dash-card .icon-badge svg,
.icon-badge svg {
    width: 26px !important;
    height: 26px !important;
}

.dash-card h2 {
    grid-column: 2 / 4 !important;
    grid-row: 1 !important;
    align-self: center !important;
    margin: 0 !important;
    font-size: 20px !important;
    line-height: 1.15 !important;
}

.dash-card p {
    grid-column: 1 / 4 !important;
    grid-row: 2 !important;
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
}

.dash-card .go,
.go {
    grid-column: 3 !important;
    grid-row: 3 !important;
    align-self: end !important;
    justify-self: end !important;
    margin: 0 !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 10px !important;
    font-size: 18px !important;
}

@media (max-width: 1100px) {
    .dashboard-grid {
        grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
    }
}

@media (max-width: 620px) {
    .dashboard-grid {
        grid-template-columns: 1fr !important;
    }

    .dash-card {
        min-height: 132px !important;
        padding: 12px !important;
    }

    .dash-card h2 {
        font-size: 18px !important;
    }
}

/* Final proportional typography correction.
   Base body text is 12px. Other UI text is scaled proportionally.
   Normal text is regular weight; bold is reserved mainly for headings/titles. */
:root {
    --font-body: 12px;
    --font-small: 11px;
    --font-xs: 10px;
    --font-title: 18px;
    --font-page-title: 26px;
    --text-strong: #06153a;
    --text-normal: #1f3352;
    --text-muted-strong: #4f6388;
}

html,
body {
    font-size: 12px !important;
    line-height: 1.35 !important;
}

body,
input,
select,
button,
table,
td,
th,
p,
label,
.side-nav a,
.topbar nav a,
.page-head p,
.dash-card p,
.card-title span,
.row-count,
.chart-hint,
.muted,
.muted-link {
    font-size: 12px !important;
    font-weight: 400 !important;
    color: inherit;
}

input,
select,
button,
.btn,
.visual-button {
    font-size: 12px !important;
    font-weight: 500 !important;
}

h1,
h2,
h3,
h4,
.card-title h2,
.page-head h1,
.dash-card h2,
.powerbi-gauge-card h4,
.table-pane-head h3,
#activeVisualTitle,
#activeTableTitle {
    font-weight: 700 !important;
    color: var(--text-strong) !important;
}

.page-head h1 {
    font-size: clamp(22px, 1.9vw, 26px) !important;
    line-height: 1.15 !important;
}

.page-head p {
    font-size: 12px !important;
    color: var(--text-normal) !important;
}

.visual-button,
.btn {
    font-size: 12px !important;
}

.dashboard-grid .dash-card h2 {
    font-size: 17px !important;
    line-height: 1.15 !important;
}

.dashboard-grid .dash-card p {
    font-size: 12px !important;
    line-height: 1.35 !important;
}

.side-nav a {
    font-size: 12px !important;
}

.side-nav h4,
.userbox small,
.top-source span {
    font-size: 10px !important;
    font-weight: 600 !important;
}

.card-title h2,
#activeVisualTitle {
    font-size: clamp(18px, 1.35vw, 22px) !important;
    line-height: 1.18 !important;
}

.table-pane-head h3,
#activeTableTitle {
    font-size: 15px !important;
}

th {
    font-weight: 600 !important;
}

td {
    font-weight: 400 !important;
}

/* Gauges: proportional 12px typography and safer contrast. */
.powerbi-gauge-card h4 {
    font-size: clamp(16px, 1.25vw, 20px) !important;
    line-height: 1.18 !important;
    color: var(--text-strong) !important;
}

.gauge-current span,
.gauge-scale span,
.gauge-legend-values span,
.gauge-variation span {
    font-size: 10px !important;
    font-weight: 600 !important;
    line-height: 1.12 !important;
    color: var(--text-muted-strong) !important;
}

.gauge-current strong {
    font-size: clamp(24px, 2.25vw, 34px) !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    color: #021235 !important;
}

.powerbi-gauge .gauge-scale {
    background: rgba(255, 255, 255, .94) !important;
    border: 1px solid rgba(210, 221, 237, .95) !important;
    border-radius: 10px !important;
    padding: 5px 7px !important;
    box-shadow: 0 4px 12px rgba(15, 26, 46, .06) !important;
}

.powerbi-gauge .gauge-scale span {
    color: #4a5e82 !important;
}

.powerbi-gauge .gauge-scale strong {
    font-size: clamp(12px, 1vw, 15px) !important;
    font-weight: 600 !important;
    color: #06153a !important;
}

.gauge-legend-values > div {
    background: #ffffff !important;
    border-color: #d7e2f1 !important;
}

.gauge-legend-values strong {
    font-size: clamp(15px, 1.25vw, 20px) !important;
    font-weight: 600 !important;
    color: #021235 !important;
}

.gauge-variation {
    background: #fff7f7 !important;
    border-color: #eac5cb !important;
}

.gauge-variation span {
    color: #4f6388 !important;
}

.gauge-variation strong {
    font-size: clamp(17px, 1.55vw, 24px) !important;
    font-weight: 600 !important;
}

.gauge-variation.negative strong {
    color: #b42335 !important;
}

.gauge-variation.positive {
    background: #f5fff9 !important;
    border-color: #c3ead2 !important;
}

.gauge-variation.positive strong {
    color: #087443 !important;
}

.legend-dot.current {
    background: #1677f2 !important;
}

.legend-dot.target {
    background: #e8eef6 !important;
    border: 1px solid #aabbd2 !important;
}

.kpi-box strong {
    font-size: clamp(22px, 2.4vw, 34px) !important;
    font-weight: 600 !important;
}

.single-gauge-card .gauge-current strong {
    font-size: clamp(30px, 3.2vw, 46px) !important;
    font-weight: 600 !important;
}

.single-gauge-card .gauge-legend-values strong {
    font-size: clamp(16px, 1.45vw, 22px) !important;
    font-weight: 600 !important;
}

/* Keep gauge cards half-width on desktop and one column on smaller screens. */
.kpi-box .powerbi-gauge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
}

.powerbi-gauge-card {
    min-height: 435px !important;
}

@media (max-width: 1280px) {
    .kpi-box .powerbi-gauge-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 900px) {
    .kpi-box .powerbi-gauge-grid {
        grid-template-columns: 1fr !important;
    }

    .powerbi-gauge-card h4 {
        font-size: 17px !important;
    }

    .gauge-current strong {
        font-size: clamp(24px, 6vw, 34px) !important;
    }
}

@media (max-width: 620px) {
    body,
    input,
    select,
    button,
    table,
    td,
    th {
        font-size: 12px !important;
    }

    .page-head h1 {
        font-size: 22px !important;
    }

    .powerbi-gauge-card {
        min-height: 400px !important;
    }

    .powerbi-gauge-card h4 {
        font-size: 16px !important;
    }

    .gauge-current strong {
        font-size: clamp(22px, 8vw, 32px) !important;
    }

    .gauge-legend-values strong {
        font-size: clamp(15px, 6vw, 20px) !important;
    }

    .gauge-variation strong {
        font-size: clamp(16px, 7vw, 22px) !important;
    }
}

/* Portuguese number/currency formatting support and gauge contrast/gradient refinements */
.powerbi-gauge .gauge-arc {
    background: conic-gradient(from 270deg at 50% 100%, var(--gauge-fill-start) 0deg, var(--gauge-fill-end) calc(var(--gauge) * 1.8deg), #e8edf5 calc(var(--gauge) * 1.8deg), #e8edf5 180deg, transparent 180deg) !important;
}
.powerbi-gauge-card.gauge-low {
    --gauge-fill-start: #dc2626;
    --gauge-fill-end: #f97316;
}
.powerbi-gauge-card.gauge-mid {
    --gauge-fill-start: #f97316;
    --gauge-fill-end: #facc15;
}
.powerbi-gauge-card.gauge-good {
    --gauge-fill-start: #22c55e;
    --gauge-fill-end: #15803d;
}
.powerbi-gauge .gauge-scale.scale-on-fill span,
.powerbi-gauge .gauge-scale.scale-on-fill strong {
    color: #ffffff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .55);
}
.powerbi-gauge .gauge-scale.scale-on-empty span,
.powerbi-gauge .gauge-scale.scale-on-empty strong {
    color: #071326 !important;
    text-shadow: none !important;
}
.gauge-current span,
.gauge-current strong {
    color: #06153a !important;
    text-shadow: none !important;
}
.gauge-legend-values strong,
.gauge-variation strong {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
}
.gauge-legend-values > div {
    overflow-wrap: anywhere;
}
.table-wrap td,
.table-wrap th {
    font-variant-numeric: tabular-nums;
}

/* Mapa de Controlo de Gestão */
.management-head {
    align-items: flex-start;
    gap: 14px;
}
.management-refresh-form {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 180px;
}
.management-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    align-items: center;
    margin-bottom: 12px;
}
.management-tabs-card {
    margin-bottom: 12px;
}
.management-tabs {
    overflow-x: auto;
    padding-bottom: 4px;
}
.management-panel {
    display: none;
}
.management-panel.active {
    display: block;
}
.sheet-title-line {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 10px;
}
.sheet-title-line h2,
.management-report-section h2 {
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 700;
    color: var(--text-strong);
}
.sheet-title-line p,
.management-report-section p {
    margin: 0;
}
.management-table-wrap {
    width: 100%;
    max-height: 72vh;
    overflow: auto;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--card);
}
.management-sheet-table {
    border-collapse: collapse;
    width: max-content;
    min-width: 100%;
    font-size: 12px;
}
.management-sheet-table td {
    border: 1px solid var(--border);
    padding: 5px 7px;
    min-width: 74px;
    max-width: 260px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: var(--card);
    color: var(--text);
    font-weight: 400;
}
.management-sheet-table tr:nth-child(even) td {
    background: var(--row-alt, rgba(15, 23, 42, .025));
}
.management-sheet-table td.sheet-head-cell {
    background: rgba(15, 76, 129, .08);
    color: var(--text-strong);
    font-weight: 700;
    position: sticky;
    top: 0;
    z-index: 2;
}
.management-report-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
}
.management-report-section {
    min-width: 0;
}
.management-report-section .management-table-wrap {
    max-height: 440px;
}
.management-analysis-box textarea {
    width: 100%;
    min-height: 170px;
    resize: vertical;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 12px;
    font: inherit;
    color: var(--text);
    background: var(--card);
}
@media (max-width: 760px) {
    .management-head {
        display: block;
    }
    .management-refresh-form {
        justify-content: flex-start;
        margin-top: 10px;
    }
    .management-sheet-table td {
        min-width: 66px;
        max-width: 180px;
        padding: 4px 6px;
    }
}

/* Relatório Controlo de Gestão - Excel-like layout */
.management-head { align-items:flex-start; }
.management-refresh-form { display:flex; gap:8px; align-items:end; flex-wrap:wrap; justify-content:flex-end; }
.management-refresh-form label { display:flex; flex-direction:column; gap:4px; font-size:12px; font-weight:700; color:#071326; }
.management-refresh-form input { width:120px; height:34px; padding:5px 8px; border-radius:6px; }
.management-meta { display:flex; gap:22px; align-items:center; flex-wrap:wrap; font-size:13px; }
.management-tabs-card { padding:10px; }
.management-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.management-panel { display:none; margin-top:10px; }
.management-panel.active { display:block; }
.sheet-title-line h2 { margin:0; font-size:20px; color:#002060; }
.sheet-title-line p { margin:4px 0 10px; color:#475569; }
.excel-like-wrap { background:#fff; border:1px solid #c6c6c6; overflow:auto; padding:0; max-height:none; }
.excel-like-table { width:max-content; min-width:940px; border-collapse:collapse; font-size:13px; font-family:Arial, Helvetica, sans-serif; }
.excel-like-table th,
.excel-like-table td { border:1px solid #d9d9d9; padding:5px 7px; white-space:nowrap; max-width:none; overflow:visible; text-overflow:clip; }
.excel-like-table thead th { background:#f7f7f7; color:#000; border:2px solid #000; font-weight:700; text-align:center; position:sticky; top:0; z-index:1; }
.excel-like-table tbody td:first-child { font-weight:600; }
.excel-like-table tbody tr.total td { font-weight:700; border-top:2px solid #000; border-bottom:2px solid #000; }
.excel-like-table tbody tr.bold td { font-weight:700; }
.excel-like-table tbody tr.section td { font-weight:700; text-align:center; border-top:2px solid #000; border-bottom:2px solid #000; background:#fff; }
.excel-like-table tbody tr:nth-child(even) { background:#fff; }
.excel-like-table tbody tr:nth-child(odd) { background:#fff; }
.excel-like-table td:nth-child(n+2) { text-align:right; }
.excel-like-table td:nth-child(2),
.excel-like-table td:last-child { text-align:left; }
.management-panel[data-map-panel] .excel-like-table th { background:#fff; }
.management-panel[data-map-panel="sheet-4"] .excel-like-table th { background:#ef4444; color:#fff; border-color:#111; }
.management-panel[data-map-panel="sheet-5"] .excel-like-table th { background:#0b00ff; color:#fff; border-color:#111; }
.management-panel[data-map-panel="sheet-6"] .excel-like-table th { background:#ef4444; color:#fff; border-color:#111; }
.management-panel[data-map-panel="sheet-7"] .excel-like-table th { background:#5aa475; color:#fff; border-color:#111; }
.management-analysis-box textarea { min-height:170px; width:100%; resize:vertical; }
@media (max-width: 900px) {
    .excel-like-table { min-width:760px; font-size:12px; }
    .management-refresh-form { justify-content:flex-start; }
}

/* Relatório Controlo Gestão: refresh progress and one-year range helper */
.management-refresh-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 10px;
    background: #fff7df;
    border: 1px solid #f0c96a;
    color: #5c4200;
    font-weight: 600;
    white-space: nowrap;
}

.management-refresh-status[hidden] {
    display: none !important;
}

.management-refresh-status::before {
    content: "";
    width: 14px;
    height: 14px;
    border: 2px solid #d19a00;
    border-top-color: transparent;
    border-radius: 50%;
    animation: managementSpin .8s linear infinite;
}

.is-refreshing-management {
    cursor: progress;
}

@keyframes managementSpin {
    to { transform: rotate(360deg); }
}

.management-refresh-form button[disabled] {
    opacity: .75;
    cursor: wait;
}

/* Relatório Controlo Gestão - layout Excel com colunas largas e sem texto sobreposto */
.management-table-wrap.excel-like-wrap {
    width: 100%;
    max-width: none;
    overflow-x: auto;
    overflow-y: visible;
}

.management-sheet-table.excel-like-table {
    width: max-content;
    min-width: 1280px;
    table-layout: auto;
    border-collapse: collapse;
}

.management-sheet-table.excel-like-table th,
.management-sheet-table.excel-like-table td {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    line-height: 1.35;
    vertical-align: top;
    padding: 7px 10px;
}

.management-sheet-table.excel-like-table th:nth-child(1),
.management-sheet-table.excel-like-table td:nth-child(1) {
    min-width: 70px;
    width: 70px;
    text-align: right;
}

.management-sheet-table.excel-like-table th:nth-child(2),
.management-sheet-table.excel-like-table td:nth-child(2) {
    min-width: 420px;
    max-width: 560px;
}

.management-sheet-table.excel-like-table th:nth-child(3),
.management-sheet-table.excel-like-table td:nth-child(3),
.management-sheet-table.excel-like-table th:nth-child(4),
.management-sheet-table.excel-like-table td:nth-child(4) {
    min-width: 150px;
    width: 150px;
    text-align: right;
    white-space: nowrap;
}

.management-sheet-table.excel-like-table th:nth-child(5),
.management-sheet-table.excel-like-table td:nth-child(5) {
    min-width: 500px;
    max-width: 760px;
}

.management-refresh-form select {
    min-height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 8px;
    background: #fff;
}

/* Relatório Controlo Gestão - aproximação visual ao Excel */
.management-panel,
.management-analysis-box,
.management-meta {
    font-family: Calibri, Arial, sans-serif;
}

.excel-sheet-heading {
    font-family: Calibri, Arial, sans-serif;
    font-size: 11px;
    color: #000;
    margin: 4px 0 10px 0;
    line-height: 1.35;
}

.excel-sheet-heading > div {
    margin-bottom: 3px;
}

.excel-financial-table {
    border-collapse: collapse;
    table-layout: fixed;
    width: max-content;
    min-width: 1320px;
    font-family: Calibri, Arial, sans-serif;
    font-size: 11px;
    color: #000;
    background: #fff;
}

.excel-financial-table .col-rubrica { width: 520px; }
.excel-financial-table .col-periodo { width: 165px; }
.excel-financial-table .col-anual { width: 165px; }
.excel-financial-table .col-nota { width: 560px; }

.excel-financial-table th,
.excel-financial-table td {
    padding: 3px 6px;
    line-height: 1.25;
    vertical-align: middle;
    height: 22px;
    overflow-wrap: anywhere;
}

.excel-financial-table th:not(.excel-note-head),
.excel-financial-table td:not(.note-cell) {
    border: 1px solid #bfbfbf;
}

.excel-financial-table thead th:not(.excel-note-head) {
    border: 2px solid #000;
    text-align: center;
    font-weight: 700;
    background: #fff;
}

.excel-financial-table .rubrica-cell {
    text-align: left;
    white-space: normal;
}

.excel-financial-table .value-cell {
    text-align: right;
    white-space: nowrap;
}

.excel-financial-table .note-cell,
.excel-financial-table .excel-note-head {
    border: 0 !important;
    background: transparent !important;
    text-align: left;
    color: #000;
    white-space: normal;
    padding-left: 28px;
}

.excel-financial-table tr.section td:not(.note-cell) {
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
    font-weight: 700;
    text-align: center;
    background: #fff;
}

.excel-financial-table tr.bold td:not(.note-cell) {
    font-weight: 700;
}

.excel-financial-table tr.total td:not(.note-cell) {
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
    font-weight: 700;
    background: #fff;
}

.excel-financial-table tr.total .rubrica-cell,
.excel-financial-table tr.bold .rubrica-cell {
    text-align: right;
}

.excel-financial-table.sheet-dr-orc tr.total td:not(.note-cell),
.excel-financial-table.sheet-bl-orc tr.total td:not(.note-cell),
.excel-like-table.sheet-dr-mensal thead th,
.excel-like-table.sheet-indicadores thead th {
    background: #ff3b3f !important;
    color: #fff !important;
    border-color: #000 !important;
    font-weight: 700;
}

.excel-like-table.sheet-indicadores-cf-a-partilhar thead th {
    background: #00983a !important;
    color: #fff !important;
    border-color: #000 !important;
    font-weight: 700;
}

.management-sheet-table.excel-like-table th,
.management-sheet-table.excel-like-table td {
    font-family: Calibri, Arial, sans-serif;
    font-size: 11px;
    line-height: 1.25;
    vertical-align: middle;
}

.management-sheet-table.excel-like-table tr.total td,
.management-sheet-table.excel-like-table tr.bold td,
.management-sheet-table.excel-like-table tr.section td {
    font-weight: 700;
}

.management-table-wrap.excel-like-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    background: #fff;
    padding-bottom: 8px;
}

/* Relatório Controlo Gestão - ajustes Excel/PDF */
.management-head {
    align-items: flex-start;
    gap: 12px;
}
.management-print-btn {
    white-space: nowrap;
    align-self: flex-start;
    margin-top: 22px;
}
.excel-like-wrap,
.excel-financial-table,
.management-sheet-table.excel-like-table {
    font-family: Calibri, Arial, sans-serif;
    font-size: 11px;
}
.excel-sheet-heading {
    font-family: Calibri, Arial, sans-serif;
    font-size: 11px;
    line-height: 1.35;
    margin-bottom: 10px;
}
.excel-financial-table {
    border-collapse: collapse;
    table-layout: fixed;
    min-width: 1380px;
    width: max-content;
    background: #fff;
}
.excel-financial-table .col-rubrica { width: 520px; }
.excel-financial-table .col-periodo { width: 170px; }
.excel-financial-table .col-anual { width: 170px; }
.excel-financial-table .col-nota { width: 620px; }
.excel-financial-table th,
.excel-financial-table td {
    padding: 4px 6px;
    line-height: 1.25;
    vertical-align: middle;
    border: 1px solid #d9d9d9;
    white-space: normal;
    overflow-wrap: anywhere;
}
.excel-financial-table .excel-main-header th {
    border: 2px solid #000;
    text-align: center;
    font-weight: 700;
    background: #fff;
}
.excel-financial-table .excel-note-head,
.excel-financial-table .note-cell {
    border-color: transparent;
    background: transparent;
    color: #111;
    text-align: left;
}
.excel-financial-table .rubrica-cell {
    text-align: left;
}
.excel-financial-table .value-cell {
    text-align: right;
    white-space: nowrap;
}
.excel-financial-table tr.bold td,
.excel-financial-table tr.total td {
    font-weight: 700;
}
.excel-financial-table tr.section td {
    font-weight: 700;
    text-align: center;
    background: #fff;
}
.excel-financial-table tr.total td {
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
}
.excel-financial-table .note-cell:empty {
    border: none;
}
.sheet-dr-orc .excel-main-header th,
.sheet-bl-orc .excel-main-header th,
.sheet-indicadores th {
    background: #ff333f !important;
    color: #fff !important;
}
.sheet-quadros th {
    background: #0000ff !important;
    color: #fff !important;
}
.sheet-indicadores-cf-a-partilhar th {
    background: #6ba77a !important;
    color: #fff !important;
}
@media print {
    body {
        background: #fff !important;
        color: #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .sidebar,
    .topbar,
    .management-head form,
    .management-print-btn,
    .visual-buttons-card,
    .management-analysis-box,
    .alert,
    .management-meta {
        display: none !important;
    }
    .main,
    .content,
    .page {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: none !important;
    }
    .management-panel {
        display: block !important;
        page-break-after: always;
        break-after: page;
    }
    .management-panel:not(.active) {
        display: block !important;
    }
    .sheet-title-line {
        margin: 0 0 6px 0 !important;
    }
    .excel-like-wrap {
        overflow: visible !important;
    }
    .excel-financial-table,
    .management-sheet-table.excel-like-table {
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        font-size: 8.5px !important;
    }
    .excel-financial-table .col-rubrica { width: 35% !important; }
    .excel-financial-table .col-periodo { width: 12% !important; }
    .excel-financial-table .col-anual { width: 12% !important; }
    .excel-financial-table .col-nota { width: 41% !important; }
    .excel-financial-table th,
    .excel-financial-table td,
    .management-sheet-table.excel-like-table th,
    .management-sheet-table.excel-like-table td {
        padding: 2px 3px !important;
        line-height: 1.15 !important;
    }
}

/* Relatório Controlo Gestão - períodos independentes por folha e análise multiutilizador */
.sheet-title-line {
    align-items: flex-start;
    gap: 12px;
}

.sheet-period-form {
    display: flex;
    align-items: end;
    gap: 8px;
    margin-left: auto;
    flex-shrink: 0;
}

.sheet-period-form label {
    display: grid;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
    color: var(--muted);
}

.sheet-period-form select,
.management-refresh-form select {
    min-height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 8px;
    background: #fff;
    color: var(--text);
}

.analysis-headline {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 10px;
}

.analysis-headline h2 {
    margin-bottom: 4px;
}

.analysis-headline p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.analysis-headline span {
    font-weight: 700;
    color: var(--navy);
    white-space: nowrap;
}

.analysis-new-entry textarea,
.analysis-edit-entry textarea {
    width: 100%;
    min-height: 92px;
    resize: vertical;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px 12px;
    font: inherit;
    background: #fff;
    color: var(--text);
}

.analysis-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 8px;
}

.analysis-entry-list {
    display: grid;
    gap: 12px;
    margin-top: 14px;
}

.analysis-entry {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    padding: 12px;
}

.analysis-entry header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
    font-size: 12px;
    color: var(--muted);
}

.analysis-entry header strong {
    color: var(--navy);
    font-size: 13px;
}

.analysis-entry-text {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.45;
}

.btn.danger {
    background: #fff0f0;
    color: #991b1b;
    border: 1px solid #fecaca;
}

@media (max-width: 700px) {
    .sheet-title-line,
    .analysis-headline,
    .analysis-entry header {
        flex-direction: column;
        align-items: stretch;
    }
    .sheet-period-form {
        margin-left: 0;
    }
}

@media print {
    .sheet-period-form,
    .analysis-new-entry .analysis-actions,
    .analysis-edit-entry .analysis-actions {
        display: none !important;
    }
}

/* Relatório Controlo Gestão - impressão/PDF e botão vermelho */
.management-print-btn {
    background: #b00020 !important;
    color: #fff !important;
    border-color: #b00020 !important;
}
.management-print-btn:hover {
    background: #8d001a !important;
    border-color: #8d001a !important;
}

@media print {
    @page {
        size: A4 landscape;
        margin: 8mm;
    }
    html, body {
        width: auto !important;
        height: auto !important;
        overflow: visible !important;
        background: #fff !important;
        color: #000 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    .sidebar,
    .topbar,
    .management-head form,
    .management-print-btn,
    .visual-buttons-card,
    .sheet-period-form,
    .management-meta,
    .management-analysis-box,
    .alert {
        display: none !important;
    }
    .app,
    .layout,
    .main,
    .content,
    .page,
    main {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: none !important;
        overflow: visible !important;
        background: #fff !important;
        box-shadow: none !important;
    }
    .management-head {
        display: block !important;
        margin: 0 0 6px 0 !important;
        padding: 0 !important;
        background: #fff !important;
        border: 0 !important;
    }
    .management-head h1 {
        font: 700 14px Calibri, Arial, sans-serif !important;
        margin: 0 0 4px 0 !important;
        color: #000 !important;
    }
    .management-head p {
        font: 400 9px Calibri, Arial, sans-serif !important;
        margin: 0 !important;
        color: #000 !important;
    }
    .management-panel {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
        page-break-after: always;
        break-after: page;
    }
    .management-panel:last-of-type {
        page-break-after: auto;
        break-after: auto;
    }
    .sheet-title-line {
        display: block !important;
        margin: 0 0 4px 0 !important;
        padding: 0 !important;
    }
    .sheet-title-line h2 {
        font: 700 12px Calibri, Arial, sans-serif !important;
        color: #000 !important;
        margin: 0 0 2px 0 !important;
    }
    .sheet-title-line p {
        font: 400 8px Calibri, Arial, sans-serif !important;
        margin: 0 !important;
        color: #000 !important;
    }
    .management-table-wrap,
    .excel-like-wrap {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
        padding: 0 !important;
        margin: 0 !important;
        background: #fff !important;
        border: 0 !important;
    }
    .excel-sheet-heading {
        font: 400 8px Calibri, Arial, sans-serif !important;
        line-height: 1.15 !important;
        margin: 0 0 4px 0 !important;
        color: #000 !important;
    }
    .excel-financial-table,
    .management-sheet-table.excel-like-table {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
        font: 400 7.8px Calibri, Arial, sans-serif !important;
        background: #fff !important;
    }
    .excel-financial-table .col-rubrica { width: 36% !important; }
    .excel-financial-table .col-periodo { width: 11% !important; }
    .excel-financial-table .col-anual { width: 11% !important; }
    .excel-financial-table .col-nota { width: 42% !important; }
    .excel-financial-table th,
    .excel-financial-table td,
    .management-sheet-table.excel-like-table th,
    .management-sheet-table.excel-like-table td {
        padding: 1.5px 2.5px !important;
        line-height: 1.12 !important;
        vertical-align: middle !important;
        overflow: hidden !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
        color: #000 !important;
        background-clip: padding-box !important;
    }
    .excel-financial-table .excel-main-header th {
        border: 1.5px solid #000 !important;
        font-weight: 700 !important;
        text-align: center !important;
        background: #fff !important;
    }
    .excel-financial-table .note-cell,
    .excel-financial-table .excel-note-head {
        border-color: transparent !important;
        background: transparent !important;
    }
    .excel-financial-table tr.total td {
        border-top: 1.5px solid #000 !important;
        border-bottom: 1.5px solid #000 !important;
        font-weight: 700 !important;
    }
    .excel-financial-table tr.section td,
    .excel-financial-table tr.bold td {
        font-weight: 700 !important;
    }
    .excel-financial-table tr,
    .management-sheet-table.excel-like-table tr {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }
}

/* Relatório Controlo Gestão - relatório executivo e períodos por ano/mês */
.management-executive-report {
    font-family: Calibri, Arial, sans-serif;
    background: #fff;
    border: 1px solid #d8dee9;
    border-radius: 10px;
    padding: 14px 16px;
    margin: 12px 0;
    color: #000;
}
.management-executive-report h2,
.management-executive-report h3 {
    margin: 0 0 6px 0;
    color: #071326;
}
.management-executive-report p {
    margin: 3px 0;
    line-height: 1.35;
}
.report-title-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid #d8dee9;
    padding-bottom: 8px;
    margin-bottom: 10px;
}
.report-kpi-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 8px;
    margin: 10px 0 12px 0;
}
.report-kpi-grid > div {
    border: 1px solid #d8dee9;
    border-radius: 8px;
    padding: 8px;
    background: #f8fafc;
}
.report-kpi-grid strong {
    display: block;
    font-size: 11px;
    color: #475569;
    margin-bottom: 4px;
}
.report-kpi-grid span {
    display: block;
    font-weight: 700;
    font-size: 13px;
    color: #071326;
}
.report-text-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}
.report-text-grid section {
    border-left: 3px solid #a4081a;
    padding: 8px 10px;
    background: #fff;
}
.report-final-appreciation {
    border-left-color: #0b7a3b !important;
}
.sheet-period-form {
    align-items: end;
}
.sheet-period-form label {
    min-width: 90px;
}
.sheet-period-form select {
    min-width: 90px;
}

@media (max-width: 1200px) {
    .report-kpi-grid { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
    .report-text-grid { grid-template-columns: 1fr; }
}

@media print {
    .management-executive-report {
        display: block !important;
        page-break-after: always;
        break-after: page;
        border: 0 !important;
        padding: 0 !important;
        margin: 0 0 10mm 0 !important;
    }
    .report-kpi-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    .report-text-grid {
        grid-template-columns: 1fr !important;
    }
    .sheet-period-form,
    .analysis-new-entry,
    .analysis-edit-entry textarea,
    .analysis-edit-entry .analysis-actions {
        display: none !important;
    }
    .management-analysis-box {
        display: block !important;
        page-break-before: always;
        break-before: page;
    }
    .analysis-entry {
        page-break-inside: avoid;
        break-inside: avoid;
    }
}

/* Relatório Controlo Gestão - interrupção da atualização */
.management-cancel-refresh-btn {
    background: #b00020;
    border-color: #b00020;
    color: #fff;
}

.management-cancel-refresh-btn:hover {
    background: #8f001a;
    border-color: #8f001a;
}

.management-cancel-refresh-btn[hidden] {
    display: none !important;
}

/* Relatório Controlo Gestão - período comum */
.management-global-period-card {
    margin: 10px 0;
    padding: 10px 14px;
}

.management-period-form {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 10px 14px;
}

.management-period-form strong {
    margin-right: 8px;
    color: var(--text);
}

.management-period-form label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: var(--muted);
}

.management-period-form select {
    min-height: 34px;
    min-width: 120px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 8px;
    background: #fff;
    color: var(--text);
}

@media print {
    .management-global-period-card {
        display: none !important;
    }
}

/* Relatório Controlo Gestão - correção final de impressão/PDF
   Evita páginas em branco, imprime apenas a folha ativa e compacta o relatório. */
@media print {
    @page {
        size: A4 landscape;
        margin: 7mm;
    }

    html,
    body,
    .app,
    .shell,
    .layout,
    .main,
    .content,
    .page,
    main,
    section {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        box-shadow: none !important;
    }

    .shell,
    .layout,
    .main,
    .content,
    .page,
    main {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    .sidebar,
    .topbar,
    .management-head form,
    .management-print-btn,
    .visual-buttons-card,
    .management-global-period-card,
    .management-meta,
    .management-analysis-box,
    .analysis-new-entry,
    .analysis-edit-entry,
    .alert {
        display: none !important;
    }

    .management-head {
        display: block !important;
        margin: 0 0 3mm 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: #fff !important;
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    .management-head h1 {
        font: 700 13px Calibri, Arial, sans-serif !important;
        margin: 0 0 2px 0 !important;
        color: #000 !important;
    }

    .management-head p {
        font: 400 8px Calibri, Arial, sans-serif !important;
        margin: 0 !important;
        color: #000 !important;
    }

    .management-executive-report {
        display: block !important;
        page-break-after: auto !important;
        break-after: auto !important;
        page-break-before: auto !important;
        break-before: auto !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        margin: 0 0 4mm 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: #fff !important;
    }

    .management-executive-report h2 {
        font: 700 11px Calibri, Arial, sans-serif !important;
        margin: 0 0 2px 0 !important;
    }

    .management-executive-report h3 {
        font: 700 8px Calibri, Arial, sans-serif !important;
        margin: 0 0 1px 0 !important;
    }

    .management-executive-report p {
        font: 400 7px Calibri, Arial, sans-serif !important;
        line-height: 1.12 !important;
        margin: 1px 0 !important;
    }

    .report-title-row {
        display: block !important;
        border-bottom: 1px solid #999 !important;
        padding-bottom: 2mm !important;
        margin-bottom: 2mm !important;
    }

    .report-kpi-grid {
        display: grid !important;
        grid-template-columns: repeat(6, 1fr) !important;
        gap: 2mm !important;
        margin: 2mm 0 !important;
    }

    .report-kpi-grid > div {
        padding: 2mm !important;
        border: 1px solid #ccc !important;
        border-radius: 0 !important;
        background: #fff !important;
    }

    .report-kpi-grid strong {
        font-size: 6.5px !important;
        margin-bottom: 1px !important;
    }

    .report-kpi-grid span {
        font-size: 8px !important;
    }

    .report-text-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2mm !important;
    }

    .report-text-grid section {
        padding: 1mm 2mm !important;
        border-left: 1.5px solid #999 !important;
        background: #fff !important;
    }

    .management-panel {
        display: none !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        page-break-before: auto !important;
        break-before: auto !important;
        page-break-after: auto !important;
        break-after: auto !important;
    }

    .management-panel.active {
        display: block !important;
    }

    .sheet-title-line {
        display: block !important;
        margin: 0 0 2mm 0 !important;
        padding: 0 !important;
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    .sheet-title-line h2 {
        font: 700 11px Calibri, Arial, sans-serif !important;
        margin: 0 0 1px 0 !important;
        color: #000 !important;
    }

    .sheet-title-line p {
        font: 400 7px Calibri, Arial, sans-serif !important;
        margin: 0 !important;
        color: #000 !important;
    }

    .management-table-wrap,
    .excel-like-wrap {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: #fff !important;
    }

    .excel-sheet-heading {
        font: 400 7px Calibri, Arial, sans-serif !important;
        line-height: 1.05 !important;
        margin: 0 0 2mm 0 !important;
        color: #000 !important;
    }

    .excel-financial-table {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
        font: 400 6.9px Calibri, Arial, sans-serif !important;
        background: #fff !important;
    }

    .excel-financial-table .col-rubrica { width: 39% !important; }
    .excel-financial-table .col-periodo { width: 11% !important; }
    .excel-financial-table .col-anual { width: 11% !important; }
    .excel-financial-table .col-nota { width: 39% !important; }

    .management-sheet-table.excel-like-table {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        table-layout: auto !important;
        border-collapse: collapse !important;
        font: 400 6.2px Calibri, Arial, sans-serif !important;
        background: #fff !important;
    }

    .excel-financial-table th,
    .excel-financial-table td,
    .management-sheet-table.excel-like-table th,
    .management-sheet-table.excel-like-table td {
        padding: 1px 1.8px !important;
        line-height: 1.06 !important;
        vertical-align: middle !important;
        overflow: visible !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
        color: #000 !important;
    }

    .excel-financial-table .value-cell,
    .management-sheet-table.excel-like-table td {
        white-space: nowrap !important;
    }

    .excel-financial-table .rubrica-cell,
    .excel-financial-table .note-cell,
    .management-sheet-table.excel-like-table td:first-child {
        white-space: normal !important;
        overflow-wrap: normal !important;
    }

    .excel-financial-table tr,
    .management-sheet-table.excel-like-table tr {
        page-break-inside: auto !important;
        break-inside: auto !important;
    }

    .excel-financial-table tr.total td {
        border-top: 1.2px solid #000 !important;
        border-bottom: 1.2px solid #000 !important;
        font-weight: 700 !important;
    }

    .excel-financial-table tr.section td,
    .excel-financial-table tr.bold td {
        font-weight: 700 !important;
    }

    .excel-financial-table .excel-main-header th {
        border: 1.2px solid #000 !important;
        font-weight: 700 !important;
        text-align: center !important;
        background: #fff !important;
    }
}

/* Smartphone layout final fix: hide side menu fully and compact app/dashboard pages */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

@media (max-width: 980px) {
    body.sidebar-open {
        overflow: hidden !important;
    }

    .topbar {
        position: sticky !important;
        top: 0 !important;
        z-index: 1000 !important;
        width: 100% !important;
        max-width: 100vw !important;
    }

    .hamb {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 auto !important;
        min-width: 38px !important;
        min-height: 34px !important;
    }

    .shell {
        display: block !important;
        width: 100% !important;
        max-width: 100vw !important;
        min-height: calc(100vh - 58px) !important;
        margin: 0 !important;
        overflow: visible !important;
    }

    .sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        width: min(86vw, 320px) !important;
        max-width: min(86vw, 320px) !important;
        height: 100dvh !important;
        min-height: 0 !important;
        max-height: 100dvh !important;
        padding: 66px 14px 18px !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        transform: translateX(-110%) !important;
        transition: transform .22s ease !important;
        z-index: 900 !important;
        left: 0 !important;
        right: auto !important;
        top: 0 !important;
        bottom: 0 !important;
        box-shadow: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .sidebar.open {
        transform: translateX(0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
        box-shadow: 18px 0 45px rgba(0,0,0,.28) !important;
    }

    .content {
        width: 100% !important;
        max-width: 100vw !important;
        min-width: 0 !important;
        padding: 18px 14px 34px !important;
        overflow-x: hidden !important;
    }

    .page-head,
    .dashboard-head,
    .management-head {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
        margin-bottom: 14px !important;
    }

    .page-head h1,
    .dashboard-head h1,
    .management-head h1 {
        font-size: clamp(22px, 7vw, 30px) !important;
        line-height: 1.12 !important;
        margin: 0 0 5px !important;
    }

    .page-head p,
    .dashboard-head p,
    .management-head p {
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    .dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
        width: 100% !important;
    }

    .dash-card {
        min-width: 0 !important;
        min-height: 170px !important;
        padding: 14px !important;
        border-radius: 14px !important;
    }

    .dash-card h2 {
        font-size: 17px !important;
        line-height: 1.15 !important;
        margin-bottom: 8px !important;
    }

    .dash-card p {
        font-size: 12px !important;
        line-height: 1.35 !important;
    }

    .icon-badge {
        width: 44px !important;
        height: 44px !important;
        border-radius: 12px !important;
        margin-bottom: 10px !important;
    }

    .icon-badge svg {
        width: 26px !important;
        height: 26px !important;
    }

    .go {
        width: 32px !important;
        height: 32px !important;
        border-radius: 10px !important;
        font-size: 20px !important;
    }

    .visual-buttons-card,
    .filter-panel,
    .chart-card,
    .admin-card,
    .calculation-note,
    .management-meta,
    .management-global-period-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        border-radius: 14px !important;
    }

    .visual-buttons {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 8px !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 2px !important;
    }

    .visual-button {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
    }

    .filter-row,
    .form-grid,
    .management-refresh-form,
    .management-period-form,
    .analysis-new-entry,
    .report-kpi-grid,
    .report-text-grid {
        grid-template-columns: 1fr !important;
        display: grid !important;
        gap: 10px !important;
    }

    .table-wrap,
    .management-table-wrap,
    .excel-like-wrap,
    .active-table-pane {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    table,
    .excel-financial-table,
    .management-sheet-table.excel-like-table {
        min-width: 680px !important;
    }

    .active-visual-grid,
    .visual-layout {
        grid-template-columns: 1fr !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    canvas {
        max-width: 100% !important;
    }
}

@media (max-width: 620px) {
    .topbar {
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        gap: 8px !important;
        align-items: center !important;
        padding: 8px 10px !important;
    }

    .brand {
        min-width: 0 !important;
        gap: 8px !important;
        font-size: 14px !important;
    }

    .brand b {
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .top-source {
        grid-column: 1 / -1 !important;
        order: 3 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }

    .content {
        padding: 14px 10px 28px !important;
    }

    .dashboard-grid {
        grid-template-columns: 1fr !important;
    }

    .dash-card {
        min-height: 150px !important;
    }

    .chart-card,
    .admin-card {
        padding: 12px !important;
    }
}

.alert.success { background:#dff7e8; color:#176431; border:1px solid #a8e6bd; }
.btn.secondary { background:#dfe7f3; color:#0f1a2e; }
.form-grid .actions,
.smtp-form .actions {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
}
.smtp-form {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
}
@media (max-width: 760px) {
    .form-grid,
    .smtp-form {
        grid-template-columns: 1fr !important;
    }
    .form-grid .actions,
    .smtp-form .actions {
        flex-direction: column;
        align-items: stretch;
    }
    .form-grid .actions .btn,
    .smtp-form .actions .btn {
        width: 100%;
    }
}

/* Top menu cleanup + clickable user profile */
.userbox {
    padding: 0 6px 18px;
    border-bottom: 1px solid rgba(255,255,255,.16);
}

.userbox-link {
    display: block;
    color: inherit;
    text-decoration: none;
    border-radius: 10px;
    padding: 6px;
    margin: -6px;
}

.userbox-link:hover {
    background: rgba(255,255,255,.08);
}

.userbox-link strong {
    display: block;
    margin-bottom: 7px;
}

.userbox-link small {
    color: #9fb5d5;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Utilizadores e permissões - layout mais alto/compacto */
.users-create-card {
    padding: 12px 16px !important;
    margin-bottom: 10px !important;
}

.users-create-card h2,
.users-list-card h2 {
    margin-bottom: 10px !important;
}

.users-create-card .form-grid {
    gap: 10px !important;
}

.users-create-card input,
.users-list-card input {
    min-height: 30px !important;
    padding: 6px 9px !important;
}

.users-list-card {
    padding: 12px 16px !important;
}

.users-list-card .table-wrap {
    height: calc(100vh - 330px) !important;
    min-height: 500px !important;
    max-height: calc(100vh - 330px) !important;
    overflow: auto !important;
}

.users-list-card table {
    font-size: 12px !important;
}

.users-list-card th,
.users-list-card td {
    padding: 5px 8px !important;
}

.users-list-card .btn.small {
    padding: 5px 8px !important;
    font-size: 11px !important;
}

.permissions-grid-compact {
    gap: 8px !important;
    align-items: start !important;
}

.permission-card {
    padding: 10px 12px !important;
    margin-bottom: 8px !important;
    border-radius: 12px !important;
}

.permission-card h2 {
    font-size: 15px !important;
    line-height: 1.15 !important;
    margin: 0 0 6px !important;
}

.permission-card h2 small {
    font-size: 11px !important;
    margin-top: 2px !important;
}

.permission-card h3 {
    font-size: 12px !important;
    margin: 8px 0 5px !important;
}

.permission-card .checks {
    gap: 5px !important;
    margin-bottom: 8px !important;
    grid-template-columns: repeat(2, minmax(150px, 1fr)) !important;
}

.permission-card .checks label {
    min-height: 28px !important;
    padding: 5px 8px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    align-items: center !important;
}

.permission-card .checks input {
    width: 13px !important;
    height: 13px !important;
    margin-right: 5px !important;
}

.permission-card .btn {
    padding: 7px 10px !important;
    font-size: 12px !important;
}

.permission-card .muted {
    margin: 8px 0 0 !important;
    font-size: 11px !important;
}

/* Smartphone: manter o botão Sair visível no topo */
@media (max-width: 980px) {
    .topbar nav.topbar-actions {
        display: flex !important;
        flex: 0 0 auto;
        gap: 8px;
        margin-left: auto;
    }

    .topbar nav.topbar-actions a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 34px;
        padding: 6px 10px;
        border-radius: 9px;
        background: rgba(255,255,255,.14);
        color: #fff;
        font-size: 13px;
        font-weight: 700;
        white-space: nowrap;
    }

    .topbar .hamb {
        flex: 0 0 auto;
        margin-left: 6px;
    }

    .topbar {
        gap: 8px;
    }

    .top-source {
        min-width: 0;
        flex: 1 1 auto;
    }

    .top-source select {
        min-width: 0;
        max-width: 150px;
    }

    .users-list-card .table-wrap {
        height: auto !important;
        min-height: 420px !important;
        max-height: 70vh !important;
    }

    .permissions-grid-compact {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 520px) {
    .topbar {
        padding: 0 10px;
    }

    .brand b {
        display: none;
    }

    .top-source span {
        display: none;
    }

    .top-source select {
        max-width: 128px;
    }

    .topbar nav.topbar-actions a {
        padding: 6px 8px;
    }

    .permission-card .checks {
        grid-template-columns: 1fr !important;
    }
}

/* Tesouraria - Fluxos de Caixa */
.cashflow-table {
    max-width: 720px;
    min-width: 520px !important;
}

.cashflow-table th {
    background: #ffffff !important;
    color: #222 !important;
    border-bottom: 1px solid #9fc9ff !important;
}

.cashflow-table td {
    max-width: none !important;
    text-overflow: clip !important;
}

.cashflow-table .cashflow-label-cell {
    white-space: normal !important;
}

.cashflow-table .cashflow-value-cell {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
    white-space: nowrap !important;
}

.cashflow-table tbody tr.cashflow-total-row td {
    background: #4095ea !important;
    color: #ffffff !important;
}

.cashflow-table tbody tr.cashflow-total-row td.cashflow-negative-cell {
    background: #df6172 !important;
    color: #111827 !important;
}

/* Tesouraria - Fluxos de Caixa em coluna vertical */
.active-visual-card.cashflow-visual {
    min-height: calc(100vh - 250px) !important;
}

.active-visual-card.cashflow-visual .active-visual-grid {
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    min-height: calc(100vh - 315px) !important;
}

.active-visual-card.cashflow-visual .active-chart-pane {
    display: none !important;
}

.active-visual-card.cashflow-visual .active-table-pane {
    width: min(760px, 100%) !important;
    max-width: 760px !important;
    min-height: calc(100vh - 315px) !important;
    border-left: 0 !important;
    border-top: 0 !important;
    padding-left: 0 !important;
    padding-top: 0 !important;
    margin-right: auto !important;
}

.active-visual-card.cashflow-visual .active-table-pane .table-wrap {
    flex: 1 1 auto !important;
    height: calc(100vh - 380px) !important;
    min-height: 520px !important;
    max-height: calc(100vh - 380px) !important;
    overflow: auto !important;
}

.active-visual-card.cashflow-visual .cashflow-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 520px !important;
}

.active-visual-card.cashflow-visual .table-pane-head {
    margin-bottom: 6px !important;
}

@media (max-width: 980px) {
    .active-visual-card.cashflow-visual,
    .active-visual-card.cashflow-visual .active-visual-grid,
    .active-visual-card.cashflow-visual .active-table-pane {
        min-height: auto !important;
    }

    .active-visual-card.cashflow-visual .active-table-pane {
        width: 100% !important;
        max-width: 100% !important;
    }

    .active-visual-card.cashflow-visual .active-table-pane .table-wrap {
        height: auto !important;
        min-height: 420px !important;
        max-height: 72vh !important;
    }
}

/* Tesouraria - filtros compactos laterais nos Fluxos de Caixa */
body.cashflow-dashboard-active .filter-panel {
    position: fixed !important;
    right: 24px !important;
    top: 84px !important;
    width: 260px !important;
    max-width: 260px !important;
    margin: 0 !important;
    padding: 10px 10px !important;
    border-radius: 14px !important;
    z-index: 18 !important;
    box-shadow: 0 12px 32px rgba(15, 26, 46, .14) !important;
}

body.cashflow-dashboard-active .filter-panel .filter-row {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 6px !important;
    align-items: end !important;
}

body.cashflow-dashboard-active .filter-panel label {
    gap: 3px !important;
    font-size: 11px !important;
}

body.cashflow-dashboard-active .filter-panel input,
body.cashflow-dashboard-active .filter-panel select {
    height: 30px !important;
    min-height: 30px !important;
    padding: 4px 8px !important;
    font-size: 12px !important;
}

body.cashflow-dashboard-active .filter-panel [data-control="search"] {
    min-width: 0 !important;
}

body.cashflow-dashboard-active .filter-panel #refreshBtn {
    height: 30px !important;
    min-height: 30px !important;
    padding: 4px 10px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
}

body.cashflow-dashboard-active .filter-panel .extra-filters {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    margin-top: 7px !important;
    padding-top: 7px !important;
}

body.cashflow-dashboard-active .filter-panel .drill-info {
    margin-top: 7px !important;
    padding: 6px 8px !important;
    font-size: 11px !important;
}

body.cashflow-dashboard-active .active-visual-card.cashflow-visual {
    margin-right: 290px !important;
    min-height: calc(100vh - 170px) !important;
}

body.cashflow-dashboard-active .active-visual-card.cashflow-visual .active-visual-grid {
    min-height: calc(100vh - 235px) !important;
}

body.cashflow-dashboard-active .active-visual-card.cashflow-visual .active-table-pane {
    min-height: calc(100vh - 235px) !important;
}

body.cashflow-dashboard-active .active-visual-card.cashflow-visual .active-table-pane .table-wrap {
    height: calc(100vh - 300px) !important;
    min-height: 620px !important;
    max-height: calc(100vh - 300px) !important;
}

@media (max-width: 1200px) {
    body.cashflow-dashboard-active .filter-panel {
        position: static !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 0 10px 0 !important;
    }

    body.cashflow-dashboard-active .active-visual-card.cashflow-visual {
        margin-right: 0 !important;
    }

    body.cashflow-dashboard-active .filter-panel .filter-row {
        grid-template-columns: minmax(180px, 1fr) auto !important;
    }

    body.cashflow-dashboard-active .filter-panel .extra-filters {
        grid-template-columns: repeat(2, minmax(130px, 1fr)) !important;
    }

    body.cashflow-dashboard-active .active-visual-card.cashflow-visual .active-table-pane .table-wrap {
        height: auto !important;
        min-height: 520px !important;
        max-height: 72vh !important;
    }
}

@media (max-width: 620px) {
    body.cashflow-dashboard-active .filter-panel .filter-row,
    body.cashflow-dashboard-active .filter-panel .extra-filters {
        grid-template-columns: 1fr !important;
    }
}

/* Aproveitar melhor o espaço disponível em tabelas/listas */
.content {
    padding: 18px 14px 28px !important;
    overflow: visible !important;
    min-height: calc(100vh - 58px) !important;
}

.page-head {
    margin-bottom: 12px !important;
}

.visual-buttons-card,
.filter-panel {
    margin-bottom: 10px !important;
    padding: 10px 12px !important;
}

.chart-card,
.admin-card {
    padding: 12px !important;
}

.card-title {
    margin-bottom: 8px !important;
}

.table-pane-head {
    margin-bottom: 6px !important;
}

.single-dashboard-view .active-visual-card {
    min-height: calc(100vh - 210px) !important;
}

.single-dashboard-view .active-visual-grid {
    gap: 10px !important;
}

.single-dashboard-view .active-chart-pane {
    min-height: 330px !important;
}

.single-dashboard-view .active-chart-pane canvas {
    height: 340px !important;
    max-height: 40vh !important;
}

.single-dashboard-view .active-table-pane {
    min-height: calc(100vh - 635px) !important;
    padding-top: 8px !important;
}

.single-dashboard-view .active-table-pane .table-wrap {
    height: calc(100vh - 690px) !important;
    min-height: 360px !important;
    max-height: calc(100vh - 690px) !important;
    overflow: auto !important;
}

.single-dashboard-view .active-table-pane .table-wrap table {
    min-width: 520px !important;
}

.single-dashboard-view .active-table-pane th,
.single-dashboard-view .active-table-pane td {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}

/* As visualizações especiais continuam a ter espaço suficiente para gauges/donuts */
.single-dashboard-view .active-visual-card.special-visual .active-chart-pane,
.single-dashboard-view .active-visual-card.single-gauge-visual .active-chart-pane {
    min-height: 440px !important;
}

.single-dashboard-view .active-visual-card.special-visual .active-chart-pane canvas,
.single-dashboard-view .active-visual-card.single-gauge-visual .active-chart-pane canvas {
    height: 420px !important;
    max-height: 52vh !important;
}

.single-dashboard-view .active-visual-card.special-visual .active-table-pane .table-wrap,
.single-dashboard-view .active-visual-card.single-gauge-visual .active-table-pane .table-wrap {
    height: calc(100vh - 720px) !important;
    min-height: 280px !important;
    max-height: calc(100vh - 720px) !important;
}

/* Fluxos de caixa mantém layout próprio, apenas fica mais alto */
body.cashflow-dashboard-active .active-visual-card.cashflow-visual .active-table-pane .table-wrap {
    height: calc(100vh - 250px) !important;
    min-height: 680px !important;
    max-height: calc(100vh - 250px) !important;
}

/* Listas de administração */
.users-create-card {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    margin-bottom: 8px !important;
}

.users-list-card {
    padding-top: 10px !important;
}

.users-list-card .table-wrap {
    height: calc(100vh - 245px) !important;
    min-height: 650px !important;
    max-height: calc(100vh - 245px) !important;
    overflow: auto !important;
}

.admin-card:not(.users-create-card):not(.permission-card) > .table-wrap {
    height: calc(100vh - 250px) !important;
    min-height: 520px !important;
    max-height: calc(100vh - 250px) !important;
    overflow: auto !important;
}

/* Relatório Controlo de Gestão */
.management-table-wrap {
    max-height: calc(100vh - 230px) !important;
}

.management-report-section .management-table-wrap {
    max-height: calc(100vh - 270px) !important;
}

@media (max-width: 1200px) {
    .single-dashboard-view .active-chart-pane canvas {
        height: 300px !important;
        max-height: 36vh !important;
    }

    .single-dashboard-view .active-table-pane .table-wrap {
        height: auto !important;
        min-height: 420px !important;
        max-height: 64vh !important;
    }

    .users-list-card .table-wrap,
    .admin-card:not(.users-create-card):not(.permission-card) > .table-wrap {
        height: auto !important;
        min-height: 480px !important;
        max-height: 70vh !important;
    }
}

@media (max-width: 620px) {
    .content {
        padding: 12px 8px 20px !important;
    }

    .single-dashboard-view .active-chart-pane canvas {
        height: 260px !important;
        max-height: 34vh !important;
    }

    .single-dashboard-view .active-table-pane .table-wrap {
        min-height: 360px !important;
        max-height: 68vh !important;
    }

    .users-list-card .table-wrap,
    .admin-card:not(.users-create-card):not(.permission-card) > .table-wrap {
        min-height: 380px !important;
        max-height: 68vh !important;
    }
}


/* Permissões: layout mais compacto para caber melhor no ecrã */
.permissions-grid.permissions-grid-compact {
    grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)) !important;
    gap: 10px !important;
}

.permission-card {
    padding: 8px 10px !important;
    margin-bottom: 4px !important;
    border-radius: 10px !important;
}

.permission-card form {
    display: block;
}

.permission-card h2 {
    display: flex !important;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    font-size: 14px !important;
    margin: 0 0 4px !important;
}

.permission-card h2 small {
    display: inline !important;
    margin: 0 !important;
    font-size: 10px !important;
    color: #5b6e8d !important;
}

.permission-card h3 {
    font-size: 11px !important;
    margin: 6px 0 4px !important;
}

.permission-card .checks {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 4px !important;
    margin-bottom: 6px !important;
}

.permission-card .checks label {
    min-height: 24px !important;
    padding: 4px 6px !important;
    font-size: 10.5px !important;
    border-radius: 7px !important;
}

.permission-card .checks input {
    width: 12px !important;
    height: 12px !important;
    margin-right: 4px !important;
}

.permission-card .btn.primary {
    margin-top: 2px !important;
    padding: 6px 10px !important;
    font-size: 11px !important;
}

.permission-card .muted {
    margin-top: 6px !important;
    font-size: 10px !important;
}

@media (min-width: 1600px) {
    .permissions-grid.permissions-grid-compact {
        grid-template-columns: repeat(3, minmax(300px, 1fr)) !important;
    }
}

@media (max-width: 1200px) {
    .permissions-grid.permissions-grid-compact {
        grid-template-columns: repeat(2, minmax(300px, 1fr)) !important;
    }
    .permission-card .checks {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 700px) {
    .permissions-grid.permissions-grid-compact {
        grid-template-columns: 1fr !important;
    }
    .permission-card .checks {
        grid-template-columns: 1fr !important;
    }
}

/* Permissões em massa: vários utilizadores numa só operação */
.permissions-admin-note {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 8px 12px;
    margin: 0 0 10px;
    box-shadow: var(--shadow);
    color: #40516a;
}

.permissions-admin-note strong {
    color: var(--text);
}

.permissions-bulk-card,
.permissions-summary-card {
    padding: 10px 12px !important;
}

.permissions-bulk-layout {
    display: grid;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.permissions-pane {
    min-width: 0;
}

.permission-pane-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.permission-pane-head h2 {
    margin: 0 !important;
    font-size: 16px !important;
}

.permission-pane-head select {
    max-width: 260px;
    min-height: 32px;
    padding: 5px 9px;
    font-size: 12px;
}

.bulk-users-list {
    display: grid;
    gap: 4px;
    max-height: calc(100vh - 330px);
    min-height: 220px;
    overflow: auto;
    padding-right: 4px;
}

.bulk-user-row {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--border);
    background: #f8fafd;
    border-radius: 8px;
    padding: 6px 8px;
    cursor: pointer;
}

.bulk-user-row input {
    width: 14px;
    height: 14px;
    flex: none;
}

.bulk-user-row span {
    display: grid;
    gap: 1px;
    min-width: 0;
}

.bulk-user-row strong {
    font-size: 12px;
    line-height: 1.15;
}

.bulk-user-row small {
    font-size: 10px;
    color: var(--muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bulk-permission-groups {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.bulk-permission-groups h3 {
    margin: 0 0 5px !important;
    font-size: 12px !important;
}

.bulk-checks {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 4px !important;
    margin: 0 !important;
}

.bulk-checks label {
    min-height: 25px !important;
    padding: 4px 6px !important;
    font-size: 11px !important;
    border-radius: 7px !important;
}

.bulk-checks input {
    width: 13px !important;
    height: 13px !important;
    margin-right: 4px !important;
}

.bulk-permission-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
}

.bulk-permission-actions .btn {
    white-space: nowrap;
}

.bulk-permission-actions .muted {
    margin: 0;
    font-size: 11px;
}

.permissions-summary-wrap {
    height: calc(100vh - 600px) !important;
    min-height: 240px !important;
    max-height: calc(100vh - 600px) !important;
    overflow: auto !important;
}

.permissions-summary-table {
    font-size: 11px !important;
}

.permissions-summary-table th,
.permissions-summary-table td {
    padding: 5px 7px !important;
    vertical-align: top;
}

.permissions-summary-table td:first-child {
    min-width: 170px;
}

.permissions-summary-table td:first-child small {
    display: block;
    color: var(--muted);
    font-size: 10px;
    margin-top: 2px;
}

@media (max-width: 1200px) {
    .permissions-bulk-layout {
        grid-template-columns: 1fr;
    }

    .bulk-users-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-height: 260px;
        min-height: 0;
    }

    .permissions-summary-wrap {
        height: auto !important;
        min-height: 260px !important;
        max-height: 60vh !important;
    }
}

@media (max-width: 760px) {
    .bulk-users-list,
    .bulk-permission-groups {
        grid-template-columns: 1fr;
    }

    .permission-pane-head,
    .bulk-permission-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .permission-pane-head select,
    .bulk-permission-actions .btn {
        max-width: none;
        width: 100%;
    }
}

/* Permissões atuais em matriz para consulta rápida */
.permission-matrix-tabs {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin: 4px 0 8px;
}

.permission-matrix-tabs a {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 9px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #f7faff;
    color: #0f1a2e;
    font-weight: 700;
    font-size: 11px;
    text-decoration: none;
}

.permission-matrix-section {
    margin-top: 8px;
}

.permission-matrix-section h3 {
    margin: 0 0 5px;
    font-size: 12px;
    color: #0b234a;
}

.permissions-matrix-wrap {
    max-height: 34vh !important;
    min-height: 160px !important;
    overflow: auto !important;
    border: 1px solid var(--border);
    border-radius: 10px;
}

.permissions-matrix-table {
    min-width: 760px;
    font-size: 11px !important;
    border-collapse: collapse;
}

.permissions-matrix-table th,
.permissions-matrix-table td {
    padding: 5px 6px !important;
    text-align: center;
    max-width: 120px;
    min-width: 62px;
}

.permissions-matrix-table th:first-child,
.permissions-matrix-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 3;
    text-align: left;
    min-width: 190px;
    max-width: 220px;
    background: #fff;
    box-shadow: 1px 0 0 var(--border);
}

.permissions-matrix-table thead th {
    position: sticky;
    top: 0;
    z-index: 4;
}

.permissions-matrix-table thead th:first-child {
    z-index: 5;
}

.permissions-matrix-table td:first-child strong {
    display: block;
    font-size: 11px;
    line-height: 1.15;
}

.permissions-matrix-table td:first-child small {
    display: block;
    color: var(--muted);
    font-size: 10px;
    margin-top: 1px;
}

.permissions-matrix-table .has-permission {
    background: #e7f8ed !important;
    color: #107733;
    font-weight: 900;
    font-size: 14px;
}

.permissions-matrix-table .no-permission {
    background: #f7f8fb !important;
    color: #b3bfce;
}

@media (max-width: 760px) {
    .permissions-matrix-wrap {
        max-height: 48vh !important;
    }

    .permissions-matrix-table th:first-child,
    .permissions-matrix-table td:first-child {
        min-width: 150px;
        max-width: 160px;
    }
}

/* Relatório Controlo de Gestão - visual tipo Excel verde */
.management-panel .management-table-wrap.excel-like-wrap {
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.excel-financial-table {
    min-width: 1120px !important;
    font-family: Calibri, Arial, sans-serif !important;
    font-size: 13px !important;
    border-collapse: collapse !important;
    background: #fff !important;
}

.excel-financial-table .col-rubrica { width: 420px !important; }
.excel-financial-table .col-periodo { width: 165px !important; }
.excel-financial-table .col-anual { width: 165px !important; }
.excel-financial-table .col-nota { width: 360px !important; }

.excel-financial-table th,
.excel-financial-table td {
    height: 21px !important;
    padding: 2px 6px !important;
    line-height: 1.15 !important;
    border: 1px solid #d7d7d7 !important;
    color: #000 !important;
}

.excel-financial-table .excel-main-header th:not(.excel-note-head) {
    background: #245f43 !important;
    color: #fff !important;
    border: 2px solid #fff !important;
    font-weight: 700 !important;
    text-align: center !important;
    font-size: 18px !important;
    letter-spacing: .5px;
}

.excel-financial-table .excel-main-header-periods th:not(.excel-note-head) {
    font-size: 20px !important;
}

.excel-financial-table .excel-note-head {
    background: transparent !important;
    border: 0 !important;
    color: #000 !important;
    text-align: left !important;
}

.excel-financial-table .editable-note {
    display: inline-block;
    background: #ffff00;
    color: #000;
    padding: 3px 6px;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0;
}

.excel-financial-table .rubrica-cell {
    white-space: nowrap !important;
    text-align: left !important;
}

.excel-financial-table .value-cell {
    text-align: right !important;
    white-space: nowrap !important;
}

.excel-financial-table .note-cell {
    border: 0 !important;
    background: transparent !important;
    color: #000 !important;
    font-size: 11px !important;
    padding-left: 22px !important;
}

.excel-financial-table tr.section td:not(.note-cell) {
    background: #245f43 !important;
    color: #fff !important;
    border-color: #245f43 !important;
    font-weight: 700 !important;
    text-align: center !important;
}

.excel-financial-table tr.bold td:not(.note-cell) {
    font-weight: 700 !important;
}

.excel-financial-table tr.total td:not(.note-cell) {
    background: #245f43 !important;
    color: #fff !important;
    border-color: #245f43 !important;
    font-weight: 700 !important;
    font-size: 18px !important;
}

.excel-financial-table tr.total .rubrica-cell {
    text-align: right !important;
}

.excel-financial-table .editable-balance-cell {
    background: #ffff00 !important;
}

.inline-balance-edit {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    margin: 0;
}

.inline-balance-edit input {
    width: 120px !important;
    min-height: 20px !important;
    height: 20px !important;
    padding: 1px 4px !important;
    border: 1px solid #c7b900 !important;
    border-radius: 0 !important;
    background: #ffff00 !important;
    color: #000 !important;
    text-align: right !important;
    font: inherit !important;
}

.inline-balance-edit button {
    width: 24px;
    height: 20px;
    border: 1px solid #245f43;
    background: #245f43;
    color: #fff;
    font-weight: 700;
    border-radius: 0;
    cursor: pointer;
    padding: 0;
}

.excel-financial-table tr.manual-adjusted-total td:not(.note-cell) {
    box-shadow: inset 0 0 0 2px rgba(255,255,0,.25);
}

/* Relatório Controlo Gestão - Análise Stocks */
.stock-analysis-wrap {
    position: relative;
    display: grid;
    grid-template-columns: minmax(520px, 660px) minmax(260px, 1fr);
    gap: 18px 28px;
    border: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
    padding: 18px 24px !important;
}

.stock-analysis-block {
    grid-column: 1;
    margin-bottom: 36px;
}

.stock-analysis-block h3 {
    margin: 0 0 20px;
    font: 700 14px Calibri, Arial, sans-serif;
    text-align: center;
    text-decoration: underline;
    color: #000;
}

.stock-analysis-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font: 700 13px Calibri, Arial, sans-serif;
    background: #fff;
}

.stock-analysis-table th,
.stock-analysis-table td {
    border: 2px solid #000 !important;
    padding: 4px 6px !important;
    height: 22px !important;
    color: #000 !important;
    background: #fff !important;
    max-width: none !important;
    overflow: hidden;
    text-overflow: ellipsis;
}

.stock-analysis-table th {
    height: 46px !important;
    text-align: center !important;
    font-size: 16px !important;
}

.stock-analysis-table th:nth-child(1),
.stock-analysis-table td:nth-child(1) {
    width: 47%;
    text-align: left;
}

.stock-analysis-table th:nth-child(2),
.stock-analysis-table td:nth-child(2) {
    width: 22%;
    text-align: right;
}

.stock-analysis-table th:nth-child(3),
.stock-analysis-table td:nth-child(3) {
    width: 31%;
    text-align: right;
}

.stock-analysis-table .stock-total-row td {
    font-weight: 700 !important;
}

.stock-analysis-note {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    padding-top: 62px;
    font: 13px Calibri, Arial, sans-serif;
    color: #000;
}

.stock-analysis-note p {
    margin: 0 0 6px;
}

@media (max-width: 900px) {
    .stock-analysis-wrap {
        grid-template-columns: 1fr;
        padding: 12px !important;
    }

    .stock-analysis-note {
        grid-column: 1;
        grid-row: auto;
        padding-top: 0;
    }
}

/* Relatório Controlo de Gestão - notas numeradas e legendas abaixo da tabela */
.excel-financial-table .note-cell {
    text-align: left !important;
    padding-left: 8px !important;
    width: 34px !important;
}

.excel-financial-table .note-marker {
    display: inline-block;
    min-width: 20px;
    color: #000;
    font-size: 10px;
    font-weight: 700;
}

.financial-legends {
    margin-top: 12px;
    max-width: 980px;
    font: 11px Calibri, Arial, sans-serif;
    color: #000;
}

.financial-legends strong {
    display: block;
    margin-bottom: 4px;
    font-size: 12px;
}

.financial-legends ol {
    margin: 0;
    padding-left: 24px;
    columns: 2;
    column-gap: 32px;
}

.financial-legends li {
    break-inside: avoid;
    margin: 0 0 3px;
    padding-left: 2px;
}

@media (max-width: 900px) {
    .financial-legends ol {
        columns: 1;
    }
}

/* DR Mensal - colunas compactas */
.management-sheet-table.sheet-dr-mensal {
    table-layout: fixed !important;
    min-width: 2480px !important;
    width: 2480px !important;
    font-size: 11px !important;
}

.management-sheet-table.sheet-dr-mensal th,
.management-sheet-table.sheet-dr-mensal td {
    padding: 3px 4px !important;
    height: 22px !important;
    line-height: 1.05 !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    vertical-align: middle !important;
}

.management-sheet-table.sheet-dr-mensal th {
    font-size: 10px !important;
    text-align: center !important;
    word-break: break-word !important;
}

.management-sheet-table.sheet-dr-mensal th:first-child,
.management-sheet-table.sheet-dr-mensal td:first-child {
    width: 285px !important;
    min-width: 285px !important;
    max-width: 285px !important;
    text-align: left !important;
    position: sticky;
    left: 0;
    z-index: 3;
    background: #fff;
    box-shadow: 1px 0 0 #cfcfcf;
}

.management-sheet-table.sheet-dr-mensal thead th:first-child {
    z-index: 5;
}

.management-sheet-table.sheet-dr-mensal th:not(:first-child),
.management-sheet-table.sheet-dr-mensal td:not(:first-child) {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    text-align: right !important;
}

.management-sheet-table.sheet-dr-mensal td:nth-child(odd):not(:first-child),
.management-sheet-table.sheet-dr-mensal th:nth-child(odd):not(:first-child) {
    width: 66px !important;
    min-width: 66px !important;
    max-width: 66px !important;
}

.management-sheet-table.sheet-dr-mensal tr.total td,
.management-sheet-table.sheet-dr-mensal tr.subtotal td {
    background: #ef3338 !important;
    color: #fff !important;
    font-weight: 700 !important;
}

.management-sheet-table.sheet-dr-mensal tr.total td:first-child,
.management-sheet-table.sheet-dr-mensal tr.subtotal td:first-child {
    background: #ef3338 !important;
    color: #fff !important;
}

@media (max-width: 900px) {
    .management-sheet-table.sheet-dr-mensal {
        min-width: 2200px !important;
        width: 2200px !important;
        font-size: 10px !important;
    }

    .management-sheet-table.sheet-dr-mensal th:first-child,
    .management-sheet-table.sheet-dr-mensal td:first-child {
        width: 220px !important;
        min-width: 220px !important;
        max-width: 220px !important;
    }

    .management-sheet-table.sheet-dr-mensal th:not(:first-child),
    .management-sheet-table.sheet-dr-mensal td:not(:first-child) {
        width: 62px !important;
        min-width: 62px !important;
        max-width: 62px !important;
    }
}

/* DR Mensal - correção final de larguras por tipo de coluna */
.management-sheet-table.sheet-dr-mensal {
    table-layout: fixed !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    font-size: 11px !important;
}

.management-sheet-table.sheet-dr-mensal th,
.management-sheet-table.sheet-dr-mensal td {
    box-sizing: border-box !important;
    padding: 3px 4px !important;
    height: 21px !important;
    line-height: 1.05 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    vertical-align: middle !important;
}

.management-sheet-table.sheet-dr-mensal th.col-text,
.management-sheet-table.sheet-dr-mensal td.col-text {
    width: 255px !important;
    min-width: 255px !important;
    max-width: 255px !important;
    white-space: normal !important;
    text-align: left !important;
    position: sticky;
    left: 0;
    z-index: 3;
    background: #fff;
    box-shadow: 1px 0 0 #cfcfcf;
}

.management-sheet-table.sheet-dr-mensal thead th.col-text {
    z-index: 5;
    background: #ef3338 !important;
    color: #fff !important;
}

.management-sheet-table.sheet-dr-mensal th.col-value,
.management-sheet-table.sheet-dr-mensal td.col-value {
    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;
    white-space: nowrap !important;
    text-align: right !important;
}

.management-sheet-table.sheet-dr-mensal th.col-percent,
.management-sheet-table.sheet-dr-mensal td.col-percent {
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    white-space: nowrap !important;
    text-align: right !important;
}

.management-sheet-table.sheet-dr-mensal th.col-default,
.management-sheet-table.sheet-dr-mensal td.col-default {
    width: 66px !important;
    min-width: 66px !important;
    max-width: 66px !important;
}

.management-sheet-table.sheet-dr-mensal th.col-value,
.management-sheet-table.sheet-dr-mensal th.col-percent,
.management-sheet-table.sheet-dr-mensal th.col-default {
    font-size: 10px !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
}

/* Desativa as larguras antigas por nth-child para o DR Mensal */
.management-sheet-table.sheet-dr-mensal th:not(:first-child),
.management-sheet-table.sheet-dr-mensal td:not(:first-child),
.management-sheet-table.sheet-dr-mensal td:nth-child(odd):not(:first-child),
.management-sheet-table.sheet-dr-mensal th:nth-child(odd):not(:first-child) {
    min-width: unset;
    max-width: unset;
}

.management-sheet-table.sheet-dr-mensal tr.total td,
.management-sheet-table.sheet-dr-mensal tr.subtotal td {
    background: #ef3338 !important;
    color: #fff !important;
    font-weight: 700 !important;
}

.management-sheet-table.sheet-dr-mensal tr.total td.col-text,
.management-sheet-table.sheet-dr-mensal tr.subtotal td.col-text {
    background: #ef3338 !important;
    color: #fff !important;
}

@media (max-width: 900px) {
    .management-sheet-table.sheet-dr-mensal th.col-text,
    .management-sheet-table.sheet-dr-mensal td.col-text {
        width: 210px !important;
        min-width: 210px !important;
        max-width: 210px !important;
    }

    .management-sheet-table.sheet-dr-mensal th.col-value,
    .management-sheet-table.sheet-dr-mensal td.col-value {
        width: 66px !important;
        min-width: 66px !important;
        max-width: 66px !important;
    }

    .management-sheet-table.sheet-dr-mensal th.col-percent,
    .management-sheet-table.sheet-dr-mensal td.col-percent {
        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;
    }
}

/* DR Mensal - manter Rubricas visível durante scroll horizontal */
.management-table-wrap {
    position: relative !important;
}

.management-sheet-table.sheet-dr-mensal th.col-text,
.management-sheet-table.sheet-dr-mensal td.col-text {
    position: sticky !important;
    left: 0 !important;
    z-index: 20 !important;
    background: #ffffff !important;
    box-shadow: 2px 0 0 #000 !important;
}

.management-sheet-table.sheet-dr-mensal thead th.col-text {
    z-index: 35 !important;
    background: #ef3338 !important;
    color: #ffffff !important;
}

.management-sheet-table.sheet-dr-mensal tbody tr:nth-child(even) td.col-text {
    background: #f7f7f7 !important;
}

.management-sheet-table.sheet-dr-mensal tbody tr.total td.col-text,
.management-sheet-table.sheet-dr-mensal tbody tr.subtotal td.col-text {
    background: #ef3338 !important;
    color: #ffffff !important;
}

.management-sheet-table.sheet-dr-mensal tbody tr:hover td.col-text {
    background: #eef5ff !important;
}

.management-sheet-table.sheet-dr-mensal tbody tr.total:hover td.col-text,
.management-sheet-table.sheet-dr-mensal tbody tr.subtotal:hover td.col-text {
    background: #ef3338 !important;
}

/* Relatório Controlo Gestão - garantir que os botões de folhas são clicáveis */
.management-tabs-card,
.management-tabs,
.management-tabs .visual-button {
    position: relative;
    z-index: 60;
    pointer-events: auto;
}

.management-panel[hidden] {
    display: none !important;
}

.management-panel.active {
    display: block !important;
}

/* Relatório Controlo Gestão - feedback de atualização e tabs */
.management-refresh-status {
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    color: #8a1020;
    font-weight: 700;
}

body.is-refreshing-management .management-refresh-status:not([hidden]) {
    display: inline-flex !important;
}

body.is-refreshing-management .management-refresh-status[hidden] {
    display: none !important;
}

.management-tabs-card,
.management-tabs,
.management-tabs .visual-button {
    position: relative;
    z-index: 80;
    pointer-events: auto;
}

/* Relatório Controlo Gestão - ajuste final de larguras em Quadros/Indicadores/Stocks */
.management-sheet-table.excel-like-table.sheet-quadros,
.management-sheet-table.excel-like-table.sheet-indicadores {
    table-layout: fixed !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

.management-sheet-table.excel-like-table.sheet-quadros th,
.management-sheet-table.excel-like-table.sheet-quadros td,
.management-sheet-table.excel-like-table.sheet-indicadores th,
.management-sheet-table.excel-like-table.sheet-indicadores td {
    box-sizing: border-box !important;
    padding: 4px 6px !important;
    line-height: 1.18 !important;
    vertical-align: middle !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.management-sheet-table.excel-like-table.sheet-quadros th:nth-child(1),
.management-sheet-table.excel-like-table.sheet-quadros td:nth-child(1) {
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

.management-sheet-table.excel-like-table.sheet-quadros th:nth-child(2),
.management-sheet-table.excel-like-table.sheet-quadros td:nth-child(2) {
    width: 460px !important;
    min-width: 460px !important;
    max-width: 460px !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

.management-sheet-table.excel-like-table.sheet-quadros th:nth-child(3),
.management-sheet-table.excel-like-table.sheet-quadros td:nth-child(3),
.management-sheet-table.excel-like-table.sheet-quadros th:nth-child(4),
.management-sheet-table.excel-like-table.sheet-quadros td:nth-child(4) {
    width: 135px !important;
    min-width: 135px !important;
    max-width: 135px !important;
    text-align: right !important;
    white-space: nowrap !important;
}

.management-sheet-table.excel-like-table.sheet-quadros th:nth-child(5),
.management-sheet-table.excel-like-table.sheet-quadros td:nth-child(5) {
    width: 90px !important;
    min-width: 90px !important;
    max-width: 90px !important;
    text-align: right !important;
    white-space: nowrap !important;
}

.management-sheet-table.excel-like-table.sheet-indicadores th:nth-child(1),
.management-sheet-table.excel-like-table.sheet-indicadores td:nth-child(1) {
    width: 165px !important;
    min-width: 165px !important;
    max-width: 165px !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

.management-sheet-table.excel-like-table.sheet-indicadores th:nth-child(2),
.management-sheet-table.excel-like-table.sheet-indicadores td:nth-child(2) {
    width: 420px !important;
    min-width: 420px !important;
    max-width: 420px !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

.management-sheet-table.excel-like-table.sheet-indicadores th:nth-child(3),
.management-sheet-table.excel-like-table.sheet-indicadores td:nth-child(3),
.management-sheet-table.excel-like-table.sheet-indicadores th:nth-child(4),
.management-sheet-table.excel-like-table.sheet-indicadores td:nth-child(4),
.management-sheet-table.excel-like-table.sheet-indicadores th:nth-child(5),
.management-sheet-table.excel-like-table.sheet-indicadores td:nth-child(5) {
    width: 145px !important;
    min-width: 145px !important;
    max-width: 145px !important;
    text-align: right !important;
    white-space: nowrap !important;
}

.stock-analysis-wrap {
    grid-template-columns: minmax(640px, 760px) minmax(240px, 420px) !important;
    gap: 16px 24px !important;
}

.stock-analysis-table th,
.stock-analysis-table td {
    padding: 3px 5px !important;
    line-height: 1.15 !important;
}

.stock-analysis-table th:nth-child(1),
.stock-analysis-table td:nth-child(1) {
    width: 58% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

.stock-analysis-table th:nth-child(2),
.stock-analysis-table td:nth-child(2) {
    width: 20% !important;
    white-space: nowrap !important;
}

.stock-analysis-table th:nth-child(3),
.stock-analysis-table td:nth-child(3) {
    width: 22% !important;
    white-space: nowrap !important;
}

@media (max-width: 900px) {
    .management-sheet-table.excel-like-table.sheet-quadros th:nth-child(1),
    .management-sheet-table.excel-like-table.sheet-quadros td:nth-child(1) {
        width: 125px !important;
        min-width: 125px !important;
        max-width: 125px !important;
    }

    .management-sheet-table.excel-like-table.sheet-quadros th:nth-child(2),
    .management-sheet-table.excel-like-table.sheet-quadros td:nth-child(2) {
        width: 320px !important;
        min-width: 320px !important;
        max-width: 320px !important;
    }

    .management-sheet-table.excel-like-table.sheet-indicadores th:nth-child(1),
    .management-sheet-table.excel-like-table.sheet-indicadores td:nth-child(1) {
        width: 140px !important;
        min-width: 140px !important;
        max-width: 140px !important;
    }

    .management-sheet-table.excel-like-table.sheet-indicadores th:nth-child(2),
    .management-sheet-table.excel-like-table.sheet-indicadores td:nth-child(2) {
        width: 300px !important;
        min-width: 300px !important;
        max-width: 300px !important;
    }
}

/* Relatório Controlo Gestão - Análise Stocks: legendas por baixo da tabela, como DR */
.stock-analysis-wrap {
    display: block !important;
    grid-template-columns: none !important;
}

.stock-analysis-block {
    max-width: 760px !important;
}

.stock-analysis-note {
    display: block !important;
    max-width: 760px !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    font: 12px Calibri, Arial, sans-serif !important;
    color: #000 !important;
}

.stock-analysis-note strong {
    display: block !important;
    margin-bottom: 4px !important;
    font-weight: 700 !important;
}

.stock-analysis-note ol {
    margin: 0 0 0 18px !important;
    padding: 0 !important;
}

.stock-analysis-note li {
    margin: 0 0 3px !important;
    padding-left: 2px !important;
}

/* Relatório Controlo Gestão - ajustes pedidos 2026-06-25 */
.excel-like-table.sheet-indicadores thead th,
.management-sheet-table.sheet-indicadores th {
    background: #0000ff !important;
    color: #fff !important;
    border-color: #111 !important;
}

.stock-analysis-wrap {
    display: block !important;
}

.stock-analysis-block {
    margin-bottom: 36px !important;
}

.stock-analysis-note {
    display: block !important;
    grid-column: auto !important;
    grid-row: auto !important;
    padding-top: 0 !important;
    margin-top: 8px !important;
    max-width: 760px;
}

/* Relatório Controlo de Gestão - cor uniforme vermelho/branco como Indicadores */
.management-panel .excel-financial-table .excel-main-header th:not(.excel-note-head),
.management-panel .excel-financial-table tr.section td:not(.note-cell),
.management-panel .excel-financial-table tr.total td:not(.note-cell),
.management-panel .excel-like-table.sheet-quadros thead th,
.management-panel .excel-like-table.sheet-dr-mensal thead th,
.management-panel .excel-like-table.sheet-indicadores thead th,
.management-panel .stock-analysis-table thead th {
    background: #ff333f !important;
    color: #ffffff !important;
    border-color: #111111 !important;
}

/* DR/Balanço: mais largura útil para a rubrica, sem cortar texto */
.management-panel .excel-financial-table {
    min-width: 1260px !important;
}
.management-panel .excel-financial-table .col-rubrica {
    width: 620px !important;
}
.management-panel .excel-financial-table .col-periodo,
.management-panel .excel-financial-table .col-anual {
    width: 170px !important;
}
.management-panel .excel-financial-table .col-nota {
    width: 280px !important;
}
.management-panel .excel-financial-table .rubrica-cell {
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

/* RCG - correção de cores, largura DR/BL e impressão A4 */
.management-sheet-table.excel-like-table thead th,
.stock-analysis-table thead th,
.excel-financial-table .excel-main-header th {
    background: #ff333f !important;
    color: #fff !important;
    border-color: #000 !important;
}

.excel-financial-table tr.total td,
.excel-financial-table tr.section td {
    background: #ff333f !important;
    color: #fff !important;
    border-color: #000 !important;
}

.excel-financial-table.sheet-dr,
.excel-financial-table.sheet-bl {
    width: 100%;
    min-width: 980px;
    table-layout: fixed;
}

.excel-financial-table.sheet-dr .col-rubrica,
.excel-financial-table.sheet-bl .col-rubrica {
    width: 62%;
}

.excel-financial-table.sheet-dr .col-periodo,
.excel-financial-table.sheet-dr .col-anual,
.excel-financial-table.sheet-bl .col-periodo,
.excel-financial-table.sheet-bl .col-anual {
    width: 19%;
}

.excel-financial-table.sheet-dr .col-nota,
.excel-financial-table.sheet-bl .col-nota,
.excel-financial-table.sheet-dr th:nth-child(4),
.excel-financial-table.sheet-dr td:nth-child(4),
.excel-financial-table.sheet-bl th:nth-child(4),
.excel-financial-table.sheet-bl td:nth-child(4) {
    display: none !important;
}

@media print {
    @page {
        size: A4 landscape;
        margin: 8mm;
    }

    html,
    body {
        width: 297mm !important;
        min-height: 210mm !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: #000 !important;
        overflow: visible !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .sidebar,
    .topbar,
    .management-head form,
    .management-print-btn,
    .visual-buttons-card,
    .management-global-period-card,
    .management-meta,
    .sheet-period-form,
    .analysis-new-entry,
    .analysis-edit-entry,
    .alert {
        display: none !important;
    }

    .app,
    .shell,
    .layout,
    .main,
    .content,
    .page,
    main {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
        overflow: visible !important;
    }

    .management-head {
        display: block !important;
        margin: 0 0 4mm 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: #fff !important;
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    .management-head h1 {
        font: 700 15px Calibri, Arial, sans-serif !important;
        margin: 0 0 2mm 0 !important;
        color: #000 !important;
    }

    .management-head p,
    .sheet-title-line p,
    .excel-sheet-heading {
        font: 400 8px Calibri, Arial, sans-serif !important;
        line-height: 1.15 !important;
        color: #000 !important;
    }

    .management-executive-report {
        display: block !important;
        margin: 0 0 5mm 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: #fff !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
        break-after: auto !important;
        page-break-after: auto !important;
    }

    .report-kpi-grid {
        display: grid !important;
        grid-template-columns: repeat(6, 1fr) !important;
        gap: 2mm !important;
    }

    .report-text-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2mm !important;
    }

    .management-panel {
        display: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
    }

    .management-panel.active {
        display: block !important;
    }

    .sheet-title-line {
        display: block !important;
        margin: 0 0 2mm 0 !important;
        padding: 0 !important;
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    .sheet-title-line h2 {
        font: 700 12px Calibri, Arial, sans-serif !important;
        margin: 0 0 1mm 0 !important;
        color: #000 !important;
    }

    .management-table-wrap,
    .excel-like-wrap {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        border: 0 !important;
    }

    .excel-financial-table,
    .management-sheet-table.excel-like-table,
    .stock-analysis-table {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
        background: #fff !important;
        font-family: Calibri, Arial, sans-serif !important;
    }

    .excel-financial-table {
        font-size: 8.2px !important;
    }

    .management-sheet-table.excel-like-table,
    .stock-analysis-table {
        font-size: 7.4px !important;
    }

    .excel-financial-table th,
    .excel-financial-table td,
    .management-sheet-table.excel-like-table th,
    .management-sheet-table.excel-like-table td,
    .stock-analysis-table th,
    .stock-analysis-table td {
        padding: 1.5px 2px !important;
        line-height: 1.08 !important;
        vertical-align: middle !important;
        overflow: visible !important;
        border-color: #999 !important;
    }

    .excel-financial-table.sheet-dr .col-rubrica,
    .excel-financial-table.sheet-bl .col-rubrica {
        width: 64% !important;
    }

    .excel-financial-table.sheet-dr .col-periodo,
    .excel-financial-table.sheet-dr .col-anual,
    .excel-financial-table.sheet-bl .col-periodo,
    .excel-financial-table.sheet-bl .col-anual {
        width: 18% !important;
    }

    .excel-financial-table .rubrica-cell,
    .management-sheet-table.excel-like-table td:first-child,
    .stock-analysis-table td:first-child {
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .excel-financial-table .value-cell,
    .management-sheet-table.excel-like-table td:not(:first-child),
    .stock-analysis-table td:not(:first-child) {
        white-space: nowrap !important;
        text-align: right !important;
    }

    .stock-analysis-block {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
        margin-bottom: 5mm !important;
    }

    .stock-analysis-note,
    .financial-legends {
        font: 400 8px Calibri, Arial, sans-serif !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
}
