/* Calculatie – eigen layout, van Buuren kleurstelling */

.calc-pagina {
    --c-blauw: #164a85;
    --c-blauw-licht: #2a6cb8;
    --c-geel: #fffdf8;
    --c-geel-rand: #d4bc6a;
    --c-geel-mark: #faf7ec;
    --c-grijs: #eef1f5;
    --c-grijs-rand: #c5ced9;
    --c-bg: #e6eaef;
    --c-paneel: #f8f9fb;
    --c-wit: #ffffff;
    --c-rand: #cfd6e2;
    --c-rand-licht: #e4e9f0;
    --c-tekst: #2c3a4d;
    --c-muted: #5e6d80;
    --c-kop: #f0f4f9;

    margin: 0;
    background: var(--c-bg);
    color: var(--c-tekst);
    font-family: Calibri, "Segoe UI", Arial, sans-serif;
    font-size: 11pt;
    line-height: 1.35;
}

.calc-app {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    min-height: 100dvh;
    max-width: 100%;
    overflow-y: auto;
}

/* ── Vast menu (kop t/m legenda) ── */
.calc-sticky-kop {
    position: sticky;
    top: 0;
    z-index: 30;
    flex-shrink: 0;
    background: var(--c-bg);
    box-shadow: 0 2px 10px rgba(22, 74, 133, 0.1);
}

/* ── Kop ── */
.calc-kop {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    padding: 0.45rem 1rem;
    background: var(--c-wit);
    border-bottom: 1px solid var(--c-rand);
}

.calc-kop-links {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.calc-titel {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--c-blauw);
}

.calc-kop-rechts {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

/* ── Projectkop (klant / project / …) ── */
.calc-project {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 0.4rem 1rem;
    background: var(--c-wit);
    border-bottom: 1px solid var(--c-rand-licht);
    flex-shrink: 0;
}

.calc-project-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.22rem 1rem;
    flex: 1;
    min-width: 0;
}

.calc-project-regel {
    display: grid;
    grid-template-columns: 5.25rem minmax(0, 1fr);
    align-items: center;
    gap: 0.3rem 0.45rem;
    cursor: default;
    min-width: 0;
}

.calc-project-label {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--c-blauw);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.15;
}

.calc-project-regel .calc-inp {
    width: 100%;
    min-width: 0;
    font-size: 0.78rem;
    padding: 0.22rem 0.4rem;
}

.calc-inp--datum {
    max-width: none;
}

@media (max-width: 1100px) {
    .calc-project-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.calc-project-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-shrink: 0;
    padding-left: 0.5rem;
}

.calc-logo {
    height: 2.35rem;
    width: auto;
    max-width: 8.5rem;
    object-fit: contain;
}

.calc-veld {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 7rem;
}

.calc-veld span:first-child {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--c-blauw);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.calc-veld--inline {
    flex-direction: row;
    align-items: center;
    gap: 0.4rem;
}

/* ── Invoervelden (kleurstelling) ── */
.calc-inp {
    font: inherit;
    font-size: 0.85rem;
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    border: 1px solid var(--c-rand);
    color: var(--c-tekst);
    width: 100%;
    min-width: 0;
    transition: border-color 0.12s, box-shadow 0.12s;
}

.calc-inp--geel {
    background: var(--c-geel);
    border-color: var(--c-geel-rand);
    border-bottom-width: 2px;
}

.calc-inp--grijs {
    background: var(--c-grijs);
    border-color: var(--c-grijs-rand);
    text-align: right;
}

.calc-inp--sm { width: 5rem; }

.calc-inp--zoek {
    width: 14rem;
    max-width: 100%;
    background: var(--c-wit);
    font-size: 0.78rem;
    padding: 0.32rem 0.55rem 0.32rem 1.75rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%235e6d80' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.156a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 0.45rem center;
}

.calc-inp--filter { width: 6.5rem; font-size: 0.78rem; padding: 0.32rem 0.45rem; background: var(--c-wit); }

.calc-zoek-wrap { flex: 1 1 10rem; min-width: 8rem; max-width: 18rem; }

