/* FanTR Cooling — Layout raiz (Sub-fase 1.4)
   Complementa assets/styles.css com tokens da Fase 1.
   Como assets/styles.css é carregado depois (ordem alfabética),
   este arquivo cobre apenas novos seletores ou reforço via tokens.css.
*/

/* ── Proteção de overflow ─────────────────────────────────────────────────── */
.main-container {
    overflow-x: hidden;
}

.page-content {
    overflow-x: hidden;
    min-height: calc(100vh - var(--navbar-height, 56px));
}

/* ── Sidebar wrapper — posicionamento relativo ────────────────────────────── */
.sidebar-wrapper {
    position: relative;
    flex-shrink: 0;
}

/* ── Scrollbar customizada na sidebar ─────────────────────────────────────── */
/* Override do assets/sidebar.css que usa valores pré-FanTR */
.sidebar::-webkit-scrollbar       { width: 3px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.15);
    border-radius: 3px;
}
.sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.28);
}

/* ── Indicador de progresso do cálculo/otimização (4.3.2 — §10E) ──────────── */
/* Spinner discreto (anel branded) usado como custom_spinner do dcc.Loading que
   envolve a grade de resultados. Indeterminado — sem barra de % (evita exigir
   background callbacks do Dash). Cores via tokens (sem hardcode). */
.calc-spinner {
    width: 32px;
    height: 32px;
    margin: 24px auto;
    border: 3px solid var(--color-brand-light);
    border-top-color: var(--color-brand-blue);
    border-radius: 50%;
    animation: calc-spin 0.7s linear infinite;
}

@keyframes calc-spin {
    to { transform: rotate(360deg); }
}
