/* ── Layout ──────────────────────────────────────────────────── */
body {
    background: #f5f7fb;
    font-size: .9rem;
}

.main-content {
    padding-top: 80px;
    padding-bottom: 40px;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.footer {
    background: #f5f7fb;
    border-top: 1px solid #e9ecef;
    margin-top: 2rem;
}

/* ── Navbar ──────────────────────────────────────────────────── */
.navbar {
    border-bottom: 1px solid #e9ecef;
}
.navbar-logo {
    height: 36px;
    width: auto;
}

/* ── Login logo ──────────────────────────────────────────────── */
.login-logo {
    height: 56px;
    width: auto;
}

/* ── Login ───────────────────────────────────────────────────── */
.login-card {
    width: 100%;
    max-width: 420px;
    border-radius: 1rem;
}

/* ── KPI Cards ───────────────────────────────────────────────── */
.kpi-card {
    border-radius: .75rem;
    transition: transform .15s;
}
.kpi-card:hover { transform: translateY(-2px); }

.kpi-icon {
    width: 52px; height: 52px;
    border-radius: .65rem;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}

.kpi-value {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.1;
    color: #1a1d23;
}
.kpi-label {
    font-size: .75rem;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: .5px;
}

/* ── Page header ─────────────────────────────────────────────── */
.page-header { padding: .25rem 0; }

/* ── Table ───────────────────────────────────────────────────── */
.sort-link {
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}
.sort-link:hover { color: #0d6efd; }

.table > :not(caption) > * > * {
    padding: .5rem .65rem;
}

/* ── Cards gerais ────────────────────────────────────────────── */
.card { border-radius: .75rem; }
.card-header { border-radius: .75rem .75rem 0 0 !important; }

/* ── Observações editável ────────────────────────────────────── */
.obs-cell {
    min-width: 160px;
    outline: none;
    border-radius: .3rem;
    transition: background .15s;
    cursor: text;
    white-space: pre-wrap;
}
.obs-cell:focus {
    background: #fffbe6;
    box-shadow: inset 0 0 0 1px #ffc107;
}
.obs-cell:hover:not(:focus) { background: #f8f9fa; }

@keyframes spin { to { transform: rotate(360deg); } }
.spin { display: inline-block; animation: spin .7s linear infinite; }

/* ── Acção select box ────────────────────────────────────────── */
.select-acao {
    font-size: .78rem;
    padding: .2rem .4rem;
    border-radius: .4rem;
    font-weight: 600;
    cursor: pointer;
    border-color: #dee2e6;
    background-color: #fff;
    color: #6c757d;
}
.select-acao.acao-Fechar   { background-color: #d1e7dd; border-color: #a3cfbb; color: #146c43; }
.select-acao.acao-Anular   { background-color: #f8d7da; border-color: #f1aeb5; color: #842029; }
.select-acao.acao-Aguardar { background-color: #fff3cd; border-color: #ffe69c; color: #664d03; }