.calc-rij-teller {
    font-size: 0.72rem;
    color: var(--c-muted);
    white-space: nowrap;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.calc-inp:focus {
    outline: none;
    border-color: var(--c-blauw);
    box-shadow: 0 0 0 2px rgba(22, 74, 133, 0.2);
}

.calc-inp--geel:focus { background: var(--c-wit); }

/* ── Legenda ── */
.calc-legenda {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 0.28rem 1rem;
    min-height: 2rem;
    font-size: 0.75rem;
    color: var(--c-muted);
    background: var(--c-paneel);
    border-bottom: 1px solid var(--c-rand-licht);
    flex-shrink: 0;
}

.calc-legenda-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    min-width: 0;
}

.calc-legenda-links span {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    white-space: nowrap;
}

.calc-legenda-nav {
    display: inline-flex;
    align-items: stretch;
    flex-shrink: 0;
    border: 1px solid var(--c-rand);
    border-radius: 4px;
    overflow: hidden;
    background: var(--c-wit);
    box-shadow: 0 1px 2px rgba(22, 74, 133, 0.06);
}

.calc-weergave-knop {
    font: inherit;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding: 0.22rem 0.7rem;
    border: none;
    border-right: 1px solid var(--c-rand-licht);
    background: transparent;
    color: var(--c-muted);
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.15;
    transition: background 0.12s, color 0.12s;
}

.calc-weergave-knop:last-child {
    border-right: none;
}

.calc-weergave-knop:hover {
    background: #f0f4f9;
    color: var(--c-blauw);
}

.calc-weergave-knop.is-actief {
    background: var(--c-blauw);
    color: #fff;
}

.calc-weergave-knop.is-actief:hover {
    background: #1a4f8a;
    color: #fff;
}

.calc-weergave-knop:focus-visible {
    outline: 2px solid var(--c-blauw);
    outline-offset: -2px;
    z-index: 1;
}

.calc-swatch {
    display: inline-block;
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 2px;
    border: 1px solid var(--c-rand);
}

.calc-swatch--geel { background: var(--c-geel); border-color: var(--c-geel-rand); }
.calc-swatch--grijs { background: var(--c-grijs); border-color: var(--c-grijs-rand); }
.calc-swatch--wit { background: var(--c-wit); }

/* ── Werkruimte ── */
.calc-werkruimte {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 0.5rem 0.65rem 0;
    background: var(--c-wit);
    border: 1px solid var(--c-rand);
    border-radius: 8px;
    overflow: hidden;
}

body.calc-weergave-calculatie .calc-werkruimte {
    margin-bottom: 0;
    border-radius: 8px 8px 0 0;
}

.calc-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    padding: 0.55rem 0.85rem;
    background: var(--c-kop);
    border-bottom: 1px solid var(--c-rand-licht);
    flex-shrink: 0;
}

.calc-check {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--c-muted);
    cursor: pointer;
}

.calc-check input { accent-color: var(--c-blauw); }

.calc-eenheid { font-size: 0.78rem; color: var(--c-muted); }

.calc-btn {
    font: inherit;
    font-size: 0.78rem;
    padding: 0.35rem 0.75rem;
    border-radius: 5px;
    border: 1px solid var(--c-rand);
    background: var(--c-wit);
    color: var(--c-blauw);
    cursor: pointer;
}

