/* Aanvullende opmaak voor de airco-calculatie.
   Bouwt voort op app.css (huisstijl Van Dijk: blauw #1455F8, rood #E42332,
   tekst #212934, Inter). Alleen wat app.css nog niet had. */

.demo-banner {
    background: #fff7e6;
    border-bottom: 1px solid #f0d9a8;
    color: #7a5a12;
    padding: 10px 28px;
    font-size: 13.5px;
}

/* ── invoerpaneel: extra veldtypen ── */
.paneel input[type=text] {
    display: block;
    width: 100%;
    margin-top: 4px;
    padding: 8px 10px;
    border: 1px solid var(--lijn);
    border-radius: 7px;
    font: inherit;
    font-size: 14px;
    color: var(--tekst);
    background: #fff;
}
.paneel input[type=text]:focus {
    outline: none;
    border-color: var(--blauw);
    box-shadow: 0 0 0 3px rgba(20, 85, 248, .12);
}
.hoofdknop { margin-top: 6px; }
.tweedeknop {
    width: 100%;
    margin-top: 8px;
    padding: 9px;
    background: #fff;
    color: var(--grijs);
    border: 1px solid var(--lijn);
    border-radius: 8px;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}
.tweedeknop:hover { border-color: var(--blauw); color: var(--blauw); }
.paneel-voet { margin-top: 14px; font-size: 12px; color: var(--grijs); line-height: 1.5; }
.paneel-voet code { background: var(--vlak); padding: 1px 4px; border-radius: 4px; font-size: 11.5px; }

