/* =========================================================
   BUDGETRAPPORT

   Skal kunne laeses paa et halvt minut: konklusionen
   foerst, fem noegletal, hvad der kraever opmaerksomhed -
   og saa enhederne, et niveau ad gangen.
========================================================= */

.budget-report{
    --report-good:var(--color-success, #16a34a);
    --report-watch:var(--color-warning, #d97706);
    --report-risk:var(--color-danger, #dc2626);
    --report-empty:#94a3b8;

    display:flex;
    flex-direction:column;
    gap:var(--space-4, 16px);
    min-width:0;
}

/* ---------- toplinje ---------- */

.budget-report__topbar{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:var(--space-4, 16px);
    flex-wrap:wrap;
}

.budget-report__title h2{
    margin:0;
    font-size:1.5rem;
    font-weight:700;
    color:var(--color-text);
}

.budget-report__title p{
    margin:4px 0 0;
    color:var(--color-text-muted);
    font-size:.92rem;
}

.budget-report__actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.budget-report__select{
    width:auto;
    min-width:240px;
}

/* ---------- konklusion ---------- */

.budget-report__verdict-card{
    display:flex;
    align-items:center;
    gap:20px;

    padding:20px 24px;

    background:var(--color-surface, #fff);
    border:1px solid var(--color-border, #e5e7eb);
    border-left:6px solid var(--report-empty);
    border-radius:var(--radius-md, 12px);
    box-shadow:var(--shadow-sm, none);
}

.budget-report__verdict-card.is-good{ border-left-color:var(--report-good); }
.budget-report__verdict-card.is-watch{ border-left-color:var(--report-watch); }
.budget-report__verdict-card.is-risk{ border-left-color:var(--report-risk); }

.budget-report__verdict-light{
    flex:0 0 auto;
    width:18px;
    height:18px;
    border-radius:50%;
    background:var(--report-empty);
}

.is-good > .budget-report__verdict-light{ background:var(--report-good); }
.is-watch > .budget-report__verdict-light{ background:var(--report-watch); }
.is-risk > .budget-report__verdict-light{ background:var(--report-risk); }

.budget-report__verdict-text{
    flex:1 1 auto;
    min-width:0;
}

.budget-report__verdict-text h3{
    margin:0 0 4px;
    font-size:1.15rem;
    color:var(--color-text);
}

.budget-report__verdict-text p{
    margin:0;
    color:var(--color-text-muted);
    line-height:1.5;
}

.budget-report__readiness{
    flex:0 0 auto;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:2px;
    text-align:right;
}

.budget-report__readiness strong{
    font-size:1.4rem;
    color:var(--color-text);
}

.budget-report__readiness span{
    font-size:.85rem;
    color:var(--color-text-muted);
}

.budget-report__readiness em{
    margin-top:4px;
    padding:2px 8px;
    border-radius:999px;
    font-style:normal;
    font-size:.75rem;
    font-weight:600;
    background:#fef3c7;
    color:#92400e;
}

.budget-report__readiness em.is-final{
    background:#dcfce7;
    color:#166534;
}

/* ---------- noegletal ---------- */

.budget-report__cards{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
    gap:12px;
}

.budget-report__card{
    display:flex;
    flex-direction:column;
    gap:4px;

    padding:16px;

    background:var(--color-surface, #fff);
    border:1px solid var(--color-border, #e5e7eb);
    border-radius:var(--radius-md, 12px);
}

.budget-report__card-label{
    font-size:.78rem;
    font-weight:600;
    letter-spacing:.03em;
    text-transform:uppercase;
    color:var(--color-text-muted);
}

.budget-report__card-value{
    font-size:1.6rem;
    font-weight:700;
    color:var(--color-text);
}

.budget-report__card-compare{
    font-size:.85rem;
    color:var(--color-text-muted);
}

.budget-report__delta{
    margin-top:4px;
    font-weight:600;
    font-size:.9rem;
    color:var(--color-text-muted);
}

.is-up{ color:var(--report-good) !important; }
.is-down{ color:var(--report-risk) !important; }

/* ---------- opmaerksomhed ---------- */

.budget-report__section-title{
    margin:0 0 8px;
    font-size:1rem;
    color:var(--color-text);
}

.budget-report__attention-list{
    list-style:none;
    margin:0;
    padding:0;

    display:flex;
    flex-direction:column;
    gap:6px;
}

.budget-report__attention-list li{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;

    padding:10px 14px;

    background:var(--color-surface, #fff);
    border:1px solid var(--color-border, #e5e7eb);
    border-radius:10px;
}

.budget-report__attention-list li span:last-child{
    color:var(--color-text-muted);
}

.budget-report__all-good{
    padding:12px 16px;
    border-radius:10px;
    background:#f0fdf4;
    color:#166534;
    font-weight:600;
}

/* ---------- prikker og status ---------- */

.budget-report__dot{
    display:inline-block;
    flex:0 0 auto;
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--report-empty);
}

.is-good .budget-report__dot{ background:var(--report-good); }
.is-watch .budget-report__dot{ background:var(--report-watch); }
.is-risk .budget-report__dot{ background:var(--report-risk); }

.budget-report__status{
    display:inline-flex;
    align-items:center;
    gap:6px;
    white-space:nowrap;
    font-weight:600;
    font-size:.85rem;
}

/* ---------- tabel ---------- */

.budget-report__table-card{
    background:var(--color-surface, #fff);
    border:1px solid var(--color-border, #e5e7eb);
    border-radius:var(--radius-md, 12px);
    overflow:hidden;
}

.budget-report__table-wrapper{
    overflow-x:auto;
}

.budget-report__table{
    width:100%;
    border-collapse:collapse;
    font-size:.9rem;
}

.budget-report__table th,
.budget-report__table td{
    padding:10px 12px;
    border-bottom:1px solid var(--color-border, #e5e7eb);
    text-align:left;
    white-space:nowrap;
}

.budget-report__table th{
    font-size:.75rem;
    font-weight:600;
    letter-spacing:.03em;
    text-transform:uppercase;
    color:var(--color-text-muted);
    background:var(--surface-2, #f8fafc);
}

.budget-report__table .is-number{
    text-align:right;
    font-variant-numeric:tabular-nums;
}

.budget-report__table tr.level-0 td{
    background:#fff;
}

.budget-report__table tr.level-1 td,
.budget-report__table tr.level-2 td,
.budget-report__table tr.level-3 td{
    background:#fcfcfd;
}

.budget-report__table tr.is-total td{
    background:var(--surface-2, #f1f5f9);
    border-top:2px solid var(--color-border, #cbd5e1);
    font-weight:700;
}

.budget-report__table td.is-name{
    display:flex;
    align-items:center;
    gap:6px;
}

.budget-report__indent{
    display:inline-block;
    width:calc(var(--level, 0) * 20px);
}

.budget-report__toggle,
.budget-report__toggle-spacer{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    flex:0 0 auto;
}

.budget-report__toggle{
    border:none;
    border-radius:6px;
    background:transparent;
    cursor:pointer;
    font-size:1.1rem;
    color:var(--color-text-muted);
    transition:transform .15s ease;
}

.budget-report__toggle:hover{
    background:var(--surface-2, #f1f5f9);
}

.budget-report__toggle.is-open{
    transform:rotate(90deg);
}

.budget-report__points{
    margin-left:6px;
    font-size:.78rem;
    font-weight:600;
}

.budget-report__readiness-cell{
    padding:2px 8px;
    border-radius:999px;
    font-size:.78rem;
    font-weight:600;
    background:#fef3c7;
    color:#92400e;
}

.budget-report__readiness-cell.is-final{
    background:#dcfce7;
    color:#166534;
}

/* ---------- forklaring ---------- */

.budget-report__legend-items{
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    font-size:.85rem;
    color:var(--color-text-muted);
}

.budget-report__legend-items > span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.budget-report__legend p{
    margin:10px 0 0;
    font-size:.82rem;
    line-height:1.5;
    max-width:900px;
}

.budget-report__loading,
.budget-report__empty{
    padding:32px;
    text-align:center;
    color:var(--color-text-muted);
}

.budget-report__empty.is-error{
    color:var(--report-risk);
}

/* ---------- mobil og print ---------- */

@media (max-width: 720px){
    .budget-report__verdict-card{
        flex-direction:column;
        align-items:flex-start;
    }

    .budget-report__readiness{
        align-items:flex-start;
        text-align:left;
    }
}

@media print{
    .sidebar,
    .topbar,
    .budget-report__actions,
    .budget-report__toggle{
        display:none !important;
    }

    .budget-report__table th,
    .budget-report__table td{
        padding:6px 8px;
    }
}