.calc-btn:hover { border-color: var(--c-blauw); background: #f5f8fc; }
.calc-btn:disabled { opacity: 0.5; cursor: wait; }
.calc-btn--primair { background: var(--c-blauw); color: #fff; border-color: var(--c-blauw); }
.calc-btn--primair:hover { background: #1a4f8a; color: #fff; }

.calc-rij-extra { background: #fffef5; }
.calc-rij-extra .calc-inp--oms,
.calc-rij-extra .calc-inp--spec { width: 100%; margin-bottom: 0.2rem; }
.calc-inp--type,
.calc-inp--ehd { width: 100%; min-width: 2.5rem; }
.calc-kolom-acties { white-space: nowrap; }
.calc-regel-verwijder {
    border: none;
    background: transparent;
    color: #b42318;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.25rem;
    vertical-align: middle;
}
.calc-regel-verwijder:hover { color: #7a1510; }

.calc-status {
    flex: 1 1 100%;
    margin: 0;
    font-size: 0.72rem;
    color: var(--c-muted);
}

.calc-status--ok { color: #166534; }
.calc-status--fout { color: #b91c1c; }

/* ── Hoofdtabel ── */
.calc-hoofd {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.calc-hoofd-kop {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    padding: 0.28rem 0.75rem;
    flex-shrink: 0;
    border-bottom: 1px solid var(--c-rand-licht);
    background: #fafbfd;
}

.calc-hoofd-kop > div:first-child {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem 0.6rem;
    min-width: 0;
    flex: 1;
}

.calc-hoofdstuk-titel {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--c-blauw);
    white-space: nowrap;
}

.calc-hint {
    margin: 0;
    font-size: 0.64rem;
    color: var(--c-muted);
    line-height: 1.2;
}

.calc-badge {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
    padding: 0.2rem 0.5rem;
    background: var(--c-kop);
    border: 1px solid var(--c-rand);
    border-radius: 5px;
    font-size: 0.68rem;
    flex-shrink: 0;
}

.calc-badge-label {
    color: var(--c-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.58rem;
    padding-right: 0.4rem;
    border-right: 1px solid var(--c-rand-licht);
    white-space: nowrap;
}

.calc-badge-totalen {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.55rem;
}

.calc-badge-regel {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--c-blauw);
    white-space: nowrap;
}

.calc-badge-regel--netto {
    color: var(--c-geel-donker, #b8860b);
}

.calc-badge-sub {
    display: inline-block;
    min-width: 2.6rem;
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--c-muted);
}

.calc-badge strong {
    font-size: 1rem;
    color: var(--c-blauw);
}

.calc-grid-wrap {
    flex: 1;
    min-height: 0;
    overflow: auto;
    border-top: 1px solid var(--c-rand-licht);
}

.calc-grid-wrap--eb {
    border-top: none;
}

/* ── Weergave: calculatie / samenvatting / eindblad (strikt gescheiden) ── */
.calc-eindblad,
.calc-staartblad {
    display: none;
}

body.calc-weergave-calculatie .calc-werkruimte {
    display: flex !important;
}

body.calc-weergave-calculatie .calc-onderbalk {
    display: block !important;
}

body.calc-weergave-calculatie .calc-eindblad,
body.calc-weergave-calculatie .calc-staartblad {
    display: none !important;
}

body.calc-weergave-samenvatting .calc-werkruimte,
body.calc-weergave-eindblad .calc-werkruimte {
    display: none !important;
}

body.calc-weergave-samenvatting .calc-onderbalk,
body.calc-weergave-eindblad .calc-onderbalk {
    display: none !important;
}

body.calc-weergave-samenvatting .calc-app {
    overflow: hidden;
    padding-bottom: 0;
}

body.calc-weergave-samenvatting .calc-eindblad {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    margin: 0.35rem 0.65rem 0.5rem;
    scroll-margin-top: var(--calc-sticky-h, 18rem);
    overflow: hidden;
}

body.calc-weergave-samenvatting .calc-eindblad-kop {
    flex-shrink: 0;
    padding: 0.65rem 1rem;
}

body.calc-weergave-samenvatting .calc-eindblad-titel {
    font-size: 1.1rem;
}

body.calc-weergave-samenvatting .calc-eindblad-meta {
    flex-shrink: 0;
    padding: 0.5rem 1rem;
    gap: 0.4rem 1rem;
}

body.calc-weergave-samenvatting .calc-eindblad-tabel-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0 0.5rem;
    scrollbar-width: thin;
}

body.calc-weergave-samenvatting .calc-grid--eb thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--c-kop);
    box-shadow: 0 1px 0 var(--c-rand);
}

body.calc-weergave-samenvatting .calc-eindblad-onder {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0.75rem 1rem;
    margin-top: auto;
    padding: 0.4rem 0.85rem;
    border-top: 1px solid var(--c-rand);
    background: var(--c-kop);
    box-shadow: 0 -2px 10px rgba(22, 74, 133, 0.08);
    z-index: 4;
}

body.calc-weergave-samenvatting .calc-eindblad-totalen {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    align-self: center;
}

body.calc-weergave-samenvatting .calc-eindblad-totalen-inner {
    display: flex;
    align-items: center;
    gap: 0.65rem 0.85rem;
    min-width: 0;
    flex-wrap: wrap;
}

body.calc-weergave-samenvatting .calc-eindblad-totalen-kop {
    margin: 0;
    font-size: 0.62rem;
    white-space: nowrap;
}

body.calc-weergave-samenvatting .calc-eindblad-totalen-lijst {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.75rem;
    margin: 0;
    min-width: 0;
    flex: 1 1 auto;
}

body.calc-weergave-samenvatting .calc-eindblad-totaal-item {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    margin: 0;
    font-size: 0.72rem;
    white-space: nowrap;
}

body.calc-weergave-samenvatting .calc-eindblad-totaal-item dt {
    margin: 0;
    font-weight: 600;
    color: var(--c-muted);
}

body.calc-weergave-samenvatting .calc-eindblad-totaal-item dd {
    margin: 0;
    font-weight: 700;
    color: var(--c-tekst);
}

body.calc-weergave-samenvatting .calc-eindblad-totaal-item--scheiding {
    padding-left: 0.65rem;
    border-left: 1px dashed var(--c-rand);
}

body.calc-weergave-samenvatting .calc-eindblad-totaal-item--netto dt,
body.calc-weergave-samenvatting .calc-eindblad-totaal-item--netto dd {
    color: var(--c-blauw);
    font-size: 0.8rem;
}

body.calc-weergave-samenvatting .calc-eindblad-voet {
    flex: 0 1 18rem;
    gap: 0.1rem;
    text-align: right;
}

body.calc-weergave-samenvatting .calc-eindblad-bedrijf {
    font-size: 0.72rem;
}

body.calc-weergave-samenvatting .calc-eindblad-disclaimer {
    font-size: 0.58rem;
    line-height: 1.25;
    max-width: none;
}

body.calc-weergave-samenvatting .calc-staartblad {
    display: none !important;
}

body.calc-weergave-eindblad .calc-staartblad {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    max-height: calc(100dvh - var(--calc-sticky-h, 18rem) - 0.75rem);
    margin: 0.5rem 0.65rem 0.65rem;
    scroll-margin-top: var(--calc-sticky-h, 18rem);
    overflow: hidden;
}

body.calc-weergave-eindblad .calc-staartblad-kop {
    padding: 0.65rem 1rem;
}

body.calc-weergave-eindblad .calc-staartblad-titel {
    font-size: 1.1rem;
}

body.calc-weergave-eindblad .calc-staartblad-inhoud {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.45rem 0.85rem 0.55rem;
    scrollbar-width: thin;
}

body.calc-weergave-eindblad .calc-staartblad-voet {
    flex-shrink: 0;
    padding: 0.45rem 1rem;
}

body.calc-weergave-eindblad .calc-eindblad {
    display: none !important;
}

body.calc-weergave-eindblad .calc-app {
    padding-bottom: 1rem;
}

.calc-eindblad.calc-blad--actief,
.calc-staartblad.calc-blad--actief {
    box-shadow: 0 0 0 2px var(--c-blauw), 0 4px 16px rgba(22, 74, 133, 0.12);
}

/* ── Eindblad (eindbegroting) ── */
.calc-eindblad {
    margin: 0 0.65rem 1rem;
    background: var(--c-wit);
    border: 1px solid var(--c-rand);
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}

.calc-eindblad-kop {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, #1a3d6b 0%, var(--c-blauw) 100%);
    color: #fff;
}

.calc-eindblad-doc {
    margin: 0 0 0.15rem;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.85;
}

.calc-eindblad-titel {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.calc-eindblad-sub {
    margin: 0.25rem 0 0;
    font-size: 0.78rem;
    opacity: 0.9;
}

.calc-eindblad-logo {
    width: 4.5rem;
    height: auto;
    border-radius: 4px;
    background: #fff;
    padding: 0.2rem;
    flex-shrink: 0;
}

.calc-eindblad-meta {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
    gap: 0.65rem 1.25rem;
    margin: 0;
    padding: 0.85rem 1.25rem;
    background: var(--c-kop);
    border-bottom: 1px solid var(--c-rand-licht);
}

.calc-blad-meta-item,
.calc-eindblad-meta-item {
    margin: 0;
    min-width: 0;
}

.calc-blad-meta-item dt,
.calc-eindblad-meta-item dt {
    margin: 0;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-muted);
}

.calc-blad-meta-item dd,
.calc-eindblad-meta-item dd {
    margin: 0.12rem 0 0;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--c-tekst);
    word-break: break-word;
}

.calc-eindblad-tabel-wrap {
    padding: 0 0.5rem;
    overflow-x: auto;
}

.calc-grid--eb {
    min-width: 720px;
    font-size: 0.82rem;
}

.calc-grid--eb .calc-eb-leeg td {
    color: #9aa8b8;
}

.calc-grid--eb .calc-eb-leeg td.num {
    color: #b0bcc9;
}

.calc-grid--eb .calc-eb-ingevuld td:first-child,
.calc-grid--eb .calc-eb-ingevuld td:nth-child(2) {
    font-weight: 600;
}

.calc-grid--eb .calc-som td {
    font-weight: 700;
    border-top: 2px solid var(--c-blauw);
    background: #eef4fc;
    font-size: 0.88rem;
}

.calc-eindblad-onder {
    display: grid;
    grid-template-columns: minmax(14rem, 18rem) 1fr;
    gap: 1.25rem;
    padding: 1rem 1.25rem 1.15rem;
    border-top: 1px solid var(--c-rand-licht);
    background: #fafbfd;
}

.calc-eindblad-totalen {
    background: var(--c-wit);
    border: 1px solid var(--c-rand);
    border-radius: 6px;
    padding: 0.75rem 0.9rem;
    align-self: start;
}

.calc-eindblad-totalen-kop {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--c-blauw);
}

.calc-eindblad-totalen-tabel {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.calc-eindblad-totalen-tabel th {
    text-align: left;
    font-weight: 600;
    color: var(--c-muted);
    padding: 0.28rem 0;
}

.calc-eindblad-totalen-tabel td {
    text-align: right;
    font-weight: 600;
    padding: 0.28rem 0;
    color: var(--c-tekst);
}

.calc-eindblad-totalen-tabel td.num,
.calc-eindblad-totalen-tabel th + td {
    text-align: right;
}

.calc-eindblad-totalen-sub th,
.calc-eindblad-totalen-sub td {
    padding-top: 0.45rem;
    border-top: 1px dashed var(--c-rand);
    font-size: 0.78rem;
}

.calc-eindblad-totalen-bruto td {
    padding-top: 0.55rem;
    border-top: 1px solid var(--c-rand);
}

.calc-eindblad-totalen-netto th,
.calc-eindblad-totalen-netto td {
    font-size: 1rem;
    font-weight: 700;
    color: var(--c-blauw);
    padding-top: 0.35rem;
}

.calc-eindblad-voet {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.45rem;
    min-width: 0;
}

.calc-eindblad-bedrijf {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--c-blauw);
}

.calc-eindblad-disclaimer {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--c-muted);
    max-width: 42rem;
}

/* ── Staartblad (aparte laag onder eindblad) ── */
.calc-staartblad {
    margin: 0 0.65rem 1.25rem;
    background: var(--c-wit);
    border: 1px solid var(--c-rand);
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(22, 74, 133, 0.06);
}

.calc-staartblad-kop {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, #1a3d6b 0%, var(--c-blauw) 100%);
    color: #fff;
}

.calc-staartblad-doc {
    margin: 0 0 0.15rem;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.85;
}

.calc-staartblad-titel {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.calc-staartblad-sub {
    margin: 0.25rem 0 0;
    font-size: 0.78rem;
    opacity: 0.9;
}

.calc-staartblad-logo {
    width: 4.5rem;
    height: auto;
    border-radius: 4px;
    background: #fff;
    padding: 0.2rem;
    flex-shrink: 0;
}

.calc-staartblad-inhoud {
    padding: 0.65rem 1rem;
    background: #fafbfd;
}

.calc-staartblad-voet {
    padding: 0.65rem 1.25rem;
    border-top: 1px solid var(--c-rand-licht);
    background: var(--c-kop);
}

.calc-staartblad-bedrijf {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--c-blauw);
}

.calc-staart-tabel {
    width: 100%;
    max-width: 38rem;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.76rem;
    line-height: 1.25;
}

.calc-staart-tabel th {
    text-align: left;
    font-weight: 600;
    color: var(--c-tekst);
    padding: 0.18rem 0.35rem 0.18rem 0;
    vertical-align: middle;
    width: 42%;
}

.calc-staart-tabel td {
    padding: 0.18rem 0.2rem;
    vertical-align: middle;
}

.calc-staart-tabel td.num {
    text-align: right;
    font-weight: 600;
    white-space: nowrap;
    width: 22%;
}

.calc-staart-pct {
    white-space: nowrap;
    width: 14%;
}

.calc-staart-inp {
    width: 2.75rem;
    text-align: right;
    padding: 0.15rem 0.3rem;
    font-size: 0.74rem;
}

.calc-staart-inp--eur {
    width: 4.75rem;
}

.calc-staart-label {
    width: 100%;
    min-width: 0;
    text-align: left;
    font-size: 0.74rem;
    padding: 0.15rem 0.3rem;
}

.calc-staart-basis {
    width: 100%;
    max-width: 7rem;
    font-size: 0.72rem;
    padding: 0.12rem 0.2rem;
}

.calc-staart-basis-tekst {
    font-size: 0.72rem;
    color: var(--c-muted);
    width: 22%;
}

.calc-staart-manuren {
    font-size: 0.76rem;
    color: var(--c-muted);
}

.calc-staart-rij--info th,
.calc-staart-rij--info td {
    padding-bottom: 0.28rem;
}

.calc-staart-rij--sub th,
.calc-staart-rij--sub td {
    font-weight: 700;
    border-top: 1px solid var(--c-rand);
    padding-top: 0.28rem;
    padding-bottom: 0.12rem;
}

.calc-staart-rij--tussen td {
    border-top: 1px solid var(--c-rand);
    font-weight: 700;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
}

.calc-staart-rij--eind th,
.calc-staart-rij--eind td {
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--c-blauw);
    border-top: 2px solid var(--c-blauw);
    border-bottom: 2px solid var(--c-blauw);
    padding-top: 0.32rem;
    padding-bottom: 0.32rem;
}

