:root {
    --filtasca-yellow: #fdc902;
    --filtasca-ink: #101010;
    --filtasca-muted: #686863;
    --filtasca-border: #e7e5dc;
    --filtasca-surface: #ffffff;
    --filtasca-page: #f7f7f3;
}

html { background: var(--filtasca-page); }
body {
    color: var(--filtasca-ink);
    background: var(--filtasca-page);
    font-family: Inter, Manrope, "Plus Jakarta Sans", Arial, sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

.sidebar {
    background: #111111;
    border-right: 1px solid #292929;
}
.sidebar-brand h1 { letter-spacing: -.02em; }
.sidebar-tagline { color: #bcbcb5; line-height: 1.45; }
.nav-group { margin-bottom: 8px; }
.nav-group summary { min-height: 42px; border-radius: 9px; }
.nav-group > a,
.nav-group details a { border-radius: 8px; min-height: 38px; display: flex; align-items: center; }
.nav-group > a.active,
.nav-group details a.active { background: var(--filtasca-yellow); color: #111; font-weight: 800; }

.main { background: var(--filtasca-page); }
.topbar {
    min-height: 70px;
    border: 1px solid var(--filtasca-border);
    border-radius: 12px;
    background: var(--filtasca-surface);
    box-shadow: 0 8px 24px rgba(16, 16, 16, .04);
}
.topbar-title-wrap strong { font-size: 16px; }
.topbar-title-wrap span { color: var(--filtasca-muted); }

.panel,
.module-panel,
.card,
.table-wrap,
.form-panel {
    border-color: var(--filtasca-border);
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(16, 16, 16, .035);
}
.panel-title-row { gap: 16px; }
h1, h2, h3, h4 { color: var(--filtasca-ink); letter-spacing: 0; }
.muted, .help-text { color: var(--filtasca-muted); }

button,
.button,
a.button,
input[type="submit"] {
    min-height: 40px;
    border-radius: 8px;
    font-weight: 800;
    letter-spacing: 0;
}
button:hover,
.button:hover,
a.button:hover { transform: translateY(-1px); }

input, select, textarea {
    min-height: 42px;
    border: 1px solid #d9d7ce;
    border-radius: 8px;
    background: #fff;
    color: var(--filtasca-ink);
}
textarea { min-height: 110px; }
input:focus, select:focus, textarea:focus {
    outline: 3px solid rgba(253, 201, 2, .22);
    border-color: #c39b00;
}

table { border-collapse: separate; border-spacing: 0; }
thead th {
    background: #fffbed;
    color: #4f4f48;
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
}
tbody td { border-top-color: #eceae2; }
.status-badge, .badge { border-radius: 999px; font-weight: 800; }

.kpi-grid, .summary-grid, .stats-grid { gap: 12px; }
.kpi-card, .summary-card, .stat-card { border-radius: 10px; box-shadow: none; }
.empty-state { border: 1px dashed #d5d2c7; border-radius: 10px; background: #fff; padding: 28px; }

/* Page navigation should never leave a floating global spinner behind. */
#global-loading-indicator,
.global-loading-indicator,
.page-loading-indicator {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
button.is-loading::after,
.button.is-loading::after { content: none !important; }

@media (max-width: 900px) {
    .topbar { border-radius: 10px; }
    .main { padding-left: 14px; padding-right: 14px; }
    table { min-width: 720px; }
}

@media (max-width: 640px) {
    .topbar { min-height: 62px; }
    .topbar-actions { gap: 6px; }
    .button, a.button, button { min-height: 38px; }
}