/* ── ruimtekaart ── */
.ruimte {
    background: #fff;
    border: 1px solid var(--lijn);
    border-radius: 10px;
    margin-bottom: 16px;
    overflow: hidden;
}
.ruimte-kop {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--vlak);
    border-bottom: 1px solid var(--lijn);
}
.ruimte-naam {
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    color: var(--tekst);
    border: 1px solid transparent;
    background: transparent;
    border-radius: 6px;
    padding: 4px 8px;
    flex: 1;
    min-width: 0;
}
.ruimte-naam:hover  { border-color: var(--lijn); background: #fff; }
.ruimte-naam:focus  { outline: none; border-color: var(--blauw); background: #fff; }
.ruimte-kw { font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; }

.status { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.status-ok   { background: #e8f5ec; color: #1c7a3c; }
.status-let  { background: #fff4e0; color: #96620d; }
.status-fout { background: #fdeaec; color: #b0202f; }

/* ── invoervelden in de kaart ── */
.velden {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 10px 14px;
    padding: 16px;
}
.velden label { font-size: 12.5px; color: var(--grijs); }
.velden input, .velden select {
    display: block;
    width: 100%;
    margin-top: 3px;
    padding: 7px 9px;
    border: 1px solid var(--lijn);
    border-radius: 6px;
    font: inherit;
    font-size: 13.5px;
    color: var(--tekst);
    background: #fff;
}
.velden input:focus, .velden select:focus {
    outline: none;
    border-color: var(--blauw);
    box-shadow: 0 0 0 3px rgba(20, 85, 248, .12);
}
.vinkjes {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    padding-top: 4px;
    border-top: 1px solid #f0f0f2;
}
.velden label.vink {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--tekst);
    font-size: 13px;
}
.velden label.vink input { width: auto; margin: 0; }

/* ── berekeningsspecificatie ── */
.specificatie { width: 100%; border-collapse: collapse; }
.specificatie td { padding: 7px 16px; font-size: 13.5px; border-top: 1px solid #f2f2f4; }
.specificatie tr:first-child td { border-top: none; }
.specificatie .correctie td { color: var(--grijs); }
.specificatie .uitleg {
    display: block;
    font-size: 11.5px;
    color: #9aa0a8;
    margin-top: 1px;
}
.specificatie .tussen td { font-weight: 600; border-top: 1px solid var(--lijn); }
.specificatie .eind td {
    font-weight: 700;
    font-size: 14.5px;
    border-top: 2px solid var(--tekst);
    background: var(--blauw-licht);
}

/* ── geadviseerde binnenunit ── */
.unit-advies { margin: 12px 16px 4px; border: 1.5px solid var(--blauw); border-radius: 9px; overflow: hidden; }
.unit-kop {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    background: var(--blauw);
    color: #fff;
    padding: 9px 14px;
    font-size: 14px;
}
.unit-advies dl {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 8px 16px;
    padding: 12px 14px 4px;
}
.unit-advies dt { font-size: 11.5px; color: var(--grijs); }
.unit-advies dd { font-size: 13.5px; font-weight: 600; }
.motivatie { padding: 6px 14px 12px; font-size: 12.5px; color: var(--grijs); }

/* ── meldingen ── */
.meldingen { list-style: none; margin: 10px 16px 16px; display: grid; gap: 7px; }
.meldingen li {
    border: 1px solid var(--lijn);
    border-left-width: 3px;
    border-radius: 7px;
    background: #fff;
    padding: 9px 13px;
    font-size: 13px;
    line-height: 1.5;
}
.meldingen .fout   { border-left-color: var(--rood); background: #fffafa; }
.meldingen .let-op { border-left-color: #e8a33d; }
.meldingen .info   { border-left-color: var(--blauw); color: var(--grijs); }

/* ── buitenunitconfiguratie ── */
.buiten {
    background: #fff;
    border: 1px solid var(--lijn);
    border-radius: 10px;
    padding: 18px;
    margin-top: 22px;
}
.buiten h2 { font-size: 17px; font-weight: 600; margin-bottom: 14px; }

.twee-capaciteiten {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 18px;
}
.twee-capaciteiten > div {
    background: var(--vlak);
    border: 1px solid var(--lijn);
    border-radius: 9px;
    padding: 12px 14px;
}
.twee-capaciteiten span   { display: block; font-size: 12px; color: var(--grijs); }
.twee-capaciteiten strong { display: block; font-size: 20px; font-weight: 600; margin: 2px 0; }
.twee-capaciteiten em     { font-style: normal; font-size: 11.5px; color: #9aa0a8; }

.configuratie { border: 1px solid var(--lijn); border-radius: 9px; padding: 14px; margin-bottom: 12px; }
.configuratie.aanbevolen { border-color: var(--blauw); border-width: 1.5px; background: #fafbff; }
.configuratie h3 {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 6px;
    display: flex;
    align-items: baseline;
    gap: 10px;
}
.score { font-size: 11.5px; font-weight: 500; color: #9aa0a8; }
.verdeelwijze { font-size: 12.5px; color: var(--grijs); margin-bottom: 10px; }

.buitenunit { border-top: 1px solid #f0f0f2; padding-top: 10px; margin-top: 10px; }
.buitenunit:first-of-type { border-top: none; padding-top: 0; margin-top: 0; }
.bu-kop { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: 14px; }
.bu-kop span { font-size: 12.5px; color: var(--grijs); }
.bu-ruimtes { font-size: 13px; margin: 3px 0; }
.bu-technisch { font-size: 12px; color: var(--grijs); line-height: 1.6; }
.buitenunit.klein { font-size: 12.5px; color: var(--grijs); padding: 4px 0; }
.buitenunit.klein strong { color: var(--tekst); }

.disclaimer {
    margin-top: 20px;
    padding: 14px 16px;
    background: var(--vlak);
    border: 1px solid var(--lijn);
    border-radius: 9px;
    font-size: 12.5px;
    color: var(--grijs);
    line-height: 1.6;
}

@media (max-width: 1000px) {
    .twee-capaciteiten { grid-template-columns: 1fr; }
    .demo-banner { padding: 10px 16px; }
}

/* ═══════════════════════════════════════════════════════════════════
   Onderdelen die bij de uitbouw naar een volledige applicatie horen:
   navigatie, projectlijst, kaarten, samenvattingsbalk, 3D-plattegrond.
   ═══════════════════════════════════════════════════════════════════ */

.kop a { display: flex; }
.tabs { margin-left: auto; display: flex; gap: 4px; }
.tabs a {
    padding: 7px 14px;
    border-radius: 7px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--grijs);
}
.tabs a:hover { background: var(--vlak); color: var(--tekst); }
.tabs a.aan { background: var(--blauw); color: #fff; }

.breed { max-width: 1240px; margin: 0 auto; padding: 20px 24px 60px; }

.banner-ok, .banner-let {
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 13.5px;
    margin-bottom: 16px;
}
.banner-ok  { background: #e8f5ec; border: 1px solid #b9e0c6; color: #1c7a3c; }
.banner-let { background: #fff7e6; border: 1px solid #f0d9a8; color: #7a5a12; }

.kaart {
    background: #fff;
    border: 1px solid var(--lijn);
    border-radius: 10px;
    padding: 18px;
    margin-bottom: 18px;
}
.kaart h2 { font-size: 16px; font-weight: 600; margin-bottom: 12px; }
.kaart h3 { font-size: 14px; font-weight: 600; margin: 18px 0 8px; }
.hint { font-size: 12.5px; color: var(--grijs); line-height: 1.55; margin-bottom: 10px; }
.hint code, .kaart code { background: var(--vlak); padding: 1px 5px; border-radius: 4px; font-size: 11.5px; }

.sectiekop { display: flex; align-items: center; gap: 14px; margin: 6px 0 12px; }
.sectiekop h2 { font-size: 16px; font-weight: 600; }

/* knoppen */
.knop, .knop-tweede, .knop-klein {
    font: inherit; font-size: 13.5px; font-weight: 600;
    border-radius: 8px; padding: 9px 18px; cursor: pointer; border: 1px solid transparent;
    display: inline-block; text-align: center;
}
.knop { background: var(--blauw); color: #fff; }
.knop:hover { background: var(--blauw-donker); }
.knop-tweede { background: #fff; color: var(--grijs); border-color: var(--lijn); }
.knop-tweede:hover { border-color: var(--blauw); color: var(--blauw); }
.knop-klein { background: #fff; color: var(--blauw); border-color: var(--blauw); font-size: 12.5px; padding: 6px 12px; }
.knop-klein:hover { background: var(--blauw); color: #fff; }
.knoppenrij { display: flex; gap: 10px; margin-top: 14px; }

.tekstknop {
    background: none; border: none; font: inherit; font-size: 12.5px;
    color: var(--grijs); cursor: pointer; padding: 4px 6px; border-radius: 5px;
}
.tekstknop:hover { background: var(--vlak); color: var(--tekst); }
.tekstknop.rood:hover { background: #fdeaec; color: var(--rood); }

/* formulieren */
.rij-formulier { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.rij-formulier label { font-size: 12.5px; color: var(--grijs); flex: 1 1 220px; }
.rij-formulier input {
    display: block; width: 100%; margin-top: 4px; padding: 8px 10px;
    border: 1px solid var(--lijn); border-radius: 7px; font: inherit; font-size: 14px;
}
.velden-net {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px 14px;
}
.velden-net label { font-size: 12.5px; color: var(--grijs); }
.velden-net input, .velden-net select, .velden-net textarea {
    display: block; width: 100%; margin-top: 3px; padding: 7px 9px;
    border: 1px solid var(--lijn); border-radius: 6px; font: inherit; font-size: 13.5px;
    color: var(--tekst); background: #fff;
}
.velden-net .breed-veld { grid-column: 1 / -1; }
.velden-net input:focus, .velden-net select:focus, .velden-net textarea:focus,
.rij-formulier input:focus {
    outline: none; border-color: var(--blauw); box-shadow: 0 0 0 3px rgba(20,85,248,.12);
}

/* projectlijst en tabellen */
.lijst { width: 100%; border-collapse: collapse; }
.lijst th {
    text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--grijs); font-weight: 600; padding: 8px 10px; border-bottom: 1px solid var(--lijn);
}
.lijst td { padding: 9px 10px; font-size: 13.5px; border-bottom: 1px solid #f2f2f4; }
.lijst tr:last-child td { border-bottom: none; }
.lijst .nummer { font-family: ui-monospace, monospace; font-size: 12.5px; color: var(--grijs); }
.projectlink { color: var(--blauw); font-weight: 600; }
.projectlink:hover { text-decoration: underline; }
.lijst .acties { display: flex; gap: 4px; align-items: center; justify-content: flex-end; }
.lijst .acties form { display: inline; }
.lijst .acties a { font-size: 12.5px; color: var(--blauw); padding: 4px 6px; }
.factoren input { width: 90px; text-align: right; padding: 5px 8px; border: 1px solid var(--lijn); border-radius: 5px; font: inherit; font-size: 13px; }
.factoren .standaard { color: #9aa0a8; font-variant-numeric: tabular-nums; }
.factoren tr.afwijkend { background: #fffdf5; }

/* stappen-navigatie */
.stappen {
    display: flex; gap: 2px; flex-wrap: wrap;
    background: #fff; border-bottom: 1px solid var(--lijn);
    padding: 8px 24px;
}
.stappen a {
    display: flex; align-items: center; gap: 7px;
    padding: 6px 12px; border-radius: 7px;
    font-size: 13px; color: var(--grijs);
}
.stappen a span {
    display: inline-flex; align-items: center; justify-content: center;
    width: 20px; height: 20px; border-radius: 50%;
    background: var(--vlak); color: var(--grijs);
    font-size: 11px; font-weight: 700;
}
.stappen a:hover { background: var(--blauw-licht); color: var(--blauw); }
.stappen a:hover span { background: var(--blauw); color: #fff; }

/* blijvende samenvatting */
.samenvatting {
    position: sticky; top: 0; z-index: 4;
    display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
    background: var(--tekst); color: #fff;
    padding: 10px 24px;
}
.samenvatting > div span   { display: block; font-size: 11px; color: rgba(255,255,255,.6); }
.samenvatting > div strong { font-size: 16px; font-weight: 600; }
.samenvatting .acties { margin-left: auto; display: flex; gap: 8px; }
.samenvatting .knop-tweede { background: transparent; color: #fff; border-color: rgba(255,255,255,.35); }
.samenvatting .knop-tweede:hover { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.6); }

.berekenblok { margin-bottom: 18px; }
.berekenblok h3 {
    font-size: 14px; font-weight: 600; margin-bottom: 6px;
    background: var(--blauw-licht); color: var(--blauw);
    padding: 6px 12px; border-radius: 6px;
}

/* 3D-plattegrond */
.plattegrond { }
.pg-bediening {
    display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
    margin-bottom: 10px; font-size: 12.5px; color: var(--grijs);
}
.pg-bediening label { display: flex; align-items: center; gap: 8px; }
.pg-bediening input[type=range] { width: 130px; }
.pg-legenda { display: flex; align-items: center; gap: 5px; margin-left: auto; }
.pg-legenda i { width: 18px; height: 10px; border-radius: 2px; display: inline-block; }
.pg-doek {
    background: linear-gradient(#fbfcfe, #eef1f6);
    border: 1px solid var(--lijn); border-radius: 9px;
    overflow: hidden;
}
.pg-doek svg { display: block; width: 100%; height: auto; }

@media (max-width: 800px) {
    .tabs { width: 100%; margin-left: 0; overflow-x: auto; }
    .samenvatting { gap: 14px; padding: 10px 16px; }
    .samenvatting .acties { width: 100%; margin-left: 0; }
    .breed { padding: 16px; }
    .stappen { padding: 8px 16px; }
}