.calc-staart-rij--extra th {
    font-weight: 500;
}

.calc-grid {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
    min-width: 1050px;
}

.calc-grid th {
    position: sticky;
    top: 0;
    z-index: 2;
    text-align: left;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-muted);
    padding: 0.45rem 0.4rem;
    background: var(--c-kop);
    border-bottom: 2px solid var(--c-rand);
    white-space: nowrap;
}

.calc-grid td.num { text-align: right; }

.calc-scheiding td {
    height: 0.65rem;
    padding: 0;
    background: var(--c-bg);
    border-top: 2px solid var(--c-rand);
    border-bottom: none;
}

.calc-scheiding:hover td { background: var(--c-bg); }

.calc-kop-rij td {
    padding: 0.45rem 0.5rem;
    font-weight: 700;
    font-size: 0.82rem;
    color: var(--c-blauw);
    background: #eef4fc;
    border-top: 1px solid var(--c-rand);
    border-bottom: 1px solid var(--c-rand-licht);
}

.calc-kop-rij:hover td { background: #e6eef8; }

.calc-rij-helvar td {
    background: #f7f9fc;
}

.calc-rij-helvar:hover td {
    background: #eef3fa;
}

.calc-grid th.calc-kolom-berekend,
.calc-grid td.calc-cel-berekend {
    background: #fafbfc;
    color: var(--c-tekst);
}

.calc-grid td {
    padding: 0.2rem 0.35rem;
    border-bottom: 1px solid var(--c-rand-licht);
    vertical-align: middle;
}

.calc-grid tbody tr:nth-child(even) td:not(.calc-cel-berekend) {
    background: #fafbfc;
}

.calc-grid tbody tr:hover td {
    background: #f0f4fa !important;
}

.calc-grid tbody tr.is-actieve-rij td {
    background: var(--c-geel-mark) !important;
}

.calc-grid tbody tr.is-actieve-rij td.calc-cel-berekend {
    background: #f5f0dc !important;
}

.calc-grid tbody tr.is-ingevuld td.calc-cel-berekend[data-calc-berekend="totaal"] {
    font-weight: 600;
    color: var(--c-blauw);
}

.calc-grid .calc-inp {
    font-size: 0.78rem;
    padding: 0.3rem 0.4rem;
}

.calc-grid .calc-inp--aantal,
.calc-grid .calc-inp--bruto,
.calc-grid .calc-inp--krt,
.calc-grid .calc-inp--normtijd { max-width: 5.5rem; }

.calc-grid .calc-inp--tu { max-width: 6.5rem; min-width: 4.5rem; text-align: left; }

.calc-grid td:first-child,
.calc-grid th:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    background: inherit;
}

.calc-grid th:first-child {
    z-index: 3;
    background: var(--c-kop);
}

.calc-grid tbody tr:nth-child(even) td:first-child { background: #fafbfc; }
.calc-grid tbody tr:hover td:first-child { background: #f0f4fa !important; }
.calc-grid tbody tr.is-actieve-rij td:first-child { background: var(--c-geel-mark) !important; }

.calc-kolom-oms {
    min-width: 12rem;
    max-width: 24rem;
}

.calc-leeg {
    text-align: center;
    padding: 2rem 1rem !important;
    color: var(--c-muted);
    font-style: italic;
    background: var(--c-paneel) !important;
}

.calc-oms-tekst { line-height: 1.25; }

.calc-oms-spec {
    font-size: 0.7rem;
    color: var(--c-muted);
    margin-top: 0.1rem;
}

.calc-type-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    font-weight: 700;
    font-size: 0.72rem;
    color: var(--c-blauw);
    background: var(--c-kop);
    border-radius: 3px;
}

.calc-totaal-rij td {
    position: sticky;
    bottom: 0;
    font-weight: 700;
    background: var(--c-kop) !important;
    border-top: 2px solid var(--c-blauw);
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}

.calc-tu-knop {
    padding: 0.18rem 0.4rem;
    font-size: 0.65rem;
    border: 1px solid var(--c-rand);
    background: var(--c-wit);
    border-radius: 3px;
    color: var(--c-blauw);
    cursor: pointer;
}

.calc-tu-knop:hover { border-color: var(--c-blauw); }

.calc-tu-link {
    font-size: 0.65rem;
    color: var(--c-blauw);
    margin-left: 0.2rem;
}

/* ── Vaste onderbalk (calculatie) ── */
.calc-onderbalk {
    flex-shrink: 0;
    margin: 0 0.65rem 0.65rem;
}

body.calc-weergave-calculatie {
    --calc-onderbalk-h: 7.25rem;
}

body.calc-weergave-calculatie .calc-app {
    padding-bottom: var(--calc-onderbalk-h);
}

body.calc-weergave-calculatie .calc-onderbalk {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 25;
    margin: 0;
    background: var(--c-bg);
    box-shadow: 0 -3px 14px rgba(22, 74, 133, 0.12);
}

body.calc-weergave-calculatie .calc-onderbalk .calc-tabs {
    border-top: 1px solid var(--c-rand);
    border-bottom: none;
}

body.calc-weergave-calculatie .calc-onderbalk .calc-footer {
    margin: 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-bottom: none;
}

/* ── Tabbladen (Excel-stijl) ── */
.calc-tabs {
    flex-shrink: 0;
    background: #e8ecf2;
    border-top: 1px solid var(--c-rand);
    padding: 0.2rem 0.45rem 0.3rem;
}

.calc-onderbalk .calc-tabs[hidden] {
    display: none !important;
}

.calc-tabs-scroll {
    display: flex;
    gap: 0.12rem;
    overflow-x: auto;
    scrollbar-width: thin;
}

.calc-blad-tab {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.02rem;
    min-width: 5rem;
    max-width: 8.5rem;
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--c-rand);
    border-bottom: none;
    border-radius: 4px 4px 0 0;
    background: #f0f4f9;
    cursor: pointer;
    font: inherit;
    text-align: left;
    color: var(--c-tekst);
}

.calc-blad-tab:hover { background: var(--c-wit); }

.calc-blad-tab.is-actief {
    background: var(--c-wit);
    border-color: var(--c-blauw);
    box-shadow: inset 0 2px 0 var(--c-blauw);
    margin-bottom: -1px;
    z-index: 1;
}

.calc-blad-tab.heeft-invoer:not(.is-actief) {
    border-top: 2px solid var(--c-blauw-licht);
}

.calc-blad-tab-code {
    font-weight: 700;
    font-size: 0.76rem;
    color: var(--c-blauw);
}

.calc-blad-tab-naam {
    font-size: 0.62rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 7.5rem;
    opacity: 0.85;
}

.calc-blad-tab-bedrag {
    font-size: 0.6rem;
    font-weight: 600;
    opacity: 0.7;
}

.calc-blad-tab--eb {
    min-width: 5.5rem;
    border-top: 2px solid #1a3d6b;
}

.calc-blad-tab--eb .calc-blad-tab-code {
    color: #1a3d6b;
}

.calc-blad-tab--eb.is-actief {
    border-color: #1a3d6b;
    box-shadow: inset 0 2px 0 #1a3d6b;
}

.calc-toolbar--eindblad .calc-veld--filter,
.calc-toolbar--eindblad .calc-veld--zoek,
.calc-toolbar--eindblad .calc-check,
.calc-toolbar--eindblad #btn-tu-nummers,
.calc-toolbar--eindblad #btn-tu-prijzen,
.calc-toolbar--eindblad #btn-regel-toevoegen,
.calc-toolbar--eindblad #calc-rij-teller {
    display: none !important;
}

/* ── Snelle footer ── */
.calc-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    padding: 0.65rem 1rem;
    margin: 0.5rem 0.65rem 0.65rem;
    background: var(--c-kop);
    border: 1px solid var(--c-rand);
    border-radius: 6px;
    flex-shrink: 0;
}

.calc-onderbalk .calc-footer {
    margin: 0;
}

.calc-footer-item {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
}

.calc-footer-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--c-muted);
    text-transform: uppercase;
}

.calc-footer-item strong {
    font-size: 0.95rem;
    color: var(--c-tekst);
}

.calc-footer-item--totaal strong {
    font-size: 1.05rem;
    color: var(--c-blauw);
}

@media (max-width: 768px) {
    .calc-app { min-height: 100dvh; }
    .calc-werkruimte { min-height: 50vh; }
    .calc-project { flex-direction: column; align-items: stretch; padding: 0.5rem 0.75rem; }
    .calc-project-form { grid-template-columns: 1fr; gap: 0.25rem; }
    .calc-project-regel { grid-template-columns: 5rem minmax(0, 1fr); }
    .calc-project-logo-wrap { justify-content: flex-start; padding-left: 0; }
    .calc-eindblad-onder { grid-template-columns: 1fr; }
    body.calc-weergave-samenvatting .calc-eindblad-onder {
        flex-direction: column;
        align-items: stretch;
    }
    body.calc-weergave-samenvatting .calc-eindblad-voet {
        flex: 1 1 auto;
        text-align: left;
    }
    .calc-eindblad-kop,
    .calc-staartblad-kop { flex-wrap: wrap; }
    .calc-legenda {
        flex-wrap: wrap;
        padding: 0.35rem 0.75rem;
    }
    .calc-legenda-nav {
        width: 100%;
        justify-content: stretch;
    }
    .calc-weergave-knop {
        flex: 1;
        text-align: center;
        padding: 0.3rem 0.35rem;
        font-size: 0.65rem;
    }
}

@media print {
    .calc-app { height: auto; min-height: 0; overflow: visible; }
    .calc-sticky-kop { position: static; box-shadow: none; }
    .calc-tabs, .calc-toolbar, .calc-legenda, .calc-kop, .calc-onderbalk, .no-print { display: none !important; }
    .calc-werkruimte { display: none !important; }
    .calc-footer { display: none !important; }
    body.calc-weergave-calculatie .calc-app { padding-bottom: 0; }
    .calc-project { border-bottom: 2px solid var(--c-blauw); page-break-after: avoid; }
    .calc-project-form { display: none !important; }
    .calc-project-logo-wrap { display: none !important; }
    .calc-eindblad,
    .calc-staartblad {
        display: block !important;
    }
    .calc-eindblad {
        margin: 0;
        border: none;
        border-radius: 0;
        page-break-after: always;
    }
    .calc-staartblad {
        margin: 0;
        border: none;
        border-radius: 0;
        box-shadow: none;
        page-break-before: always;
    }
    .calc-staartblad-kop,
    .calc-eindblad-kop {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .calc-staartblad-inhoud { background: #fff; padding-left: 0; padding-right: 0; }
    .calc-eindblad-tabel-wrap { overflow: visible; padding: 0; }
    .calc-grid-wrap { overflow: visible; }
    .calc-grid th, .calc-totaal-rij td { position: static; box-shadow: none; }
    .calc-grid--eb .calc-eb-leeg { display: none; }
    .calc-eindblad-onder {
        display: flex !important;
        flex-wrap: wrap;
        background: #fff;
        box-shadow: none;
    }
    .calc-staart-inp,
    .calc-staart-label,
    .calc-staart-basis {
        border: none;
        background: transparent;
        padding: 0;
        appearance: none;
    }
}

body.calc-print-eindblad .calc-werkruimte,
body.calc-print-eindblad .calc-footer {
    display: none !important;
}
