:root {
  --calq-green: #164d31;
  --calq-green-light: #1f6b42;
  --calq-green-dark: #0f3a24;
  --calq-accent-soft: #eef4f0;
  --calq-accent-muted: #cfe0d6;
  --calq-accent-strong: #e3eee8;
  --calq-accent-pale: #f1f6f3;
  --calq-nav-tier1-bg: #cfe0d6;
  --calq-nav-tier1-text: #123d28;
  --calq-nav-tier2-bg: color-mix(in srgb, var(--calq-nav-tier1-bg) 50%, #ffffff);
  --calq-nav-tier2-text: #2d6b47;
  --calq-nav-active-bg: #fffbeb;
  --calq-nav-active-border: #fbbf24;
  --calq-nav-active-text: #92400e;
  --calq-bg: #f4f6f8;
  --calq-surface: #ffffff;
  --calq-input: #ffffff;
  --calq-input-border: #cdd8d1;
  --calq-calc: #f5f7f9;
  --calq-calc-border: #e2e8ee;
  --calq-linked: #eef3ff;
  --calq-linked-border: #c7d9f5;
  --calq-border: #e4e8ed;
  --calq-border-strong: #d3dae1;
  --calq-border-subtle: #eef1f4;
  --calq-text: #1a202c;
  --calq-heading: #0f3a24;
  --calq-muted: #5f6b7a;
  --calq-faint: #8b95a5;
  --calq-sidebar-width: 248px;
  --calq-font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
  --calq-radius-lg: 14px;
  --calq-radius: 12px;
  --calq-radius-sm: 8px;
  --calq-radius-pill: 999px;
  --calq-shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
  --calq-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  --calq-shadow-md: 0 4px 14px rgba(15, 23, 42, 0.07);
  --calq-shadow-lg: 0 8px 24px rgba(12, 35, 64, 0.08);
  --calq-head-rule: 1px solid var(--calq-border);
  --calq-eyebrow-spacing: 0.12em;
  --calq-space-compact: 0.35rem;
  --calq-space-comfort: 0.75rem;
  /* Excel-paradigma: invoer / berekend / eindresultaat */
  --calq-input-bg:        #fffbeb;
  --calq-calc-bg:         #f1f5f9;
  --calq-calc-border:     #e2e8f0;
  --calq-result-bg:       #ffedd5;
  --calq-result-text:     #9a3412;
  --calq-result-border:   #fdba74;
  --calq-result-weight:   600;
  /* Accordion step headers (calq-step / calq-vo-step) */
  --calq-step-head-bg: #e8f0eb;
  --calq-step-head-bg-hover: #dce8e0;
  --calq-step-head-bg-open: #d4e4d9;
  --calq-step-head-border: #b8cfc4;
  --calq-step-head-accent: #1a6b42;
}

[hidden] { display: none !important; }

* { box-sizing: border-box; }
body.calq-body { margin: 0; font-family: var(--calq-font); background: var(--calq-bg); color: var(--calq-text); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
a { color: var(--calq-green-light); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ——— App shell: contextbalk full-width, sidebar in kq-app-shell ——— */
.calq-app {
  display: flex;
  flex-direction: column;
  /* Vaste viewporthoogte: de contextbalk (navigatiebalk) blijft bovenaan staan,
     terwijl zijmenu en paginacontent elk hun eigen interne scroll krijgen. */
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
}
.kq-app-shell .calq-app-main,
.kq-app-shell .kq-main {
  margin-left: 0;
}
.calq-app-main {
  flex: 1;
  min-width: 0;
  margin-left: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.calq-app > .kq-context-bar {
  flex-shrink: 0;
}

body.calq-body--standalone .calq-app-main {
  margin-left: 0;
  max-width: none;
  width: 100%;
  margin-inline: 0;
}

.calq-topbar--standalone {
  border-bottom: 1px solid var(--calq-border);
  gap: 1rem;
}

.calq-standalone-back {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--calq-green-light);
  white-space: nowrap;
}

.calq-standalone-back:hover {
  text-decoration: none;
  color: var(--calq-green);
}

body.calq-body--standalone .calq-footer {
  justify-content: center;
  gap: 1.5rem;
}

.calq-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: var(--calq-sidebar-width);
  background: #fff;
  border-right: 1px solid var(--calq-border);
  display: flex;
  flex-direction: column;
  z-index: 120;
  overflow: hidden;
}
.calq-sidebar-brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 1rem 0.85rem;
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--calq-border);
  flex-shrink: 0;
}
.calq-sidebar-brand:hover { text-decoration: none; background: #f8fafc; }
.calq-sidebar-logo { flex-shrink: 0; border-radius: 7px; }
.calq-sidebar-brand-text { min-width: 0; }
.calq-sidebar-brand-title {
  display: block;
  font-weight: 700;
  font-size: 0.875rem;
  line-height: 1.25;
  color: var(--calq-green);
}
.calq-sidebar-brand-sub { font-size: 0.7rem; color: var(--calq-muted); }

.calq-sidebar-nav {
  flex: 1;
  overflow-y: auto;
  padding: 0.65rem 0.5rem;
}
.calq-sidebar-fixed {
  flex-shrink: 0;
  border-bottom: 1px solid var(--calq-border);
  background: #fff;
}
.calq-sidebar-nav--primary {
  flex: none;
  overflow: visible;
  padding: 0.65rem 0.5rem 0.25rem;
}
.calq-sidebar-preview {
  padding: 0 0.65rem 0.45rem;
}
.calq-sidebar-preview-btn {
  display: block;
  width: 100%;
  padding: 0.42rem 0.55rem;
  border: 1px dashed var(--calq-border);
  border-radius: 8px;
  background: #fff;
  color: #64748b;
  font-size: 0.74rem;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
}
.calq-sidebar-preview-btn:hover {
  border-color: var(--calq-green-light);
  color: var(--calq-green);
  background: #f8fafc;
}
.calq-sidebar-preview-btn.is-active {
  border-style: solid;
  border-color: #fbbf24;
  background: #fffbeb;
  color: #92400e;
}
.calq-preview-banner {
  margin: 0 0 0.85rem;
  padding: 0.55rem 0.85rem;
  border: 1px solid #fde68a;
  border-radius: 8px;
  background: #fffbeb;
  color: #92400e;
  font-size: 0.82rem;
  font-weight: 600;
}
.calq-sidebar-account {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.5rem 0.85rem 0.6rem;
  font-size: 0.8rem;
  background: #f8fafc;
  border-top: 1px solid var(--calq-border-subtle, #e2e8f0);
}
.calq-sidebar-modules-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
.calq-sidebar-nav--modules {
  flex: none;
  overflow: visible;
  padding: 0.5rem 0.5rem 0.75rem;
}
.calq-sidebar-nav--modules::before {
  content: "Modules";
  display: block;
  margin: 0 0.35rem 0.45rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
}
.calq-sidebar-section { margin-bottom: 0.85rem; }
.calq-sidebar-section.is-collapsible.is-collapsed .calq-sidebar-section__body { display: none; }

/* ——— Menu-hiërarchie: L1 categorie (100%) → L2 hoofdstuk/item (75%) → actief (geel) ——— */
.calq-sidebar-section[data-nav-group] {
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.calq-sidebar-section[data-nav-group] .calq-sidebar-section__body {
  padding: 0.3rem 0.2rem 0.45rem;
}
.calq-sidebar-section[data-nav-group] .calq-sidebar-section__toggle {
  margin: 0;
  padding: 0.42rem 0.65rem;
  background: var(--calq-nav-tier1-bg);
  color: var(--calq-nav-tier1-text);
  border-radius: 8px 8px 0 0;
  border-bottom: 1px solid color-mix(in srgb, var(--calq-nav-tier1-bg) 55%, var(--calq-green));
  font-size: 0.78rem;
  font-weight: 700;
}
.calq-sidebar-section[data-nav-group].is-collapsed .calq-sidebar-section__toggle {
  border-radius: 8px;
  border-bottom: 0;
}
.calq-sidebar-section[data-nav-group] .calq-sidebar-section__toggle:hover {
  background: color-mix(in srgb, var(--calq-nav-tier1-bg) 82%, var(--calq-green));
}
.calq-sidebar-section.is-active-category[data-nav-group] .calq-sidebar-section__toggle {
  box-shadow: inset 4px 0 0 var(--calq-green);
}
.calq-sidebar-section[data-nav-group] .calq-sidebar-section__title {
  color: inherit;
  text-transform: none;
  letter-spacing: normal;
  font-size: inherit;
  font-weight: inherit;
}
.calq-sidebar-section[data-nav-group] .calq-sidebar-section__chevron {
  color: var(--calq-green-light);
}
.calq-sidebar-section.is-active-category[data-nav-group] .calq-sidebar-section__title,
.calq-sidebar-section.is-active-category[data-nav-group] .calq-sidebar-section__chevron {
  color: var(--calq-green);
}

.calq-sidebar-section__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0 0 0.35rem;
  padding: 0.35rem 0.5rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.calq-sidebar-section__toggle:hover { background: #f1f5f9; }
.calq-sidebar-section.is-active-category .calq-sidebar-section__title { color: var(--calq-green); }
.calq-sidebar-section.is-active-category .calq-sidebar-section__chevron { color: var(--calq-green-light); }
.calq-sidebar-section__title {
  margin: 0 0 0.35rem;
  padding: 0 0.5rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--calq-green);
}
.calq-sidebar-section__toggle .calq-sidebar-section__title {
  margin: 0;
  padding: 0;
  color: inherit;
}
.calq-sidebar-section__chevron {
  flex-shrink: 0;
  width: 0.45rem;
  height: 0.45rem;
  margin-left: 0.35rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  color: var(--calq-muted);
  transform: rotate(45deg);
  transition: transform 0.15s ease;
}
.calq-sidebar-section.is-collapsible:not(.is-collapsed) .calq-sidebar-section__chevron {
  transform: rotate(-135deg);
  margin-top: 0.2rem;
}
.calq-sidebar-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
.calq-sidebar-menu li { min-width: 0; }
.calq-sidebar-link {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
  padding: 0.45rem 0.65rem;
  border-radius: 6px;
  font-size: 0.875rem;
  color: var(--calq-text);
  text-decoration: none;
  line-height: 1.35;
}
.calq-sidebar-link__text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}
.calq-sidebar-link:hover:not(.active) {
  background: #f1f5f9;
  text-decoration: none;
}
.calq-sidebar-link.active {
  background: var(--calq-nav-active-bg);
  color: var(--calq-nav-active-text);
  font-weight: 600;
  border: 1px solid var(--calq-nav-active-border);
  box-shadow: none;
}
.calq-sidebar-link.in-category:not(.active) { color: var(--calq-nav-tier2-text); }

/* L2: directe categorie-items — zelfde blok als hoofdstuk-toggle (Techniek 51, Financieel, …) */
.calq-sidebar-section[data-nav-group] .calq-sidebar-menu:not(.calq-sidebar-menu--nested) > li,
.calq-sidebar-nav--primary .calq-sidebar-menu > li:has(> .calq-sidebar-link--l2) {
  margin: 0.2rem 0.15rem 0;
}
.calq-sidebar-nav--primary .calq-sidebar-menu > li:has(> .calq-sidebar-link--l2) {
  padding-left: 0.55rem;
}
.calq-sidebar-link--l2 {
  padding: 0.38rem 0.55rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.3;
}
.calq-sidebar-link--l2:not(.active) {
  background: var(--calq-nav-tier2-bg);
  color: var(--calq-nav-tier2-text);
  border: 0;
}
.calq-sidebar-link--l2:not(.active):hover {
  background: color-mix(in srgb, var(--calq-nav-tier2-bg) 75%, var(--calq-nav-tier1-bg));
  color: var(--calq-green);
  text-decoration: none;
}
.calq-sidebar-link--l2.in-category:not(.active) {
  color: var(--calq-green);
  background: color-mix(in srgb, var(--calq-nav-tier2-bg) 65%, var(--calq-nav-tier1-bg));
  font-weight: 700;
  box-shadow: inset 3px 0 0 var(--calq-green-light);
}

/* Owner-markering voor platformbreed uitgeschakelde modules */
.calq-sidebar-badge-off {
  display: inline-block;
  flex-shrink: 0;
  margin-left: 0;
  padding: 0 0.3rem;
  border-radius: 4px;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #9a3412;
  background: #ffedd5;
  vertical-align: middle;
}

.calq-sidebar-chapter {
  margin: 0.2rem 0.15rem 0;
}
.calq-sidebar-chapter.is-collapsible.is-collapsed .calq-sidebar-chapter__body {
  display: none;
}
.calq-sidebar-chapter__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0;
  padding: 0.38rem 0.55rem;
  border: 0;
  border-radius: 6px;
  background: var(--calq-nav-tier2-bg);
  color: var(--calq-nav-tier2-text);
  font: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
  text-align: left;
}
.calq-sidebar-chapter__toggle:hover {
  background: color-mix(in srgb, var(--calq-nav-tier2-bg) 75%, var(--calq-nav-tier1-bg));
  color: var(--calq-green);
}
.calq-sidebar-chapter.is-active .calq-sidebar-chapter__toggle {
  color: var(--calq-green);
  background: color-mix(in srgb, var(--calq-nav-tier2-bg) 65%, var(--calq-nav-tier1-bg));
  font-weight: 700;
  box-shadow: inset 3px 0 0 var(--calq-green-light);
}
.calq-sidebar-chapter.is-active .calq-sidebar-chapter__toggle:hover {
  background: color-mix(in srgb, var(--calq-nav-tier2-bg) 55%, var(--calq-nav-tier1-bg));
}
.calq-sidebar-chapter__label {
  min-width: 0;
}
.calq-sidebar-chapter__label--empty {
  display: block;
  padding: 0.38rem 0.55rem;
  margin: 0.2rem 0.15rem 0;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--calq-nav-tier2-text);
  background: var(--calq-nav-tier2-bg);
  line-height: 1.3;
  opacity: 0.75;
}
.calq-sidebar-chapter.is-collapsible:not(.is-collapsed) .calq-sidebar-chapter__toggle .calq-sidebar-section__chevron {
  transform: rotate(-135deg);
  margin-top: 0.15rem;
}
.calq-sidebar-chapter .calq-sidebar-section__chevron {
  color: var(--calq-green-light);
}
.calq-sidebar-chapter.is-active .calq-sidebar-section__chevron {
  color: var(--calq-green);
}
.calq-sidebar-menu--nested {
  margin: 0.1rem 0 0.2rem;
  padding: 0.1rem 0;
}
.calq-sidebar-link--nested {
  padding: 0.35rem 0.55rem 0.35rem 0.85rem;
  font-size: 0.8125rem;
}
.calq-sidebar-link--nested:not(.active) {
  color: var(--calq-text);
}
.calq-sidebar-link--nested:not(.active):hover {
  background: #f8fafc;
}

.calq-sidebar-foot {
  display: none;
}
.calq-sidebar-user {
  color: var(--calq-muted);
  font-weight: 600;
  text-decoration: none;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calq-sidebar-user:hover { color: var(--calq-text, #334155); text-decoration: underline; }
.calq-sidebar-logout {
  flex-shrink: 0;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--calq-green-light);
  text-decoration: none;
}
.calq-sidebar-logout:hover {
  color: var(--calq-green);
  text-decoration: underline;
}

.calq-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.45rem 0.85rem;
  background: var(--calq-surface);
  border-bottom: var(--calq-head-rule);
  position: sticky;
  top: 0;
  z-index: 90;
}
.calq-topbar-start {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex: 1;
}
.calq-topbar-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.calq-topbar-actions .calq-sheet-export-excel {
  font-weight: 600;
  min-width: 3.25rem;
}
.calq-topbar-actions .calq-sheet-export-excel:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.calq-topbar-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--calq-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.calq-sidebar-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0.4rem;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  flex-shrink: 0;
}
.calq-sidebar-toggle__bar {
  display: block;
  height: 2px;
  background: var(--calq-text);
  border-radius: 1px;
}
.calq-sidebar-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.35);
  z-index: 110;
}
/* Niveau-1 hamburger staat in de KOPPELQ-contextbalk (UI-standaard §6).
   Verberg 'm wanneer het menu is vastgezet (gepind) — dan is de sidebar al open. */
html.calq-nav-pinned .kq-context-bar__menu { display: none; }

.calq-main {
  flex: 1;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 1rem 1.25rem;
}
.calq-footer {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 1rem 1.25rem 1.5rem;
  font-size: 0.75rem;
  color: var(--calq-muted);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.calq-panel { background: var(--calq-surface); border: 1px solid var(--calq-border); border-radius: var(--calq-radius); padding: 1.25rem 1.35rem; margin-bottom: 1rem; box-shadow: var(--calq-shadow); }
.calq-panel h1 { margin: 0 0 0.5rem; font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; color: var(--calq-heading); }
.calq-lead { color: var(--calq-muted); margin-top: 0; line-height: 1.6; }
.calq-muted { color: var(--calq-muted); font-size: 0.875rem; }
.calq-eyebrow { display: block; margin: 0 0 0.4rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: var(--calq-eyebrow-spacing); text-transform: uppercase; color: var(--calq-faint); }

.calq-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.55rem 1.05rem; border-radius: var(--calq-radius-sm); border: 1px solid var(--calq-border-strong); background: #fff; cursor: pointer; font-family: inherit; font-size: 0.875rem; font-weight: 500; color: var(--calq-green); text-decoration: none; transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease; }
.calq-btn:hover { border-color: var(--calq-accent-muted); box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08); text-decoration: none; }
.calq-btn.calq-btn-primary,
.calq-btn-primary {
  background: var(--calq-green);
  color: #fff;
  border-color: var(--calq-green);
  font-weight: 600;
}
.calq-btn.calq-btn-primary:hover,
.calq-btn-primary:hover {
  background: var(--calq-green-light);
  border-color: var(--calq-green-light);
  box-shadow: 0 2px 6px rgba(22, 77, 49, 0.22);
}
.calq-btn-pdf {
  background: var(--calq-green);
  color: #fff;
  border-color: var(--calq-green);
  font-weight: 600;
  min-width: 3.25rem;
}
.calq-btn-pdf:hover {
  background: var(--calq-green-light);
  border-color: var(--calq-green-light);
  text-decoration: none;
}
.calq-btn-ghost { background: transparent; border-color: transparent; }
.calq-btn-ghost:hover { background: var(--calq-accent-soft); box-shadow: none; }
.calq-btn-sm { padding: 0.3rem 0.65rem; font-size: 0.8rem; }

.calq-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; margin-top: 1rem; }
.calq-table th, .calq-table td { border: 1px solid var(--calq-border); padding: 0.55rem 0.7rem; text-align: left; }
.calq-table th { background: var(--calq-accent-soft); color: var(--calq-heading); font-weight: 600; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; }

.calq-calc-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
.calq-calc-table th, .calq-calc-table td { border: 1px solid var(--calq-border); padding: 0.35rem 0.5rem; }
.calq-calc-table th { background: #f1f5f9; font-weight: 500; }
.calq-calc-table input, .calq-calc-table select { width: 100%; border: 0; background: var(--calq-input); padding: 0.35rem; text-align: right; font: inherit; }
.calq-calc-table td:first-child input { text-align: left; }

.calq-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-top: 1rem; }
.calq-dashboard-categories { display: flex; flex-direction: column; gap: 1.5rem; margin-top: 1rem; }
.calq-dashboard-category__title {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #123d28;
  border-bottom: var(--calq-head-rule);
  padding-bottom: 0.35rem;
}
.calq-dashboard-category .calq-grid-3 { margin-top: 0.5rem; }
.calq-dashboard-category .calq-card h3 { margin: 0 0 0.35rem; font-size: 1rem; }

/* ——— Dashboard (presentatiemodus) ——— */
.calq-main--dashboard {
  max-width: 1360px;
  padding: 0.65rem 0.85rem 0.85rem;
}
.calq-dashboard__projects {
  border: 0;
  box-shadow: none;
  background: transparent;
  padding: 0;
  margin-bottom: 0.65rem;
}
.calq-dashboard__projects h1 {
  margin: 0 0 0.3rem;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--calq-green);
}
.calq-dashboard__projects .calq-lead {
  margin: 0 0 0.65rem;
  font-size: 0.875rem;
  max-width: 52rem;
}
.calq-dashboard__projects .calq-inline-form {
  margin: 0 0 0.6rem;
  padding: 0.6rem 0.75rem;
  background: var(--calq-surface);
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius-sm);
  box-shadow: var(--calq-shadow);
}
.calq-dashboard__projects .calq-inline-form input,
.calq-dashboard__projects .calq-inline-form select {
  padding: 0.4rem 0.55rem;
  border-radius: var(--calq-radius-sm);
  border-color: var(--calq-border);
  font-size: 0.8125rem;
}
.calq-dashboard__projects .calq-btn-primary {
  font-weight: 600;
  padding: 0.45rem 1.15rem;
  box-shadow: 0 1px 3px rgba(22, 77, 49, 0.22);
}
.calq-table-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  white-space: nowrap;
}
.calq-table-actions__form { margin: 0; display: inline; }

.calq-project-edit-row td {
  padding: 0.75rem 1rem 1rem;
  background: #f8fafc;
  border-top: 1px solid #eef2f7;
}
.calq-project-edit-form__grid {
  display: grid;
  grid-template-columns: minmax(7rem, 10rem) minmax(12rem, 1fr) minmax(8rem, 12rem) minmax(8rem, 10rem);
  gap: 0.65rem 0.85rem;
  align-items: end;
}
.calq-project-edit-form__grow { grid-column: span 1; }
.calq-project-edit-form .calq-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0;
}
.calq-project-edit-form .calq-field__label {
  font-size: 0.75rem;
  color: var(--calq-muted);
}
.calq-project-edit-form input,
.calq-project-edit-form select {
  width: 100%;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  font: inherit;
  background: #fff;
}
.calq-project-edit-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
@media (max-width: 900px) {
  .calq-project-edit-form__grid {
    grid-template-columns: 1fr 1fr;
  }
}
.calq-flash {
  margin: 0 0 0.75rem;
  padding: 0.5rem 0.65rem;
  border-radius: 4px;
  font-size: 0.85rem;
}
.calq-flash--ok { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.calq-flash--err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.calq-main--dashboard .calq-table {
  margin-top: 0;
  font-size: 0.8125rem;
  background: var(--calq-surface);
  border-radius: var(--calq-radius-sm);
  overflow: hidden;
  box-shadow: var(--calq-shadow-md);
  border: 1px solid var(--calq-border);
}
.calq-main--dashboard .calq-table th,
.calq-main--dashboard .calq-table td {
  border: 0;
  border-bottom: 1px solid var(--calq-border-subtle);
  padding: 0.42rem 0.65rem;
}
.calq-main--dashboard .calq-table th {
  background: var(--calq-accent-strong);
  color: #123d28;
  font-weight: 600;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.calq-main--dashboard .calq-table tbody tr:last-child td {
  border-bottom: 0;
}
.calq-main--dashboard .calq-table tbody tr:hover td {
  background: var(--calq-accent-soft);
}
.calq-main--dashboard .calq-dashboard-categories {
  gap: 0.85rem;
  margin-top: 0.65rem;
}
.calq-main--dashboard .calq-dashboard-category__title {
  margin: 0 0 0.4rem;
  color: #123d28;
  font-size: 0.72rem;
  border-bottom: var(--calq-head-rule);
  padding-bottom: 0.35rem;
}
.calq-main--dashboard .calq-grid-3 {
  gap: 0.6rem;
  margin-top: 0.35rem;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.calq-main--dashboard .calq-card {
  background: var(--calq-surface);
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius-sm);
  padding: 0.7rem 0.8rem;
  box-shadow: var(--calq-shadow);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.calq-main--dashboard .calq-card:hover {
  border-color: var(--calq-accent-muted);
  box-shadow: var(--calq-shadow-md);
}
.calq-main--dashboard .calq-card h3 {
  margin: 0 0 0.28rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #123d28;
}
.calq-main--dashboard .calq-card p {
  margin: 0;
  font-size: 0.76rem;
  line-height: 1.42;
  color: var(--calq-muted);
}
.calq-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin: 1rem 0; }
.calq-card { background: var(--calq-surface); border: 1px solid var(--calq-border); border-radius: var(--calq-radius-sm); padding: 1.1rem 1.2rem; box-shadow: var(--calq-shadow-xs); transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.calq-card:hover { border-color: var(--calq-border-strong); box-shadow: var(--calq-shadow-md); }
.calq-card h3 { color: var(--calq-heading); letter-spacing: -0.01em; }
.calq-card-link { display: block; color: inherit; transition: box-shadow .15s; }
.calq-card-link:hover { box-shadow: var(--calq-shadow-md); text-decoration: none; }
.calq-card-cta { font-size: 0.8rem; color: var(--calq-green-light); font-weight: 600; }

.calq-badge { display: inline-block; background: var(--calq-accent-soft); color: var(--calq-green); padding: 0.18rem 0.6rem; border-radius: var(--calq-radius-pill); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.02em; }
.calq-notice { background: var(--calq-accent-soft); border: 1px solid var(--calq-accent-muted); border-radius: var(--calq-radius-sm); padding: 0.6rem 0.85rem; font-size: 0.8125rem; margin-top: 0.75rem; }

.calq-split { display: grid; grid-template-columns: 1fr 280px; gap: 1rem; }
.calq-result-box { background: #f8fafc; border: 1px solid var(--calq-border); padding: 1rem; border-radius: 8px; }
.calq-result-box dl { margin: 0; }
.calq-result-box dt { font-size: 0.75rem; color: var(--calq-muted); margin-top: 0.5rem; }
.calq-result-box dd { margin: 0; font-weight: 600; font-size: 1rem; }
.calq-result-highlight { background: #ecfdf5; border-color: #6ee7b7; }
.calq-big { font-size: 1.75rem; font-weight: 700; margin: 0.25rem 0; }

.calq-module-tabs { display: inline-flex; flex-wrap: wrap; gap: 0.125rem 0.25rem; margin: 1rem 0; padding: 0.25rem; background: var(--calq-bg); border: 1px solid var(--calq-border); border-radius: var(--calq-radius-sm); }
.calq-module-tabs button { padding: 0.4rem 0.85rem; border: 1px solid transparent; background: transparent; border-radius: calc(var(--calq-radius-sm) - 2px); cursor: pointer; font: inherit; font-size: 0.8125rem; font-weight: 500; color: var(--calq-muted); transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
.calq-module-tabs button:hover { color: var(--calq-text); background: rgba(255, 255, 255, 0.7); }
.calq-module-tabs button.active {
  background: #fff;
  border-color: var(--calq-border-strong);
  color: var(--calq-green);
  font-weight: 600;
  box-shadow: var(--calq-shadow-xs);
}

.calq-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin: 1rem 0; }
.calq-form-grid label, .calq-field { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.875rem; }
.calq-form-grid input, .calq-field input, .calq-field select { padding: 0.5rem; border: 1px solid var(--calq-border); border-radius: 4px; background: var(--calq-input); }

.calq-project-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.calq-actions, .calq-actions-inline { margin-top: 1rem; display: flex; gap: 0.5rem; flex-wrap: wrap; }
.calq-inline-form { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0; align-items: center; }
.calq-inline-form input, .calq-inline-form select { padding: 0.45rem 0.6rem; border: 1px solid var(--calq-border); border-radius: 4px; }

.hidden { display: none !important; }
.calq-table-scroll { overflow-x: auto; }

.calq-login-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--calq-bg); }
.calq-login-card { background: #fff; padding: 2rem; border-radius: 12px; width: min(360px, 92vw); box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.calq-login-card h1 { margin: 0 0 0.25rem; color: var(--calq-green); }
.calq-login-card label { display: block; margin: 1rem 0 0.25rem; font-size: 0.875rem; }
.calq-login-card input { width: 100%; padding: 0.5rem; border: 1px solid var(--calq-border); border-radius: 4px; }
.calq-login-card button { width: 100%; margin-top: 1.25rem; }
.calq-login-card--microsoft { width: min(400px, 92vw); }
.calq-btn-microsoft {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  width: 100%;
  margin-top: 1.5rem;
  padding: 0.65rem 1rem;
  border: 1px solid #8c8c8c;
  border-radius: 4px;
  background: #fff;
  color: #5e5e5e;
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.calq-btn-microsoft:hover {
  background: #f3f3f3;
  border-color: #666;
  color: #333;
  text-decoration: none;
}
.calq-btn-microsoft__icon { flex-shrink: 0; }
.calq-login-card--microsoft .calq-hint { margin-top: 1.25rem; line-height: 1.45; }
.calq-login-steps {
  margin: 1rem 0 0;
  padding-left: 1.2rem;
  font-size: 0.875rem;
  color: var(--calq-text);
  line-height: 1.5;
}
.calq-login-steps li + li { margin-top: 0.45rem; }
.calq-login-troubleshoot {
  margin-top: 1rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--calq-border-subtle);
  border-radius: var(--calq-radius-sm);
  background: var(--calq-accent-soft);
  font-size: 0.8125rem;
  line-height: 1.45;
  text-align: left;
}
.calq-login-troubleshoot summary { cursor: pointer; font-weight: 600; }
.calq-login-troubleshoot p { margin: 0.5rem 0 0; }
.calq-login-troubleshoot code { font-size: 0.75rem; word-break: break-all; }
.calq-login-legal { margin-top: 1.25rem; font-size: 0.78rem; color: #64748b; }
.calq-login-legal a { color: #64748b; text-decoration: underline; }
.calq-login-testaccess {
  margin-top: 1rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--calq-border-subtle);
  border-radius: var(--calq-radius-sm);
  background: #f8fafc;
  font-size: 0.8125rem;
  line-height: 1.45;
  text-align: left;
}
.calq-login-testaccess summary { cursor: pointer; font-weight: 600; }
.calq-login-testform label { margin: 0.75rem 0 0.25rem; }
.calq-login-testform button { margin-top: 1rem; }
.calq-login-passwordform { margin-top: 1rem; text-align: left; }
.calq-block--danger { border-color: #fecaca; }
.calq-block--danger .calq-block__head { background: #fef2f2; color: #b91c1c; }
.calq-btn-danger { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.calq-btn-danger:hover { background: #991b1b; border-color: #991b1b; color: #fff; }
.calq-account-delete { margin-top: 0.75rem; }
.calq-empty-state {
  margin-top: 1.25rem;
  padding: 1.5rem;
  border: 1px dashed var(--calq-border);
  border-radius: var(--calq-radius-sm, 8px);
  background: #f8fafc;
}
.calq-empty-state h2 { margin: 0 0 0.5rem; color: var(--calq-green); }
.calq-empty-state p { margin: 0 0 1rem; color: #475569; max-width: 56ch; }
.calq-empty-state__form { margin-bottom: 1rem; }
.calq-empty-state__steps { margin: 0; padding-left: 1.25rem; color: #475569; font-size: 0.875rem; }
.calq-empty-state__steps li + li { margin-top: 0.35rem; }
.calq-error { color: #b91c1c; font-size: 0.875rem; }
.calq-success { color: #166534; font-size: 0.875rem; margin: 0.75rem 0; }
.calq-admin-invite-url code { display: block; margin-top: 0.5rem; padding: 0.65rem; background: #f8fafc; border: 1px solid var(--calq-border); word-break: break-all; font-size: 0.8125rem; }

.calq-admin-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 1rem 0 1.25rem;
}
.calq-admin-stat {
  min-width: 9rem;
  padding: 0.85rem 1rem;
  background: #fff;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
}
.calq-admin-stat__value {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--calq-green, #164d31);
  line-height: 1.1;
}
.calq-admin-stat__label {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: #64748b;
}
.calq-admin-role-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.875rem;
  color: #334155;
}
.calq-admin-role-list li + li { margin-top: 0.35rem; }
.calq-admin-table .calq-admin-actions {
  white-space: nowrap;
}
.calq-admin-inline-form,
.calq-admin-role-form {
  display: inline;
}
.calq-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.calq-btn--small {
  padding: 0.35rem 0.6rem;
  font-size: 0.75rem;
}
.calq-btn--danger {
  color: #b91c1c;
  border-color: #fecaca;
  background: #fff;
}
.calq-btn--danger:hover {
  background: #fef2f2;
}
.calq-admin-badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.1rem 0.35rem;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #164d31;
  background: #dcfce7;
  border-radius: 999px;
}
.calq-admin-role-form select {
  font-size: 0.8125rem;
  padding: 0.25rem 0.4rem;
}
.calq-readonly-banner {
  margin: 0 0 0.75rem;
  padding: 0.55rem 0.85rem;
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  font-size: 0.8125rem;
  border-radius: 4px;
}
.calq-admin-back { margin: 0 0 0.75rem; font-size: 0.875rem; }
.calq-admin-link {
  margin-left: 0.35rem;
  font-size: 0.8125rem;
  color: var(--calq-green, #164d31);
}
.calq-admin-badge--muted {
  color: #475569;
  background: #e2e8f0;
}
.calq-admin-modules__toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
}
.calq-admin-modules__hint { margin: 0 0 1rem; }
.calq-admin-module-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.calq-admin-module-grid.is-disabled {
  opacity: 0.55;
}
.calq-admin-module-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.75rem;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
}
.calq-admin-module-card input { margin-bottom: 0.15rem; }
.calq-admin-module-card__title { font-weight: 600; font-size: 0.875rem; }
.calq-admin-module-card__desc { font-size: 0.75rem; color: #64748b; line-height: 1.35; }
.calq-admin-presets { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0.75rem 0; }
.calq-admin-presets__label { font-weight: 600; font-size: 0.875rem; }
.calq-admin-presets__hint { font-size: 0.75rem; }
.calq-admin-module-cat {
  margin: 0;
  padding: 0.85rem;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #fff;
}
.calq-admin-module-cat__toggle {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 0.5rem;
  align-items: center;
  cursor: pointer;
}
.calq-admin-module-cat__toggle input { grid-row: span 2; }
.calq-admin-module-cat__title { font-weight: 600; font-size: 0.875rem; }
.calq-admin-module-cat__desc { grid-column: 2; font-size: 0.75rem; color: #64748b; line-height: 1.35; }
.calq-admin-module-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 0.25rem 0.75rem;
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--calq-border-subtle, #e2e8f0);
}
.calq-admin-module-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.8125rem;
  cursor: pointer;
}
.calq-admin-module-item.is-covered { opacity: 0.5; }

/* Platformbrede module-schakelaars (owner-only blok op admin.php) */
.calq-admin-platform-cat-head {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.calq-admin-platform-cat-head .calq-admin-platform-toggle label span:first-of-type {
  font-weight: 600;
  font-size: 0.875rem;
}
.calq-admin-platform-toggle { display: inline-block; }
.calq-admin-platform-toggle label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.8125rem;
  cursor: pointer;
}
.calq-admin-platform-toggle.is-off label span:first-of-type {
  color: #94a3b8;
  text-decoration: line-through;
}
.calq-admin-module-cat.is-platform-off { background: #f8fafc; }
.calq-hint { font-size: 0.7rem; color: var(--calq-muted); margin-top: 1rem; }

.calq-report { max-width: 900px; margin: 0 auto; padding: 1.5rem; background: #fff; }
.calq-report-header { display: flex; justify-content: space-between; gap: 2rem; border-bottom: 2px solid #000; padding-bottom: 1rem; margin-bottom: 1.5rem; }
.calq-report-logo { flex: 0 1 16rem; text-align: right; }
.calq-report-logo__img {
  display: block;
  margin-left: auto;
  max-height: 4rem;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.calq-report-logo--text { font-size: 0.95rem; line-height: 1.35; }
.calq-report-meta { border-collapse: collapse; font-size: 0.875rem; }
.calq-report-meta td { border: 1px solid #000; padding: 0.25rem 0.5rem; }
.calq-report-meta td:first-child { font-weight: 600; background: #f1f5f9; }
.calq-report section { margin-bottom: 2rem; page-break-inside: avoid; }
.calq-report-footer { font-size: 0.75rem; color: var(--calq-muted); border-top: 1px solid var(--calq-border); padding-top: 1rem; margin-top: 2rem; }
.calq-report-bar { margin-bottom: 1rem; display: flex; gap: 0.5rem; }

.calq-section-title {
  grid-column: 1 / -1;
  margin: 1rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: #123d28;
  border-bottom: var(--calq-head-rule);
  padding-bottom: 0.35rem;
}

.calq-calc-transparency { margin-top: 1.5rem; padding-top: 0.5rem; border-top: var(--calq-head-rule); }
.calq-calc-steps { display: flex; flex-direction: column; gap: 1rem; margin-top: 1rem; }
.calq-calc-step { background: #f8fafc; border: 1px solid var(--calq-border); border-radius: 8px; padding: 1rem 1.25rem; page-break-inside: avoid; }
.calq-calc-step h4 { margin: 0 0 0.5rem; font-size: 0.95rem; color: var(--calq-green); }
.calq-calc-formula { font-family: Consolas, "Courier New", monospace; font-size: 0.85rem; background: #fff; border: 1px dashed var(--calq-border); padding: 0.5rem 0.75rem; border-radius: 4px; margin: 0 0 0.5rem; }
.calq-calc-step__cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 0.75rem 1.25rem;
  align-items: start;
}
.calq-calc-step__ingave { min-width: 0; }
.calq-calc-step__resultaat { min-width: 0; }
.calq-calc-step__resultaat .calq-calc-breakdown-table { margin-bottom: 0.35rem; }
.calq-calc-step__resultaat .calq-calc-result { margin-top: 0.35rem; }
.calq-calc-step__cols--only-result { grid-template-columns: 1fr; }
@media (max-width: 640px) {
  .calq-calc-step__cols { grid-template-columns: 1fr; }
}
.calq-calc-breakdown-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; margin-bottom: 0.75rem; }
.calq-calc-breakdown-table th, .calq-calc-breakdown-table td { border: 1px solid var(--calq-border); padding: 0.35rem 0.5rem; text-align: left; }
.calq-calc-breakdown-table th { background: #eef2f7; font-weight: 600; }
.calq-calc-breakdown-table td:nth-child(2) { text-align: right; font-variant-numeric: tabular-nums; }
.calq-calc-highlight { background: #ecfdf5; font-weight: 600; }
.calq-calc-ref { color: var(--calq-muted); font-size: 0.75rem; }
.calq-calc-symbol { color: var(--calq-muted); font-size: 0.75rem; }
.calq-calc-detail { display: block; font-size: 0.7rem; color: var(--calq-muted); margin-top: 0.15rem; }
.calq-calc-substitution, .calq-calc-result { font-size: 0.8rem; margin: 0; }
.calq-calc-substitution span { color: var(--calq-muted); margin-right: 0.35rem; }
.calq-calc-result {
  font-weight: var(--calq-result-weight);
  color: var(--calq-result-text);
  background: var(--calq-result-bg);
  border: 1px solid var(--calq-result-border);
  border-radius: 4px;
  padding: 0.35rem 0.5rem;
}
.calq-calc-result .calq-result-label {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--calq-result-text);
  margin-right: 0.35rem;
  opacity: 0.85;
}
.calq-calc-result--result { /* alias for breakdown result rows */ }
.calq-calc-note { font-size: 0.75rem; color: #92400e; background: #fffbeb; border-left: 3px solid #f59e0b; padding: 0.5rem 0.75rem; margin: 0.75rem 0 0; border-radius: 0 4px 4px 0; }

.calq-co2-chart-wrap { margin: 0; padding: 0.25rem; background: #fff; }
.calq-co2-chart { width: 100%; height: auto; display: block; max-height: min(400px, 50vh); min-height: 280px; }

.calq-inregel-stack { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 0.75rem; }
.calq-inregel-chart-block { margin-top: 0; }
.calq-inregel-chart-wrap { padding: 0.5rem; background: #fff; overflow-x: auto; }
.calq-inregel-chart { width: 100%; min-width: 720px; height: auto; display: block; max-height: min(440px, 55vh); }
.calq-field__value--warn { color: #b45309; }
.calq-co2-aside { gap: 0.75rem; }
.calq-co2-aside .calq-co2-chart-wrap { border: 0; border-radius: 0; }
.calq-kpi-grid--co2-aside {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0.65rem;
  gap: 0.5rem;
}
.calq-kpi-grid--co2-aside .calq-kpi__value { font-size: 1.05rem; }

/* ——— CALQ module layout (invoer / resultaat / grafiek) ——— */
.calq-module-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 42%);
  gap: 1rem;
  align-items: start;
  margin-top: 0.75rem;
}
.calq-module-main { display: flex; flex-direction: column; gap: 0.75rem; min-width: 0; }
.calq-module-aside {
  position: sticky;
  top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

/* ——— Fase 0: resizable module split (opt-in via data-calq-module-split) ——— */
.calq-module-split {
  --calq-split-gap: 1rem;
  --calq-split-handle: 10px;
  display: grid;
  grid-template-columns: var(--calq-split-main, 58%) var(--calq-split-handle) minmax(0, 1fr);
  gap: var(--calq-split-gap);
  align-items: start;
  margin-top: 0.75rem;
}
.calq-module-split__main,
.calq-module-split .calq-module-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-right: 0.15rem;
}
.calq-module-split__aside,
.calq-module-split .calq-module-aside {
  position: sticky;
  top: 1rem;
  align-self: start;
  max-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding-left: 0.35rem;
}
.calq-module-split__handle {
  align-self: stretch;
  min-height: 120px;
  width: var(--calq-split-handle);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: col-resize;
  touch-action: none;
  position: relative;
  flex-shrink: 0;
}
.calq-module-split__handle::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 50%;
  width: 4px;
  transform: translateX(-50%);
  background: var(--calq-border);
  border-radius: 2px;
  transition: background 0.15s;
}
.calq-module-split__handle:hover::before,
.calq-module-split__handle:focus-visible::before {
  background: var(--calq-green-light);
}
.calq-module-split__handle:focus-visible {
  outline: none;
}
.calq-module-split__handle:focus-visible::before {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--calq-green-light);
}
.calq-aside-panel {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  gap: 0.45rem;
  padding: 0.15rem 0.35rem 0.25rem 0.5rem;
  width: 100%;
}
.calq-aside-panel__visual {
  flex: 0 0 auto;
  overflow: visible;
  padding: 0.45rem 0.55rem;
}
.calq-aside-panel__results {
  flex: 0 0 auto;
  overflow: visible;
  padding: 0.25rem 0.25rem 0.35rem 0.35rem;
}
/* Opt-in: viewport-filling chart + scrollable KPI (grote visuals) */
.calq-aside-panel--fill {
  flex: 1;
  min-height: 0;
  --calq-aside-visual-ratio: 0.5;
}
.calq-aside-panel--fill .calq-aside-panel__visual {
  flex: var(--calq-aside-visual-ratio, 0.5) 1 0;
  min-height: 160px;
  overflow: auto;
}
.calq-aside-panel--fill .calq-aside-panel__results {
  flex: calc(1 - var(--calq-aside-visual-ratio, 0.5)) 1 0;
  min-height: 0;
  overflow-y: auto;
}
.calq-kpi-grid--compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
  padding: 0.4rem;
}
.calq-kpi-grid--compact .calq-kpi {
  padding: 0.35rem 0.45rem;
}
.calq-kpi__value--result {
  color: var(--calq-result-text);
  font-weight: var(--calq-result-weight);
}
@media (max-width: 900px) {
  .calq-module-split {
    grid-template-columns: 1fr !important;
    gap: 1rem;
  }
  .calq-module-split__handle {
    display: none;
  }
  .calq-module-split .calq-module-main,
  .calq-module-split .calq-module-aside {
    padding-left: 0;
    padding-right: 0;
  }
}
.calq-block {
  background: var(--calq-surface);
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius-sm);
  overflow: hidden;
  box-shadow: var(--calq-shadow);
}
.calq-block__head {
  margin: 0;
  padding: 0.4rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  background: var(--calq-accent-strong);
  color: #123d28;
  border-bottom: var(--calq-head-rule);
  overflow: hidden;
}
.calq-fields {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.5rem 1rem;
  padding: 0.75rem;
}
.calq-field {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.5rem;
  align-items: center;
}
.calq-field__label {
  grid-column: 1 / -1;
  font-size: 0.75rem;
  color: var(--calq-muted);
  line-height: 1.3;
}
.calq-field input,
.calq-field select {
  width: 100%;
  min-width: 0;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  font: inherit;
  font-size: 0.875rem;
}
.calq-field--input input,
.calq-field--input select {
  background: var(--calq-input);
  border-color: var(--calq-input-border);
}
.calq-field--calc {
  background: var(--calq-calc);
  border: 1px solid var(--calq-calc-border);
  border-radius: 4px;
  padding: 0.35rem 0.55rem;
}
.calq-field--linked {
  background: var(--calq-linked);
  border: 1px solid var(--calq-linked-border);
  border-radius: 4px;
  padding: 0.35rem 0.55rem;
}
.calq-field--linked .calq-field__value { color: var(--calq-green-light); }
.calq-field--result {
  background: var(--calq-result-bg);
  border: 1px solid var(--calq-result-border);
  border-radius: 4px;
  padding: 0.35rem 0.55rem;
}
.calq-field--result .calq-field__value {
  color: var(--calq-result-text);
  font-weight: var(--calq-result-weight);
}
.calq-field--result .calq-field__label::after {
  content: ' · Resultaat';
  font-weight: 500;
  font-size: 0.68rem;
  color: var(--calq-result-text);
  margin-left: 0.15rem;
}
.calq-step__summary-value--result {
  color: var(--calq-result-text);
  font-weight: var(--calq-result-weight);
}
.calq-field__value {
  font-size: 0.95rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.calq-field__unit {
  font-size: 0.75rem;
  color: var(--calq-muted);
  white-space: nowrap;
}
.calq-block__body {
  padding: 0.75rem;
}
.calq-block__body .calq-calc-table {
  margin: 0;
}
.calq-block__intro {
  margin: 0.75rem 0.75rem 0;
  font-size: 0.8rem;
}
.calq-fields--bordered {
  border-top: 1px solid var(--calq-border);
}
.calq-block__head-actions {
  float: right;
  font-weight: 400;
}
.calq-block__head-actions .calq-btn {
  margin: -0.15rem 0;
}
.calq-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.75rem;
  padding: 0.75rem;
}
.calq-cards .calq-card {
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #fafafa;
  overflow: hidden;
  padding: 0;
}
.calq-cards .calq-card__title {
  margin: 0;
  padding: 0.35rem 0.65rem;
  font-size: 0.8rem;
  font-weight: 600;
  background: var(--calq-accent-strong);
  color: #123d28;
  border-bottom: var(--calq-head-rule);
}
.calq-cards .calq-card .calq-fields {
  grid-template-columns: 1fr;
  padding: 0.65rem;
  gap: 0.65rem;
}
.calq-kpi--highlight {
  background: var(--calq-accent-soft);
  border-color: var(--calq-accent-muted);
}
.calq-kpi-grid--single {
  grid-template-columns: minmax(200px, 320px);
}
.raming-panel .calq-module-main {
  margin-top: 0.5rem;
}
.calq-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.65rem;
  padding: 0.75rem;
}
.calq-kpi {
  background: #f8fafc;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  padding: 0.65rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.calq-kpi--input {
  background: #fffbeb;
  border-color: #fde68a;
}
.calq-kpi--input input {
  width: 100%;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  background: var(--calq-input);
  font-size: 1.1rem;
  font-weight: 600;
}
.calq-kpi--warn {
  background: #fef2f2;
  border-color: #fecaca;
}
.calq-kpi__label {
  font-size: 0.7rem;
  color: var(--calq-muted);
  line-height: 1.3;
}
.calq-kpi__value {
  font-size: 1.25rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.calq-kpi__unit {
  font-size: 0.75rem;
  color: var(--calq-muted);
}
.calq-kpi__sub {
  font-size: 0.7rem;
  color: var(--calq-muted);
  margin-top: 0.15rem;
}
.calq-co2-details {
  margin-top: 0;
  font-size: 0.85rem;
}
.calq-co2-details summary {
  cursor: pointer;
  color: var(--calq-green-light);
  font-weight: 600;
  padding: 0.25rem 0;
}

.calq-co2-panel h2 { margin-bottom: 0.35rem; }

/* ——— 57 Kanaalberekening — invoer links / resultaten rechts ——— */
.calq-panel[data-calq-mod="kanaal"] > .calq-lead { display: none; }
.calq-kanaal-panel .calq-kanaal-lead { margin: 0 0 0.65rem; }
.calq-kanaal-workspace .calq-module-layout:not(.calq-module-split) {
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 21rem);
  gap: 1.15rem;
}
.calq-kanaal-fields {
  gap: 0.75rem 1.15rem;
  padding: 0.65rem 1rem;
}
.calq-kanaal-fields--input {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: 0.3rem;
  column-gap: 1.15rem;
  padding: 0.5rem 1rem 0.65rem;
}
.calq-kanaal-fields--results {
  grid-template-columns: 1fr;
  row-gap: 0.35rem;
  padding: 0.5rem 0.85rem 0.65rem;
}
.calq-kanaal-fields .calq-field--wide { grid-column: 1 / -1; }
.calq-kanaal-fields .calq-field {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.65rem;
  align-items: center;
}
.calq-kanaal-fields .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
  font-size: 0.875rem;
  line-height: 1.2;
  color: var(--calq-text);
  margin: 0;
}
.calq-kanaal-fields .calq-field input,
.calq-kanaal-fields .calq-field select,
.calq-kanaal-fields .calq-field__value {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
  padding: 0.38rem 0.7rem;
  font-size: 0.9375rem;
  color: var(--calq-text);
}
.calq-kanaal-fields .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.8125rem;
  color: var(--calq-muted);
  white-space: nowrap;
  min-width: 2rem;
  text-align: right;
}
.calq-kanaal-fields--input .calq-field--input input,
.calq-kanaal-fields--input .calq-field--input select {
  background: #fff;
  border: 1px solid var(--calq-input-border);
}
.calq-kanaal-fields--input .calq-field--input input:focus,
.calq-kanaal-fields--input .calq-field--input select:focus {
  border-color: var(--calq-green);
  outline: 2px solid rgba(22, 101, 52, 0.15);
  outline-offset: 0;
}
.calq-kanaal-fields--results .calq-field--calc {
  padding: 0.4rem 0.75rem;
  background: #fff;
  border: 1px solid var(--calq-border);
}
.calq-kanaal-fields--results .calq-field__value {
  font-size: 1.05rem;
  text-align: right;
}
.calq-kanaal-fields--results .calq-field--highlight {
  background: #ecfdf5;
  border-color: #a7f3d0;
}
.calq-kanaal-constants {
  margin: 0;
  padding: 0 1rem 0.65rem;
  font-size: 0.75rem;
}
.calq-kanaal-result-block {
  margin-top: 0.65rem;
  box-shadow: none;
}
.calq-kanaal-result-block .calq-block__head {
  font-size: 0.72rem;
  padding: 0.35rem 0.55rem;
}
.calq-kanaal-advies-table { font-size: 0.72rem; }
.calq-kanaal-advies-table th,
.calq-kanaal-advies-table td { padding: 0.25rem 0.35rem; }
.calq-kanaal-isso-steps { margin-top: 0.75rem; }
.calq-kanaal-chart-block .calq-co2-chart-wrap { padding: 0.35rem 0.5rem 0.5rem; }
.calq-kanaal-trace-block { margin-top: 0.75rem; }
.calq-kanaal-trace-actions { padding: 0 1rem 0.5rem; }
.calq-kanaal-trace-seg {
  margin: 0 0 0.75rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius);
  background: #fff;
}
.calq-kanaal-trace-seg__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
}
.calq-kanaal-trace-fittings {
  padding: 0.35rem 0.25rem 0.15rem;
  font-size: 0.8125rem;
}
.calq-kanaal-trace-fittings__label { display: block; margin-bottom: 0.25rem; color: var(--calq-muted); }
.calq-kanaal-trace-fitting {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.25rem;
}
.calq-kanaal-trace-fitting select { flex: 1; min-width: 0; font-size: 0.8125rem; }
.calq-kanaal-trace-fitting-qty { width: 3rem; }
.calq-kanaal-trace-table { font-size: 0.78rem; margin-top: 0.5rem; }
.calq-kanaal-trace-table th,
.calq-kanaal-trace-table td { padding: 0.3rem 0.4rem; }
.calq-kanaal-trace-row--dominant { background: #ecfdf5; }
.calq-kanaal-trace-total th,
.calq-kanaal-trace-total td { font-weight: 600; background: #f0fdf4; }

@media (max-width: 960px) {
  .calq-kanaal-workspace .calq-module-layout:not(.calq-module-split) { grid-template-columns: 1fr; }
  .calq-kanaal-fields--input { grid-template-columns: 1fr; }
}

/* ——— Gedeelde Excel-sheet tabel (ramingen e.d.) ——— */
.calq-sheet-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.calq-sheet-table th,
.calq-sheet-table td {
  border: 1px solid var(--calq-border);
  padding: 0.3rem 0.45rem;
  vertical-align: middle;
  line-height: 1.35;
}
.calq-sheet-table th {
  background: #f1f5f9;
  font-weight: 600;
  text-align: center;
}
.calq-sheet-label {
  font-weight: 500;
  background: #fff;
  text-align: left;
  white-space: nowrap;
}
.calq-sheet-table input[type="number"] {
  width: 3.75rem;
  max-width: 100%;
  border: 0;
  background: var(--calq-input);
  padding: 0.15rem 0.3rem;
  font: inherit;
  text-align: right;
}
.calq-sheet-input--wide { width: 4.75rem !important; }
.calq-sheet-unit { color: var(--calq-muted); font-size: 0.72rem; margin-left: 0.1rem; }

/* ——— CALQ sheet banner (geïntegreerde kop) ——— */
.calq-main > .calq-sheet-banner,
.calq-main > .calq-sheet-kop {
  margin: 0 0 0.45rem;
}
.calq-main > .calq-sheet-banner + .calq-panel,
.calq-main > .calq-sheet-kop + .calq-panel,
.calq-main > .calq-sheet-banner + .calq-panel.calq-workspace,
.calq-main > .calq-sheet-kop + .calq-panel.calq-workspace {
  margin-top: 0;
  padding-top: 0.35rem;
}
.calq-main > .calq-sheet-banner ~ .calq-panel > h1:first-child,
.calq-main > .calq-sheet-banner ~ .calq-panel > p.calq-lead:first-of-type,
.calq-main > .calq-sheet-kop ~ .calq-panel.calq-workspace > h1:first-child,
.calq-main > .calq-sheet-kop ~ .calq-panel.calq-workspace > p.calq-lead:first-of-type {
  display: none;
}
.calq-sheet-banner,
.calq-sheet-kop:not(.calq-sheet-banner) {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0;
  margin-bottom: 0.45rem;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}
.calq-sheet-banner__intro {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem 0.55rem 0.95rem;
  background: linear-gradient(145deg, #ffffff 0%, var(--calq-accent-pale) 100%);
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius-sm);
  box-shadow: var(--calq-shadow);
  overflow: hidden;
  margin-bottom: 0.25rem;
}
.calq-sheet-banner__intro::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--calq-green) 0%, var(--calq-green-light) 100%);
}
.calq-sheet-banner__text {
  flex: 1 1 auto;
  min-width: 0;
}
.calq-sheet-banner__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--calq-heading);
}
.calq-sheet-banner__lead {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--calq-muted);
  max-width: 56rem;
}
.calq-sheet-banner__lead.is-empty:not([hidden]) {
  display: none;
}
.calq-sheet-banner__actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}
.calq-sheet-banner__meta-row {
  display: grid;
  grid-template-columns: minmax(0, 20rem) minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.6rem;
  background: var(--calq-surface);
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius-sm);
  box-shadow: var(--calq-shadow-xs);
}
.calq-sheet-banner__platform-slot {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
}
.calq-platform-visibility {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  min-width: 0;
}
.calq-platform-visibility__label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
}
.calq-platform-visibility__track {
  display: inline-flex;
  align-items: stretch;
  padding: 2px;
  border: 1px solid var(--calq-border);
  border-radius: 999px;
  background: #f8fafc;
  gap: 2px;
}
.calq-platform-visibility__option {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin: 0;
  cursor: pointer;
}
.calq-platform-visibility__option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.calq-platform-visibility__option span {
  display: block;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 600;
  color: #64748b;
  white-space: nowrap;
  line-height: 1.2;
}
.calq-platform-visibility__option:hover span {
  color: var(--calq-green);
  background: #fff;
}
.calq-platform-visibility__option.is-active span {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
.calq-platform-visibility__option--off.is-active span {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  color: #475569;
}
.calq-platform-visibility__option--test.is-active span {
  background: #fffbeb;
  border: 1px solid #fbbf24;
  color: #92400e;
}
.calq-platform-visibility__option--live.is-active span {
  background: var(--calq-nav-tier1-bg);
  border: 1px solid color-mix(in srgb, var(--calq-green) 35%, #fff);
  color: var(--calq-green);
}
.calq-topbar-actions .calq-platform-visibility {
  margin-right: 0.35rem;
}
.calq-topbar--sheet {
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--calq-border-subtle);
}
.calq-topbar--sheet .calq-topbar-start {
  min-height: 0;
}
.calq-sheet-kop__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  align-self: center;
  justify-content: center;
  flex: 0 1 auto;
  min-width: 0;
}
.calq-sheet-kop__brand {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  justify-content: flex-end;
  text-align: right;
}
.calq-sheet-kop__brand:has(.calq-sheet-kop__report-logo) {
  min-height: 3rem;
  justify-content: center;
}
.calq-sheet-kop__report-logo {
  display: block;
  max-height: 3.25rem;
  max-width: min(100%, 18rem);
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: right center;
}
.calq-sheet-kop__logo {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: var(--calq-radius-sm);
}
.calq-sheet-kop__brand-text {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0;
  line-height: 1.25;
  font-size: 0.75rem;
}
.calq-sheet-kop__brand-text strong {
  font-size: 0.85rem;
  color: var(--calq-green);
}
.calq-sheet-kop__brand-text span { color: var(--calq-muted); }
.calq-sheet-kop__actions {
  display: none !important;
}
.calq-sheet-kop__meta-wrap {
  flex: 0 1 auto;
  min-width: min(100%, 11rem);
  max-width: 20rem;
  border: 0;
  border-radius: 0;
  overflow: hidden;
  background: transparent;
  padding: 0;
}
.calq-sheet-kop__meta-grid {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}
.calq-sheet-meta-field,
.calq-vwa-meta-field {
  display: grid;
  grid-template-columns: 4.75rem minmax(0, 1fr);
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  line-height: 1.3;
}
.calq-sheet-meta-field__label,
.calq-vwa-meta-field__label {
  font-weight: 600;
  color: var(--calq-text);
  white-space: nowrap;
}
.calq-sheet-meta-field input,
.calq-vwa-meta-field input {
  width: 100%;
  min-width: 0;
  border: 0;
  border-bottom: 1px solid var(--calq-border-subtle);
  border-radius: 0;
  background: transparent;
  font: inherit;
  padding: 0.12rem 0.1rem;
  color: var(--calq-text);
}
.calq-sheet-meta-field input:focus,
.calq-vwa-meta-field input:focus {
  outline: none;
  border-bottom-color: var(--calq-green-light);
  background: var(--calq-accent-soft);
  border-radius: 2px 2px 0 0;
}
.calq-sheet-meta-field input[readonly],
.calq-vwa-meta-field input[readonly] {
  color: var(--calq-muted);
  cursor: default;
}

/* ——— Workspace: compacte rekentool-layout ——— */
.calq-main:has(.calq-workspace) {
  max-width: none;
  padding: 0.45rem 0.65rem 0.65rem;
}
.calq-panel.calq-workspace {
  padding: 0.35rem 0.45rem 0.5rem;
  margin-bottom: 0.35rem;
  border-color: transparent;
  box-shadow: none;
  background: transparent;
}
.calq-workspace .calq-module-main {
  gap: 0.45rem;
}
.calq-workspace .calq-subnav {
  margin: 0 0 0.45rem;
  gap: 0.25rem;
  padding: 0;
}
.calq-workspace .calq-subnav__link {
  padding: 0.3rem 0.6rem;
  font-size: 0.78rem;
}
.calq-workspace .calq-notice {
  margin: 0 0 0.45rem;
  padding: 0.4rem 0.6rem;
  font-size: 0.78rem;
  background: var(--calq-accent-soft);
  border-color: var(--calq-accent-muted);
  color: var(--calq-text);
}
.calq-workspace .calq-module-tabs {
  margin: 0.35rem 0;
  gap: 0.35rem;
}
.calq-workspace .calq-module-tabs button {
  padding: 0.3rem 0.65rem;
  font-size: 0.78rem;
}
.calq-workspace .calq-block {
  border-radius: var(--calq-radius-sm);
}
.calq-workspace .calq-block__head {
  padding: 0.32rem 0.55rem;
  font-size: 0.75rem;
}
.calq-workspace .calq-block__body {
  padding: 0.45rem 0.55rem;
}
.calq-workspace .calq-block__intro {
  margin: 0.45rem 0.55rem 0;
  font-size: 0.75rem;
}
.calq-workspace .calq-fields {
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.3rem 0.55rem;
  padding: 0.45rem 0.55rem;
}
.calq-workspace .calq-field {
  grid-template-columns: minmax(3.75rem, auto) minmax(0, 1fr) auto;
  grid-template-rows: auto;
  gap: 0.15rem 0.35rem;
  align-items: center;
}
.calq-workspace .calq-field__label {
  grid-column: 1;
  grid-row: 1;
  font-size: 0.68rem;
  line-height: 1.2;
  margin: 0;
}
.calq-workspace .calq-field input,
.calq-workspace .calq-field select {
  grid-column: 2;
  grid-row: 1;
  padding: 0.28rem 0.38rem;
  font-size: 0.8125rem;
}
.calq-workspace .calq-field__value {
  grid-column: 2;
  grid-row: 1;
  font-size: 0.875rem;
  min-width: 0;
}
.calq-workspace .calq-field__unit {
  grid-column: 3;
  grid-row: 1;
  font-size: 0.68rem;
}
/* Grid-velden: label boven, waarde + eenheid op tweede rij (voorkomt overlap) */
.calq-workspace .calq-fields--grid {
  grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
  gap: 0.45rem 0.75rem;
}
.calq-workspace .calq-fields--grid .calq-field {
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.45rem;
  align-items: center;
}
.calq-workspace .calq-fields--grid .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
}
.calq-workspace .calq-fields--grid .calq-field input,
.calq-workspace .calq-fields--grid .calq-field select,
.calq-workspace .calq-fields--grid .calq-field__value {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
}
.calq-workspace .calq-fields--grid .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
}
.calq-workspace .calq-field--calc,
.calq-workspace .calq-field--linked {
  padding: 0.22rem 0.38rem;
}
.calq-workspace .calq-field--linked .calq-field__value {
  color: var(--calq-green-light);
}
.calq-workspace .calq-kpi-grid {
  gap: 0.45rem;
  padding: 0.45rem 0.55rem;
}
.calq-workspace .calq-kpi {
  padding: 0.45rem 0.55rem;
}
.calq-workspace .calq-kpi__value {
  font-size: 1.1rem;
  font-weight: 600;
}
.calq-workspace .calq-calc-table th,
.calq-workspace .calq-calc-table td {
  padding: 0.25rem 0.4rem;
  font-size: 0.78rem;
}
.calq-workspace .calq-table th,
.calq-workspace .calq-table td {
  padding: 0.35rem 0.5rem;
  font-size: 0.8125rem;
}

/* ——— Gasberekeningen — invoer links, resultaat rechts ——— */
[data-calq-module="gas"] .calq-gas-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 22rem);
  gap: 1rem 1.75rem;
  padding: 0.85rem 1rem;
  align-items: start;
}
[data-calq-module="gas"] .calq-gas-layout__input,
[data-calq-module="gas"] .calq-gas-layout__results {
  min-width: 0;
}
[data-calq-module="gas"] .calq-gas-results__title {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--calq-green-light);
}
[data-calq-module="gas"] .calq-gas-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
  padding: 0;
}
[data-calq-module="gas"] .calq-gas-fields--variant {
  max-width: 32rem;
  padding: 0.85rem 1rem;
}
[data-calq-module="gas"] .calq-gas-fields--variant select {
  width: 100%;
  min-width: 0;
}
[data-calq-module="gas"] .calq-gas-fields .calq-field {
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.35rem 0.75rem;
  align-items: center;
}
[data-calq-module="gas"] .calq-gas-fields .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
  font-size: 0.82rem;
  line-height: 1.35;
  margin: 0;
}
[data-calq-module="gas"] .calq-gas-fields .calq-field input,
[data-calq-module="gas"] .calq-gas-fields .calq-field select,
[data-calq-module="gas"] .calq-gas-fields .calq-field__value {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
  padding: 0.5rem 0.65rem;
  font-size: 0.9rem;
}
[data-calq-module="gas"] .calq-gas-fields .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.8rem;
  white-space: nowrap;
}
[data-calq-module="gas"] .calq-gas-fields--results .calq-field--calc {
  padding: 0.55rem 0.7rem;
  background: #fff;
  border: 1px solid var(--calq-border);
}
[data-calq-module="gas"] .calq-gas-fields--results .calq-field__value {
  font-size: 1.05rem;
  text-align: right;
}
[data-calq-module="gas"] .calq-gas-fields--results .calq-field--highlight {
  background: #ecfdf5;
  border-color: #6ee7b7;
}
[data-calq-module="gas"] .calq-gas-fields--results .calq-field--highlight .calq-field__value {
  color: #047857;
  font-size: 1.15rem;
}
[data-calq-module="gas"] .calq-gas-note {
  margin: 0 1rem 0.85rem;
  font-size: 0.8rem;
}
[data-calq-module="gas"] .calq-calc-steps {
  margin-top: 0;
}
@media (max-width: 768px) {
  [data-calq-module="gas"] .calq-gas-layout {
    grid-template-columns: 1fr;
  }
  [data-calq-module="gas"] .calq-gas-layout__results {
    order: -1;
  }
}

/* ——— 52 VWA — compact layout ——— */
.calq-vwa-panel { margin-top: 0; }
.calq-vwa-panel.calq-workspace { padding: 0.5rem 0.75rem 0.75rem; }
.calq-vwa-body {
  min-width: 0;
}
.calq-vwa-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(17rem, 21rem);
  gap: 0.65rem;
  align-items: start;
}
.calq-vwa-layout__input {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
}
.calq-vwa-layout__results {
  position: sticky;
  top: 0.5rem;
  min-width: 0;
}
.calq-vwa-layout__input .calq-vwa-fields--input {
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
  gap: 0.55rem 0.8rem;
  padding: 0.7rem 0.7rem 0.8rem;
  align-items: start;
}
/* Instellingen: label boven, control op volle breedte — voorkomt propperige inline-labels
   (workspace-basis zet label + control anders naast elkaar in een te smalle cel). */
.calq-vwa-fields--input .calq-field--input {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 0.2rem;
  align-items: start;
}
.calq-vwa-fields--input .calq-field--input .calq-field__label {
  grid-column: 1;
  grid-row: 1;
  font-size: 0.72rem;
}
.calq-vwa-fields--input .calq-field--input input,
.calq-vwa-fields--input .calq-field--input select {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
}
.calq-vwa-layout__results .calq-vwa-fields--calc {
  grid-template-columns: 1fr;
}
.calq-vwa-layout__results .calq-vwa-results-hero {
  margin-left: 0.6rem;
  margin-right: 0.6rem;
}
@media (max-width: 960px) {
  .calq-vwa-layout {
    grid-template-columns: 1fr;
  }
  .calq-vwa-layout__results {
    position: static;
    order: -1;
  }
  .calq-vwa-layout__results .calq-vwa-fields--calc {
    grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  }
}
.calq-vwa-compact-block + .calq-vwa-compact-block { margin-top: 0; }
.calq-vwa-results-hero {
  margin: 0.45rem 0.55rem 0.35rem;
  padding: 0.55rem 0.65rem;
  background: var(--calq-accent-soft);
  border: 1px solid var(--calq-accent-muted);
  border-radius: var(--calq-radius-sm);
}
.calq-vwa-results-hero__label {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--calq-green-light);
}
.calq-vwa-results-hero__value {
  display: block;
  margin: 0.1rem 0 0.25rem;
  font-size: 1.65rem;
  line-height: 1.1;
  color: var(--calq-green);
}
.calq-vwa-results-hero__unit {
  margin-left: 0.2rem;
  font-size: 1rem;
  font-weight: 600;
  color: #15803d;
}
.calq-vwa-results-hero__meta {
  margin: 0;
  font-size: 0.78rem;
  color: var(--calq-muted);
  line-height: 1.4;
}
.calq-vwa-fields {
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.35rem 0.65rem;
  padding: 0.65rem 0.6rem 0.5rem;
}
.calq-vwa-fields .calq-field__label { font-size: 0.7rem; }
.calq-vwa-fields .calq-field input,
.calq-vwa-fields .calq-field select {
  padding: 0.3rem 0.4rem;
  font-size: 0.8125rem;
}
.calq-vwa-fields .calq-field--calc { padding: 0.25rem 0.4rem; }
.calq-vwa-fields .calq-field__value { font-size: 0.875rem; }
.calq-vwa-fields--input {
  grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
}
.calq-vwa-fields--input .calq-field--input input,
.calq-vwa-fields--input .calq-field--input select {
  background: var(--calq-input);
}

/* Vet-/olieafscheider: override workspace single-row fields (voorkomt overlap) */
.calq-afscheider-module .calq-vwa-layout {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
}
.calq-afscheider-module .calq-afscheider-settings,
.calq-afscheider-module .calq-afscheider-results {
  grid-template-columns: 1fr;
  gap: 0.5rem;
  max-width: none;
}
.calq-afscheider-module .calq-afscheider-settings .calq-field,
.calq-afscheider-module .calq-afscheider-results .calq-field {
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.45rem;
  align-items: center;
}
.calq-afscheider-module .calq-afscheider-settings .calq-field__label,
.calq-afscheider-module .calq-afscheider-results .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
}
.calq-afscheider-module .calq-afscheider-settings .calq-field select,
.calq-afscheider-module .calq-afscheider-results .calq-field__value {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
  text-align: right;
}
.calq-afscheider-module .calq-afscheider-results .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  align-self: center;
}
.calq-afscheider-settings {
  max-width: 22rem;
}
.calq-afscheider-settings .calq-field--input select {
  width: 100%;
  min-width: 0;
  text-align: left;
}
.calq-afscheider-const {
  margin: 0;
  padding: 0.35rem 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  background: var(--calq-calc);
  border: 1px solid var(--calq-calc-border);
  border-radius: 4px;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 960px) {
  .calq-afscheider-module .calq-afscheider-settings,
  .calq-afscheider-module .calq-afscheider-results {
    grid-template-columns: 1fr;
  }
}

.calq-norm-tip {
  position: relative;
  display: inline-block;
  cursor: help;
  border-bottom: 1px dotted #94a3b8;
}
.calq-norm-tip:focus { outline: 2px solid var(--calq-green); outline-offset: 2px; }
.calq-norm-tip__panel {
  display: none;
  position: absolute;
  z-index: 200;
  left: 0;
  top: calc(100% + 0.35rem);
  min-width: 17rem;
  max-width: 22rem;
  padding: 0.55rem 0.65rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--calq-text);
  background: #fff;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  text-transform: none;
  letter-spacing: normal;
}
.calq-vwa-compact-block.calq-block { overflow: visible; }
.calq-vwa-compact-block:has(.calq-norm-tip:hover),
.calq-vwa-compact-block:has(.calq-norm-tip:focus-within) {
  position: relative;
  z-index: 30;
}
.calq-vwa-fields--input .calq-norm-tip__panel {
  top: auto;
  bottom: calc(100% + 0.35rem);
}
.calq-norm-tip__panel p { margin: 0 0 0.45rem; }
.calq-norm-tip__panel p:last-child { margin-bottom: 0; }
.calq-norm-tip__panel ul {
  margin: 0 0 0.45rem;
  padding-left: 1.1rem;
}
.calq-norm-tip__panel li { margin: 0.15rem 0; }
.calq-norm-tip:hover .calq-norm-tip__panel,
.calq-norm-tip:focus .calq-norm-tip__panel,
.calq-norm-tip:focus-within .calq-norm-tip__panel {
  display: block;
}
.calq-vwa-fields--calc {
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  background: #f8fafc;
}
.calq-vwa-fields--calc .calq-field--calc {
  background: #fff;
  border: 1px solid var(--calq-border);
}
.calq-vwa-fields--calc .calq-field--highlight {
  background: #ecfdf5;
  border-color: #6ee7b7;
}
.calq-vwa-fields--calc .calq-field--highlight .calq-field__value {
  color: #047857;
  font-size: 0.95rem;
}
.calq-block__head--toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.calq-block__head--toolbar .calq-block__head-title { flex: 1 1 auto; min-width: 0; }
.calq-block__head--toolbar .calq-block__head-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0;
}
.calq-block__head--toolbar .calq-block__head-actions .calq-btn {
  background: var(--calq-surface);
  color: var(--calq-text);
  border: 1px solid var(--calq-border);
  white-space: nowrap;
}
.calq-block__head--toolbar .calq-block__head-actions .calq-btn:hover {
  background: var(--calq-bg);
}
.calq-block__head--toolbar .calq-vwa-toggle-empty[aria-pressed="true"] {
  background: var(--calq-green);
  color: #fff;
  border-color: var(--calq-green);
}
.calq-vwa-table-wrap--hide-empty .calq-vwa-row--empty { display: none; }
.calq-vwa-results-block .calq-block__head {
  background: var(--calq-accent-strong);
  color: #123d28;
  border-bottom: var(--calq-head-rule);
}
.calq-field--highlight {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
}
.calq-vwa-table-wrap {
  overflow-x: auto;
  max-height: none;
}
.calq-vwa-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}
.calq-vwa-table th,
.calq-vwa-table td {
  padding: 0.28rem 0.45rem;
  border-bottom: 1px solid var(--calq-border);
  vertical-align: middle;
  line-height: 1.25;
}
.calq-vwa-table thead th {
  background: var(--calq-accent-strong);
  font-weight: 600;
  font-size: 0.7rem;
  color: #123d28;
  text-align: left;
  position: sticky;
  top: 0;
  z-index: 1;
  white-space: nowrap;
}
.calq-vwa-table__input-h { width: 4rem; text-align: center; }
.calq-vwa-table__code {
  width: 2.5rem;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--calq-green);
  font-family: ui-monospace, monospace;
}
.calq-vwa-table__name { min-width: 8rem; }
.calq-vwa-table__num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.calq-vwa-table__calc {
  color: var(--calq-text);
  font-weight: 500;
}
.calq-vwa-table__input {
  width: 3.75rem;
  text-align: center;
}
.calq-vwa-table__input .calq-vwa-aantal {
  width: 2.75rem;
  padding: 0.2rem 0.25rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  background: #fffbeb;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  text-align: center;
}
.calq-vwa-table__input .calq-vwa-aantal:focus {
  outline: 2px solid #fde68a;
  border-color: #f59e0b;
}
.calq-vwa-row--active {
  background: #f0fdf4;
}
.calq-vwa-row--active .calq-vwa-table__name { font-weight: 600; }

@media (max-width: 768px) {
  .calq-sheet-banner__intro {
    flex-direction: column;
    align-items: stretch;
  }
  .calq-sheet-banner__actions {
    justify-content: flex-start;
  }
  .calq-sheet-banner__meta-row,
  .calq-sheet-kop {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: stretch;
  }
  .calq-sheet-banner__platform-slot {
    justify-content: flex-start;
  }
  .calq-sheet-kop__meta-wrap {
    flex: 1 1 auto;
    width: 100%;
    max-width: none;
  }
  .calq-sheet-kop__aside {
    align-items: flex-start;
    width: 100%;
  }
  .calq-sheet-kop__brand {
    justify-content: flex-start;
    text-align: left;
  }
  .calq-sheet-kop__brand-text { align-items: flex-start; }
  .calq-sheet-banner__actions { justify-content: flex-start; }
}

@media print {
  .calq-vwa-panel .calq-notice,
  .calq-vwa-panel .calq-co2-details { display: none !important; }
  .calq-sheet-banner,
  .calq-sheet-kop {
    position: static;
    box-shadow: none;
    page-break-inside: avoid;
    border-color: #000;
  }
  .calq-sheet-banner__actions { display: none !important; }
  .calq-sheet-kop__meta-wrap { background: #fff; }
  .calq-sheet-kop__report-logo {
    max-height: 3.5rem;
    max-width: 18rem;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .calq-vwa-fields--calc { background: #fff; page-break-inside: avoid; }
  .calq-vwa-table thead th { position: static; }
  .calq-vwa-table__input .calq-vwa-aantal { background: #fff; border-color: #ccc; }
  .calq-vwa-row--active { background: #f8fafc; }
}

/* ——— Account / rapportlogo ——— */
.calq-account-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.calq-account-field { max-width: 24rem; margin-bottom: 0.75rem; }
.calq-account-logo__preview {
  min-height: 5rem;
  padding: 0.75rem;
  border: 1px dashed var(--calq-border);
  border-radius: 8px;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.75rem;
}
.calq-account-logo__img {
  max-height: 4.5rem;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.calq-account-logo__hint { font-size: 0.8rem; margin: 0 0 0.75rem; }
.calq-account-logo__form input[type="file"] { margin-bottom: 0.75rem; max-width: 100%; }
.calq-account-logo__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.calq-account-logo__status { margin: 0.75rem 0 0; font-size: 0.8rem; }
.calq-account-logo__status--error { color: #b91c1c; }
@media (max-width: 768px) {
  .calq-account-grid { grid-template-columns: 1fr; }
}

/* ——— 52 HWA — compact sheet (HWA.xlsx) ——— */
.calq-workspace[data-calq-mod="hwa"] {
  padding: 0.45rem 0.65rem 0.6rem;
  margin-bottom: 0.5rem;
}
.calq-main:has(.calq-workspace[data-calq-mod="hwa"]) > .calq-sheet-kop {
  padding: 0.3rem 0.45rem;
  margin-bottom: 0.35rem;
  gap: 0.5rem;
}
.calq-main:has(.calq-workspace[data-calq-mod="hwa"]) > .calq-sheet-kop + .calq-panel.calq-workspace {
  padding-top: 0.15rem;
}
.calq-main:has(.calq-workspace[data-calq-mod="hwa"]) .calq-sheet-kop__meta-wrap {
  padding: 0.2rem 0.35rem;
}
.calq-main:has(.calq-workspace[data-calq-mod="hwa"]) .calq-sheet-meta-field {
  font-size: 0.66rem;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 0.25rem;
}
.calq-main:has(.calq-workspace[data-calq-mod="hwa"]) .calq-sheet-kop__logo {
  width: 32px;
  height: 32px;
}
.calq-main:has(.calq-workspace[data-calq-mod="hwa"]) .calq-sheet-kop__brand-text strong {
  font-size: 0.78rem;
}
.calq-main:has(.calq-workspace[data-calq-mod="hwa"]) .calq-sheet-kop__brand-text span {
  font-size: 0.65rem;
}
.calq-hwa-panel { margin-top: 0; }
.calq-hwa-sheet {
  background: #fff;
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  overflow: hidden;
}
.calq-hwa-block {
  margin: 0;
  border-radius: 0;
  border: none;
  border-bottom: 1px solid var(--calq-border);
}
.calq-hwa-block .calq-block__head,
.calq-hwa-block__head {
  padding: 0.45rem 0.85rem !important;
  font-size: 0.78rem !important;
  background: var(--calq-accent-strong) !important;
  color: #123d28 !important;
  border-bottom: var(--calq-head-rule) !important;
}
.calq-hwa-block--results .calq-hwa-result-cards {
  padding: 0.65rem 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.calq-hwa-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(16rem, 22rem);
  gap: 0;
  border-bottom: 1px solid var(--calq-border);
  align-items: start;
}
.calq-hwa-layout__input,
.calq-hwa-layout__results { min-width: 0; }
.calq-hwa-layout__results {
  border-left: 1px solid var(--calq-border);
  background: #f8fafc;
}
.calq-hwa-result-card {
  background: #fff;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  padding: 0.55rem 0.65rem;
}
.calq-hwa-result-card__head {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--calq-green);
  margin-bottom: 0.35rem;
}
.calq-hwa-result-card__dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.25rem 0.75rem;
  margin: 0;
  font-size: 0.78rem;
}
.calq-hwa-result-card__dl dt {
  color: var(--calq-muted);
  font-size: 0.68rem;
  margin: 0;
}
.calq-hwa-result-card__dl dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.calq-hwa-result-card__hero dd {
  font-size: 1.15rem;
  color: #047857;
}
.calq-hwa-empty {
  margin: 0;
  padding: 0.65rem 0.85rem;
  font-size: 0.8rem;
  color: var(--calq-muted);
}
.calq-hwa-warn {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  color: #b45309;
}
.calq-hwa-formula {
  margin: 0;
  padding: 0.45rem 0.85rem 0.55rem;
  font-size: 0.75rem;
  color: var(--calq-muted);
  line-height: 1.35;
}
.calq-hwa-hint {
  margin: 0;
  padding: 0.45rem 0.85rem 0;
  font-size: 0.75rem;
  color: var(--calq-muted);
}
.calq-hwa-params--bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1.25rem;
  padding: 0.65rem 0.85rem;
}
.calq-hwa-params__totals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  font-size: 0.8rem;
  color: var(--calq-muted);
}
.calq-hwa-params__totals strong { color: var(--calq-text); }
.calq-hwa-check {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  cursor: pointer;
}
.calq-hwa-check--nood { margin-left: 0.25rem; }
.calq-hwa-actions { padding: 0.45rem 0.85rem 0.65rem; }
.calq-hwa-details {
  border-bottom: 1px solid var(--calq-border);
  padding: 0.35rem 0.85rem 0.65rem;
}
.calq-hwa-details summary {
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--calq-green-light);
}
.calq-hwa-param {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto;
  align-items: center;
  gap: 0.35rem 0.5rem;
  min-width: 10rem;
}
.calq-hwa-param .calq-field__label {
  grid-column: 1;
  margin: 0;
  font-size: 0.75rem;
  white-space: nowrap;
}
.calq-hwa-param input,
.calq-hwa-param select {
  grid-column: 2;
  padding: 0.4rem 0.5rem !important;
  font-size: 0.85rem !important;
}
.calq-hwa-param .calq-field__unit {
  grid-column: 3;
  font-size: 0.75rem;
}
.calq-hwa-ref-scroll { max-height: 14rem; }
.calq-hwa-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
  line-height: 1.3;
}
.calq-hwa-table th,
.calq-hwa-table td {
  padding: 0.35rem 0.5rem;
  border: 1px solid #e2e8f0;
  vertical-align: middle;
}
.calq-hwa-table thead th {
  background: var(--calq-accent-strong);
  font-weight: 600;
  font-size: 0.72rem;
  color: #123d28;
  text-align: center;
}
.calq-hwa-table__unit-h {
  font-weight: 400;
  font-size: 0.65rem;
}
.calq-hwa-table__vlak {
  font-weight: 600;
  white-space: nowrap;
  color: var(--calq-green);
  font-size: 0.75rem;
}
.calq-hwa-table--dak select,
.calq-hwa-table--verzamel select {
  width: 100%;
  min-width: 0;
  font-size: 0.75rem;
  padding: 0.3rem 0.4rem;
}
.calq-hwa-table__num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.calq-hwa-table__input .calq-hwa-num,
.calq-hwa-table__type .calq-hwa-text {
  width: 100%;
  min-width: 3.5rem;
  padding: 0.3rem 0.45rem;
  border: 1px solid #fde68a;
  border-radius: 4px;
  background: #fffbeb;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  text-align: right;
}
.calq-hwa-table__type .calq-hwa-text { text-align: left; min-width: 5rem; }
.calq-hwa-table__calc { background: #f8fafc; font-weight: 500; }
.calq-hwa-table__dia {
  background: #ecfdf5;
  font-weight: 700;
  font-size: 0.78rem;
  color: #065f46;
  text-align: center;
}
.calq-hwa-table__uitloop { font-size: 0.62rem; text-align: center; }
.calq-hwa-table__totals {
  background: #f1f5f9;
  font-weight: 600;
  font-size: 0.66rem;
}
.calq-hwa-table__unit { font-size: 0.62rem; color: var(--calq-muted); }
.calq-hwa-table__col-active { background: #d1fae5 !important; font-weight: 700; }
.calq-hwa-row--active { background: #fefce8; }
.calq-hwa-row--active .calq-hwa-table__vlak { font-weight: 700; }
.calq-hwa-figures { padding: 0.35rem 0.5rem 0.45rem; }
.calq-hwa-figures__row {
  display: grid;
  gap: 0.35rem 0.5rem;
  align-items: start;
}
.calq-hwa-figures__row + .calq-hwa-figures__row { margin-top: 0.35rem; }
.calq-hwa-figures__row--dak { grid-template-columns: 0.9fr 1.1fr; }
.calq-hwa-figures__row--norm { grid-template-columns: repeat(5, 1fr); }
.calq-hwa-fig { margin: 0; }
.calq-hwa-fig img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 108px;
  object-fit: contain;
  border: 1px solid #e2e8f0;
  border-radius: 3px;
  background: #fff;
}
.calq-hwa-co2-details { margin-top: 0.35rem; }
.calq-hwa-table__muted { font-size: 0.72rem; color: var(--calq-muted); }
.calq-hwa-table__actions { text-align: center; width: 2rem; }
.calq-hwa-table--staat { font-size: 0.75rem; }
.calq-hwa-block--staat .calq-hwa-table__dia { font-size: 0.85rem; }
.calq-hwa-terrein-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.65rem 1rem;
  padding: 0.65rem 0.85rem 0.85rem;
  align-items: end;
}
.calq-hwa-terrein-result {
  grid-column: 1 / -1;
  padding: 0.55rem 0.65rem;
  background: #ecfdf5;
  border: 1px solid #6ee7b7;
  border-radius: 6px;
  font-size: 0.85rem;
}
.calq-hwa-uv-note {
  padding: 0.5rem 0.85rem 0.75rem;
  font-size: 0.8rem;
  line-height: 1.45;
}
.calq-hwa-uv-note ul { margin: 0.35rem 0 0; padding-left: 1.2rem; }
.calq-hwa-warnings {
  margin: 0 0 0.75rem;
  padding: 0.55rem 0.85rem;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 6px;
}
.calq-hwa-warnings__item {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: #92400e;
}
.calq-hwa-warnings__item + .calq-hwa-warnings__item { margin-top: 0.35rem; }

@media (max-width: 960px) {
  .calq-hwa-layout {
    grid-template-columns: 1fr;
  }
  .calq-hwa-layout__results {
    border-left: none;
    border-top: 1px solid var(--calq-border);
    order: -1;
  }
  .calq-hwa-figures__row--dak,
  .calq-hwa-figures__row--norm { grid-template-columns: 1fr 1fr; }
}

@media print {
  .calq-hwa-panel .calq-co2-details,
  .calq-hwa-block.print-hidden { display: none !important; }
  .calq-workspace[data-calq-mod="hwa"] { padding: 0; margin: 0; }
  .calq-hwa-sheet { border: none; border-radius: 0; }
  .calq-hwa-table { font-size: 0.58rem; }
  .calq-hwa-table th,
  .calq-hwa-table td { padding: 0.1rem 0.2rem; }
  .calq-hwa-table thead th { font-size: 0.55rem; }
  .calq-hwa-table__input .calq-hwa-num,
  .calq-hwa-table__type .calq-hwa-text { padding: 0.08rem 0.15rem; font-size: 0.58rem; }
  .calq-hwa-block .calq-block__head { padding: 0.15rem 0.35rem !important; font-size: 0.6rem !important; }
  .calq-hwa-formula { padding: 0.1rem 0.35rem 0.2rem; font-size: 0.55rem; }
  .calq-hwa-params--inline { padding: 0.15rem 0.35rem; }
  .calq-hwa-ref-scroll { max-height: none; overflow: visible; }
  .calq-hwa-grid { grid-template-columns: 1.05fr 0.8fr; page-break-inside: avoid; }
  .calq-hwa-figures { padding: 0.2rem 0.35rem 0.25rem; page-break-inside: avoid; }
  .calq-hwa-figures__row--dak { grid-template-columns: 0.85fr 1.15fr; }
  .calq-hwa-figures__row--norm { grid-template-columns: repeat(5, 1fr); }
  .calq-hwa-fig img { max-height: 62px; border-color: #ccc; }
  .calq-main:has(.calq-workspace[data-calq-mod="hwa"]) > .calq-sheet-kop {
    padding: 0.15rem 0.25rem;
    margin-bottom: 0.15rem;
  }
  .calq-main:has(.calq-workspace[data-calq-mod="hwa"]) .calq-sheet-meta-field {
    font-size: 0.55rem;
    grid-template-columns: 3.5rem minmax(0, 1fr);
  }
  .calq-main:has(.calq-workspace[data-calq-mod="hwa"]) .calq-sheet-kop__report-logo {
    max-height: 3.25rem;
    max-width: 16rem;
  }
}

.calq-fields--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-end;
}
.calq-field--grow { flex: 1 1 12rem; min-width: 12rem; }
.calq-table-wrap {
  overflow-x: auto;
  margin-top: 0.5rem;
}
.calq-uurnormen-layout .calq-block + .calq-block { margin-top: 1.25rem; }
.calq-uurnormen-toolbar { margin-bottom: 0.75rem; }
.calq-ctn-hier-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem 1.5rem;
  padding: 0.75rem 1rem 0.5rem;
}
.calq-ctn-hier-search {
  flex: 1 1 14rem;
  min-width: 10rem;
  margin: 0;
}
.calq-ctn-pub-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  padding-bottom: 0.15rem;
  flex-shrink: 0;
}
.calq-ctn-pub-check {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  cursor: pointer;
  font-size: 0.92rem;
  color: #1e40af;
  user-select: none;
  white-space: nowrap;
}
.calq-ctn-pub-check input {
  width: 1rem;
  height: 1rem;
  accent-color: #2563eb;
  cursor: pointer;
}
.align-right { text-align: right; }

.calq-ctn-hierarchy {
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: 8px;
  background: #fff;
  font-size: 0.9rem;
}
.calq-ctn-block { border-bottom: 1px solid #eef2f7; }
.calq-ctn-block:last-child { border-bottom: 0; }

.calq-ctn-node {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  width: 100%;
  text-align: left;
  border: 0;
  background: #fff;
  padding: 0.5rem 0.65rem;
  cursor: pointer;
  font: inherit;
  color: #2563eb;
}
.calq-ctn-node:hover { background: #f8fafc; }
.calq-ctn-toggle {
  display: inline-flex;
  width: 1rem;
  justify-content: center;
  color: var(--calq-muted);
  font-weight: 700;
  flex-shrink: 0;
}
.calq-ctn-code {
  color: inherit;
  flex-shrink: 0;
}
.calq-ctn-display { color: inherit; }
.calq-ctn-display--strong { font-weight: 700; }

.calq-ctn-block--root > .calq-ctn-node { padding-left: 0.65rem; }
.calq-ctn-branch--1 .calq-ctn-node { padding-left: 1.25rem; }
.calq-ctn-branch--2 .calq-ctn-node { padding-left: 2.25rem; }
.calq-ctn-branch--3 .calq-ctn-node { padding-left: 3.25rem; }
.calq-ctn-branch--4 .calq-ctn-node { padding-left: 4.25rem; }
.calq-ctn-branch--5 .calq-ctn-node { padding-left: 5.25rem; }
.calq-ctn-branch--6 .calq-ctn-node { padding-left: 6.25rem; }

.calq-ctn-level-6 {
  padding: 0 0.5rem 0.75rem 1rem;
  margin-left: 6.5rem;
}
.calq-ctn-empty {
  color: var(--calq-muted);
  font-size: 0.85rem;
  padding: 0.35rem 0;
}
.calq-ctn-norms-table {
  margin: 0;
  font-size: 0.82rem;
}
.calq-ctn-norms-table th,
.calq-ctn-norms-table td {
  padding: 0.35rem 0.5rem;
}
.calq-ctn-node--match > .calq-ctn-display { font-weight: 600; }
.calq-ctn-mark {
  background: #fef08a;
  color: inherit;
  padding: 0 0.1em;
  border-radius: 2px;
}
.calq-ctn-hier-empty {
  padding: 1rem;
  color: var(--calq-muted);
  text-align: center;
}

/* ——— Installatieconcepten (00 algemeen) ——— */
.calq-ic-wizard { margin-bottom: 0.75rem; }
.calq-ic-wizard__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.calq-ic-wizard__body { padding: 0.75rem 1rem 1rem; }
.calq-ic-wizard__intro {
  margin: 0 0 0.85rem;
  font-size: 0.88rem;
  color: var(--calq-muted);
}
.calq-ic-wizard__filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}
.calq-ic-wizard__filter select {
  width: 100%;
  font: inherit;
  font-size: 0.82rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #fff;
}
.calq-ic-wizard__filter--wide { grid-column: 1 / -1; max-width: 420px; }
.calq-ic-wizard__modus { margin-bottom: 0.75rem; }
.calq-ic-wizard__sub {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--calq-text, inherit);
}
.calq-ic-wizard__subhint {
  font-weight: 400;
  color: var(--calq-muted);
  font-size: 0.78rem;
}
.calq-ic-wizard__slider-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.65rem 1rem;
  margin-bottom: 1rem;
}
.calq-ic-wizard__slider label { font-size: 0.82rem; font-weight: 600; }
.calq-ic-wizard__slider-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
}
.calq-ic-wizard__weight {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--calq-green);
  min-width: 1rem;
  text-align: right;
}
.calq-ic-wizard__hint {
  margin: 0.15rem 0 0.35rem;
  font-size: 0.72rem;
  color: var(--calq-muted);
}
.calq-ic-wizard__slider input[type="range"] {
  width: 100%;
  accent-color: var(--calq-green);
}
.calq-ic-wizard__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.5rem;
}
.calq-ic-wizard__card {
  display: grid;
  grid-template-columns: 2rem 1fr auto;
  gap: 0.5rem;
  align-items: center;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.calq-ic-wizard__card:hover { background: #f8fafc; border-color: #cbd5e1; }
.calq-ic-wizard__card.is-active {
  background: var(--calq-accent-soft);
  border-color: var(--calq-accent-muted);
  box-shadow: inset 2px 0 0 var(--calq-green);
}
.calq-ic-wizard__card-nr {
  font-weight: 700;
  color: var(--calq-green);
  font-size: 0.9rem;
}
.calq-ic-wizard__card-title {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.calq-ic-wizard__card-bar {
  display: block;
  height: 4px;
  border-radius: 2px;
  background: #e2e8f0;
  overflow: hidden;
}
.calq-ic-wizard__card-bar span {
  display: block;
  height: 100%;
  background: var(--calq-green);
  border-radius: 2px;
}
.calq-ic-wizard__card-pct {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--calq-green);
}
.calq-ic-item__match {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--calq-green);
  margin-right: 0.35rem;
}
.calq-ic-guide.is-collapsed .calq-ic-guide__body { display: none; }
.calq-ic-guide {
  margin-bottom: 0.75rem;
}
.calq-ic-guide__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.calq-ic-guide__toggle {
  border: 1px solid var(--calq-border);
  background: #fff;
  color: var(--calq-muted);
  font: inherit;
  font-size: 0.75rem;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  cursor: pointer;
}
.calq-ic-guide__toggle:hover { background: #f8fafc; }
.calq-ic-guide__body {
  padding: 0.75rem 1rem 1rem;
  font-size: 0.88rem;
  line-height: 1.5;
}
.calq-ic-guide__intro {
  margin: 0 0 0.85rem;
  color: var(--calq-muted);
}
.calq-ic-guide__fasen {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.calq-ic-guide__fase {
  padding: 0.6rem 0.75rem;
  border: 1px solid #dbeafe;
  border-radius: 6px;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.calq-ic-guide__fase strong { color: var(--calq-green); font-size: 0.9rem; }
.calq-ic-guide__fase em { font-size: 0.78rem; color: var(--calq-muted); font-style: normal; }
.calq-ic-guide__sub {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--calq-muted);
}
.calq-ic-guide__steps {
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.65rem;
}
.calq-ic-guide__step {
  padding: 0.65rem 0.75rem;
  border: 1px solid #eef2f7;
  border-radius: 6px;
  background: #fff;
}
.calq-ic-guide__step p { margin: 0.35rem 0 0; font-size: 0.85rem; color: var(--calq-muted); }
.calq-ic-guide__step-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.calq-ic-guide__step-nr {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: var(--calq-green);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
}
.calq-ic-guide__step-tab {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  background: #ecfdf5;
  color: var(--calq-green);
  border: 1px solid #bbf7d0;
}
.calq-ic-guide__tabs {
  margin: 0.4rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.8rem;
  color: var(--calq-muted);
}
.calq-ic-guide__list {
  margin: 0 0 0.75rem;
  padding-left: 1.15rem;
  font-size: 0.85rem;
}
.calq-ic-guide__list li { margin-bottom: 0.25rem; }
.calq-ic-guide__actions { margin-top: 0.5rem; }
.calq-ic-layout {
  align-items: start;
}
.calq-ic-list-panel { min-width: 0; }
.calq-ic-detail-panel { min-width: 0; position: static; max-height: none; overflow: visible; }
.calq-ic-toolbar {
  display: grid;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
}
.calq-ic-toolbar .calq-field { margin: 0; }
.calq-ic-cat-select {
  width: 100%;
  font: inherit;
  font-size: 0.82rem;
}
.calq-ic-group__head {
  padding: 0.4rem 0.75rem 0.3rem;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #123d28;
  background: var(--calq-accent-strong);
  border-bottom: var(--calq-head-rule);
  position: sticky;
  top: 0;
  z-index: 1;
}
.calq-ic-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.5rem 0.85rem 0;
}
.calq-ic-badge {
  display: inline-block;
  font-size: 0.72rem;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: #ecfdf5;
  color: var(--calq-green);
  border: 1px solid #bbf7d0;
}
.calq-ic-badge--muted {
  background: #f8fafc;
  color: var(--calq-muted);
  border-color: var(--calq-border);
}
.calq-ic-isso-ref {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
  color: var(--calq-muted);
}
.calq-ic-list {
  display: flex;
  flex-direction: column;
  max-height: min(70vh, 640px);
  overflow-y: auto;
}
.calq-ic-item {
  display: grid;
  grid-template-columns: 1.75rem minmax(0, 1fr);
  gap: 0 0.5rem;
  align-items: start;
  width: 100%;
  padding: 0.55rem 0.75rem;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.calq-ic-item__body { min-width: 0; display: flex; flex-direction: column; gap: 0.2rem; }
.calq-ic-item__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 0;
}
.calq-ic-item__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem; }
.calq-ic-item__isso {
  font-size: 0.68rem;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  background: #f1f5f9;
  color: #475569;
  font-weight: 600;
}
.calq-ic-item__caps { display: inline-flex; gap: 0.2rem; }
.calq-ic-cap {
  font-size: 0.64rem;
  padding: 0.08rem 0.3rem;
  border-radius: 4px;
  font-weight: 600;
  border: 1px solid transparent;
}
.calq-ic-cap--yes { background: #dbeafe; color: #1d4ed8; border-color: #bfdbfe; }
.calq-ic-cap--part { background: #fef3c7; color: #b45309; border-color: #fde68a; }
.calq-ic-cap--no { background: #f1f5f9; color: #94a3b8; border-color: #e2e8f0; }
.calq-ic-cap--none { display: none; }
.calq-ic-item:hover { background: #f8fafc; }
.calq-ic-item.is-active {
  background: #ecfdf5;
  box-shadow: inset 3px 0 0 var(--calq-green);
}
.calq-ic-item__nr {
  font-weight: 700;
  color: var(--calq-green);
  font-size: 0.85rem;
}
.calq-ic-item__title {
  font-size: 0.82rem;
  line-height: 1.35;
  font-weight: 600;
  min-width: 0;
  flex: 1 1 auto;
}
.calq-ic-item__count {
  font-size: 0.68rem;
  color: var(--calq-muted);
  white-space: nowrap;
  flex-shrink: 0;
}
.calq-ic-detail { padding: 0.75rem 1rem 1rem; }
.calq-ic-points {
  margin: 0;
  padding-left: 1.15rem;
  line-height: 1.5;
}
.calq-ic-points li { margin-bottom: 0.45rem; }
.calq-ic-meta {
  padding: 0.5rem 1rem 0.75rem;
  font-size: 0.75rem;
  color: var(--calq-muted);
  border-top: 1px solid #eef2f7;
}
.calq-ic-empty { padding: 1rem; color: var(--calq-muted); text-align: center; }
.calq-ic-figures { margin-bottom: 1rem; }
.calq-ic-figures__title,
.calq-ic-text__title {
  margin: 0 0 0.5rem;
  padding-bottom: 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #123d28;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-bottom: var(--calq-head-rule);
}
.calq-ic-figures__hint {
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  color: var(--calq-muted);
}
.calq-ic-figures__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.calq-ic-figures__grid--multi {
  grid-template-columns: 1fr;
}
@media (min-width: 1100px) {
  .calq-ic-figures__grid--multi {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.calq-ic-figure {
  margin: 0;
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.calq-ic-figure__btn {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: #f8fafc;
  cursor: zoom-in;
  line-height: 0;
}
.calq-ic-figure__btn:hover { background: #f1f5f9; }
.calq-ic-figure__btn:focus-visible {
  outline: 2px solid var(--calq-green-light);
  outline-offset: -2px;
}
.calq-ic-figure__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  background: #f8fafc;
}
.calq-ic-figure__cap {
  padding: 0.4rem 0.65rem;
  font-size: 0.75rem;
  color: var(--calq-muted);
  text-align: center;
  border-top: 1px solid #eef2f7;
  background: #fff;
}
.calq-ic-lightbox {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.calq-ic-lightbox[hidden] { display: none; }
.calq-ic-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.82);
}
.calq-ic-lightbox__frame {
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: min(96vw, 1400px);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.calq-ic-lightbox__img {
  display: block;
  max-width: 100%;
  max-height: calc(92vh - 2.5rem);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  background: #fff;
}
.calq-ic-lightbox__cap {
  margin-top: 0.5rem;
  color: #e2e8f0;
  font-size: 0.85rem;
  text-align: center;
}
.calq-ic-lightbox__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.95);
  color: var(--calq-text);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
.calq-ic-lightbox__close:hover { background: #fff; }
.calq-ic-text { margin-top: 0.25rem; }

/* ——— Installatieconcepten v2 (herontwerp) ——— */
.calq-ic-topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.6rem;
}
.calq-ic-topbar__text { min-width: 0; }
.calq-ic-topbar h1 { margin: 0 0 0.15rem; }
.calq-ic-topbar .calq-lead { margin: 0; }
.calq-ic-sources {
  flex-shrink: 0;
  font-size: 0.78rem;
  color: var(--calq-muted);
}
.calq-ic-sources summary {
  cursor: pointer;
  list-style: none;
  padding: 0.25rem 0.55rem;
  border: 1px solid var(--calq-border);
  border-radius: 999px;
  white-space: nowrap;
}
.calq-ic-sources summary::-webkit-details-marker { display: none; }
.calq-ic-sources summary:hover { background: #f8fafc; }
.calq-ic-sources[open] > div {
  margin-top: 0.4rem;
  max-width: 320px;
  line-height: 1.4;
}

/* Wizard collapse */
.calq-ic-wizard:not(.is-open) .calq-ic-wizard__body { display: none; }
.calq-ic-wizard__collapse {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 600;
  color: inherit;
  cursor: pointer;
  padding: 0;
}
.calq-ic-wizard__chevron {
  font-size: 0.7rem;
  transition: transform 0.15s ease;
}
.calq-ic-wizard:not(.is-open) .calq-ic-wizard__chevron { transform: rotate(-90deg); }

/* Wizard body: bediening links, resultaten rechts */
.calq-ic-wizard__cols {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}
.calq-ic-wizard__controls { min-width: 0; }
.calq-ic-wizard__results {
  min-width: 0;
  border-left: 1px solid #eef2f7;
  padding-left: 1.1rem;
}
.calq-ic-wizard__groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.65rem 1rem;
  margin-bottom: 0.75rem;
}
.calq-ic-wizard__advanced {
  margin-top: 0.4rem;
  border-top: 1px dashed var(--calq-border);
  padding-top: 0.5rem;
}
.calq-ic-wizard__advanced summary {
  cursor: pointer;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--calq-green);
  list-style: revert;
}
.calq-ic-wizard__advanced .calq-ic-wizard__slider-grid { margin-top: 0.6rem; margin-bottom: 0; }
.calq-ic-wizard__cards { grid-template-columns: 1fr; }
.calq-ic-wizard__card { grid-template-columns: 1.6rem 1fr auto; align-items: start; }
.calq-ic-wizard__card-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: var(--calq-accent-soft, #ecfdf5);
  color: var(--calq-green);
  font-weight: 700;
  font-size: 0.82rem;
}
.calq-ic-why {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.7rem;
  line-height: 1.35;
}
.calq-ic-why__pos { color: #047857; margin-right: 0.5rem; }
.calq-ic-why__neg { color: #b45309; }

/* Lijstkop met vergelijk-knop */
.calq-ic-list-head,
.calq-ic-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.calq-ic-compare-btn {
  border: 1px solid var(--calq-border);
  background: #fff;
  color: var(--calq-muted);
  font: inherit;
  font-size: 0.74rem;
  font-weight: 600;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  cursor: pointer;
}
.calq-ic-compare-btn:hover { background: #f8fafc; }
.calq-ic-compare-btn[aria-pressed="true"] {
  background: var(--calq-green);
  color: #fff;
  border-color: var(--calq-green);
}
.calq-ic-detail-actions { display: flex; gap: 0.4rem; }
.calq-ic-save-hint {
  margin: 0;
  padding: 0.5rem 0.85rem;
  font-size: 0.78rem;
  color: var(--calq-muted);
  background: #f8fafc;
  border-bottom: 1px solid #eef2f7;
}

/* Thumbnail in lijst (punt 8) — override op basisregel voor de extra kolom */
.calq-ic-item { grid-template-columns: 1.5rem 40px minmax(0, 1fr); }
.calq-ic-item__thumb {
  width: 40px;
  height: 34px;
  border-radius: 4px;
  overflow: hidden;
  background: #f1f5f9;
  border: 1px solid #eef2f7;
  display: flex;
  align-items: center;
  justify-content: center;
}
.calq-ic-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.calq-ic-item__thumb--none { background: repeating-linear-gradient(45deg, #f8fafc, #f8fafc 4px, #f1f5f9 4px, #f1f5f9 8px); }

/* Match-uitleg in detail (punt 5) */
.calq-ic-matchpanel {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  padding: 0.5rem 0.7rem;
  margin-bottom: 0.85rem;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  background: #ecfdf5;
}
.calq-ic-matchpanel__pct { font-size: 0.82rem; color: #065f46; }
.calq-ic-matchpanel__pct span { font-size: 1.05rem; font-weight: 700; color: var(--calq-green); }
.calq-ic-matchpanel__why { font-size: 0.76rem; }

/* Vergelijkingstabel (punt 4) */
.calq-ic-cmp__legend {
  margin: 0 0 0.6rem;
  font-size: 0.74rem;
  color: var(--calq-muted);
  line-height: 1.4;
}
.calq-ic-cmp__wrap { overflow-x: auto; }
.calq-ic-cmp {
  border-collapse: collapse;
  font-size: 0.76rem;
  width: 100%;
}
.calq-ic-cmp th,
.calq-ic-cmp td {
  padding: 0.3rem 0.35rem;
  text-align: center;
  border-bottom: 1px solid #eef2f7;
  white-space: nowrap;
}
.calq-ic-cmp thead th {
  position: sticky;
  top: 0;
  background: #f8fafc;
  font-weight: 700;
  color: #475569;
  font-size: 0.68rem;
}
.calq-ic-cmp__nr { color: var(--calq-green); font-weight: 700; }
.calq-ic-cmp__name { text-align: left; font-weight: 600; }
.calq-ic-cmp__row { cursor: pointer; }
.calq-ic-cmp__row:hover td { background: #f8fafc; }
.calq-ic-cmp__row.is-active td { background: #ecfdf5; }
.calq-ic-dot { font-size: 0.9rem; line-height: 1; }
.calq-ic-dot--3 { color: #047857; }
.calq-ic-dot--2 { color: #16a34a; }
.calq-ic-dot--1 { color: #d97706; }
.calq-ic-dot--0,
.calq-ic-dot--na { color: #cbd5e1; }

@media (max-width: 980px) {
  .calq-ic-wizard__cols { grid-template-columns: 1fr; }
  .calq-ic-wizard__results {
    border-left: 0;
    border-top: 1px solid #eef2f7;
    padding-left: 0;
    padding-top: 0.75rem;
  }
}

/* ——— Geluidsmetingen (00 algemeen → geluid) ——— */
.calq-geluid-layout {
  display: grid;
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}
.calq-geluid-toolbar { padding: 0.65rem 0.75rem 0; }
.calq-geluid-list {
  display: flex;
  flex-direction: column;
  max-height: min(70vh, 640px);
  overflow-y: auto;
}
.calq-geluid-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.2rem;
  width: 100%;
  padding: 0.55rem 0.75rem;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.calq-geluid-item:hover { background: #f8fafc; }
.calq-geluid-item.is-active {
  background: #ecfdf5;
  box-shadow: inset 3px 0 0 var(--calq-green);
}
.calq-geluid-item__title {
  font-size: 0.82rem;
  line-height: 1.35;
  font-weight: 600;
}
.calq-geluid-item__sub {
  font-size: 0.72rem;
  color: var(--calq-muted);
}
.calq-geluid-item__count {
  font-size: 0.72rem;
  color: var(--calq-muted);
}
.calq-geluid-meta {
  padding: 0.65rem 1rem 0;
  border-bottom: 1px solid #eef2f7;
}
.calq-geluid-meta-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 0.75rem;
  margin: 0;
  font-size: 0.82rem;
}
.calq-geluid-meta-grid dt {
  margin: 0;
  color: var(--calq-muted);
  font-weight: 600;
}
.calq-geluid-meta-grid dd { margin: 0; }
.calq-geluid-charts {
  padding: 0.75rem 1rem 0;
  display: grid;
  gap: 1rem;
}
.calq-geluid-chart-block { margin: 0; }
.calq-geluid-chart-wrap {
  margin: 0;
  padding: 0.35rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
}
.calq-geluid-chart {
  width: 100%;
  height: auto;
  display: block;
  max-height: min(440px, 52vh);
  min-height: 280px;
}
.calq-geluid-tables { padding: 0.75rem 1rem 1rem; }
.calq-geluid-table-block { margin-bottom: 1.25rem; }
.calq-geluid-table-title {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  font-weight: 700;
}
.calq-geluid-table th.num,
.calq-geluid-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.calq-geluid-table th[scope="row"] { font-weight: 600; white-space: nowrap; }
.calq-geluid-highlight { font-weight: 700; color: var(--calq-green); }
.calq-geluid-table--compact { font-size: 0.78rem; }
.calq-geluid-nr-ref {
  margin-top: 0.5rem;
  font-size: 0.82rem;
}
.calq-geluid-nr-ref summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--calq-muted);
  margin-bottom: 0.5rem;
}
.calq-geluid-footer {
  padding: 0.5rem 1rem 0.75rem;
  font-size: 0.75rem;
  color: var(--calq-muted);
  border-top: 1px solid #eef2f7;
}
.calq-geluid-empty { padding: 1rem; color: var(--calq-muted); text-align: center; }

.calq-geluid-metingen-workspace {
  display: grid;
  gap: 0.75rem;
}
.calq-geluid-hint {
  margin: 0;
  padding: 0.5rem 1rem 0;
  font-size: 0.82rem;
  color: var(--calq-muted);
}
.calq-geluid-input-table input {
  width: 3.25rem;
  padding: 0.3rem 0.35rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font: inherit;
  font-size: 0.82rem;
  text-align: right;
}
.calq-geluid-naam-input {
  width: 100%;
  min-width: 7rem;
  text-align: left !important;
}
.calq-geluid-band-input:focus,
.calq-geluid-naam-input:focus {
  outline: 2px solid #86efac;
  border-color: var(--calq-green);
}
.calq-geluid-actions { width: 2.5rem; text-align: center; }
.calq-geluid-remove {
  min-width: 2rem;
  padding: 0.15rem 0.4rem;
  font-size: 1.1rem;
  line-height: 1;
}
.calq-geluid-chart-panel .calq-geluid-chart-wrap { margin: 0.75rem 1rem 1rem; }
.calq-geluid-chart-empty {
  margin: 0 1rem 1rem;
  font-size: 0.82rem;
}
.calq-geluid-chart-empty.hidden { display: none; }

.calq-geluid-kpi-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  padding: 0.65rem 1rem 0;
}
.calq-geluid-preset-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid #eef2f7;
}
.calq-geluid-kpi-row .calq-kpi {
  min-width: 7rem;
}
.calq-geluid-verdict {
  margin: 0.75rem 1rem;
  padding: 0.65rem 0.85rem;
  border-radius: 6px;
  font-size: 0.88rem;
}
.calq-geluid-verdict-row {
  padding: 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.calq-geluid-ok {
  background: #ecfdf5;
  border: 1px solid #86efac;
  color: #166534;
}
.calq-geluid-fail {
  background: #fef2f2;
  border: 1px solid #fca5a5;
  color: #991b1b;
}
.calq-geluid-detail__summary {
  cursor: pointer;
  list-style: none;
}
.calq-geluid-detail__summary::-webkit-details-marker { display: none; }
.calq-geluid-detail-steps {
  margin: 0.75rem 1rem 1rem;
}
.calq-geluid-detail-steps summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--calq-muted);
  margin-bottom: 0.5rem;
}
.calq-geluid-bron-block {
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid #eef2f7;
}
.calq-geluid-bron-block legend {
  font-weight: 600;
  font-size: 0.88rem;
  padding: 0 0.25rem;
}
.calq-geluid-toets-inline {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #eef2f7;
}
.calq-geluid-custom-norm {
  margin-top: 0.75rem;
  padding: 0.75rem 1rem;
  background: #f8fafc;
  border-radius: 6px;
}

/* Geluid — buitenunit erfgrens (split-aside: kaart + beknopt resultaat) */
.calq-geluid-verdict-banner {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  border: 0.5px solid var(--calq-border);
}
.calq-geluid-verdict-banner--ok {
  background: #eafaf0;
  border-color: #86efac;
}
.calq-geluid-verdict-banner--ok .calq-geluid-verdict-banner__title {
  color: #0f6e56;
}
.calq-geluid-verdict-banner--warn {
  background: #fef6e7;
  border-color: #fcd34d;
}
.calq-geluid-verdict-banner--warn .calq-geluid-verdict-banner__title {
  color: #854f0b;
}
.calq-geluid-verdict-banner--fail {
  background: #fdecec;
  border-color: #fca5a5;
}
.calq-geluid-verdict-banner--fail .calq-geluid-verdict-banner__title {
  color: #791f1f;
}
.calq-geluid-verdict-banner__main {
  flex: 1;
  min-width: 0;
}
.calq-geluid-verdict-banner__title {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.3;
}
.calq-geluid-verdict-banner__sub {
  margin-top: 0.15rem;
  font-size: 0.8125rem;
  color: var(--calq-muted);
  line-height: 1.45;
}
.calq-geluid-verdict-banner__lpa {
  text-align: right;
  flex-shrink: 0;
}
.calq-geluid-verdict-banner__val {
  font-size: 2.125rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: var(--calq-text);
}
.calq-geluid-verdict-banner__unit {
  font-size: 0.6875rem;
  color: var(--calq-faint);
  margin-top: 0.15rem;
}
.calq-geluid-map-wrap {
  border-radius: 12px;
  border: 0.5px solid var(--calq-border);
  background: var(--calq-surface);
  overflow: hidden;
}
.calq-geluid-map__svg {
  display: block;
  width: 100%;
  height: auto;
}
.calq-geluid-advies {
  padding: 0.8rem 0.95rem;
  border-radius: 12px;
  background: var(--calq-linked);
  border: 0.5px solid var(--calq-linked-border);
  font-size: 0.8125rem;
  line-height: 1.6;
  color: var(--calq-green);
}
.calq-geluid-advies strong {
  font-weight: 600;
}
[data-calq-module="geluid"] .calq-geluid-fields--sliders {
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
}
.calq-geluid-field--slider {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.65rem 0.75rem;
  background: var(--calq-bg);
  border-radius: var(--calq-radius, 8px);
}
.calq-geluid-field__slider-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.75rem;
}
.calq-geluid-field__slider-val {
  color: var(--calq-muted);
  font-variant-numeric: tabular-nums;
}
.calq-geluid-field--slider input[type="range"] {
  width: 100%;
  margin: 0;
}
.calq-geluid-q-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.65rem;
}
.calq-geluid-q-buttons__label {
  font-size: 0.75rem;
  color: var(--calq-muted);
  margin-right: 0.15rem;
}
.calq-geluid-q-buttons .calq-btn.is-active {
  border-color: var(--calq-green);
  background: var(--calq-accent-soft);
  color: var(--calq-green);
}

/* BAG/kadaster-modus buitenunit */
.calq-geluid-bag-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 0.75rem;
}
.calq-geluid-bag-toggle .calq-btn.is-active {
  border-color: var(--calq-green);
  background: var(--calq-accent-soft);
  color: var(--calq-green);
}
.calq-geluid-bag-panel {
  margin-bottom: 0.85rem;
  padding: 0.75rem;
  border: 0.5px solid var(--calq-border);
  border-radius: 10px;
  background: var(--calq-surface);
}
.calq-geluid-bag-address {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.5rem;
}
.calq-geluid-bag-address input[type="text"] {
  flex: 1 1 12rem;
  min-width: 0;
  padding: 0.45rem 0.55rem;
  border: 0.5px solid var(--calq-border);
  border-radius: 6px;
  font: inherit;
}
.calq-geluid-bag-align {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin-bottom: 0.45rem;
  font-size: 0.82rem;
}
.calq-geluid-bag-align input[type="range"] {
  flex: 1 1 8rem;
  min-width: 6rem;
  max-width: 12rem;
}
.calq-geluid-bag-info {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.35rem;
}
.calq-geluid-bag-chip {
  display: inline-block;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  background: var(--calq-accent-soft);
  color: var(--calq-green);
  border: 0.5px solid rgba(22, 77, 49, 0.15);
}
.calq-geluid-bag-edges {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid #eef2f7;
}
.calq-geluid-bag-edges__title {
  margin: 0 0 0.45rem;
  font-size: 0.875rem;
  font-weight: 600;
}
.calq-geluid-bag-edges__table {
  font-size: 0.82rem;
}
.calq-geluid-bag-edges__row--lead td {
  font-weight: 600;
}
.calq-geluid-bag-badge {
  display: inline-block;
  margin-left: 0.25rem;
  padding: 0.05rem 0.35rem;
  border-radius: 4px;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  background: var(--calq-accent-soft);
  color: var(--calq-green);
}
[data-calq-module="geluid"] .calq-geluid-split__aside .calq-geluid-bag-map__svg {
  display: block;
  width: 100%;
  height: auto;
}

[data-calq-module="geluid"] .calq-geluid-split__aside #gbu-diagram {
  border-radius: 12px;
  border: 0.5px solid var(--calq-border);
  background: var(--calq-surface);
  overflow: hidden;
  margin-bottom: 0.65rem;
}
[data-calq-module="geluid"] .calq-geluid-split__aside .calq-geluid-verdict-banner {
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  margin-bottom: 0.5rem;
}
[data-calq-module="geluid"] .calq-geluid-split__aside .calq-geluid-verdict-banner__lpa {
  text-align: left;
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
}
[data-calq-module="geluid"] .calq-geluid-split__aside .calq-geluid-verdict-banner__val {
  font-size: 1.5rem;
}
[data-calq-module="geluid"] .calq-geluid-split__aside .calq-geluid-verdict-banner__title {
  font-size: 0.875rem;
}
[data-calq-module="geluid"] .calq-geluid-split__aside .calq-geluid-verdict-banner__sub {
  font-size: 0.75rem;
}
[data-calq-module="geluid"] .calq-geluid-split__aside .calq-geluid-advies {
  padding: 0.65rem 0.75rem;
  font-size: 0.75rem;
  line-height: 1.5;
}
[data-calq-module="geluid"] .calq-geluid-split__main #gbu-result {
  margin-top: 0.85rem;
  padding: 0.85rem 0 0;
  border-top: 1px solid #eef2f7;
}
[data-calq-module="geluid"] .calq-geluid-result-extended__title {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.35;
}
[data-calq-module="geluid"] .calq-geluid-split__main #gbu-result .calq-geluid-verdict-row {
  margin-left: 0;
  margin-right: 0;
}
[data-calq-module="geluid"] .calq-geluid-split__main #gbu-result .calq-geluid-detail-steps {
  margin: 0.65rem 0 0;
}

/* Geluid — split layout + ISSO-diagrammen */
[data-calq-module="geluid"] .calq-lead {
  max-width: 46rem;
  margin-bottom: 0.35rem;
}
[data-calq-module="geluid"] .calq-module-main {
  display: grid;
  gap: 0.65rem;
  max-width: none;
}
[data-calq-module="geluid"][data-calq-mod="buiten"] .calq-geluid-split {
  grid-template-columns: minmax(0, 1fr) minmax(24rem, 34rem);
}
/* Broncheck: invoer breed links, Q-uitleg smaller rechts; onderbouwing eronder over volle breedte */
[data-calq-module="geluid"][data-calq-mod="broncheck"] .calq-geluid-split {
  grid-template-columns: minmax(0, 1fr) minmax(19rem, 25rem);
}
/* Broncheck — onderbouwing: rekentabel links, grafieken rechts */
.calq-geluid-bk-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 1rem 1.25rem;
  align-items: start;
  padding: 0.85rem 1rem 1rem;
}
@media (max-width: 62rem) {
  .calq-geluid-bk-layout { grid-template-columns: 1fr; }
}
.calq-geluid-bk-col { min-width: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.calq-geluid-bk-table th .calq-muted { font-weight: 400; font-size: 0.72em; }
.calq-geluid-bk-table td.num { white-space: nowrap; }
.calq-geluid-bk-table tr.is-dominant { background: rgba(37, 99, 235, 0.06); }
.calq-geluid-bk-table tfoot th,
.calq-geluid-bk-table tfoot td { font-weight: 700; border-top: 2px solid var(--calq-border, #e2e8f0); }
.calq-geluid-bk-dot {
  display: inline-block; width: 9px; height: 9px; border-radius: 2px;
  margin-right: 0.4rem; vertical-align: middle;
}
.calq-geluid-bk-som {
  display: flex; flex-direction: column; gap: 0.15rem;
  padding: 0.6rem 0.75rem; border-radius: 8px;
  background: #f8fafc; border: 1px solid #eef2f7;
  font-size: 0.82rem;
}
.calq-geluid-bk-som__f { color: #64748b; font-variant-numeric: tabular-nums; }
.calq-geluid-bk-som__c { color: #0f172a; font-variant-numeric: tabular-nums; }
.calq-geluid-bk-toets {
  padding: 0.65rem 0.8rem; border-radius: 8px; border: 1px solid transparent;
}
.calq-geluid-bk-toets.calq-geluid-ok { background: #ecfdf5; border-color: #a7f3d0; }
.calq-geluid-bk-toets.calq-geluid-fail { background: #fef2f2; border-color: #fecaca; }
.calq-geluid-bk-toets .calq-geluid-verdict { margin: 0 0 0.35rem; }
.calq-geluid-bk-advies { margin: 0; padding-left: 1.1rem; font-size: 0.8rem; line-height: 1.5; }
.calq-geluid-bk-advies li { margin-bottom: 0.15rem; }
.calq-geluid-bk-fig { margin: 0; }
.calq-geluid-bk-fig figcaption {
  font-size: 0.78rem; font-weight: 600; color: #334155; margin-bottom: 0.35rem;
}
.calq-geluid-bk-chart {
  width: 100%; height: auto; display: block;
  border: 1px solid #eef2f7; border-radius: 8px; background: #fff;
  font-variant-numeric: tabular-nums;
}
.calq-geluid-bk-bars { display: flex; flex-direction: column; gap: 0.4rem; }
.calq-geluid-bk-bar-row {
  display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr auto;
  align-items: center; gap: 0.5rem; font-size: 0.8rem;
}
.calq-geluid-bk-bar-name {
  color: #334155; display: flex; align-items: center; flex-wrap: wrap; gap: 0.15rem;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.calq-geluid-bk-bar-row.is-dominant .calq-geluid-bk-bar-name { font-weight: 700; }
.calq-geluid-bk-dom {
  font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em;
  color: #1d4ed8; background: #dbeafe; border-radius: 3px; padding: 0.05rem 0.3rem; margin-left: 0.25rem;
}
.calq-geluid-bk-bar-track {
  height: 12px; border-radius: 6px; background: #f1f5f9; overflow: hidden;
}
.calq-geluid-bk-bar-fill { display: block; height: 100%; border-radius: 6px; min-width: 2px; }
.calq-geluid-bk-bar-val { color: #0f172a; white-space: nowrap; font-variant-numeric: tabular-nums; }
.calq-kpi.calq-kpi--ok { border-color: #a7f3d0; }
.calq-kpi.calq-kpi--ok .calq-kpi__val { color: #059669; }
.calq-kpi.calq-kpi--fail { border-color: #fecaca; }
.calq-kpi.calq-kpi--fail .calq-kpi__val { color: #dc2626; }
[data-calq-module="geluid"] .calq-block__body {
  padding: 0;
}
[data-calq-module="geluid"] .calq-geluid-hint {
  padding: 0.25rem 1rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.45;
}
[data-calq-module="geluid"] .calq-geluid-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 22rem);
  gap: 0;
  align-items: stretch;
}
[data-calq-module="geluid"] .calq-geluid-split__main {
  min-width: 0;
  padding: 0.85rem 1rem;
  border-right: 1px solid #eef2f7;
}
[data-calq-module="geluid"] .calq-geluid-split__aside {
  position: sticky;
  top: 0.5rem;
  align-self: start;
  padding: 0.75rem 0.65rem;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
[data-calq-module="geluid"] .calq-geluid-form {
  padding: 0;
}
[data-calq-module="geluid"] .calq-geluid-preset-bar {
  margin-bottom: 0.65rem;
  padding-bottom: 0;
  border-bottom: 0;
}
[data-calq-module="geluid"] .calq-geluid-fields,
[data-calq-module="geluid"] .calq-geluid-form .calq-fields,
[data-calq-module="geluid"] #gt-form.calq-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem 0.85rem;
  padding: 0;
}
[data-calq-module="geluid"] .calq-geluid-fields--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
[data-calq-module="geluid"] .calq-geluid-fields .calq-field,
[data-calq-module="geluid"] .calq-geluid-form .calq-fields .calq-field,
[data-calq-module="geluid"] #gt-form .calq-field {
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.28rem 0.5rem;
  align-items: center;
}
[data-calq-module="geluid"] .calq-geluid-fields .calq-field__label,
[data-calq-module="geluid"] .calq-geluid-form .calq-field__label,
[data-calq-module="geluid"] #gt-form .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
  font-size: 0.78rem;
  line-height: 1.35;
  margin: 0;
}
[data-calq-module="geluid"] .calq-geluid-fields .calq-field input,
[data-calq-module="geluid"] .calq-geluid-fields .calq-field select,
[data-calq-module="geluid"] .calq-geluid-form .calq-field input,
[data-calq-module="geluid"] .calq-geluid-form .calq-field select,
[data-calq-module="geluid"] #gt-form .calq-field input,
[data-calq-module="geluid"] #gt-form .calq-field select {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
  padding: 0.45rem 0.55rem;
  font-size: 0.875rem;
}
[data-calq-module="geluid"] .calq-geluid-fields .calq-field__unit,
[data-calq-module="geluid"] .calq-geluid-form .calq-field__unit,
[data-calq-module="geluid"] #gt-form .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.75rem;
}
[data-calq-module="geluid"] .calq-geluid-field--wide,
[data-calq-module="geluid"] .calq-geluid-fields .calq-field--grow {
  grid-column: 1 / -1;
}
[data-calq-module="geluid"] .calq-geluid-fieldset {
  margin: 0 0 0.85rem;
  padding: 0;
  border: 0;
}
[data-calq-module="geluid"] .calq-geluid-fieldset:last-child {
  margin-bottom: 0;
}
[data-calq-module="geluid"] .calq-geluid-fieldset > legend {
  display: block;
  width: 100%;
  margin: 0 0 0.55rem;
  padding: 0 0 0.35rem;
  border-bottom: 1px solid #eef2f7;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--calq-green-light);
}
[data-calq-module="geluid"] .calq-geluid-bron-block {
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #eef2f7;
}
[data-calq-module="geluid"] .calq-geluid-bron-block legend {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: #334155;
  border-bottom: 0;
  padding: 0;
  margin-bottom: 0.45rem;
}
[data-calq-module="geluid"] .calq-geluid-bron-block[data-bron="1"],
[data-calq-module="geluid"] .calq-geluid-bron-block[data-bron="2"] {
  opacity: 0.92;
}
[data-calq-module="geluid"] .calq-geluid-bron-details {
  margin: 0 0 0.45rem;
}
[data-calq-module="geluid"] .calq-geluid-bron-details summary {
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--calq-muted);
  padding: 0.2rem 0;
  list-style: none;
}
[data-calq-module="geluid"] .calq-geluid-bron-details summary::-webkit-details-marker {
  display: none;
}
[data-calq-module="geluid"] .calq-geluid-bron-details[open] summary {
  margin-bottom: 0.35rem;
  color: #334155;
}
[data-calq-module="geluid"] .calq-field--check,
[data-calq-module="geluid"] .calq-fields--grid .calq-field--check,
[data-calq-module="geluid"] .calq-geluid-fields .calq-field--check {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
  grid-column: 1 / -1;
  grid-template-columns: none;
}
[data-calq-module="geluid"] .calq-field--check input[type="checkbox"] {
  width: auto;
  flex: 0 0 auto;
  margin: 0;
}
[data-calq-module="geluid"] .calq-geluid-toets-inline {
  margin-top: 0.25rem;
  padding-top: 0.65rem;
  border-top: 1px solid #eef2f7;
}
[data-calq-module="geluid"] .calq-geluid-custom-norm {
  margin: 0.65rem 0 0;
}
[data-calq-module="geluid"] .calq-geluid-kpi-row {
  padding: 0.5rem 1rem 0;
  gap: 0.5rem 0.75rem;
}
[data-calq-module="geluid"] #gbu-result,
[data-calq-module="geluid"] #gt-result,
[data-calq-module="geluid"] #gbk-result {
  padding: 0 1rem 0.65rem;
}
[data-calq-module="geluid"] .calq-geluid-verdict,
[data-calq-module="geluid"] .calq-geluid-verdict-row {
  margin-left: 1rem;
  margin-right: 1rem;
}
[data-calq-module="geluid"] .calq-actions {
  padding: 0.5rem 1rem 0.85rem;
}
[data-calq-module="geluid"] .calq-geluid-ref-block {
  margin-bottom: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
[data-calq-module="geluid"] .calq-geluid-ref-block .calq-block__body {
  padding: 0.4rem 0.75rem;
  background: #f8fafc;
  border: 1px solid #eef2f7;
  border-radius: var(--calq-radius-sm);
}
[data-calq-module="geluid"] .calq-geluid-ref-block .calq-geluid-diagram {
  padding: 0.35rem 0;
  border: 0;
  background: transparent;
  max-width: 32rem;
}
[data-calq-module="geluid"] .calq-geluid-ref-block .calq-geluid-diagram__svg {
  max-width: 28rem;
  margin: 0;
}
[data-calq-module="geluid"] .calq-geluid-rapportage-layout {
  gap: 0.65rem;
  max-width: none;
}
.calq-geluid-split__main { min-width: 0; }
.calq-geluid-diagram-slot { padding: 0.75rem 1rem 1rem; }
.calq-geluid-split__aside .calq-geluid-diagram {
  padding: 0;
  background: transparent;
  border: 0;
}
.calq-geluid-diagram {
  padding: 0.65rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}
.calq-geluid-diagram__title {
  margin: 0 0 0.3rem;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.35;
}
.calq-geluid-diagram__hint {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  color: var(--calq-muted);
  line-height: 1.4;
}
.calq-geluid-diagram__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  margin-bottom: 0.55rem;
}
.calq-geluid-diagram__pick {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.15rem;
  padding: 0.4rem 0.35rem 0.35rem;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  font: inherit;
  color: inherit;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.calq-geluid-diagram__pick:hover {
  border-color: #86efac;
  box-shadow: 0 0 0 1px #bbf7d0;
}
.calq-geluid-diagram__pick.is-active {
  border-color: var(--calq-green);
  background: #ecfdf5;
  box-shadow: inset 0 0 0 1px #86efac;
}
.calq-geluid-diagram__pick-label {
  font-size: 0.62rem;
  color: var(--calq-muted);
  text-align: center;
  line-height: 1.2;
}
.calq-geluid-diagram__svg {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.calq-geluid-diagram__pick .calq-geluid-diagram__svg {
  max-width: 6.5rem;
}
.calq-geluid-diagram__svg--distance {
  width: 100%;
  margin: 0.25rem 0 0.45rem;
}
.calq-geluid-diagram__formula {
  margin: 0;
  font-size: 0.7rem;
  color: #334155;
  line-height: 1.4;
}
.calq-geluid-diagram__formula strong { color: var(--calq-green); }

.calq-gr-toets-fields {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px dashed #e2e8f0;
}
.geluid-print-report { display: none; }
.geluid-print-head {
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid #0f172a;
}
.geluid-print-head h1 {
  margin: 0 0 0.25rem;
  font-size: 1.35rem;
}

@media print {
  .calq-geluid-workspace > h1,
  .calq-geluid-workspace > .calq-lead,
  .calq-geluid-workspace .calq-subnav,
  .calq-geluid-workspace .calq-module-main,
  .calq-geluid-workspace .calq-notice {
    display: none !important;
  }
  .geluid-print-report.print-only {
    display: block !important;
  }
  .geluid-print-report .calq-table th,
  .geluid-print-report .calq-table td {
    border-color: #000;
    font-size: 0.82rem;
  }
}

/* ——— Leidingberekening — leesbare velden + ontwerpgrafiek ——— */
/* Layout wordt door calq-split.js aangestuurd (main · handle · aside).
   Géén eigen grid-template-columns hier: dat forceerde 2 kolommen terwijl de
   split 3 kinderen heeft (main/handle/aside), waardoor de aside naar een 2e rij
   viel en de rechterkolom leeg bleef. */
[data-calq-module="leidingberekening"] .calq-leiding-fields {
  gap: 0.75rem 1.15rem;
  padding: 0.65rem 1rem;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--input {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: 0.3rem;
  column-gap: 1.15rem;
  padding: 0.5rem 1rem 0.65rem;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results {
  grid-template-columns: 1fr;
  row-gap: 0.35rem;
  padding: 0.5rem 0.85rem 0.65rem;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields .calq-field--wide {
  grid-column: 1 / -1;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields .calq-field {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.65rem;
  align-items: center;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
  font-size: 0.875rem;
  line-height: 1.2;
  color: var(--calq-text);
  margin: 0;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields .calq-field input,
[data-calq-module="leidingberekening"] .calq-leiding-fields .calq-field select,
[data-calq-module="leidingberekening"] .calq-leiding-fields .calq-field__value {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
  padding: 0.38rem 0.7rem;
  font-size: 0.9375rem;
  color: var(--calq-text);
}
[data-calq-module="leidingberekening"] .calq-leiding-fields .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.8125rem;
  color: var(--calq-muted);
  white-space: nowrap;
  min-width: 2rem;
  text-align: right;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--input .calq-field--input input,
[data-calq-module="leidingberekening"] .calq-leiding-fields--input .calq-field--input select {
  background: #fff;
  border: 1px solid var(--calq-input-border);
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--input .calq-field--input input:focus,
[data-calq-module="leidingberekening"] .calq-leiding-fields--input .calq-field--input select:focus {
  border-color: var(--calq-green);
  outline: 2px solid rgba(22, 101, 52, 0.15);
  outline-offset: 0;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results .calq-field--calc {
  padding: 0.4rem 0.75rem;
  background: #fff;
  border: 1px solid var(--calq-border);
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results .calq-field__value {
  font-size: 1.05rem;
  text-align: right;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results .calq-field--highlight {
  background: #ecfdf5;
  border-color: #6ee7b7;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results .calq-field--highlight .calq-field__value {
  color: #047857;
  font-size: 1.15rem;
}
@media (max-width: 900px) {
  [data-calq-module="leidingberekening"] .calq-leiding-fields--input {
    grid-template-columns: 1fr;
  }
}

/* Invoervelden (zelf-beheerd, #leiding-invoer / #leiding-ontwerp): label boven,
   input eronder op volle breedte, netjes onder elkaar → uitgelijnd, geen loze ruimte rechts. */
[data-calq-module="leidingberekening"] .calq-leiding-input-fields {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.5rem 0.15rem 0.15rem;
}
[data-calq-module="leidingberekening"] .calq-leiding-input-fields .calq-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 0.15rem 0.5rem;
  align-items: center;
  margin: 0;
}
[data-calq-module="leidingberekening"] .calq-leiding-input-fields .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
  font-size: 0.78rem;
  line-height: 1.2;
  color: var(--calq-text);
  margin: 0;
}
[data-calq-module="leidingberekening"] .calq-leiding-input-fields .calq-field input,
[data-calq-module="leidingberekening"] .calq-leiding-input-fields .calq-field select {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
  padding: 0.4rem 0.6rem;
  font-size: 0.875rem;
}
[data-calq-module="leidingberekening"] .calq-leiding-input-fields .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.78rem;
  color: var(--calq-muted);
  white-space: nowrap;
  text-align: right;
}

/* Uitkomsten genormaliseerd: meerdere per rij, label links + waarde/eenheid rechts op
   één regel (was 1 kolom, 2 regels per vak → onnodig veel hoogte). */
[data-calq-module="leidingberekening"] .calq-leiding-fields--results {
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.4rem 0.6rem;
  padding: 0.5rem 0.85rem 0.65rem;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results .calq-field {
  grid-template-columns: minmax(0, 1fr) auto auto;
  grid-template-rows: auto;
  align-items: baseline;
  gap: 0.15rem 0.4rem;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results .calq-field__label {
  grid-column: 1;
  grid-row: 1;
  font-size: 0.72rem;
  line-height: 1.2;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results .calq-field__value {
  grid-column: 2;
  grid-row: 1;
  font-size: 0.95rem;
  text-align: right;
  white-space: nowrap;
}
[data-calq-module="leidingberekening"] .calq-leiding-fields--results .calq-field__unit {
  grid-column: 3;
  grid-row: 1;
  font-size: 0.72rem;
  color: var(--calq-muted);
  white-space: nowrap;
}

.calq-leiding-workspace { display: flex; flex-direction: column; gap: 0.75rem; }
.calq-leiding-dn-advice {
  margin: 0.75rem 1rem 0;
  padding: 0.85rem 1rem;
  background: #ecfdf5;
  border: 1px solid #86efac;
  border-radius: 6px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
}
.calq-leiding-dn-advice__label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #166534;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.calq-leiding-dn-advice strong {
  font-size: 1.45rem;
  color: var(--calq-green);
  line-height: 1.2;
}
.calq-leiding-dn-advice__meta {
  flex: 1 1 100%;
  font-size: 0.82rem;
  color: var(--calq-muted);
}
.calq-leiding-results-block .calq-fields { padding-top: 0.35rem; }
.calq-field--highlight { background: #dcfce7 !important; }
.calq-leiding-extra { margin-top: 0; }
.calq-leiding-extra__summary {
  cursor: pointer;
  list-style: none;
  padding: 0.55rem 0.85rem;
}
.calq-leiding-extra__summary::-webkit-details-marker { display: none; }
.calq-leiding-extra__summary::before {
  content: '▸ ';
  color: var(--calq-muted);
}
.calq-leiding-extra[open] .calq-leiding-extra__summary::before { content: '▾ '; }
.calq-leiding-extra-lead { margin: 0 0 0.75rem; font-size: 0.82rem; }
.calq-leiding-ontwerp-block .calq-block__intro { margin-bottom: 0.35rem; line-height: 1.45; }
.calq-leiding-ontwerp-block .calq-block__intro strong { color: var(--calq-text); font-weight: 600; }
.calq-leiding-isso-reset { margin-left: 0.35rem; vertical-align: baseline; }
.calq-leiding-compare-table th,
.calq-leiding-compare-table td { font-size: 0.8125rem; text-align: right; vertical-align: middle; }
.calq-leiding-compare-table th:first-child,
.calq-leiding-compare-table td:first-child { text-align: left; font-weight: 600; color: var(--calq-muted); }
.calq-leiding-compare-table td.is-norm,
.calq-leiding-compare-table th.is-norm { background: #ecfdf5; }
.calq-leiding-compare-table td.is-warn { color: #b45309; font-weight: 600; }
.calq-leiding-compare-note { margin: 0.5rem 0 0; font-size: 0.75rem; }
.calq-leiding-dn-compare { margin-top: 0; }
.calq-leiding-aside { gap: 0.5rem; }
.calq-leiding-chart-block .calq-leiding-chart-wrap,
.calq-leiding-chart-panel .calq-leiding-chart-wrap {
  margin: 0.5rem 0.75rem 0;
  padding: 0.25rem;
  background: #fff;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
}
.calq-leiding-chart {
  width: 100%;
  height: auto;
  display: block;
  min-height: 280px;
  max-height: min(420px, 55vh);
}
.calq-leiding-chart-caption {
  margin: 0.5rem 0.75rem 0.75rem;
  font-size: 0.75rem;
  line-height: 1.4;
}

.calq-pomp-fields { margin-bottom: 0.5rem; }
.calq-pomp-hint { margin: 0.25rem 0 0.75rem; font-size: 0.8rem; }
.calq-pomp-chart-block .calq-leiding-chart-wrap { margin: 0.5rem 0.75rem 0; }
.calq-pomp-detail .calq-block__body { gap: 0.75rem 1.25rem; }

/* Pompselectie MAGNA3 — werkpunt + grafiek naast elkaar, compact op één scherm */
[data-calq-module="pomp_selectie"] .calq-module-layout {
  grid-template-columns: 1fr;
  margin-top: 0.35rem;
  gap: 0.45rem;
}
[data-calq-module="pomp_selectie"] .calq-module-main {
  gap: 0.45rem;
}
[data-calq-module="pomp_selectie"] > h1 {
  margin-bottom: 0.2rem;
  font-size: 1.15rem;
}
[data-calq-module="pomp_selectie"] > .calq-lead {
  margin-bottom: 0.3rem;
  font-size: 0.8rem;
  line-height: 1.4;
  max-width: none;
}
[data-calq-module="pomp_selectie"] .calq-subnav {
  margin-bottom: 0.35rem;
}
[data-calq-module="pomp_selectie"] .calq-pomp-werkpunt-chart {
  display: grid;
  grid-template-columns: minmax(15rem, 34%) minmax(0, 1fr);
  gap: 0.45rem;
  align-items: stretch;
}
[data-calq-module="pomp_selectie"] .calq-pomp-werkpunt-block,
[data-calq-module="pomp_selectie"] .calq-pomp-chart-block {
  margin: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
[data-calq-module="pomp_selectie"] .calq-pomp-werkpunt-block .calq-block__body {
  flex: 1;
  padding: 0.4rem 0.5rem;
}
[data-calq-module="pomp_selectie"] .calq-pomp-fields {
  grid-template-columns: 1fr;
  gap: 0.3rem;
  padding: 0.35rem 0.5rem;
  margin-bottom: 0.15rem;
}
[data-calq-module="pomp_selectie"] .calq-field--unit-pair {
  grid-template-columns: 1fr;
}
[data-calq-module="pomp_selectie"] .calq-pomp-fields .calq-field--unit-pair .calq-unit-pair {
  grid-column: 1 / -1;
  grid-row: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(5.25rem, 6.25rem);
  gap: 0.35rem;
  align-items: center;
}
[data-calq-module="pomp_selectie"] .calq-pomp-fields .calq-unit-pair input {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--calq-input-border);
  padding: 0.42rem 0.55rem;
  font-size: 0.9375rem;
}
[data-calq-module="pomp_selectie"] .calq-pomp-fields .calq-unit-pair input:focus {
  border-color: var(--calq-green);
  outline: 2px solid rgba(22, 101, 52, 0.15);
  outline-offset: 0;
}
[data-calq-module="pomp_selectie"] .calq-pomp-fields .calq-unit-pair select {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  min-width: 0;
  font-size: 0.8125rem;
  padding: 0.42rem 0.35rem;
  background: #fff;
  border: 1px solid var(--calq-input-border);
}
[data-calq-module="pomp_selectie"] .calq-pomp-hint {
  margin: 0.1rem 0 0.3rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
[data-calq-module="pomp_selectie"] .calq-actions-inline {
  padding: 0 0.5rem 0.35rem;
}
[data-calq-module="pomp_selectie"] .calq-pomp-chart-block .calq-leiding-chart-wrap {
  margin: 0.35rem 0.5rem 0;
  flex: 1;
}
[data-calq-module="pomp_selectie"] .calq-pomp-chart {
  min-height: 180px;
  max-height: min(260px, 30vh);
}
[data-calq-module="pomp_selectie"] .calq-leiding-chart-caption {
  margin: 0.3rem 0.5rem 0.4rem;
  font-size: 0.68rem;
  line-height: 1.35;
}
[data-calq-module="pomp_selectie"] #ps-results-wrap .calq-block__body {
  padding: 0.4rem 0.55rem;
}
[data-calq-module="pomp_selectie"] #ps-results-wrap .calq-notice {
  padding: 0.35rem 0.5rem;
  margin-bottom: 0.4rem;
  font-size: 0.75rem;
}
[data-calq-module="pomp_selectie"] #ps-results-wrap .calq-table-scroll {
  max-height: min(12rem, 22vh);
}
[data-calq-module="pomp_selectie"] .calq-pomp-detail {
  margin-top: 0.35rem;
}
[data-calq-module="pomp_selectie"] .calq-pomp-detail .calq-block__body {
  gap: 0.35rem 0.75rem;
  padding: 0.4rem 0.55rem;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
}
@media (max-width: 960px) {
  [data-calq-module="pomp_selectie"] .calq-pomp-werkpunt-chart {
    grid-template-columns: 1fr;
  }
  [data-calq-module="pomp_selectie"] .calq-pomp-chart {
    max-height: min(300px, 38vh);
  }
}
#ps-table tr.is-selected { background: rgba(22, 163, 74, 0.08); }
#ps-table .calq-link-btn {
  background: none;
  border: none;
  padding: 0;
  color: var(--calq-link, #2563eb);
  font-weight: 600;
  cursor: pointer;
  text-align: left;
}
#ps-table .calq-link-btn:hover { text-decoration: underline; }
.calq-leiding-breakdown-panel .calq-block__body { padding: 0.75rem 1rem 1rem; }
.calq-leiding-breakdown-lead {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
}
.calq-calc-steps--leiding .calq-calc-step {
  border-left: 3px solid var(--calq-green);
}
.calq-calc-steps--leiding .calq-calc-step h4 { font-size: 0.9rem; }

.calq-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 1rem;
  padding: 0 0.25rem;
}
.calq-subnav__link {
  padding: 0.4rem 0.75rem;
  border-radius: 6px 6px 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--calq-muted);
  background: var(--calq-accent-soft);
  border: 1px solid transparent;
  border-bottom: 0;
}
.calq-subnav__link:hover { color: var(--calq-text); background: var(--calq-accent-strong); }
.calq-subnav__link.is-active {
  color: #123d28;
  background: var(--calq-accent-strong);
  border-color: var(--calq-border);
  border-bottom: var(--calq-head-rule);
  box-shadow: none;
}

/* Niveau-2 subnav — hamburger-toggle, alleen op smal scherm (≤1024px).
   De toggle wordt door calq-core.js (initSubnav) vóór elke .calq-subnav geïnjecteerd. */
.calq-subnav-toggle { display: none; }
@media (max-width: 1024px) {
  .calq-subnav { flex-wrap: wrap; align-items: stretch; }
  .calq-subnav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--calq-border);
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--calq-text);
  }
  .calq-subnav-toggle__bars { display: inline-flex; flex-direction: column; gap: 3px; flex-shrink: 0; }
  .calq-subnav-toggle__bars span { display: block; width: 1.1rem; height: 2px; background: var(--calq-text); border-radius: 1px; }
  .calq-subnav-toggle__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  /* Ingeklapt: alleen de toggle zichtbaar */
  .calq-subnav > .calq-subnav__link { display: none; }
  /* Uitgeklapt: links als verticale lijst onder de toggle */
  .calq-subnav.is-open { flex-direction: column; }
  .calq-subnav.is-open > .calq-subnav__link {
    display: block;
    width: 100%;
    border-radius: 6px;
    border: 1px solid var(--calq-border);
    border-bottom: 1px solid var(--calq-border);
    margin-top: 0.25rem;
  }
}
.calq-geluid-form { padding: 0; }
.calq-geluid-formula { margin: 0 0 0.75rem; font-size: 0.82rem; }
.calq-inline-num {
  width: 4.5rem;
  padding: 0.2rem 0.35rem;
  font-size: 0.82rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
}
.calq-inline-text {
  width: 100%;
  font: inherit;
  font-weight: 600;
  border: 0;
  background: transparent;
}
.calq-block__head .calq-inline-text {
  color: #123d28;
}
.calq-block__head .calq-inline-text::placeholder {
  color: var(--calq-muted);
}
.calq-block__head .calq-inline-text:focus {
  outline: none;
  background: rgba(255, 255, 255, 0.55);
  border-radius: 3px;
}
.calq-geluid-rapportage-layout { display: grid; gap: 0.75rem; }
.calq-gr-situaties { display: grid; gap: 0.75rem; }
.calq-gr-params {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
  background: #f8fafc;
}
.calq-gr-stappen-table { font-size: 0.78rem; }
.calq-gr-stappen-table .calq-geluid-band-input { width: 2.85rem; font-size: 0.78rem; }
.calq-gr-formule { font-size: 0.72rem; color: var(--calq-muted); max-width: 10rem; }
.calq-gr-tussen td,
.calq-gr-tussen th { background: #f8fafc; }
.calq-gr-lpa th,
.calq-gr-lpa td { font-weight: 700; background: #ecfdf5; }
.calq-gr-eind {
  margin: 0;
  padding: 0.5rem 0.75rem 0.65rem;
  font-size: 0.82rem;
  border-top: 1px solid #eef2f7;
}
.calq-gr-chart-wrap { margin: 0.75rem 1rem 1rem; }
.calq-field--check {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
}
.calq-geluid-total th,
.calq-geluid-total td { border-top: 2px solid #cbd5e1; }

/* Vermogen & massastroom — module layout (links invoer, rechts resultaat) */
.calq-ms-workspace { display: flex; flex-direction: column; gap: 0.75rem; }
[data-calq-module="massastroom"] .calq-ms-fields {
  gap: 0.75rem 1.15rem;
  padding: 0.65rem 1rem;
}
[data-calq-module="massastroom"] .calq-ms-fields--input {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: 0.3rem;
  column-gap: 1.15rem;
  padding: 0.5rem 1rem 0.65rem;
}
[data-calq-module="massastroom"] .calq-ms-fields--results {
  grid-template-columns: 1fr;
  row-gap: 0.35rem;
  padding: 0.35rem 0.85rem 0.5rem;
}
[data-calq-module="massastroom"] .calq-ms-fields .calq-field {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.65rem;
  align-items: center;
}
[data-calq-module="massastroom"] .calq-ms-fields .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
  font-size: 0.875rem;
  line-height: 1.2;
  color: var(--calq-text);
  margin: 0;
}
[data-calq-module="massastroom"] .calq-ms-fields .calq-field input,
[data-calq-module="massastroom"] .calq-ms-fields .calq-field__value {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
  padding: 0.38rem 0.7rem;
  font-size: 0.9375rem;
  color: var(--calq-text);
}
[data-calq-module="massastroom"] .calq-ms-fields .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.8125rem;
  color: var(--calq-muted);
  white-space: nowrap;
  min-width: 2rem;
  text-align: right;
}
[data-calq-module="massastroom"] .calq-ms-fields--input .calq-field--input input {
  background: #fff;
  border: 1px solid var(--calq-input-border);
}
[data-calq-module="massastroom"] .calq-ms-fields--input .calq-field--input input:focus {
  border-color: var(--calq-green);
  outline: 2px solid rgba(22, 101, 52, 0.15);
  outline-offset: 0;
}
[data-calq-module="massastroom"] .calq-ms-fields--results .calq-field--calc {
  padding: 0.4rem 0.75rem;
  background: #fff;
  border: 1px solid var(--calq-border);
}
[data-calq-module="massastroom"] .calq-ms-fields--results .calq-field__value {
  font-size: 1.05rem;
  text-align: right;
}
[data-calq-module="massastroom"] .calq-ms-fields--results .calq-field--highlight {
  background: #ecfdf5;
  border-color: #6ee7b7;
}
[data-calq-module="massastroom"] .calq-ms-fields--results .calq-field--highlight .calq-field__value {
  color: #047857;
  font-size: 1.15rem;
}
[data-calq-module="massastroom"] .calq-ms-fields--results .calq-field--warn {
  background: #fff7ed;
  border-color: #fdba74;
}
.calq-ms-input-block--warm .calq-block__head { border-left: 4px solid #fecaca; }
.calq-ms-input-block--cool .calq-block__head { border-left: 4px solid #bfdbfe; }
.calq-ms-results-section { margin-top: 0.85rem; }
.calq-ms-results-section:first-child { margin-top: 0.35rem; }
.calq-ms-results-section__title {
  margin: 0 0 0.35rem;
  padding: 0 0.85rem;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--calq-muted);
}
.calq-ms-results--warm .calq-ms-results-section__title,
.calq-ms-breakdown-block.calq-ms-results--warm .calq-ms-breakdown-block__title { color: #b91c1c; }
.calq-ms-results--cool .calq-ms-results-section__title,
.calq-ms-breakdown-block.calq-ms-results--cool .calq-ms-breakdown-block__title { color: #1d4ed8; }
@media (max-width: 900px) {
  [data-calq-module="massastroom"] .calq-ms-fields--input {
    grid-template-columns: 1fr;
  }
}

/* Afgevend vermogen — module layout */
.calq-av-workspace { display: flex; flex-direction: column; gap: 0.75rem; }
[data-calq-module="afgevend_vermogen"] .calq-step__body {
  padding: 0.45rem 0.6rem 0.55rem;
}
[data-calq-module="afgevend_vermogen"] .calq-step__input { margin-bottom: 0.35rem; }
[data-calq-module="afgevend_vermogen"] .calq-step__calc {
  padding: 0.4rem 0.55rem;
  margin-top: 0.35rem;
}
[data-calq-module="afgevend_vermogen"] .calq-aside-panel {
  gap: 0.3rem;
  padding: 0.1rem 0.25rem 0.2rem 0.35rem;
}
[data-calq-module="afgevend_vermogen"] .calq-aside-panel__visual {
  padding: 0.3rem 0.4rem;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields {
  gap: 0.75rem 1.15rem;
  padding: 0.65rem 1rem;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--input {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: 0.3rem;
  column-gap: 1.15rem;
  padding: 0.5rem 1rem 0.65rem;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results {
  grid-template-columns: 1fr;
  row-gap: 0.2rem;
  padding: 0.3rem 0.65rem 0.4rem;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields .calq-field--wide {
  grid-column: 1 / -1;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields .calq-field {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.65rem;
  align-items: center;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results .calq-field {
  grid-template-columns: minmax(0, 1fr) auto auto;
  grid-template-rows: auto;
  gap: 0.2rem 0.45rem;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
  font-size: 0.875rem;
  line-height: 1.2;
  color: var(--calq-text);
  margin: 0;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results .calq-field__label {
  grid-column: 1;
  grid-row: 1;
  font-size: 0.75rem;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields .calq-field input,
[data-calq-module="afgevend_vermogen"] .calq-av-fields .calq-field select,
[data-calq-module="afgevend_vermogen"] .calq-av-fields .calq-field__value {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
  padding: 0.38rem 0.7rem;
  font-size: 0.9375rem;
  color: var(--calq-text);
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results .calq-field__value {
  grid-column: 2;
  grid-row: 1;
  width: auto;
  padding: 0;
  font-size: 0.875rem;
  text-align: right;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.8125rem;
  color: var(--calq-muted);
  white-space: nowrap;
  min-width: 2rem;
  text-align: right;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results .calq-field__unit {
  grid-column: 3;
  grid-row: 1;
  font-size: 0.68rem;
  min-width: 0;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--input .calq-field--input input,
[data-calq-module="afgevend_vermogen"] .calq-av-fields--input .calq-field--input select {
  background: #fff;
  border: 1px solid var(--calq-input-border);
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--input .calq-field--input input:focus,
[data-calq-module="afgevend_vermogen"] .calq-av-fields--input .calq-field--input select:focus {
  border-color: var(--calq-green);
  outline: 2px solid rgba(22, 101, 52, 0.15);
  outline-offset: 0;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results .calq-field--calc {
  padding: 0.22rem 0.45rem;
  background: #fff;
  border: 1px solid var(--calq-border);
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results .calq-field--highlight {
  background: #fff7ed;
  border-color: #fdba74;
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results .calq-field--highlight .calq-field__value {
  color: #c2410c;
  font-size: 0.9375rem;
}
[data-calq-module="afgevend_vermogen"] .calq-kpi-grid--compact {
  gap: 0.3rem;
  padding: 0.3rem;
}
[data-calq-module="afgevend_vermogen"] .calq-kpi-grid--compact .calq-kpi {
  padding: 0.3rem 0.4rem;
}
.calq-av-input-block--vloer .calq-block__head { border-left: 4px solid #fecaca; }
.calq-av-input-block--rad .calq-block__head { border-left: 4px solid #bfdbfe; }
.calq-av-results-section { margin-top: 0.85rem; }
.calq-av-results-section:first-child { margin-top: 0.35rem; }
.calq-av-results-section__title {
  margin: 0 0 0.35rem;
  padding: 0 0.85rem;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--calq-muted);
}
.calq-av-results--vloer .calq-av-results-section__title { color: #b91c1c; }
.calq-av-results--rad .calq-av-results-section__title { color: #1d4ed8; }
.calq-av-dock-hint { margin: 0.65rem 0 0; font-size: 0.75rem; }
.calq-av-visual { padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.calq-av-visual__title { margin: 0; font-size: 0.8rem; font-weight: 600; color: var(--calq-text-muted, #64748b); }
.calq-av-visual__row { display: grid; grid-template-columns: 5.5rem 1fr auto; gap: 0.4rem; align-items: center; font-size: 0.75rem; }
.calq-av-visual__label { color: var(--calq-text-muted, #64748b); }
.calq-av-visual__bar { height: 0.55rem; background: var(--calq-calc-bg, #f1f5f9); border-radius: 3px; overflow: hidden; }
.calq-av-visual__fill { display: block; height: 100%; border-radius: 3px; min-width: 2px; }
.calq-av-visual__fill--vloer { background: #f87171; }
.calq-av-visual__fill--qv { background: #94a3b8; }
.calq-av-visual__fill--rad { background: #60a5fa; }
.calq-av-visual__val { font-variant-numeric: tabular-nums; font-weight: 500; }
.calq-av-visual__hint { margin: 0.25rem 0 0; font-size: 0.75rem; }
@media (max-width: 900px) {
  [data-calq-module="afgevend_vermogen"] .calq-av-fields--input {
    grid-template-columns: 1fr;
  }
}

/* Vermogen & massastroom — legacy table (unused) */
.calq-ms-table { min-width: 720px; }
.calq-ms-table .calq-ms-label-col { min-width: 11rem; text-align: left; }
.calq-ms-table .calq-ms-sym-col { width: 2.5rem; text-align: center; font-style: italic; }
.calq-ms-table .calq-ms-unit-col { width: 4.5rem; text-align: left; color: var(--calq-muted); font-size: 0.75rem; }
.calq-ms-label { text-align: left; white-space: nowrap; }
.calq-ms-sym { text-align: center; font-style: italic; }
.calq-ms-unit { color: var(--calq-muted); font-size: 0.75rem; }
.calq-ms-col--warm { background: #fecaca; }
.calq-ms-col--cool { background: #bfdbfe; }
.calq-ms-col--ctrl { background: #f1f5f9; }
.calq-ms-input { padding: 0 !important; }
.calq-ms-input input {
  background: var(--calq-input);
  border: 1px solid var(--calq-input-border);
  box-shadow: inset 3px 0 0 var(--calq-green-light);
}
.calq-ms-calc {
  background: var(--calq-calc);
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--calq-text);
}
.calq-ms-sep td {
  background: #e2e8f0;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.25rem 0.5rem !important;
}
.calq-ms-del {
  border: 0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  padding: 0 0.15rem;
  vertical-align: middle;
}
.calq-ms-del:hover { color: #b91c1c; }
.calq-ms-formulas p { margin: 0.35rem 0; font-size: 0.82rem; }

/* FYSICA — expansievat */
.calq-notice--warn { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.calq-fysica-table { max-width: 42rem; }
.calq-fysica-note { margin: 0.5rem 0 0; font-size: 0.78rem; }
.calq-fysica-result { background: #ffedd5; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.calq-fysica-glycol-table { font-size: 0.75rem; }
.calq-fysica-col-active { background: #fef9c3; }
.calq-fysica-row-mark th { background: #dbeafe; }

/* FYSICA expansievat — module layout */
.calq-fy-workspace { display: flex; flex-direction: column; gap: 0.75rem; }
[data-calq-module="fysica"] .calq-fy-fields {
  gap: 0.75rem 1.15rem;
  padding: 0.65rem 1rem;
}
[data-calq-module="fysica"] .calq-fy-fields--input {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: 0.3rem;
  column-gap: 1.15rem;
  padding: 0.5rem 1rem 0.65rem;
}
[data-calq-module="fysica"] .calq-fy-fields--results {
  grid-template-columns: 1fr;
  row-gap: 0.35rem;
  padding: 0.35rem 0.85rem 0.5rem;
}
[data-calq-module="fysica"] .calq-fy-fields .calq-field {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.65rem;
  align-items: center;
}
[data-calq-module="fysica"] .calq-fy-fields .calq-field__label {
  grid-column: 1 / -1;
  grid-row: 1;
  font-size: 0.875rem;
  line-height: 1.2;
  color: var(--calq-text);
  margin: 0;
}
[data-calq-module="fysica"] .calq-fy-fields .calq-field input,
[data-calq-module="fysica"] .calq-fy-fields .calq-field__value {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  min-width: 0;
  padding: 0.38rem 0.7rem;
  font-size: 0.9375rem;
  color: var(--calq-text);
}
[data-calq-module="fysica"] .calq-fy-fields .calq-field__unit {
  grid-column: 2;
  grid-row: 2;
  font-size: 0.8125rem;
  color: var(--calq-muted);
  white-space: nowrap;
  min-width: 2rem;
  text-align: right;
}
[data-calq-module="fysica"] .calq-fy-fields--input .calq-field--input input {
  background: #fff;
  border: 1px solid var(--calq-input-border);
}
[data-calq-module="fysica"] .calq-fy-fields--input .calq-field--input input:focus {
  border-color: var(--calq-green);
  outline: 2px solid rgba(22, 101, 52, 0.15);
  outline-offset: 0;
}
[data-calq-module="fysica"] .calq-fy-fields--results .calq-field--calc {
  padding: 0.4rem 0.75rem;
  background: #fff;
  border: 1px solid var(--calq-border);
}
[data-calq-module="fysica"] .calq-fy-fields--results .calq-field__value {
  font-size: 1.05rem;
  text-align: right;
}
[data-calq-module="fysica"] .calq-fy-fields--results .calq-field--highlight {
  background: #fff7ed;
  border-color: #fdba74;
}
[data-calq-module="fysica"] .calq-fy-fields--results .calq-field--highlight .calq-field__value {
  color: #c2410c;
  font-size: 1.15rem;
}
.calq-fy-input-block--medium .calq-block__head { border-left: 4px solid #bfdbfe; }
.calq-fy-results-section { margin-top: 0.85rem; }
.calq-fy-results-section:first-child { margin-top: 0.35rem; }
.calq-fy-results-section__title {
  margin: 0 0 0.35rem;
  padding: 0 0.85rem;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--calq-muted);
}
.calq-fy-results--klassiek .calq-fy-results-section__title { color: #c2410c; }
.calq-fy-dock-hint { margin: 0.65rem 0 0; font-size: 0.75rem; }
.calq-fy-flamco-advice {
  margin: 0.85rem 0.85rem 0;
  padding: 0.75rem 0.85rem;
  background: #fff7ed;
  border: 1px solid #fdba74;
  border-radius: 6px;
}
.calq-fy-flamco-advice__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.35rem;
}
.calq-fy-flamco-advice__label {
  font-size: 0.72rem;
  font-weight: 600;
  color: #c2410c;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.calq-fy-flamco-advice__head strong {
  font-size: 1.15rem;
  color: #9a3412;
  line-height: 1.2;
}
.calq-fy-flamco-advice__meta,
.calq-fy-flamco-advice__alt,
.calq-fy-flamco-advice__foot {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
}
.calq-fy-flamco-table-wrap {
  margin-top: 0.55rem;
  max-height: 9rem;
}
.calq-fy-flamco-table {
  font-size: 0.72rem;
}
.calq-fy-flamco-table th,
.calq-fy-flamco-table td {
  padding: 0.25rem 0.4rem;
}
.calq-fy-detail { margin-top: 0; }
.calq-fy-detail__summary { cursor: pointer; list-style: none; }
.calq-fy-detail__summary::-webkit-details-marker { display: none; }

.calq-fy-visual { padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.calq-fy-visual__title { margin: 0; font-size: 0.8rem; font-weight: 600; color: var(--calq-text-muted, #64748b); }
.calq-fy-visual__row { display: grid; grid-template-columns: 5.5rem 1fr auto; gap: 0.4rem; align-items: center; font-size: 0.75rem; }
.calq-fy-visual__label { color: var(--calq-text-muted, #64748b); }
.calq-fy-visual__bar { height: 0.55rem; background: var(--calq-calc-bg, #f1f5f9); border-radius: 3px; overflow: hidden; }
.calq-fy-visual__fill { display: block; height: 100%; border-radius: 3px; min-width: 2px; }
.calq-fy-visual__fill--pg { background: #60a5fa; }
.calq-fy-visual__fill--pt { background: #f97316; }
.calq-fy-visual__fill--vtt { background: #16a34a; }
.calq-fy-visual__val { font-variant-numeric: tabular-nums; font-weight: 500; }
.calq-fy-visual__hint { margin: 0.25rem 0 0; font-size: 0.75rem; }

[data-calq-module="fysica"] .calq-step__body { padding: 0.45rem 0.6rem 0.55rem; }
[data-calq-module="fysica"] .calq-step__input { margin-bottom: 0.35rem; }
[data-calq-module="fysica"] .calq-step__calc { padding: 0.4rem 0.55rem; margin-top: 0.35rem; }
[data-calq-module="massastroom"] .calq-step__body { padding: 0.45rem 0.6rem 0.55rem; }
[data-calq-module="massastroom"] .calq-step__input { margin-bottom: 0.35rem; }
[data-calq-module="massastroom"] .calq-step__calc { padding: 0.4rem 0.55rem; margin-top: 0.35rem; }
[data-calq-module="leidingberekening"] .calq-step__body { padding: 0.45rem 0.6rem 0.55rem; }
[data-calq-module="leidingberekening"] .calq-step__input { margin-bottom: 0.35rem; }
[data-calq-module="leidingberekening"] .calq-step__calc { padding: 0.4rem 0.55rem; margin-top: 0.35rem; }
[data-calq-module="leidingberekening"] .calq-leiding-visual .calq-leiding-chart { width: 100%; height: auto; max-height: 280px; }
[data-calq-module="leidingberekening"] .calq-leiding-visual .calq-leiding-chart-caption { margin: 0.35rem 0 0; font-size: 0.72rem; }
.calq-aside-panel__meta { padding: 0 0.35rem 0.25rem; }

@media (max-width: 900px) {
  [data-calq-module="fysica"] .calq-fy-fields--input {
    grid-template-columns: 1fr;
  }
}

/* Verdunningsfactor — NEN 1087 */
[data-calq-module="verdunningsfactor"] .calq-verd-fields {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.calq-verd-diagram-slot { padding: 0.65rem 0.75rem 0.85rem; }
.calq-verd-diagram {
  padding: 0.35rem 0;
}
.calq-verd-diagram__title {
  margin: 0 0 0.3rem;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.35;
}
.calq-verd-diagram__hint {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  color: var(--calq-muted);
  line-height: 1.4;
}
.calq-verd-diagram__formula {
  margin: 0.5rem 0 0;
  font-size: 0.78rem;
  color: #0f766e;
  font-weight: 500;
}
.calq-verd-diagram__svg {
  width: 100%;
  max-width: 280px;
  height: auto;
  display: block;
  margin: 0 auto;
}
.calq-verd-diagram__svg--mini { max-width: none; margin: 0; }
.calq-verd-diagram__thumb {
  width: 100%;
  height: auto;
  max-height: 88px;
  object-fit: contain;
  display: block;
  background: #fff;
  border-radius: 4px;
}
.calq-verd-diagram__pick--text .calq-verd-diagram__pick-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  padding: 0.35rem;
  font-size: 0.65rem;
  color: var(--calq-muted);
  text-align: center;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: 4px;
}
.calq-verd-diagram__img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  background: #fff;
}
.calq-verd-fig-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.65rem;
  margin: 0.5rem 0;
}
.calq-verd-fig { margin: 0; }
.calq-verd-fig figcaption {
  margin-top: 0.3rem;
  font-size: 0.68rem;
  color: var(--calq-muted);
  line-height: 1.35;
}
.calq-verd-fig--wide { grid-column: 1 / -1; }
.calq-verd-diagram__desc,
.calq-verd-diagram__note {
  margin: 0.35rem 0 0.5rem;
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--calq-muted);
}
.calq-verd-diagram__note {
  padding: 0.45rem 0.55rem;
  background: #fffbeb;
  border-left: 3px solid #f59e0b;
  border-radius: 0 4px 4px 0;
  color: #92400e;
}
.calq-verd-diagram__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.55rem;
}
.calq-verd-diagram__pick {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.2rem;
  padding: 0.35rem 0.3rem 0.3rem;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  font: inherit;
  color: inherit;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.calq-verd-diagram__pick:hover {
  border-color: #86efac;
  box-shadow: 0 0 0 1px #bbf7d0;
}
.calq-verd-diagram__pick.is-active {
  border-color: var(--calq-green);
  background: #ecfdf5;
  box-shadow: inset 0 0 0 1px #86efac;
}
.calq-verd-diagram__pick-label {
  font-size: 0.68rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.2;
}
.calq-verd-diagram__pick-coef {
  font-size: 0.6rem;
  color: var(--calq-muted);
  text-align: center;
  line-height: 1.2;
}
.calq-verd-aside .calq-kpi--highlight .calq-kpi__value {
  font-size: 1.35rem;
  color: #c2410c;
}
.calq-verd-kpi-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0.65rem;
  gap: 0.45rem;
}
.calq-verd-verdict {
  margin: 0.65rem 0.65rem 0;
  padding: 0.45rem 0.65rem;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  text-align: center;
}
.calq-verd-verdict--ok {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}
.calq-verd-verdict--fail {
  background: #fee2e2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}
.calq-verd-verdict--unknown {
  background: #f1f5f9;
  color: var(--calq-muted);
  border: 1px solid #e2e8f0;
}

/* M&R regeltechniek raming */
.calq-mrr-layout { display: flex; flex-direction: column; gap: 0.75rem; }
.calq-mrr-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.5rem;
  padding: 0.5rem 0.75rem 0;
}
.calq-mrr-kpi {
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #f8fafc;
}
.calq-mrr-kpi__label { display: block; font-size: 0.72rem; color: var(--calq-muted); }
.calq-mrr-kpi__val { display: block; font-size: 1.1rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.calq-mrr-kpi__val small { font-size: 0.72rem; font-weight: 400; color: var(--calq-muted); }
.calq-mrr-scope {
  margin: 0.5rem 0.75rem 0.75rem;
  font-size: 0.85rem;
  color: var(--calq-muted);
  line-height: 1.45;
}
.calq-mrr-total { padding: 0.65rem 0.85rem; }
.calq-mrr-total__main { display: flex; flex-direction: column; gap: 0.25rem; }
.calq-mrr-total__eur { font-size: 1.5rem; font-weight: 700; color: var(--calq-green); }
.calq-mrr-total__band { font-size: 0.88rem; color: var(--calq-muted); }
.calq-mrr-total__m2 { font-size: 0.82rem; color: var(--calq-muted); }
.calq-mrr-sum td { font-weight: 700; border-top: 2px solid #cbd5e1; }

/* Zwembad ventilatie */
.calq-zwembad-vocht-table,
.calq-zwembad-maand-table { font-size: 0.8rem; }
.calq-zwembad-result { background: #ffedd5; font-weight: 600; font-variant-numeric: tabular-nums; }
.calq-zwembad-result-row td { border-top: 2px solid #cbd5e1; }
.calq-zwembad-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.calq-zwembad-kpi {
  flex: 1 1 12rem;
  padding: 0.65rem 0.85rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
}
.calq-zwembad-kpi--accent { background: #ecfdf5; border-color: #a7f3d0; }
.calq-zwembad-kpi__label { display: block; font-size: 0.78rem; color: var(--calq-muted); }
.calq-zwembad-kpi__value { display: block; font-size: 1.15rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.calq-zwembad-factors { margin-top: 0.75rem; font-size: 0.78rem; }
.calq-zwembad-factor-list {
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 0.2rem 1rem;
}
.calq-zwembad-factor-list li {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  color: var(--calq-muted);
}

@media print {
  .print-hidden, .no-print { display: none !important; }
  body.calq-body { background: #fff; }
  /* Bij afdrukken/PDF de viewport-lock loslaten zodat alle content meekomt. */
  .calq-app { height: auto; overflow: visible; }
  .calq-app-main { margin-left: 0 !important; overflow: visible; }
  .calq-main { max-width: none; padding: 0; }
  .calq-panel { box-shadow: none; border: 0; }
  .calq-calc-table th,
  .calq-calc-table td,
  .calq-sheet-table th,
  .calq-sheet-table td {
    border-color: #000;
  }
}

@media (max-width: 1024px) {
  .calq-app-main { margin-left: 0; }
  .calq-sidebar-toggle { display: inline-flex; }
  .calq-sidebar {
    transform: translateX(-100%);
    transition: transform 0.2s ease;
    box-shadow: none;
  }
  .calq-sidebar.is-open {
    transform: translateX(0);
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
  }
  body.calq-sidebar-open { overflow: hidden; }
}

@media (max-width: 960px) {
  .calq-module-layout { grid-template-columns: 1fr; }
  .calq-module-aside { position: static; }
}

@media (max-width: 768px) {
  .calq-split { grid-template-columns: 1fr; }
  .calq-co2-workspace { grid-template-columns: 1fr; }
  .calq-co2-workspace .calq-co2-chart { max-height: 320px; min-height: 240px; }
  .calq-ic-layout { grid-template-columns: 1fr; }
  .calq-ic-list { max-height: 280px; }
  .calq-geluid-layout { grid-template-columns: 1fr; }
  .calq-geluid-list { max-height: 280px; }
  [data-calq-module="geluid"] .calq-geluid-split {
    grid-template-columns: 1fr;
  }
  [data-calq-module="geluid"] .calq-geluid-split__main {
    border-right: 0;
    border-bottom: 1px solid #eef2f7;
  }
  [data-calq-module="geluid"] .calq-geluid-split__aside {
    position: static;
  }
  [data-calq-module="geluid"] .calq-geluid-fields--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .calq-geluid-diagram__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* NEN 2767 conditiemeting */
.calq-nen2767 .calq-nen-text { margin: 0; line-height: 1.55; }
.calq-nen-conditie-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.75rem;
}
.calq-nen-conditie-card {
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  padding: 0.75rem 0.85rem;
  background: #fff;
}
.calq-nen-conditie-card__score {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  font-weight: 700;
  margin-bottom: 0.35rem;
}
.calq-nen-conditie-card h3 { margin: 0 0 0.35rem; font-size: 0.95rem; }
.calq-nen-conditie-card p { margin: 0; font-size: 0.82rem; color: var(--calq-muted); }
.calq-nen-score--good .calq-nen-conditie-card__score,
.calq-nen-score--good.calq-kpi__value { background: #dcfce7; color: #166534; }
.calq-nen-score--mid .calq-nen-conditie-card__score,
.calq-nen-score--mid.calq-kpi__value { background: #fef3c7; color: #b45309; }
.calq-nen-score--bad .calq-nen-conditie-card__score,
.calq-nen-score--bad.calq-kpi__value { background: #fee2e2; color: #b91c1c; }
.calq-nen-subhead { margin: 0.75rem 0 0.35rem; font-size: 0.88rem; }
.calq-nen-param-list { margin: 0 0 0.75rem; padding-left: 1.1rem; font-size: 0.85rem; }
.calq-nen-stappen { margin: 0; padding-left: 1.2rem; line-height: 1.55; font-size: 0.88rem; }
.calq-nen-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0.75rem;
}
.calq-nen-info-card {
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  padding: 0.75rem;
  background: #fafafa;
}
.calq-nen-info-card h3 { margin: 0 0 0.35rem; font-size: 0.92rem; }
.calq-nen-info-card p { margin: 0; font-size: 0.82rem; }
.calq-nen-tables-layout { align-items: start; }
.calq-nen-matrix { font-size: 0.78rem; text-align: center; }
.calq-nen-matrix th, .calq-nen-matrix td { padding: 0.35rem 0.4rem; }
.calq-nen-matrix th.is-active, .calq-nen-matrix td.is-active {
  outline: 2px solid var(--calq-green);
  outline-offset: -2px;
}
.calq-nen-matrix .calq-nen-score { font-weight: 700; border-radius: 4px; }
.calq-nen-matrix-wrap { overflow-x: auto; }
.calq-nen-calc-layout { align-items: start; }
.calq-nen-kpi { margin-top: 0.75rem; }
.calq-nen-hint { font-size: 0.82rem; margin: 0 0 0.5rem; }
.calq-nen-result-text { margin-top: 0.5rem; }
.calq-nen-count { margin-top: 0.5rem; font-size: 0.78rem; }
.calq-nen-ernst {
  display: inline-block;
  min-width: 1.25rem;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 4px;
  padding: 0.1rem 0.25rem;
}
.calq-nen-ernst--e { background: #fee2e2; color: #b91c1c; }
.calq-nen-ernst--s { background: #fef3c7; color: #b45309; }
.calq-nen-ernst--g { background: #e0f2fe; color: #0369a1; }
.calq-nen-dl {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 0.35rem 0.75rem;
  margin: 0 0 0.75rem;
  font-size: 0.88rem;
}
.calq-nen-dl dt { color: var(--calq-muted); margin: 0; }
.calq-nen-dl dd { margin: 0; }
.calq-nen-instrumenten section + section { margin-top: 1rem; }
.calq-nen-checklist { margin: 0; padding-left: 0; list-style: none; }
.calq-nen-checklist li { margin: 0.35rem 0; font-size: 0.88rem; }
.calq-nen-checklist label { display: flex; gap: 0.5rem; align-items: center; cursor: pointer; }

.calq-nen-rpt-fields { flex-wrap: wrap; }
.calq-nen-rapportage .calq-nen-rpt-input {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  padding: 0.25rem 0.4rem;
  font-size: 0.82rem;
  background: #fff;
}
.calq-nen-rpt-input--num { max-width: 4.5rem; }
.calq-nen-rpt-select { font-size: 0.82rem; padding: 0.2rem; }
.calq-nen-rpt-table { font-size: 0.82rem; }
.calq-nen-rpt-table th { white-space: nowrap; }
.calq-nen-rpt-conditie { text-align: center; font-size: 1rem; }
.calq-nen-rpt-meta {
  display: grid;
  grid-template-columns: 9rem 1fr;
  gap: 0.25rem 0.75rem;
  margin-bottom: 1rem;
  font-size: 0.88rem;
}
.calq-nen-rpt-meta dt { color: var(--calq-muted); margin: 0; }
.calq-nen-rpt-meta dd { margin: 0; }
.calq-nen-rpt-summary { margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--calq-border); }
.calq-nen-rpt-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.35rem; }
.calq-nen-rpt-chip {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  background: #f1f5f9;
  font-size: 0.78rem;
  font-weight: 600;
}
.calq-nen-rpt-footer { margin-top: 1rem; font-size: 0.78rem; color: var(--calq-muted); }
.calq-nen-rpt-footer p { margin: 0.25rem 0; }
.calq-nen-rpt-document { background: #fff; }

/* ——— Interne calculatie (Kuijpers CRM + CALQ) ——— */
.calq-crm-calc__header {
  background: #fff;
  color: #0f172a;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0.85rem 1rem;
  margin-bottom: 0.75rem;
}
.calq-crm-calc__header .calq-field__label { color: #64748b; }
.calq-crm-calc__header .calq-field__value { color: #334155; font-weight: 600; }
.calq-crm-calc__header-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem 0.65rem;
  align-items: flex-end;
}
.calq-crm-calc__header-grid .calq-field--grow {
  flex: 1 1 10rem;
  min-width: 8rem;
}
.calq-crm-calc__header-grid .calq-field--input:not(.calq-field--grow) {
  flex: 0 1 9.5rem;
  min-width: 7.5rem;
}
.calq-crm-calc__header-grid .calq-field--calc {
  flex: 0 0 auto;
  min-width: 5.25rem;
  background: transparent;
  border: none;
  padding: 0.35rem 0.55rem 0.35rem 0;
}
.calq-crm-calc__header .calq-field--calc .calq-field__label {
  color: #64748b;
  font-size: 0.68rem;
  white-space: nowrap;
}
.calq-crm-calc__header .calq-field--calc .calq-field__value {
  color: #334155;
  font-weight: 600;
  font-size: 0.9rem;
  text-align: left;
}
.calq-crm-calc__header-grid .calq-field--wide {
  flex: 1 1 100%;
  min-width: 12rem;
}
.calq-crm-calc__header .calq-field__value--small {
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.3;
}
.ic-inp--locked {
  background: rgba(0, 0, 0, 0.04);
  color: var(--calq-muted, #555);
  cursor: default;
}
.calq-crm-calc__header select,
.calq-crm-calc__header input {
  background: #fefce8;
  border: 1px solid #d4d4d8;
  border-radius: 2px;
  padding: 0.3rem 0.45rem;
  font: inherit;
  font-size: 0.78rem;
  width: 100%;
  color: #0f172a;
}
.calq-crm-calc__header select:focus,
.calq-crm-calc__header input:focus {
  outline: none;
  border-color: #93c5fd;
  box-shadow: 0 0 0 1px #93c5fd;
}
.calq-crm-calc__header .calq-field__label {
  font-size: 0.68rem;
  white-space: nowrap;
}
.calq-crm-calc__layout {
  display: block;
}
.calq-crm-calc--tabbed {
  padding-bottom: 4.75rem;
}
.calq-crm-calc__fase-tabs {
  position: fixed;
  bottom: 0;
  left: var(--calq-sidebar-width);
  right: 0;
  z-index: 40;
  background: #fff;
  border-top: 1px solid #e2e8f0;
  box-shadow: 0 -2px 8px rgba(15, 23, 42, 0.06);
}
.calq-crm-calc__fase-list {
  list-style: none;
  margin: 0;
  padding: 0.4rem 0.65rem;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.35rem;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.calq-crm-calc__fase-list::-webkit-scrollbar { height: 5px; }
.calq-crm-calc__fase-list::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
.calq-crm-calc__fase-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 0 0 auto;
  min-width: 6.5rem;
  max-width: 10rem;
  text-align: left;
  border: 1px solid var(--calq-border);
  border-radius: 8px 8px 0 0;
  background: #f8fafc;
  padding: 0.35rem 0.55rem 0.4rem;
  cursor: pointer;
  font: inherit;
  margin: 0;
  border-bottom: 0;
}
.calq-crm-calc__fase-btn:hover { background: #f1f5f9; }
.calq-crm-calc__fase-btn.active {
  background: #fff;
  border-color: #94a3b8;
  box-shadow: inset 0 -2px 0 #475569;
}
.calq-crm-calc__fase-nr {
  font-weight: 700;
  color: #334155;
  font-size: 0.82rem;
  line-height: 1.1;
}
.calq-crm-calc__fase-name {
  font-size: 0.65rem;
  line-height: 1.2;
  color: var(--calq-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 9rem;
  margin-top: 0.08rem;
}
.calq-crm-calc__fase-sum {
  font-size: 0.62rem;
  color: var(--calq-muted);
  font-variant-numeric: tabular-nums;
  margin-top: 0.12rem;
}
.calq-crm-calc__main {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
}
.calq-crm-calc__fase-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  padding: 0.55rem 0.85rem;
  background: #f8fafc;
  color: #334155;
  font-size: 0.82rem;
  border-bottom: 1px solid #e2e8f0;
}
.calq-crm-calc__label {
  display: block;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  color: #64748b;
  text-transform: uppercase;
}
.calq-crm-calc__ge input {
  width: 5rem;
  background: #fefce8;
  border: 1px solid #d4d4d8;
  border-radius: 2px;
  padding: 0.25rem 0.4rem;
  font: inherit;
  text-align: right;
  color: #0f172a;
}
.calq-crm-calc__ge input:focus {
  outline: none;
  border-color: #93c5fd;
  box-shadow: 0 0 0 1px #93c5fd;
}
.calq-crm-calc__table-wrap {
  max-height: calc(100vh - 15rem);
  overflow-y: auto;
  overflow-x: hidden;
  --ic-ctx-h: 3.25rem;
  --ic-grp-h: 0px;
}
.calq-crm-calc__table-wrap--fit { width: 100%; min-width: 0; }
.calq-crm-calc__sticky-context {
  position: sticky;
  top: 0;
  z-index: 30;
  background: #fff;
  box-shadow: 0 1px 0 #e2e8f0;
}
.calq-crm-calc__sticky-context .calq-crm-calc__fase-bar {
  border-radius: 0;
}
.calq-mb-table--sticky { border-collapse: separate; border-spacing: 0; }
.calq-mb-table--sticky thead .calq-mb-table__labels th {
  position: sticky;
  top: var(--ic-ctx-h);
  z-index: 24;
  box-shadow: 0 1px 0 #e2e8f0;
}
.calq-crm-calc__table-wrap .calq-calc-table th,
.calq-crm-calc__table-wrap .calq-calc-table td {
  border: none;
  border-bottom: 1px solid #e8edf2;
}
.calq-crm-calc__table-wrap .calq-calc-table thead th {
  background: #fff;
  border-bottom: 1px solid #cbd5e1;
}
.calq-crm-calc__table { font-size: 0.74rem; width: 100%; table-layout: fixed; }
.calq-crm-calc__row-groep td {
  background: #fff;
  font-weight: 700;
  color: #1d4ed8;
  border-bottom: 1px solid #e8edf2;
  padding-top: 0.75rem;
}
.calq-crm-calc__row-groep:first-child td {
  padding-top: 0.35rem;
}
.calq-crm-calc__row-kop td {
  background: #fff;
  font-weight: 600;
  color: #64748b;
  font-size: 0.7rem;
  letter-spacing: 0.02em;
  text-transform: none;
}
.calq-crm-calc__num {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.15rem;
  min-width: 5.5rem;
  width: 5.5rem;
  box-sizing: border-box;
  text-align: right;
  color: var(--calq-muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}
.calq-mb-table th:first-child {
  min-width: 5.5rem;
  width: 5.5rem;
  overflow: visible;
  text-overflow: clip;
}
.calq-crm-calc__money { position: relative; min-width: 7rem; }
.calq-crm-calc__money .ic-inp { margin-bottom: 0.15rem; }
.calq-crm-calc__calc {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: #94a3b8;
  font-size: 0.72rem;
  white-space: nowrap;
  vertical-align: middle;
}
.calq-crm-calc__sum { font-size: 0.74rem; color: #334155; font-weight: 600; }
.calq-crm-calc__sum .ic-val--zero { color: #cbd5e1; font-weight: 400; }
.ic-val--zero { color: #cbd5e1; }
.ic-inp--desc { text-align: left !important; min-width: 0; width: 100%; }
.ic-inp--num { text-align: right !important; width: 100%; padding: 0.12rem 0.2rem; font-size: 0.68rem; }
.ic-inp--edit { width: 100%; box-sizing: border-box; padding: 0.12rem 0.2rem; font-size: 0.68rem; }
.calq-crm-calc__totals { margin: 0; border-top: 1px solid #e2e8f0; border-radius: 0; }
.calq-crm-calc__totals > .calq-block__head {
  background: var(--calq-accent-strong);
  color: #123d28;
  border-bottom: var(--calq-head-rule);
  font-weight: 600;
}
.calq-crm-calc .calq-kpi--highlight {
  background: #fff;
  border-color: #cbd5e1;
}
.calq-crm-calc .calq-kpi--highlight .calq-kpi__value {
  color: #0f172a;
}
.calq-crm-calc__eind-summary { margin-top: 1rem; max-width: 32rem; }
.calq-crm-calc__eind-summary td:last-child { text-align: right; font-weight: 600; }

/* Moederbegroting layout */
.calq-mb-table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }
.calq-mb-table th,
.calq-mb-table td {
  padding: 0.35rem 0.55rem;
  vertical-align: middle;
  line-height: 1.25;
}
.calq-mb-table th {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.72rem;
  font-weight: 700;
  writing-mode: horizontal-tb;
  color: #0f172a;
}
.calq-mb-table td.calq-crm-calc__num {
  overflow: visible;
  text-overflow: clip;
}
.calq-mb-table td {
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.72rem;
}
.calq-mb-table col.col-t { width: 5.5rem; }
.calq-mb-table col.col-hvh { width: 5%; }
.calq-mb-table col.col-oms { width: 32%; }
.calq-mb-table col.col-money { width: 5%; }
.calq-mb-table col.col-krt { width: 3.5%; }
.calq-mb-table col.col-plm { width: 5%; }
.calq-mb-table col.col-totaal { width: 5.5%; }
.calq-mb-table__labels th { background: #fff; font-weight: 700; }
.calq-mb-table__labels th:not(.calq-mb-col-oms):not(.calq-mb-col-hvh) {
  text-align: right;
}
.calq-mb-unit {
  display: block;
  font-size: 0.58rem;
  font-weight: 400;
  color: #64748b;
  line-height: 1;
  margin-top: 0.1rem;
  text-align: right;
}
.calq-mb-table td.calq-mb-col-oms {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  word-break: break-word;
  vertical-align: top;
}
.calq-mb-table th.calq-mb-col-oms {
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}
.calq-mb-table th.calq-mb-col-hvh,
.calq-mb-table td.calq-mb-col-hvh {
  text-align: center;
}
.ic-inp--hvh { max-width: 3.5rem; margin: 0 auto; color: #0f172a; }
.calq-crm-calc .ic-inp--edit {
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 2px;
  box-shadow: none;
}
.calq-crm-calc .ic-inp--edit:focus {
  background: #fff;
  border-color: #93c5fd;
  outline: none;
  box-shadow: 0 0 0 1px #93c5fd;
}
.calq-crm-calc .ic-inp--desc {
  background: transparent;
  border-color: transparent;
  border-radius: 0;
  padding-left: 0;
  padding-right: 0;
}
.calq-crm-calc .ic-inp--desc:focus {
  background: #fff;
  border-color: #cbd5e1;
  border-radius: 2px;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.calq-crm-calc .ic-inp--locked {
  background: transparent;
  border-color: transparent;
  color: #94a3b8;
}
.calq-crm-calc .ic-inp--sub {
  flex: 0 0 2.1rem;
  max-width: 2.4rem;
  font-size: 0.62rem;
  background: #fff;
  border: 1px solid #cbd5e1;
  color: #64748b;
  padding: 0.1rem 0.12rem;
}
.calq-crm-calc .ic-inp--type {
  padding: 0.08rem 0.1rem;
}
.calq-crm-calc .ic-inp--type,
.calq-crm-calc .ic-inp--num:not(.ic-inp--hvh) {
  color: #0f172a;
}
.calq-crm-calc .calq-mb-col-hvh .ic-inp--hvh {
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 2px;
  padding: 0.15rem 0.2rem;
}
.calq-crm-calc.calq-panel {
  border-color: #e2e8f0;
  box-shadow: none;
  padding: 1rem 1.1rem;
}
.calq-crm-calc .calq-module-tabs {
  margin: 0.75rem 0;
}
.calq-crm-calc .calq-module-tabs button.active {
  background: #f8fafc;
  border-color: #94a3b8;
  color: #334155;
}
.calq-crm-calc .calq-notice {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #64748b;
}
.calq-crm-calc__grid-shell {
  display: flex;
  align-items: stretch;
  gap: 0;
  min-width: 0;
}
.calq-crm-calc__grid-shell .calq-crm-calc__table-wrap {
  flex: 1 1 auto;
  min-width: 0;
}
.calq-crm-calc__grid-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  padding: 0.4rem 0.85rem 0.45rem;
  background: #fff;
  border-bottom: 1px solid #e2e8f0;
  font-size: 0.72rem;
}
.calq-crm-calc__mode-toggle {
  display: inline-flex;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  overflow: hidden;
}
.calq-crm-calc__mode-btn {
  border: 0;
  background: #fff;
  color: #64748b;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.28rem 0.65rem;
  cursor: pointer;
}
.calq-crm-calc__mode-btn + .calq-crm-calc__mode-btn {
  border-left: 1px solid #cbd5e1;
}
.calq-crm-calc__mode-btn.active {
  background: #f1f5f9;
  color: #0f172a;
}
.calq-crm-calc__filter-actief {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #64748b;
  cursor: pointer;
  user-select: none;
}
.calq-crm-calc__recipe {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.calq-crm-calc__recipe select {
  max-width: 14rem;
  font: inherit;
  font-size: 0.72rem;
  padding: 0.2rem 0.35rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
}
.calq-crm-calc__recipe #ic-recipe-qty {
  width: 3.25rem;
  font: inherit;
  font-size: 0.72rem;
  padding: 0.2rem 0.35rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
}
.calq-crm-calc__save-status {
  font-size: 0.72rem;
  color: #64748b;
  min-width: 6rem;
}
.calq-crm-calc__grid-hint {
  color: #94a3b8;
  font-size: 0.65rem;
  margin-left: auto;
}
.calq-crm-calc--mode-invullen .calq-mb-col-control-only {
  display: none;
}
.calq-crm-calc--filter-actief tr.calq-crm-calc__row-regel[data-actief="0"] {
  display: none;
}
.calq-crm-calc__table-wrap {
  --ic-ctx-h: 5.5rem;
}
.ic-cw-badge {
  flex-shrink: 0;
  display: inline-block;
  margin-left: 0.2rem;
  padding: 0 0.28rem;
  border-radius: 3px;
  background: #ffedd5;
  color: #c2410c;
  font-size: 0.58rem;
  font-weight: 700;
  vertical-align: super;
  line-height: 1.2;
}
.ic-audit-btn {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  margin-left: 0.15rem;
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  background: #fff;
  color: #64748b;
  font-size: 0.58rem;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle;
}
.ic-audit-btn:hover,
.ic-audit-btn.is-active {
  border-color: #93c5fd;
  color: #1d4ed8;
  background: #eff6ff;
}
.ic-audit-trigger {
  cursor: pointer;
}
.ic-audit-trigger:hover {
  background: #f8fafc;
}
tr.calq-crm-calc__row-regel.is-audit-selected td {
  background: #eff6ff;
}
.ic-prijs-audit {
  flex: 0 0 17rem;
  max-width: 17rem;
  border-left: 1px solid #e2e8f0;
  background: #fff;
  font-size: 0.72rem;
  overflow: auto;
  max-height: calc(100vh - 15rem);
}
.ic-prijs-audit.hidden {
  display: none;
}
.ic-prijs-audit__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.5rem 0.65rem;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}
.ic-prijs-audit__title {
  font-size: 0.78rem;
  color: #0f172a;
}
.ic-prijs-audit__close {
  border: 0;
  background: transparent;
  font-size: 1.1rem;
  line-height: 1;
  color: #64748b;
  cursor: pointer;
  padding: 0 0.2rem;
}
.ic-prijs-audit__body {
  padding: 0.55rem 0.65rem 0.75rem;
}
.ic-prijs-audit__row {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.22rem 0;
  border-bottom: 1px solid #f1f5f9;
}
.ic-prijs-audit__row dt {
  color: #64748b;
  font-weight: 500;
  margin: 0;
}
.ic-prijs-audit__row dd {
  margin: 0;
  text-align: right;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
}
.ic-prijs-audit__section {
  margin: 0.55rem 0 0.25rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #94a3b8;
}
.ic-prijs-audit__warn {
  margin-top: 0.5rem;
  padding: 0.4rem 0.5rem;
  border-radius: 4px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
  font-size: 0.68rem;
  line-height: 1.35;
}
@media (max-width: 1100px) {
  .calq-crm-calc__grid-shell {
    flex-direction: column;
  }
  .ic-prijs-audit {
    flex: none;
    max-width: none;
    max-height: 14rem;
    border-left: 0;
    border-top: 1px solid #e2e8f0;
  }
  .calq-crm-calc__grid-hint {
    flex: 1 1 100%;
    margin-left: 0;
  }
}
@media print {
  .calq-crm-calc__grid-toolbar,
  .ic-prijs-audit,
  .ic-audit-btn { display: none !important; }
  .calq-crm-calc--mode-invullen .calq-mb-col-control-only { display: table-cell !important; }
}
.calq-mb-table .ic-inp--desc {
  min-width: 0;
  font-size: 0.68rem;
  line-height: 1.25;
  text-align: left !important;
}
.calq-crm-calc__row-groep td,
.calq-crm-calc__row-kop td {
  overflow: visible;
  white-space: normal;
  text-overflow: clip;
}
.calq-mb-table .calq-crm-calc__calc { font-size: 0.66rem; }
.calq-mb-inp-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.12rem;
  min-width: 0;
}
.calq-mb-inp-row .ic-inp { flex: 1 1 0; min-width: 0; }
.calq-mb-col-plm { padding: 0.2rem 0.35rem !important; }
.ic-inp--sub {
  flex: 0 0 2.1rem;
  max-width: 2.4rem;
  font-size: 0.62rem;
  background: #fff7ed;
  border-color: #fdba74;
  padding: 0.1rem 0.12rem;
}
.ic-inp--edit {
  background: #fef9c3;
  border-color: #fde047;
}
.ic-inp--edit:focus {
  background: #fef08a;
  outline-color: #eab308;
}
.ic-inp--type { width: 100%; max-width: 2.1rem; padding: 0.1rem; text-align: center; font-size: 0.65rem; }
.ic-inp--ehd { width: 100%; text-align: center !important; font-size: 0.65rem; }
.calq-crm-calc__legend {
  margin: 0.35rem 0 0.5rem;
  font-size: 0.72rem;
  color: var(--calq-muted);
}
.ic-legend {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 3px;
  margin-right: 0.5rem;
  font-size: 0.68rem;
}
.ic-legend--in { background: #fef9c3; border: 1px solid #fde047; }
.ic-legend--calc { background: #f1f5f9; border: 1px solid #cbd5e1; }
.calq-crm-calc__unit-hint { font-size: 0.65rem; color: var(--calq-muted); margin-left: 0.25rem; }
.calq-mb-eind__hoofd td,
.calq-mb-eind__hoofd th { font-size: 0.78rem; }
.calq-mb-collapse__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  cursor: pointer;
}
.calq-mb-collapse__title { flex: 1 1 auto; min-width: 0; }
.calq-mb-collapse__toggle {
  flex: 0 0 auto;
  border: 1px solid var(--calq-border);
  background: var(--calq-surface);
  color: var(--calq-text);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  cursor: pointer;
}
.calq-mb-collapse__toggle:hover { background: var(--calq-accent-soft); }
.calq-mb-collapse.is-collapsed .calq-mb-eind__hoofd tbody { display: none; }
.calq-mb-eind__hoofd tfoot tr {
  background: #f0f9ff;
  font-weight: 600;
}
.calq-mb-eind__hoofd td:not(:first-child):not(:nth-child(2)),
.calq-mb-eind__hoofd th:not(:first-child):not(:nth-child(2)) { text-align: right; }
.calq-mb-eind__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.calq-mb-eind__stack td:last-child { text-align: right; font-weight: 600; }
.calq-mb-eind__lines { width: 100%; font-size: 0.8rem; margin: 0; }
.calq-mb-eind__lines th {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--calq-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.35rem 0.5rem;
  background: #f8fafc;
}
.calq-mb-eind__lines th:last-child,
.calq-mb-eind__val { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.calq-mb-eind__lines td { padding: 0.35rem 0.5rem; vertical-align: middle; }
.calq-mb-eind__label { font-weight: 500; white-space: nowrap; }
.calq-mb-eind__inp { width: 8rem; text-align: center; }
.calq-mb-eind__inp-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
}
.calq-mb-eind__inp-field {
  width: 4.25rem;
  padding: 0.2rem 0.35rem;
  border: 1px solid #fde047;
  border-radius: 4px;
  background: #fef9c3;
  font: inherit;
  font-size: 0.78rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.calq-mb-eind__inp-field:focus { background: #fef08a; outline-color: #eab308; }
.calq-mb-eind__unit { font-size: 0.72rem; color: var(--calq-muted); }
.calq-mb-eind__dash { color: var(--calq-muted); }
.calq-mb-eind__bold td { font-weight: 700; background: #f8fafc; }
.calq-mb-eind__totaal .calq-mb-eind__lines td { padding: 0.4rem 0.5rem; }
.calq-mb-eind__totaal { border: 2px solid var(--calq-primary); }
@media (max-width: 960px) {
  .calq-mb-eind__grid { grid-template-columns: 1fr; }
}

@media (max-width: 1024px) {
  .calq-crm-calc__fase-tabs { left: 0; }
}

@media (max-width: 960px) {
  .calq-mb-eind__grid { grid-template-columns: 1fr; }
}

@media print {
  .calq-crm-calc__fase-tabs,
  .calq-crm-calc__header,
  .calq-actions { display: none !important; }
  .calq-crm-calc__layout { display: block; }
  .calq-crm-calc__table-wrap { max-height: none; overflow: visible; }
  .calq-crm-calc__sticky-context,
  .calq-mb-table--sticky thead th { position: static; box-shadow: none; }
  .calq-crm-calc__money .ic-inp { display: none; }
  .calq-mb-collapse.is-collapsed .calq-mb-eind__hoofd tbody { display: table-row-group !important; }
  .calq-mb-collapse__toggle { display: none !important; }
}

@media print {
  .calq-nen2767 > h1,
  .calq-nen2767 > .calq-lead,
  .calq-nen2767 > .calq-notice,
  .calq-nen2767 > .calq-subnav { display: none !important; }
  .calq-nen-rpt-document { border: 0; box-shadow: none; padding: 0; }
  .calq-nen-rpt-table input,
  .calq-nen-rpt-table select { border: 0; background: transparent; padding: 0; }
  .calq-nen-rpt-meta { display: grid; }
}

/* ——— Raming COST_V1 (PvG) — NEN 2699 + Excel-sheet ——— */
.calq-subnav--ram button.calq-subnav__link {
  border: 0;
  cursor: pointer;
  font: inherit;
  font-size: 0.82rem;
}
.ram-niveau-context {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  margin: 0.5rem 0 0.75rem;
  padding: 0.55rem 0.85rem;
  background: #f8fafc;
  border: 1px solid var(--calq-border);
  border-left: 4px solid var(--calq-green);
  border-radius: 4px;
}
.ram-niveau-context__norm {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--calq-green);
}
.ram-disciplines {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  margin: 0 0 0.75rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
}
.ram-sheet-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1.25rem;
  margin: 0 0 0.75rem;
  padding: 0.55rem 0.75rem;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 6px;
}
.ram-hide-empty-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  color: #334155;
  cursor: pointer;
  user-select: none;
}
.ram-inp-hvh:placeholder-shown { background: #fff; }
.ram-inp-hvh:not(:placeholder-shown) { background: #fef9c3; }
.ram-disciplines__label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
  margin-right: 0.25rem;
}
.ram-discipline-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #f8fafc;
  font-size: 0.8rem;
  cursor: pointer;
  user-select: none;
}
.ram-discipline-chip:has(input:checked) {
  background: #ecfdf5;
  border-color: var(--calq-green);
  color: #14532d;
  font-weight: 600;
}
.ram-discipline-chip.is-off {
  opacity: 0.55;
  background: #f1f5f9;
}
.ram-discipline-chip input {
  accent-color: var(--calq-green);
}
.ram-sectie--ingeklapt td {
  background: #f1f5f9 !important;
  color: #64748b;
  font-size: 0.78rem;
  padding: 0.4rem 0.5rem !important;
}
.ram-sectie-fold {
  display: inline-block;
  margin-right: 0.35rem;
  font-size: 0.7rem;
  color: #94a3b8;
}
.ram-sectie-hint {
  margin-left: 0.5rem;
  font-size: 0.72rem;
  font-weight: 400;
  color: #94a3b8;
}
.ram-sectie-badge {
  margin-left: 0.5rem;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #94a3b8;
}
.ram-up-sectie--ingeklapt {
  opacity: 0.85;
}
.ram-up-sectie__head--ingeklapt {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  background: #e2e8f0 !important;
  color: #475569;
}
.ram-up-sectie__hint {
  margin: 0;
  padding: 0.65rem 1rem;
  font-size: 0.8rem;
  color: #64748b;
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
}
.calq-cost-v1-panel .calq-lead,
.calq-cost-v1-panel .calq-notice { margin-bottom: 0.5rem; }
.calq-cost-v1-sheet {
  background: #fff;
  border: 1px solid #64748b;
  border-radius: 4px;
  padding: 0.65rem;
  font-size: 0.8rem;
}
.ram-sheet-top {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(10rem, 0.9fr) minmax(8rem, 0.5fr);
  gap: 0.65rem;
  margin-bottom: 0.65rem;
  align-items: start;
}
.ram-sheet-kop .calq-sheet-label { width: 6.5rem; }
.ram-sheet-label--inline { padding-left: 0.5rem !important; }
.ram-sheet-vorm .calq-sheet-label { white-space: nowrap; }
.ram-sheet-inp--bvo {
  white-space: nowrap;
}
.ram-sheet-inp--bvo input {
  width: 6rem;
  display: inline-block;
}
table.calq-sheet-table.ram-cost-v1-sheet {
  table-layout: auto;
  width: max-content;
  min-width: 100%;
}
.ram-cost-v1-sheet th,
.ram-cost-v1-sheet td {
  border: 1px solid #000;
  padding: 0.28rem 0.4rem;
  vertical-align: middle;
  line-height: 1.35;
  white-space: nowrap;
}
.ram-cost-v1-sheet td:nth-child(2),
.ram-cost-v1-sheet th:nth-child(2) {
  min-width: 14rem;
}
.ram-cost-v1-sheet td:nth-child(4),
.ram-cost-v1-sheet th:nth-child(4) {
  min-width: 10rem;
}
.ram-cost-v1-sheet td:nth-child(10),
.ram-cost-v1-sheet th:nth-child(10) {
  min-width: 8rem;
}
.ram-cost-v1-sheet .ram-sheet-header th {
  background: #fff;
  font-weight: 700;
  text-align: left;
  font-size: 0.78rem;
}
.ram-cost-v1-sheet .ram-col-gap {
  width: 0.35rem;
  min-width: 0.35rem;
  padding: 0;
  background: #fff;
}
.ram-sheet-inp,
.ram-cost-v1-sheet .ram-sheet-inp {
  background: var(--calq-input);
  box-shadow: inset 3px 0 0 var(--calq-green-light);
}
.ram-sheet-inp input,
.ram-cost-v1-sheet .ram-sheet-inp input {
  width: 100%;
  min-width: 5rem;
  border: 0;
  background: transparent;
  font: inherit;
  padding: 0.1rem 0.15rem;
  white-space: nowrap;
}
.ram-sheet-inp input[type="number"] {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ram-sheet-kop input {
  width: 100%;
  border: 0;
  background: var(--calq-input);
  box-shadow: inset 2px 0 0 var(--calq-green-light);
  font: inherit;
  padding: 0.15rem 0.3rem;
}
.ram-sheet-calc,
.ram-cost-v1-sheet .ram-sheet-calc {
  background: var(--calq-calc);
}
.ram-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ram-cost-v1-sheet .ram-sectie-kop td {
  background: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #0f172a;
  border-top: 2px solid #000;
}
.ram-cost-v1-sheet .ram-hoofdgroep--sum td {
  background: #f8fafc;
}
.ram-cost-v1-sheet .ram-detail td {
  font-size: 0.88rem;
}
.ram-cost-v1-sheet .ram-sectie-totaal td,
.ram-cost-v1-sheet .ram-grand-totaal td {
  background: #e8eef4;
  font-weight: 600;
}
.ram-cost-v1-sheet .ram-toeslag td {
  background: #fff;
}
.ram-sheet-fases th,
.ram-sheet-fases td {
  text-align: center;
  font-size: 0.75rem;
}
.ram-sheet-section th {
  background: #e2e8f0;
  text-align: left;
}
.ram-table-scroll {
  max-height: calc(100vh - 13rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.ram-cost-v1-sheet.ram-cost-v1-sheet--sticky {
  border-collapse: separate;
  border-spacing: 0;
}
.ram-cost-v1-sheet--sticky thead .ram-sheet-header th {
  position: sticky;
  top: 0;
  z-index: 20;
  background: #fff;
  box-shadow: 0 1px 0 #000, 0 2px 4px rgba(15, 23, 42, 0.1);
}
@media (max-width: 960px) {
  .ram-sheet-top { grid-template-columns: 1fr; }
  .ram-table-scroll { max-height: calc(100vh - 11rem); }
}
@media print {
  .ram-table-scroll { max-height: none; overflow: visible; }
  .ram-cost-v1-sheet--sticky thead .ram-sheet-header th {
    position: static;
    box-shadow: none;
  }
}

.ram-uitgangspunten {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.ram-up-sectie {
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  overflow: hidden;
}
.ram-up-sectie__head {
  background: var(--calq-accent-strong);
  color: #123d28;
  padding: 0.45rem 0.85rem;
  border-bottom: var(--calq-head-rule);
}
.ram-up-sectie__head h3 {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.ram-up-sectie__algemeen {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 0.75rem 1rem;
  padding: 1rem;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}
.ram-up-hoofdgroep {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #f1f5f9;
}
.ram-up-hoofdgroep:last-child {
  border-bottom: 0;
}
.ram-up-hoofdgroep__kop {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.6rem;
}
.ram-up-hoofdgroep__code {
  font-weight: 700;
  font-size: 0.85rem;
  color: #1e4d3a;
}
.ram-up-hoofdgroep__titel {
  font-weight: 600;
  font-size: 0.9rem;
}
.ram-up-hoofdgroep__spec {
  font-size: 0.8rem;
  color: #64748b;
}
.ram-up-hoofdgroep__velden {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 0.6rem 1rem;
}
.ram-up-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.ram-up-field--textarea {
  grid-column: 1 / -1;
}
.ram-up-field__label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.ram-up-field input,
.ram-up-field textarea {
  width: 100%;
  font: inherit;
  padding: 0.4rem 0.5rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  background: #fff;
}
.ram-up-field textarea {
  resize: vertical;
  min-height: 4rem;
}

/* ——— P&ID canvas (ventilatie-opzet) ——— */
.ho-workspace .ho-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin: 0.75rem 0 1rem;
}
.ho-toolbar__field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
}
.ho-toolbar__field select {
  font: inherit;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  background: var(--calq-input);
}
.ho-save-status {
  margin-left: auto;
  font-size: 0.78rem;
  color: var(--calq-muted, #64748b);
}
.ho-workspace {
  --ho-dock-bottom: 3.25rem;
}
.ho-workspace-body {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: calc(100vh - 12rem);
}
.ho-kpis { margin-bottom: 0.75rem; }
.ho-layout {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  gap: 0.75rem;
  flex: 1;
  min-height: 480px;
}
.ho-dock {
  position: fixed;
  bottom: var(--ho-dock-bottom);
  z-index: 40;
  margin-top: 0;
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 -4px 20px rgba(15, 23, 42, 0.12);
  /* bottom-dock: left + width via JS — uitlijnen op .ho-workspace (naast sidebar) */
}
.ho-workspace .ho-dock--drawer {
  top: 0;
  right: 0;
  bottom: var(--ho-dock-bottom);
  left: auto;
  width: min(400px, calc(100vw - var(--calq-sidebar-width, 248px) - 0.5rem));
  max-width: 420px;
  border-radius: 8px 0 0 8px;
  box-shadow: -6px 0 28px rgba(15, 23, 42, 0.14);
  z-index: 100;
  display: flex;
  flex-direction: column;
  transform: translateX(105%);
  transition: transform 0.22s ease;
  pointer-events: none;
}
.ho-workspace .ho-dock--drawer.ho-dock--open {
  transform: translateX(0);
  pointer-events: auto;
}
.ho-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 95;
  background: rgba(15, 23, 42, 0.2);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.ho-drawer-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}
body.ho-drawer-open { overflow: hidden; }
.ho-dock__bar,
.ho-dock__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0 0.35rem 0 0;
  background: var(--calq-accent-strong);
  border-bottom: var(--calq-head-rule);
  min-height: 42px;
  flex-shrink: 0;
}
.ho-workspace .ho-dock--drawer .ho-dock__panels {
  flex: 1;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.ho-workspace .ho-dock--drawer .ho-dock__panel.is-active {
  display: block;
  height: auto;
  min-height: 0;
}
.vo-workspace .ho-dock--drawer {
  width: min(540px, calc(100vw - var(--calq-sidebar-width, 248px) - 0.5rem));
  max-width: 580px;
}
.ho-dock__btn--close {
  font-size: 1.25rem;
  font-weight: 400;
  margin-right: 0.35rem;
}
.ho-system-check--clickable {
  cursor: pointer;
}
.ho-system-check--clickable:hover {
  filter: brightness(0.98);
}
.ho-dock__tabs { display: flex; gap: 0; }
.ho-dock__tab {
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.55rem 1rem;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--calq-muted);
  cursor: pointer;
  margin-bottom: -1px;
}
.ho-dock__tab:hover { color: var(--calq-text); background: #fff; }
.ho-dock__tab.is-active {
  color: var(--calq-text);
  background: #fff;
  border-bottom-color: var(--calq-primary, #065f46);
}
.ho-dock__actions { display: flex; gap: 0.25rem; padding-right: 0.35rem; }
.ho-dock__btn {
  width: 32px;
  height: 32px;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #fff;
  color: #475569;
  font-size: 0.9rem;
  cursor: pointer;
  line-height: 1;
}
.ho-dock__btn:hover { background: #f1f5f9; border-color: #94a3b8; }
.ho-dock__panels {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.2s ease;
}
.ho-dock__panel { display: none; padding: 0.65rem 0.85rem; }
.ho-dock__panel.is-active { display: block; }
.ho-dock__breakdown {
  margin-top: 0.75rem;
  font-size: 0.82rem;
}
.ho-dock__breakdown summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--calq-muted);
  margin-bottom: 0.35rem;
}
.ho-dock--collapsed .ho-dock__panels { max-height: 0; overflow: hidden; padding: 0; }
.ho-dock--collapsed .ho-dock__btn#ho-dock-collapse { transform: rotate(180deg); }
.ho-dock--expanded .ho-dock__panels {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.ho-dock--expanded[data-ho-active-tab="props"] .ho-dock__panels {
  max-height: var(--ho-dock-props-h);
}
.ho-dock--expanded[data-ho-active-tab="results"] .ho-dock__panels {
  max-height: var(--ho-dock-results-h);
}
.ho-dock--expanded:not([data-ho-active-tab]) .ho-dock__panels {
  max-height: var(--ho-dock-props-h);
}
.ho-dock__panel[data-ho-panel="props"] { padding: 0.45rem 0.75rem 0.55rem; }
.ho-dock--fullscreen {
  position: fixed;
  inset: 0;
  left: 0 !important;
  width: 100% !important;
  bottom: 0;
  z-index: 1200;
  margin: 0;
  border-radius: 0;
  display: flex;
  flex-direction: column;
}
.ho-dock--fullscreen .ho-dock__panels {
  flex: 1;
  max-height: none;
  overflow: auto;
}
.ho-dock--fullscreen .ho-dock__btn#ho-dock-expand { font-size: 1.2rem; }
.ho-palette-panel { overflow: hidden; }
.ho-palette-tabs {
  display: flex;
  gap: 0.25rem;
  padding: 0.5rem 0.5rem 0;
  border-bottom: 1px solid var(--calq-border);
}
.ho-palette-tabs__btn {
  flex: 1;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.4rem 0.35rem;
  border: 1px solid var(--calq-border);
  border-bottom: none;
  border-radius: 6px 6px 0 0;
  background: #f1f5f9;
  color: var(--calq-muted);
  cursor: pointer;
}
.ho-palette-tabs__btn.is-active {
  background: #fff;
  color: var(--calq-text, #0f172a);
  border-color: var(--calq-border);
  box-shadow: inset 0 2px 0 #dc2626;
}
.ho-palette-tabs__btn[data-ho-palette-cat="distributie"].is-active { box-shadow: inset 0 2px 0 #7c3aed; }
.ho-palette-tabs__btn[data-ho-palette-cat="gebruiker"].is-active { box-shadow: inset 0 2px 0 #2563eb; }
.ho-palette { padding: 0.5rem; max-height: 420px; overflow-y: auto; }
.ho-palette__group { margin-bottom: 0; }
.ho-palette__title {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--calq-muted);
}
.ho-palette__title--opwekker { color: #dc2626; }
.ho-palette__title--distributie { color: #7c3aed; }
.ho-palette__title--gebruiker { color: #2563eb; }
.ho-palette__items { display: flex; flex-direction: column; gap: 0.35rem; }
.ho-palette__item {
  display: grid;
  grid-template-columns: 104px 1fr;
  grid-template-rows: auto auto;
  gap: 0.2rem 0.45rem;
  width: 100%;
  text-align: left;
  padding: 0.45rem 0.5rem;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #fff;
  cursor: grab;
  font: inherit;
  align-items: center;
}
.ho-palette__thumb {
  grid-row: 1 / span 2;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 132px;
  padding: 2px;
}
.ho-palette__thumb svg,
.ho-palette__thumb img,
.ho-palette__img {
  display: block;
  max-width: 100%;
  max-height: 128px;
  object-fit: contain;
}
.ho-palette__item:hover { background: #f8fafc; border-color: #94a3b8; }
.ho-palette__badge {
  flex-shrink: 0;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0.15rem 0.35rem;
  border-radius: 4px;
}
.ho-palette__name { font-size: 0.78rem; line-height: 1.3; }
.ho-hint {
  margin: 0;
  padding: 0.5rem 0.75rem 0.75rem;
  font-size: 0.75rem;
  color: var(--calq-muted);
  border-top: 1px solid var(--calq-border);
}
.ho-canvas-panel { display: flex; flex-direction: column; min-height: 520px; }
.ho-canvas {
  position: relative;
  flex: 1;
  min-height: 480px;
  background:
    linear-gradient(#e2e8f0 1px, transparent 1px) 0 0 / 20px 20px,
    linear-gradient(90deg, #e2e8f0 1px, transparent 1px) 0 0 / 20px 20px,
    #f8fafc;
  border-top: 1px solid var(--calq-border);
  overflow: auto;
}
.ho-canvas--connecting { cursor: crosshair; }
.ho-canvas__inner {
  position: relative;
  min-width: 1200px;
  min-height: 800px;
}
.ho-edges {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
  z-index: 3;
}
.ho-edge {
  fill: none;
  stroke-width: 3;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.ho-edge--aanvoer { stroke: #16a34a; }
.ho-edge--toevoer { stroke: #16a34a; stroke-width: 2.5; }
.ho-edge--retour { stroke: #2563eb; stroke-width: 2; stroke-dasharray: 7 5; }
.ho-edge--afvoer { stroke: #2563eb; stroke-width: 2; stroke-dasharray: 7 5; }
.ho-edge--index { stroke-width: 4; filter: drop-shadow(0 0 2px rgba(234, 88, 12, 0.6)); }
.ho-edge--toevoer.ho-edge--index { stroke: #ea580c; }
.ho-edge--retour.ho-edge--index { stroke: #c2410c; stroke-dasharray: none; }
.ho-edge--afvoer.ho-edge--index { stroke: #c2410c; stroke-dasharray: none; }
.vo-legend-toevoer { color: #16a34a; font-weight: 600; }
.vo-legend-retour { color: #2563eb; font-weight: 600; }
.vo-legend-afvoer { color: #2563eb; font-weight: 600; }
.vo-results__h { margin: 1rem 0 0.35rem; font-size: 0.9rem; color: #334155; }
.vo-row--index { background: #fff7ed; font-weight: 600; }
.vo-row--index td:first-child { color: #c2410c; }
.vo-afgifte-fieldset { margin: 0.75rem 0; padding: 0.65rem 0.75rem; border: 1px solid #e2e8f0; border-radius: 8px; }
.vo-afgifte-fieldset legend { font-size: 0.8rem; font-weight: 600; color: #334155; padding: 0 0.25rem; }
.vo-afgifte-table-wrap { overflow-x: auto; margin-top: 0.35rem; }
.vo-afgifte-table { font-size: 0.75rem; }
.vo-afgifte-table .num { text-align: right; white-space: nowrap; }
.vo-afgifte-row--selected { background: #ecfdf5; }
.vo-afgifte-selected { font-size: 0.8rem; color: #166534; margin: 0 0 0.35rem; }
.vo-afgifte-empty { font-size: 0.8rem; color: #64748b; margin: 0.35rem 0 0; }
.vo-kast {
  position: absolute;
  z-index: 3;
  min-height: 200px;
}
.vo-kast__resize {
  position: absolute;
  top: 28px;
  bottom: 18px;
  width: 10px;
  z-index: 5;
  cursor: ew-resize;
  border-radius: 3px;
  opacity: 0;
  transition: opacity 0.15s, background 0.15s;
}
.vo-kast:hover .vo-kast__resize,
.vo-kast.is-selected .vo-kast__resize {
  opacity: 1;
}
.vo-kast__resize--left { left: -5px; }
.vo-kast__resize--right { right: -5px; }
.vo-kast__resize:hover,
.vo-kast__resize.is-active {
  background: rgba(37, 99, 235, 0.2);
}
.vo-kast__body {
  position: relative;
  width: 100%;
  height: 100%;
}
.vo-kast__drop {
  cursor: default;
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;
}
.vo-palette-dragging .vo-kast__drop {
  cursor: copy;
}
.vo-kast__drop-zones {
  position: absolute;
  inset: 32px 8px 22px 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  z-index: 1;
  pointer-events: none;
}
.vo-palette-dragging .vo-kast__drop-zones {
  z-index: 3;
}
.vo-kast__drop-band {
  flex: 1;
  border-radius: 4px;
  pointer-events: none;
  transition: background 0.15s;
}
.vo-palette-dragging .vo-kast__drop-band,
.vo-kast--palette-drag .vo-kast__drop-band {
  pointer-events: auto;
}
.vo-kast__drop-band--retour { border: 1px dashed transparent; }
.vo-kast__drop-band--toevoer { border: 1px dashed transparent; }
.vo-kast__drop-band--retour.vo-kast__drop-band--over {
  background: rgba(37, 99, 235, 0.12);
  border-color: #2563eb;
}
.vo-kast__drop-band--toevoer.vo-kast__drop-band--over {
  background: rgba(8, 145, 178, 0.12);
  border-color: #0891b2;
}
.vo-kast__drop--over .vo-kast__drop-band--retour:not(.vo-kast__drop-band--over) { opacity: 0.5; }
.vo-kast-svg { display: block; }
.vo-ruimte { position: absolute; z-index: 2; }
.vo-slot--selected rect { stroke: #fbbf24 !important; stroke-width: 2; }
.vo-slot--wtw.vo-slot--selected .vo-wtw-diamond,
.vo-slot--wtw.vo-slot--selected .vo-wtw-wheel { stroke: #fbbf24 !important; stroke-width: 2.5; }
.vo-slot {
  cursor: grab;
  pointer-events: all;
}
.vo-slot:active {
  cursor: grabbing;
}
.vo-slot--dragging {
  opacity: 0.72;
}
.vo-slot__remove {
  opacity: 0;
  transition: opacity 0.12s;
  cursor: pointer;
}
.vo-slot:hover .vo-slot__remove,
.vo-slot--selected .vo-slot__remove {
  opacity: 1;
}
.vo-slot__remove:hover circle {
  fill: #fee2e2;
}
.ho-system-check__delta {
  margin-left: 0.5rem;
  font-size: 0.82rem;
  color: #c2410c;
  font-weight: 600;
}
.ho-system-check__delta--flash {
  animation: vo-delta-flash 1.2s ease;
}
@keyframes vo-delta-flash {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
.vo-norm--error td { background: #fef2f2; }
.vo-norm--warn td { background: #fffbeb; }
.vo-print-report { display: none; }
.print-only { display: none; }
.vo-slot--wtw { cursor: grab; }
.vo-ruimte-table { margin-top: 0.75rem; font-size: 0.82rem; width: 100%; }
.vo-ruimte-table th, .vo-ruimte-table td { padding: 0.35rem 0.5rem; text-align: left; border-bottom: 1px solid var(--calq-border); }
.ho-edge--preview {
  stroke: #64748b;
  stroke-width: 2.5;
  stroke-dasharray: 7 5;
  opacity: 0.85;
}
.ho-canvas-nodes { position: absolute; inset: 0; z-index: 2; }
.ho-node {
  position: absolute;
  user-select: none;
  z-index: 2;
  overflow: visible;
}
.ho-node--pid .ho-sym { display: block; width: 100%; height: auto; overflow: visible; }
.ho-node.is-selected .ho-sym rect:first-child,
.ho-node.is-selected .ho-sym--img rect:first-child { stroke: #2563eb; stroke-width: 2.5; }
.ho-node--warn .ho-sym rect:first-child,
.ho-node--warn .ho-sym--img rect:first-child { stroke: #f59e0b; stroke-width: 2.5; }
.ho-sym--img image { pointer-events: none; }
.ho-node--pid { cursor: grab; }
.ho-node--pid.is-dragging { cursor: grabbing; z-index: 5; }
.ho-node__drag {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: rgba(248, 250, 252, 0.9) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748b'%3E%3Ccircle cx='3' cy='3' r='1.5'/%3E%3Ccircle cx='9' cy='3' r='1.5'/%3E%3Ccircle cx='3' cy='9' r='1.5'/%3E%3Ccircle cx='9' cy='9' r='1.5'/%3E%3C/svg%3E") center/12px no-repeat;
  border: 1px solid var(--calq-border);
  cursor: move;
  z-index: 3;
}
.ho-node__overlay {
  position: absolute;
  left: 4px;
  right: 4px;
  bottom: -22px;
  font-size: 0.68rem;
  font-weight: 600;
  text-align: center;
  color: var(--calq-text);
  background: rgba(255,255,255,0.92);
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  padding: 0.1rem 0.25rem;
  z-index: 4;
}
.ho-sym-port-wrap { pointer-events: all; cursor: crosshair; }
.ho-sym-port-hit { pointer-events: all; cursor: crosshair; }
.ho-sym-port { cursor: crosshair; pointer-events: all; }
.ho-sym-port:hover,
.ho-sym-port-wrap:hover .ho-sym-port { stroke: #2563eb; stroke-width: 2; fill: #bbf7d0; }
.ho-sym-part { cursor: pointer; }
.ho-sym-part-hit { pointer-events: all; }
.ho-sym-part-ring { stroke: transparent; stroke-width: 2; pointer-events: none; }
.ho-sym-part:hover .ho-sym-part-ring { stroke: #93c5fd; fill: rgba(37, 99, 235, 0.06); }
.ho-sym-part--active .ho-sym-part-ring { stroke: #7c3aed; stroke-width: 2.5; fill: rgba(124, 58, 237, 0.1); }
.ho-sym-part--klep.ho-sym-part--active .ho-sym-part-ring { stroke: #dc2626; fill: rgba(220, 38, 38, 0.08); }
.ho-sym-part--pomp.ho-sym-part--active .ho-sym-part-ring { stroke: #0f766e; fill: rgba(15, 118, 110, 0.08); }
.ho-sym-part--sensor.ho-sym-part--active .ho-sym-part-ring { stroke: #ea580c; fill: rgba(234, 88, 12, 0.08); }
.ho-props__crumb { font-size: 0.78rem; color: var(--calq-muted); margin: 0 0 0.5rem; }
.ho-props__crumb button { background: none; border: none; padding: 0; color: #2563eb; cursor: pointer; font: inherit; }
.ho-props__parts { margin: 0.65rem 0; }
.ho-props__parts-list { list-style: none; margin: 0.35rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.ho-props__part-btn {
  border: 1px solid var(--calq-border);
  background: #f8fafc;
  border-radius: 6px;
  padding: 0.25rem 0.5rem;
  font-size: 0.72rem;
  cursor: pointer;
}
.ho-props__part-btn:hover { border-color: #93c5fd; background: #eff6ff; }
.ho-props__part-btn.is-active { border-color: #7c3aed; background: #f5f3ff; }
.ho-live-calc {
  font-size: 0.72rem;
  font-weight: 600;
  color: #16a34a;
  margin-left: 0.35rem;
}
.ho-live-calc:empty { display: none; }
.ho-legend-aanvoer { color: #dc2626; font-weight: 700; }
.ho-legend-retour { color: #2563eb; font-weight: 700; }
.ho-hint-block { font-size: 0.78rem; color: var(--calq-muted); margin-top: 0.75rem; line-height: 1.5; }
.ho-node__remove {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 20px;
  height: 20px;
  border: none;
  border-radius: 50%;
  background: #fee2e2;
  color: #b91c1c;
  font-size: 0.9rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
}
.ho-node:hover .ho-node__remove { opacity: 1; }
.ho-props, .ho-results { padding: 0; font-size: 0.82rem; }
.ho-props__head { display: flex; gap: 0.5rem; margin-bottom: 0.5rem; }
.ho-props__badge {
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
  height: fit-content;
}
.ho-props__meta { font-size: 0.75rem; color: var(--calq-muted); }
.ho-props__apps { margin: 0 0 0.65rem; color: var(--calq-muted); font-size: 0.75rem; }
.ho-props__fields { display: flex; flex-direction: column; gap: 0.5rem; }
.ho-field { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 0.5rem; align-items: center; }
.ho-field__label { grid-column: 1 / -1; font-size: 0.72rem; font-weight: 600; color: #475569; }
.ho-field__input {
  font: inherit;
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  background: var(--calq-input);
}
.ho-field__unit { font-size: 0.75rem; color: var(--calq-muted); }
.ho-empty { margin: 0; color: var(--calq-muted); text-align: center; padding: 1rem 0; }
.ho-results__section { margin-bottom: 1rem; }
.ho-results__section h3 { margin: 0 0 0.5rem; font-size: 0.82rem; }
.ho-table { font-size: 0.78rem; }
.ho-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.ho-check {
  display: flex;
  gap: 0.5rem;
  padding: 0.45rem 0.5rem;
  border-radius: 6px;
  border: 1px solid var(--calq-border);
  background: #fff;
}
.ho-check--ok { border-left: 3px solid #16a34a; }
.ho-check--warn { border-left: 3px solid #f59e0b; }
.ho-check--error { border-left: 3px solid #dc2626; }
.ho-check__icon { font-weight: 700; width: 1rem; flex-shrink: 0; }
.ho-check__val { display: block; font-size: 0.75rem; color: var(--calq-muted); }
.ho-check__detail { font-size: 0.72rem; color: var(--calq-muted); margin-top: 0.15rem; }
.ho-status--ok .calq-kpi__value { color: #16a34a; }
.ho-status--warn .calq-kpi__value { color: #d97706; }
.ho-status--error .calq-kpi__value { color: #dc2626; }
.ho-voorbeeld-select { min-width: 14rem; font: inherit; padding: 0.35rem 0.5rem; border: 1px solid var(--calq-border); border-radius: 4px; background: var(--calq-input); }
.ho-assistant {
  border-bottom: 1px solid var(--calq-border);
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
  font-size: 0.75rem;
}
.ho-assistant__details { margin: 0; }
.ho-assistant__toggle {
  list-style: none;
  cursor: pointer;
  padding: 0.45rem 0.65rem;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0.15rem 0.35rem;
  align-items: center;
  user-select: none;
}
.ho-assistant__toggle::-webkit-details-marker { display: none; }
.ho-assistant__toggle::marker { content: ''; }
.ho-assistant__toggle-title {
  font-weight: 700;
  font-size: 0.82rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.ho-assistant__chevron {
  grid-row: 1;
  grid-column: 2;
  font-size: 0.65rem;
  color: var(--calq-muted);
  line-height: 1;
}
.ho-assistant__chevron::after { content: '▼'; }
.ho-assistant__details[open] .ho-assistant__chevron::after { content: '▲'; }
.ho-assistant__toggle-meta {
  grid-column: 1 / -1;
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--calq-muted);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ho-assistant__details[open] .ho-assistant__toggle-meta { display: none; }
.ho-assistant__body {
  padding: 0 0.65rem 0.55rem;
  border-top: 1px solid var(--calq-border);
}
.ho-assistant__head { font-weight: 700; font-size: 0.82rem; margin-bottom: 0.25rem; display: flex; align-items: center; gap: 0.35rem; }
.ho-assistant__tag { font-size: 0.65rem; font-weight: 600; color: #fff; background: #0f766e; padding: 0.1rem 0.35rem; border-radius: 3px; }
.ho-assistant__lead { margin: 0.45rem 0; color: var(--calq-muted); line-height: 1.35; }
.ho-assistant__group { border: none; margin: 0 0 0.4rem; padding: 0; }
.ho-assistant__group legend { font-size: 0.7rem; font-weight: 700; color: #475569; margin-bottom: 0.2rem; }
.ho-assist-chip { display: block; margin: 0.12rem 0; cursor: pointer; }
.ho-assist-chip input { margin-right: 0.3rem; }
.ho-assistant__rec { margin: 0.35rem 0 0; padding: 0.35rem 0.45rem; background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 4px; font-size: 0.72rem; }
.ho-assistant__hint { margin: 0.2rem 0 0; font-size: 0.68rem; color: var(--calq-muted); }
.ho-palette__item--suggested { border-color: #86efac; background: #f0fdf4; }
.ho-palette__item--top { box-shadow: inset 0 0 0 2px #16a34a; }
.calq-system-check,
.ho-system-check {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  padding: 0.4rem 0.65rem;
  font-size: 0.75rem;
  border-bottom: 1px solid var(--calq-border);
}
.ho-system-check--idle { background: #f8fafc; color: var(--calq-muted); }
.ho-system-check--ok { background: #f0fdf4; border-left: 3px solid #16a34a; }
.ho-system-check--warn { background: #fffbeb; border-left: 3px solid #f59e0b; }
.ho-system-check--error { background: #fef2f2; border-left: 3px solid #dc2626; }
.ho-system-check__icon { font-weight: 700; width: 1rem; }
.ho-system-check__chips { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.ho-syschip { padding: 0.1rem 0.35rem; border-radius: 3px; font-size: 0.68rem; background: #fff; border: 1px solid var(--calq-border); }
.ho-syschip--warn { border-color: #fcd34d; }
.ho-syschip--error { border-color: #fca5a5; }
.ho-system-check__count { margin-left: auto; color: var(--calq-muted); font-size: 0.68rem; }
.ho-node--check-warn .ho-sym rect:first-child { stroke: #f59e0b; stroke-width: 2.5; }
.ho-node--check-error .ho-sym rect:first-child { stroke: #dc2626; stroke-width: 2.5; }
.ho-node__marker {
  position: absolute;
  top: -10px;
  left: -10px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  z-index: 3;
}
.ho-node__marker--warn { background: #fef3c7; color: #b45309; border: 1px solid #f59e0b; }
.ho-node__marker--error { background: #fee2e2; color: #b91c1c; border: 1px solid #dc2626; }
.ho-node__flow {
  position: absolute;
  top: 28px;
  left: 100%;
  margin-left: 4px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  pointer-events: none;
  z-index: 2;
}
.ho-node__flow span {
  font-size: 0.62rem;
  font-weight: 600;
  color: #1e293b;
  background: rgba(255,255,255,0.92);
  border: 1px solid #e2e8f0;
  border-radius: 3px;
  padding: 0 0.2rem;
  white-space: nowrap;
}
.ho-edge-label {
  font-size: 9px;
  font-weight: 600;
  fill: #334155;
  pointer-events: none;
}
.ho-edge-seq { fill: #fff; stroke: #64748b; stroke-width: 1; }
.ho-edge-seq__txt { font-size: 9px; font-weight: 700; fill: #1e293b; pointer-events: none; }
.ho-props__tak { margin-bottom: 0.65rem; }
.ho-props__tak-row { display: flex; align-items: center; gap: 0.35rem; margin-top: 0.25rem; }
.ho-props__tak-nr { font-weight: 700; font-size: 0.85rem; min-width: 3.5rem; }
.ho-props__tak-btn {
  font: inherit;
  width: 1.6rem;
  height: 1.6rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
}
.ho-props__tak-btn:hover { background: #f1f5f9; }
.ho-props__tak-hint { margin: 0.35rem 0 0; font-size: 0.68rem; color: var(--calq-muted); line-height: 1.35; }
.ho-props__tak-list { margin: 0.25rem 0 0; padding-left: 1.2rem; font-size: 0.75rem; }
.ho-rail { stroke-width: 4; pointer-events: none; }
.ho-rail--aanvoer { stroke: #dc2626; }
.ho-rail--retour { stroke: #2563eb; stroke-width: 3; }
.ho-edge--drop { stroke-width: 2.5; }
.ho-rail-add { cursor: pointer; pointer-events: all; }
.ho-rail-add__btn { fill: #ecfdf5; stroke: #16a34a; stroke-width: 2; }
.ho-rail-add:hover .ho-rail-add__btn { fill: #bbf7d0; stroke: #15803d; }
.ho-rail-add__txt { font-size: 16px; font-weight: 700; fill: #15803d; pointer-events: none; }
.ho-rail-tag { pointer-events: none; }
.ho-rail-tag__bg { fill: rgba(255, 255, 255, 0.94); stroke: #cbd5e1; stroke-width: 0.8; }
.ho-rail-tag--aanvoer .ho-rail-tag__bg { stroke: #fca5a5; }
.ho-rail-tag--retour .ho-rail-tag__bg { stroke: #93c5fd; }
.ho-rail-tag__txt { font-size: 8px; font-weight: 600; fill: #1e293b; font-family: Segoe UI, system-ui, sans-serif; }
.ho-rail-drop { font-size: 7px; font-weight: 600; fill: #475569; pointer-events: none; }
.ho-dl-summary { margin: 0 0 0.5rem; font-size: 0.78rem; color: var(--calq-muted); }
.ho-dl-pct { font-size: 0.68rem; color: #d97706; }
@media (max-width: 1100px) {
  .ho-layout { grid-template-columns: 1fr; }
  .ho-canvas { min-height: 360px; }
}

@media print {
  .vo-workspace .ho-workspace-body,
  .vo-workspace .ho-toolbar,
  .vo-workspace .ho-layout,
  .vo-workspace .ho-dock,
  .vo-workspace .ho-system-check {
    display: none !important;
  }
  .vo-print-report.print-only {
    display: block !important;
    padding: 1rem 1.5rem;
    font-size: 0.85rem;
  }
  .vo-print-header {
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #334155;
  }
  .vo-print-header h2 { margin: 0 0 0.35rem; font-size: 1.2rem; }
  .vo-print-meta { margin: 0; color: #475569; }
  .vo-print-report h3 { margin: 1rem 0 0.35rem; font-size: 1rem; }
  .vo-print-report table { width: 100%; border-collapse: collapse; margin-bottom: 0.75rem; }
  .vo-print-report th, .vo-print-report td {
    border: 1px solid #cbd5e1;
    padding: 0.3rem 0.5rem;
    text-align: left;
  }
}

/* ——— Workspace UI (design system legend, checks, dock) ——— */
.calq-system-check--idle { background: #f8fafc; color: var(--calq-muted); }
.calq-system-check--ok { background: #f0fdf4; border-left: 3px solid #16a34a; }
.calq-system-check--info { background: #eff6ff; border-left: 3px solid #3b82f6; }
.calq-system-check--warn { background: #fffbeb; border-left: 3px solid #f59e0b; }
.calq-system-check--error { background: #fef2f2; border-left: 3px solid #dc2626; }
.calq-system-check__icon { font-weight: 700; width: 1rem; flex-shrink: 0; }
.calq-system-check__body { flex: 1 1 12rem; min-width: 0; }
.calq-system-check__title { display: block; font-size: 0.78rem; }
.calq-system-check__chips { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.2rem; }
.calq-system-check__chip {
  padding: 0.12rem 0.4rem;
  border-radius: 4px;
  font-size: 0.68rem;
  background: #fff;
  border: 1px solid var(--calq-border);
}
.calq-system-check__chip--warn { border-color: #fcd34d; background: #fffbeb; }
.calq-system-check__chip--error { border-color: #fca5a5; background: #fef2f2; }
.calq-system-check__chip--info { border-color: #93c5fd; background: #eff6ff; }
.calq-system-check__list {
  margin: 0.35rem 0 0;
  padding: 0 0 0 1rem;
  font-size: 0.72rem;
  color: var(--calq-muted);
}
.calq-system-check__item--error { color: #b91c1c; }
.calq-system-check__item--warn { color: #b45309; }
.calq-system-check__ref { font-weight: 600; color: #475569; }
.calq-system-check__count { margin-left: auto; color: var(--calq-muted); font-size: 0.68rem; white-space: nowrap; }

.calq-syscheck-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.calq-syscheck-item {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  font-size: 0.78rem;
  line-height: 1.35;
}
.calq-syscheck-item--error { color: #b91c1c; }
.calq-syscheck-item--warn { color: #b45309; }
.calq-syscheck-item--info { color: #1d4ed8; }
.calq-syscheck-item--ok { color: #15803d; }
.calq-syscheck-badge {
  flex-shrink: 0;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.1rem 0.35rem;
  border-radius: 3px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
}
.calq-syscheck-badge--error { border-color: #fca5a5; background: #fef2f2; color: #b91c1c; }
.calq-syscheck-badge--warn { border-color: #fcd34d; background: #fffbeb; color: #b45309; }
.calq-syscheck-badge--info { border-color: #93c5fd; background: #eff6ff; color: #1d4ed8; }
.calq-syscheck-badge--ok { border-color: #86efac; background: #f0fdf4; color: #15803d; }
.calq-syscheck-norm { font-weight: 600; color: #64748b; }

.calq-normbron-chip {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 500;
  color: #475569;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 3px;
  padding: 0.05rem 0.35rem;
  margin-left: 0.25rem;
  vertical-align: middle;
  cursor: help;
  white-space: nowrap;
}
.calq-uitgangspunten {
  margin: 0.75rem 0 0;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fafbfc;
}
.calq-uitgangspunten__summary {
  cursor: pointer;
  padding: 0.45rem 0.6rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #334155;
}
.calq-uitgangspunten__body { padding: 0 0.6rem 0.6rem; }
.calq-uitgangspunten__table { font-size: 0.72rem; width: 100%; }
.calq-vo-afgifte-rendement {
  margin-top: 0.75rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #f8fafc;
  font-size: 0.78rem;
}
.calq-vo-afgifte-rendement .calq-vo-dock__heading { margin: 0 0 0.35rem; font-size: 0.78rem; }

.calq-ws-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.85rem;
  padding: 0.45rem 0.65rem;
  margin-bottom: 0.65rem;
  background: #fff;
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  font-size: 0.72rem;
}
.calq-ws-legend__title {
  font-weight: 700;
  color: var(--calq-green);
  margin-right: 0.25rem;
}
.calq-ws-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--calq-muted);
}
.calq-ws-legend__item::before {
  content: '';
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 3px;
  border: 1px solid var(--calq-border);
}
.calq-ws-legend__item--input::before {
  background: var(--calq-input);
  border-color: var(--calq-input-border);
  box-shadow: inset 2px 0 0 var(--calq-green-light);
}
.calq-ws-legend__item--calc::before { background: var(--calq-calc); }
.calq-ws-legend__item--linked::before {
  background: var(--calq-linked);
  border-color: var(--calq-linked-border);
}
.calq-ws-legend__item--result::before {
  background: var(--calq-result-bg);
  border-color: var(--calq-result-border);
}

/* ——— Fase 0: generic accordion step (alias VO/BK tijdens migratie) ——— */
.calq-accordion {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.calq-step {
  border: 1px solid var(--calq-step-head-border);
  border-radius: var(--calq-radius-sm);
  background: var(--calq-surface);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15, 58, 36, 0.1), 0 1px 2px rgba(15, 58, 36, 0.06);
}
.calq-step__head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.65rem 0.85rem;
  border: 0;
  border-bottom: 1px solid transparent;
  background: var(--calq-step-head-bg);
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: var(--calq-heading);
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.calq-step__head:hover {
  background: var(--calq-step-head-bg-hover);
  border-bottom-color: color-mix(in srgb, var(--calq-step-head-border) 70%, transparent);
}
.calq-step:not(.is-collapsed) .calq-step__head,
.calq-step__head[aria-expanded="true"] {
  background: var(--calq-step-head-bg-open);
  border-bottom-color: var(--calq-step-head-border);
  box-shadow: inset 4px 0 0 var(--calq-step-head-accent);
}
.calq-step--disabled .calq-step__head { cursor: default; opacity: 0.65; box-shadow: none; }
.calq-step--disabled .calq-step__head:hover { background: var(--calq-step-head-bg); }
.calq-step__chevron {
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2.5px solid var(--calq-step-head-accent);
  border-bottom: 2.5px solid var(--calq-step-head-accent);
  transform: rotate(45deg);
  flex-shrink: 0;
  transition: transform 0.15s ease, border-color 0.15s ease;
  opacity: 1;
}
.calq-step:not(.is-collapsed) .calq-step__chevron {
  transform: rotate(-135deg);
  border-color: var(--calq-green-dark);
}
.calq-step__title {
  flex: 1;
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--calq-heading);
  letter-spacing: -0.01em;
}
.calq-step__summary {
  font-size: 0.78rem;
  color: var(--calq-muted);
  font-variant-numeric: tabular-nums;
  max-width: 45%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calq-step__body {
  padding: 0.65rem 0.75rem 0.75rem;
  border-top: 1px solid var(--calq-border-subtle);
}
.calq-step.is-collapsed .calq-step__body { display: none; }
.calq-step__input { margin-bottom: 0.5rem; }
.calq-step__calc {
  background: var(--calq-calc-bg);
  border: 1px solid var(--calq-calc-border);
  border-radius: var(--calq-radius-sm);
  padding: 0.5rem 0.65rem;
}
.calq-step__status {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  flex-shrink: 0;
}
.calq-step__status--ok { background: #22c55e; }
.calq-step__status--warn { background: #f59e0b; }
.calq-step__status--pending { background: #3b82f6; }
.calq-step__status--idle { background: #cbd5e1; }
.calq-calc-step--error {
  border-color: #fecaca;
  background: #fef2f2;
}

.calq-ws-dock {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}
.calq-ws-dock__tabs {
  display: flex;
  border-bottom: 1px solid var(--calq-border);
  background: #f8fafc;
}
.calq-ws-dock__tab {
  flex: 1;
  margin: 0;
  padding: 0.45rem 0.65rem;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--calq-muted);
  cursor: pointer;
}
.calq-ws-dock__tab:hover { background: #f1f5f9; color: var(--calq-text); }
.calq-ws-dock__tab.is-active {
  color: #1e40af;
  border-bottom-color: #3b82f6;
  background: #fff;
}
.calq-ws-dock__panel {
  padding: 0.65rem;
  max-height: min(70vh, 520px);
  overflow-y: auto;
}
.calq-ws-dock__panel .calq-calc-steps { margin: 0; }

.calq-field-tip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  margin-left: 0.25rem;
  padding: 0;
  border: 1px solid var(--calq-border);
  border-radius: 50%;
  background: #fff;
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--calq-muted);
  cursor: help;
  vertical-align: middle;
  position: relative;
}
.calq-field-tip:hover,
.calq-field-tip:focus-visible {
  border-color: var(--calq-green-light);
  color: var(--calq-green);
  outline: none;
}
.calq-field-tip__pop {
  display: none;
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  transform: translateX(-50%);
  z-index: 40;
  width: max-content;
  max-width: 16rem;
  padding: 0.4rem 0.55rem;
  border-radius: 6px;
  background: #1e293b;
  color: #f8fafc;
  font-size: 0.68rem;
  font-weight: 400;
  line-height: 1.35;
  text-align: left;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}
.calq-field-tip:hover .calq-field-tip__pop,
.calq-field-tip:focus-visible .calq-field-tip__pop { display: block; }

.calq-ws-kpi-strip {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 0.65rem;
}
.calq-ws-kpi-strip .calq-kpi { padding: 0.5rem 0.6rem; }
.calq-kpi-strip__title {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--calq-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.calq-kpi-strip__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
}
.calq-ms-row--calc .calq-ms-calc {
  color: var(--calq-muted, #64748b);
  background: #f8fafc;
}

/* ——— Warmtedistributie keten 56 ——— */
.calq-wtd-workspace { display: flex; flex-direction: column; gap: 0.75rem; }
.calq-wtd-preset-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--calq-border, #e2e8f0);
}
.calq-wtd-detail { margin-top: 0; }
.calq-wtd-detail__summary {
  cursor: pointer;
  list-style: none;
}
.calq-wtd-detail__summary::-webkit-details-marker { display: none; }
.calq-kpi--hero .calq-kpi__value {
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--calq-green, #16a34a);
}
.calq-wtd-chain {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.calq-wtd-chain__item {
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: 6px;
  background: #f8fafc;
  display: grid;
  gap: 0.15rem;
}
.calq-wtd-chain__item.is-done { border-left: 3px solid #16a34a; }
.calq-wtd-chain__item.is-active {
  background: #ecfdf5;
  border-color: #86efac;
}
.calq-wtd-chain__label {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--calq-muted);
}
.calq-wtd-chain__value { font-size: 1.05rem; color: #0f172a; }
.calq-wtd-chain__sub { font-size: 0.78rem; color: var(--calq-muted); }
.calq-wtd-chain__hint { margin: 0.65rem 0 0; font-size: 0.75rem; }

/* WTD basis — debiet/diameter visual (layout-uitrol) */
.calq-wtd-visual { padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.calq-wtd-visual__title { margin: 0; font-size: 0.8rem; font-weight: 600; color: var(--calq-text-muted, #64748b); }
.calq-wtd-visual__row { display: grid; grid-template-columns: 5.5rem 1fr auto; gap: 0.4rem; align-items: center; font-size: 0.75rem; }
.calq-wtd-visual__label { color: var(--calq-text-muted, #64748b); }
.calq-wtd-visual__bar { height: 0.55rem; background: var(--calq-calc-bg, #f1f5f9); border-radius: 3px; overflow: hidden; }
.calq-wtd-visual__fill { display: block; height: 100%; border-radius: 3px; min-width: 2px; }
.calq-wtd-visual__fill--debiet { background: #38bdf8; }
.calq-wtd-visual__fill--dmin { background: #94a3b8; }
.calq-wtd-visual__fill--dn { background: #f97316; }
.calq-wtd-visual__val { font-variant-numeric: tabular-nums; font-weight: 500; }
.calq-wtd-visual__chain { margin-top: 0.35rem; }
.calq-wtd-visual__hint { margin: 0.25rem 0 0; font-size: 0.75rem; }

.calq-sheet-calc {
  background: var(--calq-calc) !important;
}
.calq-calc-table input,
.calq-calc-table select {
  background: var(--calq-input) !important;
  border: 1px solid var(--calq-input-border) !important;
}

/* Begrotingstoets */
.bt-workspace { max-width: 1200px; }
.bt-upload-zone { margin: 1rem 0 1.25rem; }
.bt-upload-zone__inner {
  border: 2px dashed #94a3b8;
  border-radius: 12px;
  padding: 2rem 1.5rem;
  text-align: center;
  background: #f8fafc;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.bt-upload-zone__inner--hover,
.bt-upload-zone__inner:hover {
  border-color: #3b82f6;
  background: #eff6ff;
}
.bt-upload-zone__inner strong { display: block; font-size: 1.05rem; margin-bottom: 0.35rem; }
.bt-upload-zone__inner p { margin: 0.35rem 0; color: #64748b; font-size: 0.9rem; }
.bt-upload-zone__hint { font-size: 0.82rem; color: #475569; margin-top: 0.75rem !important; }
.bt-controls {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
  background: #fff;
}
.bt-controls__title { margin: 0 0 0.75rem; font-size: 0.95rem; }
.bt-controls__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.65rem 1rem;
}
.bt-controls__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.85rem;
}
.bt-controls__note { font-size: 0.8rem; color: #64748b; }
.bt-summary {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 0.5rem;
  margin-bottom: 0.85rem;
}
.bt-kpi {
  border-radius: 8px;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
}
.bt-kpi[data-status="ok"] { border-color: #86efac; background: #f0fdf4; }
.bt-kpi[data-status="warn"] { border-color: #fcd34d; background: #fffbeb; }
.bt-kpi[data-status="error"] { border-color: #fca5a5; background: #fef2f2; }
.bt-kpi[data-status="unknown"] { border-color: #cbd5e1; }
.bt-kpi__label { display: block; font-size: 0.72rem; color: #64748b; }
.bt-kpi__value { font-size: 1.25rem; }
.bt-meta { font-size: 0.85rem; color: #475569; margin-bottom: 0.75rem; }
.bt-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 0.5rem;
  align-items: flex-end;
}
.bt-table-toolbar__grow { flex: 1; min-width: 180px; }
.bt-table-scroll { overflow: auto; max-height: min(65vh, 720px); border: 1px solid #e2e8f0; border-radius: 8px; }
.bt-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.bt-table th,
.bt-table td { padding: 0.45rem 0.5rem; border-bottom: 1px solid #f1f5f9; text-align: left; vertical-align: top; }
.bt-table th { position: sticky; top: 0; background: #f8fafc; z-index: 1; font-weight: 600; }
.bt-cell-desc { max-width: 280px; }
.bt-art { font-size: 0.75rem; color: #64748b; }
.bt-ref-bron { font-size: 0.72rem; color: #94a3b8; }
.bt-delta--ok { color: #15803d; }
.bt-delta--warn { color: #b45309; }
.bt-delta--error { color: #b91c1c; font-weight: 600; }
.bt-delta--unknown { color: #94a3b8; }
.bt-badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
}
.bt-badge--ok { background: #dcfce7; color: #166534; }
.bt-badge--warn { background: #fef3c7; color: #92400e; }
.bt-badge--error { background: #fee2e2; color: #991b1b; }
.bt-badge--unknown { background: #f1f5f9; color: #64748b; }
.bt-row--error { background: #fff5f5; }
.bt-row--warn { background: #fffbeb; }
.bt-empty { color: #94a3b8; font-size: 0.9rem; padding: 1.5rem 0; text-align: center; }

/* --- Zijmenu: pin-knop + automatisch inklappen op desktop --- */
.calq-sidebar-brand-row {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--calq-border);
  flex-shrink: 0;
}
.calq-sidebar-brand-row .calq-sidebar-brand { flex: 1; border-bottom: 0; min-width: 0; }
.calq-sidebar-pin {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-right: 0.6rem;
  padding: 0.3rem 0.5rem;
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  background: #fff;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 600;
  cursor: pointer;
  flex-shrink: 0;
}
.calq-sidebar-pin:hover { color: var(--calq-green); border-color: var(--calq-green-light); }
html.calq-nav-pinned .calq-sidebar-pin {
  background: var(--calq-green);
  border-color: var(--calq-green);
  color: #fff;
}
@media (max-width: 1024px) {
  .calq-sidebar-pin { display: none; }
}

@media (min-width: 1025px) {
  html:not(.calq-nav-pinned) .calq-app-main { margin-left: 0; }
  html:not(.calq-nav-pinned) .calq-sidebar {
    transform: translateX(calc(-100% + 10px));
    transition: transform 0.18s ease;
  }
  html:not(.calq-nav-pinned) .calq-sidebar::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 10px;
    background: linear-gradient(to right, rgba(15, 23, 42, 0), rgba(15, 23, 42, 0.10));
  }
  html:not(.calq-nav-pinned) .calq-sidebar:hover,
  html:not(.calq-nav-pinned) .calq-sidebar:focus-within,
  html:not(.calq-nav-pinned) .calq-sidebar.is-open {
    transform: translateX(0);
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.14);
  }
  html:not(.calq-nav-pinned) .calq-sidebar:hover::after,
  html:not(.calq-nav-pinned) .calq-sidebar:focus-within::after,
  html:not(.calq-nav-pinned) .calq-sidebar.is-open::after { display: none; }
  html:not(.calq-nav-pinned) .calq-sidebar-toggle { display: inline-flex; }
}

/* Dashboard: recente projecten */
.calq-dashboard-recent__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 1rem 0 0.5rem;
}
.calq-dashboard-recent__head h2 { margin: 0; font-size: 1rem; }
.calq-dashboard-recent__actions { display: flex; gap: 0.5rem; }

/* ——— 53 Water — φtapwater / boiler ——— */
.calq-pt-phase { display: flex; flex-direction: column; gap: 0.75rem; }
.calq-pt-phase--out { margin-top: 0.25rem; padding-top: 0.75rem; border-top: 2px solid var(--calq-border); }
.calq-pt-phase__lead {
  margin: 0;
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.4;
}
.calq-pt-hint {
  margin: 0.5rem 0 0;
  font-size: 0.72rem;
}
.calq-block--in .calq-block__head {
  background: #e8eef4;
  color: #1e3a5f;
}
.calq-block--out .calq-block__head {
  background: var(--calq-accent-strong);
  color: #123d28;
}
.calq-pt-details {
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius-sm);
  background: var(--calq-surface);
  box-shadow: var(--calq-shadow);
  overflow: hidden;
}
.calq-pt-details__summary,
.calq-pt-details > summary {
  cursor: pointer;
  padding: 0.45rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #1e3a5f;
  background: #f1f5f9;
  list-style: none;
}
.calq-pt-details__summary::-webkit-details-marker,
.calq-pt-details > summary::-webkit-details-marker { display: none; }
.calq-pt-details__summary::before,
.calq-pt-details > summary::before {
  content: "▸ ";
  color: var(--calq-green);
}
.calq-pt-details[open] > .calq-pt-details__summary::before,
.calq-pt-details[open] > summary::before { content: "▾ "; }
.calq-pt-details--nested {
  margin-top: 0.65rem;
  border: 1px dashed #cbd5e1;
  border-radius: 4px;
  box-shadow: none;
}
.calq-pt-details--nested > summary {
  padding: 0.35rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 500;
  background: transparent;
}
.calq-pt-workspace .calq-fields--pt-install {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  padding: 0.75rem 0.85rem 0.5rem;
}
.calq-pt-workspace .calq-fields--pt-params {
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.65rem 0.85rem;
  padding: 0.65rem 0.75rem;
}
.calq-pt-workspace .calq-fields--grid .calq-field--input input,
.calq-pt-workspace .calq-fields--grid .calq-field--input select {
  min-width: 0;
  width: 100%;
  padding: 0.5rem 0.65rem;
  font-size: 0.9375rem;
  font-weight: 500;
  border: 1px solid #94a3b8;
  border-radius: 5px;
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.06);
}
.calq-pt-workspace .calq-fields--grid .calq-field--input input:focus,
.calq-pt-workspace .calq-fields--grid .calq-field--input select:focus {
  outline: none;
  border-color: var(--calq-green);
  box-shadow: 0 0 0 2px rgba(34, 120, 72, 0.18);
}
.calq-pt-workspace .calq-fields--grid .calq-field__label {
  font-size: 0.78rem;
  font-weight: 500;
  color: #475569;
}
.calq-pt-workspace .calq-fields--grid .calq-field__unit {
  font-size: 0.78rem;
  color: #64748b;
  align-self: center;
}
@media (max-width: 720px) {
  .calq-pt-workspace .calq-fields--pt-install {
    grid-template-columns: 1fr;
  }
}
.calq-pt-install-preview {
  padding: 0 0.65rem 0.55rem;
  border-top: 1px solid #e2e8f0;
}
.calq-pt-install-preview .calq-pt-voor-table { margin-top: 0.45rem; }
.calq-pt-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.calq-pt-split__title {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.calq-pt-verdict {
  margin: 0;
  padding: 0.5rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
  border-bottom: 1px solid var(--calq-border);
  background: #f8fafc;
  color: #334155;
}
.calq-pt-verdict[data-ok="1"] {
  background: #f0fdf4;
  color: #166534;
}
.calq-pt-verdict[data-ok="0"] {
  background: #fef2f2;
  color: #991b1b;
}
.calq-pt-aside { gap: 0.5rem; }
.calq-pt-charts--aside {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem;
  padding: 0.35rem 0.45rem 0.25rem;
  border-bottom: 1px solid var(--calq-border);
}
.calq-pt-chart-btn {
  position: relative;
  margin: 0;
  padding: 0.15rem;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.calq-pt-chart-btn:hover,
.calq-pt-chart-btn:focus-visible {
  border-color: var(--calq-green);
  box-shadow: 0 0 0 2px rgba(34, 120, 72, 0.15);
  outline: none;
}
.calq-pt-chart-btn__hint {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.62rem;
  color: #64748b;
  text-align: center;
}
.calq-pt-chart {
  width: 100%;
  height: auto;
  display: block;
  pointer-events: none;
}
.calq-pt-charts--aside .calq-pt-chart--energy { max-height: 108px; }
.calq-pt-charts--aside .calq-pt-chart--temp { max-height: 108px; }
.calq-pt-lightbox {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}
.calq-pt-lightbox[hidden] { display: none; }
.calq-pt-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.82);
}
.calq-pt-lightbox__panel {
  position: relative;
  z-index: 1;
  width: min(96vw, 900px);
  max-height: 92vh;
  padding: 1rem 1.25rem 1.25rem;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
  overflow: auto;
}
.calq-pt-lightbox__title {
  margin: 0 2rem 0.5rem 0;
  font-size: 1rem;
  font-weight: 600;
  color: #0f172a;
}
.calq-pt-lightbox__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 999px;
  background: #f1f5f9;
  color: #0f172a;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}
.calq-pt-lightbox__close:hover { background: #e2e8f0; }
.calq-pt-chart--zoom {
  width: 100%;
  height: auto;
  max-height: calc(92vh - 5rem);
}
.calq-kpi-grid--pt-aside {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  padding: 0.45rem 0.55rem;
}
.calq-kpi-grid--pt-aside .calq-kpi__value { font-size: 1rem; }
.calq-kpi-grid--pt-aside .calq-kpi--highlight { grid-column: 1 / -1; background: #f8fafc; }

@media (max-width: 900px) {
  .calq-pt-split { grid-template-columns: 1fr; }
}
.calq-pt-voor-table { margin-top: 0.6rem; max-width: 38rem; }
.calq-pt-voor-table td { font-size: 0.78rem; }
.calq-pt-voor-table td:nth-child(2) { font-style: italic; color: #64748b; white-space: nowrap; }
.calq-pt-voor-table td:nth-child(4) { color: #64748b; white-space: nowrap; }
.calq-pt-voor-table .pt-row-strong td { font-weight: 600; background: #f0fdf4; }
.calq-pt-profile-table th,
.calq-pt-profile-table td,
.calq-pt-sim-table th,
.calq-pt-sim-table td { font-size: 0.72rem; padding: 0.15rem 0.35rem; }
.calq-pt-profile-table input { padding: 0.15rem 0.2rem; }
.calq-pt-out-table tfoot th { background: #f1f5f9; }

@media print {
  .calq-pt-workspace > h1,
  .calq-pt-workspace > .calq-lead { display: none; }
  .calq-pt-workspace .calq-block { page-break-inside: avoid; }
  .calq-pt-charts--aside { page-break-inside: avoid; border-bottom-color: #ccc; grid-template-columns: 1fr 1fr; }
  .calq-pt-chart-btn { border-color: #ccc; }
  .calq-pt-chart-btn__hint { display: none; }
  .calq-pt-charts--aside .calq-pt-chart--energy,
  .calq-pt-charts--aside .calq-pt-chart--temp { max-height: 160px; }
  .calq-pt-profile-table th,
  .calq-pt-profile-table td,
  .calq-pt-sim-table th,
  .calq-pt-sim-table td { font-size: 0.58rem; padding: 0.08rem 0.2rem; }
  .calq-pt-profile-table input {
    padding: 0;
    font-size: 0.58rem;
    width: 2.5rem !important;
  }
  .calq-pt-workspace .calq-calc-table input {
    border: 0 !important;
    background: transparent !important;
  }
  .calq-pt-workspace .calq-module-layout {
    display: block;
  }
  .calq-pt-workspace .calq-module-aside { margin-top: 0.75rem; }
  .calq-pt-phase--out { border-top-color: #ccc; padding-top: 0.5rem; }
  .calq-pt-phase__lead { display: none; }
  .calq-pt-split { grid-template-columns: 1fr 1fr; gap: 0.5rem; }
  .calq-pt-verdict { border-bottom-color: #ccc; }
}

/* ——— Installatieschema ——— */
.is-workspace .is-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin: 0.75rem 0 1rem;
}
.is-kpis {
  margin-bottom: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
}
.is-workspace-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  container-type: inline-size;
  container-name: is-body;
  position: relative;
  overflow-x: clip;
  min-width: 0;
}
.is-layout {
  display: grid;
  grid-template-columns: minmax(240px, 280px) minmax(0, 1fr) minmax(220px, 260px);
  gap: 0.75rem;
  min-height: 520px;
}
.is-panel {
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  background: #fff;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.is-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  border-bottom: 1px solid var(--calq-border);
  background: #f8fafc;
}
.is-panel__head--zones { margin-top: 0.5rem; }
.is-panel--pand,
.is-panel--props {
  overflow: auto;
}
.is-pand-types {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  padding: 0.6rem;
}
.is-pand-type {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.45rem 0.35rem;
  border: 2px solid var(--calq-border);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 0.68rem;
  line-height: 1.2;
  color: var(--calq-text);
  transition: border-color 0.15s, background 0.15s;
}
.is-pand-type:hover { border-color: #94a3b8; background: #f8fafc; }
.is-pand-type.is-active {
  border-color: var(--calq-accent, #0ea5e9);
  background: #f0f9ff;
}
.is-pand-type__icon { color: #334155; }
.is-pand-meta { padding: 0 0.6rem 0.6rem; }
.is-zones {
  padding: 0.4rem 0.6rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.is-zones-empty { font-size: 0.8125rem; padding: 0.25rem 0; }
.is-zone-card {
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  padding: 0.45rem 0.55rem;
  background: #fff;
}
.is-zone-card.is-selected {
  border-color: var(--calq-accent, #0ea5e9);
  box-shadow: 0 0 0 1px var(--calq-accent, #0ea5e9);
}
.is-zone-card__head {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.is-zone-card__select {
  flex: 1;
  text-align: left;
  border: 0;
  background: transparent;
  font: inherit;
  font-weight: 600;
  font-size: 0.8125rem;
  cursor: pointer;
  padding: 0;
  color: inherit;
}
.is-zone-card__kw {
  font-size: 0.72rem;
  color: var(--calq-muted);
  white-space: nowrap;
}
.is-zone-card__remove {
  border: 0;
  background: transparent;
  color: #94a3b8;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 0.15rem;
}
.is-zone-card__remove:hover { color: #dc2626; }
.is-zone-card__meta { font-size: 0.7rem; margin-top: 0.2rem; }
.is-canvas-tools {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.is-canvas-tools select {
  font: inherit;
  font-size: 0.78rem;
  padding: 0.25rem 0.4rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
}
.is-canvas-wrap {
  position: relative;
  flex: 1;
  min-height: 420px;
  overflow: hidden;
  cursor: grab;
  background:
    linear-gradient(#e2e8f0 1px, transparent 1px) 0 0 / 20px 20px,
    linear-gradient(90deg, #e2e8f0 1px, transparent 1px) 0 0 / 20px 20px,
    #fafbfc;
}
.is-canvas-wrap.is-panning { cursor: grabbing; }
.is-canvas-viewport {
  position: relative;
  min-width: 900px;
  min-height: 480px;
  transform-origin: 0 0;
  will-change: transform;
}
.is-canvas-edges {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.is-edge {
  fill: none;
  stroke-width: 2;
  opacity: 0.85;
}
.is-edge-label {
  font-size: 10px;
  text-anchor: middle;
}
.is-canvas-nodes {
  position: absolute;
  inset: 0;
  min-width: 900px;
  min-height: 420px;
}
.is-block__type {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 600;
  color: #fff;
  padding: 0.1rem 0.35rem;
  border-radius: 3px;
  margin-bottom: 0.25rem;
}
.is-block__label {
  display: block;
  font-size: 0.8125rem;
  line-height: 1.2;
}
.is-block__kw {
  display: block;
  font-size: 0.78rem;
  color: var(--calq-muted);
  margin-top: 0.15rem;
}
.is-block__modes {
  display: block;
  font-size: 0.65rem;
  color: #94a3b8;
  margin-top: 0.1rem;
}
.is-block__remove {
  position: absolute;
  top: 2px;
  right: 4px;
  border: 0;
  background: transparent;
  color: #94a3b8;
  font-size: 1rem;
  cursor: pointer;
  z-index: 2;
}
.is-block__remove:hover { color: #dc2626; }
.is-canvas-hint {
  font-size: 0.75rem;
  color: var(--calq-muted);
  padding: 0.35rem 0.75rem 0.6rem;
  margin: 0;
}
.is-props {
  padding: 0.65rem 0.75rem;
  overflow: auto;
  flex: 1;
}
.is-props-form .calq-field { margin-bottom: 0.45rem; }
.is-props-sub {
  margin: 0.65rem 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #475569;
  border-top: 1px solid #e2e8f0;
  padding-top: 0.5rem;
}
.is-props-sub:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
.is-props-type { font-weight: 600; margin: 0 0 0.5rem; font-size: 0.875rem; }
.is-inline-pair { display: flex; align-items: center; gap: 0.25rem; }
.is-inline-pair input { width: 3.5rem; }
.is-props-modes { display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem; margin: 0.35rem 0; }
#is-connect-mode.is-active {
  background: var(--calq-accent, #0ea5e9);
  color: #fff;
  border-color: var(--calq-accent, #0ea5e9);
}
.is-check-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 0.65rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.8125rem;
}
.is-check-row .calq-muted { grid-column: 2; font-size: 0.75rem; }
.is-check-icon {
  grid-row: span 2;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 700;
}
.is-check-row--ok .is-check-icon { background: #dcfce7; color: #166534; }
.is-check-row--warn .is-check-icon { background: #fef9c3; color: #854d0e; }
.is-check-row--error .is-check-icon { background: #fee2e2; color: #991b1b; }
.print-only-block { display: none; }

@media (max-width: 1100px) {
  .is-layout:not(.is-layout-v2):not(.is-layout-v3) {
    grid-template-columns: 1fr;
  }
  .is-panel--canvas { min-height: 400px; }
}

@media print {
  .is-workspace > h1,
  .is-workspace > .calq-lead,
  .is-workspace > .calq-notice { display: none; }
  .is-toolbar,
  .is-panel-nav,
  .is-panel--input,
  .is-panel--results,
  .is-canvas-hint,
  .is-canvas-tools { display: none !important; }
  .is-layout,
  .is-layout-v2,
  .is-layout-v3 {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .is-panel--canvas {
    border: 0;
    page-break-inside: avoid;
  }
  .is-canvas-wrap {
    min-height: 280px;
    background: #fff;
  }
  .print-only-block { display: block !important; page-break-inside: avoid; }
  .is-kpis { page-break-inside: avoid; }
  .is-print-table { font-size: 0.72rem; }
}

.calq-is-handoff-banner {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  background: #ecfdf5;
  border: 1px solid #86efac;
  font-size: 0.8125rem;
  color: #166534;
}
.is-doorrekenen-menu {
  position: relative;
  z-index: 30;
  margin: -0.5rem 0 0.75rem;
}
.is-doorrekenen-menu__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.5rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
}
.is-doorrekenen-menu__inner strong {
  flex: 1 1 100%;
  font-size: 0.8125rem;
  margin-bottom: 0.15rem;
}
.is-doorrekenen-zone { margin-top: 0.5rem; }
.is-doorrekenen-hint { font-size: 0.72rem; margin: 0 0 0.35rem; }
.is-doorrekenen-links {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.is-doorrekenen-links .calq-btn-sm {
  justify-content: flex-start;
  text-align: left;
}

.is-toolbar__scenario {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8125rem;
}
.is-toolbar__scenario select {
  font: inherit;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--calq-border);
  border-radius: 4px;
}
.is-buiten-fields,
.is-elek-fields {
  padding: 0 0.6rem 0.65rem;
}
.is-buiten-fields .calq-field,
.is-elek-fields .calq-field {
  margin-bottom: 0.35rem;
}
.is-block--inactive {
  opacity: 0.45;
}
.is-block__flow {
  display: block;
  font-size: 0.68rem;
  color: #0284c7;
  margin-top: 0.1rem;
}
.is-block-flow-info {
  font-size: 0.75rem;
  color: #0369a1;
  margin: 0 0 0.5rem;
  padding: 0.35rem 0.5rem;
  background: #f0f9ff;
  border-radius: 4px;
}
.is-flow-table,
.is-elek-table {
  font-size: 0.8125rem;
}
.is-elek-total th,
.is-elek-total td {
  background: #f0fdf4;
}
.is-flow-block,
.is-elek-block,
.is-check {
  margin-top: 0.5rem;
}
.is-flow-block .calq-block__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.is-flow-actions {
  display: flex;
  gap: 0.35rem;
}
.is-flow-row-actions {
  white-space: nowrap;
}
.is-flow-row-actions .calq-btn-sm {
  font-size: 0.72rem;
  padding: 0.2rem 0.45rem;
}
.is-edge-label {
  font-size: 9px;
  font-weight: 600;
}

/* Snelle opzet + responsive layout v2 */
.is-input-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: auto;
  flex: 1;
  min-height: 0;
}
.is-input-section {
  border-bottom: 1px solid var(--calq-border);
}
.is-input-section:last-child { border-bottom: 0; }
.is-input-section > summary {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  background: #f8fafc;
  user-select: none;
}
.is-input-section > summary::-webkit-details-marker { display: none; }
.is-input-section > summary::before {
  content: '▸';
  font-size: 0.7rem;
  color: #64748b;
  transition: transform 0.15s ease;
}
.is-input-section[open] > summary::before { transform: rotate(90deg); }
.is-input-section__body {
  padding: 0.45rem 0.65rem 0.65rem;
}
.is-input-section__body .calq-field { margin-bottom: 0.45rem; }
.is-input-section__body .calq-field select,
.is-input-section__body .calq-field input[type="number"],
.is-input-section__body .calq-field input[type="text"] {
  width: 100%;
}
.is-input-section__action {
  width: 100%;
  margin-top: 0.25rem;
}
.is-layout-v2,
.is-layout-v3 {
  grid-template-columns: 1fr;
  position: relative;
  min-height: 520px;
  min-width: 0;
}
.is-layout-v3 {
  --is-col-input: 0fr;
  --is-col-results: 0fr;
}
.is-side-panel {
  min-height: 0;
}
.is-side-panel__inner {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.is-side-panel__actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: auto;
}
.is-side-tab {
  display: none;
}
.is-side-pin[aria-pressed="true"] {
  background: #dbeafe;
  border-color: #93c5fd;
  color: #1d4ed8;
}
.is-center-col {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-height: 0;
  min-width: 0;
}
.is-below-canvas {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.is-props-bar {
  border: 1px solid #7dd3fc;
  border-radius: 8px;
  background: #f0f9ff;
  overflow: hidden;
}
.is-props-bar[hidden] { display: none !important; }
.is-props-bar__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.4rem 0.65rem;
  font-size: 0.8125rem;
  border-bottom: 1px solid #bae6fd;
  background: #e0f2fe;
}
.is-props-bar .is-props {
  padding: 0.55rem 0.65rem;
  max-height: min(42vh, 360px);
  overflow: auto;
}
.is-results-body > .is-props-bar {
  flex-shrink: 0;
}
.is-results-body > .is-props-bar:not([hidden]) + .is-kpis--panel {
  margin-top: 0.15rem;
}
.is-elek-summary--below {
  font-size: 0.8125rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--calq-border);
  border-radius: 8px;
  background: #fff;
}
.is-pi-lanes {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.is-pi-lane {
  position: absolute;
  left: 12px;
  right: 12px;
  height: 108px;
  border: 1px dashed rgba(100, 116, 139, 0.35);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.35);
}
.is-pi-lane span {
  position: absolute;
  top: 4px;
  left: 8px;
  font-size: 0.65rem;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.is-pi-lane--verw { top: 28px; border-color: rgba(239, 68, 68, 0.35); background: rgba(254, 242, 242, 0.45); }
.is-pi-lane--koel { top: 218px; border-color: rgba(14, 165, 233, 0.35); background: rgba(240, 249, 255, 0.5); }
.is-canvas-nodes,
.is-canvas-edges { z-index: 1; }
.is-block {
  position: absolute;
  padding: 0.35rem 0.4rem 0.45rem;
  border: 2px solid #64748b;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  cursor: grab;
  user-select: none;
  touch-action: none;
  box-sizing: border-box;
}
.is-block:active { cursor: grabbing; }
.is-block.is-selected {
  box-shadow: 0 0 0 2px var(--calq-accent, #0ea5e9), 0 4px 12px rgba(14, 165, 233, 0.2);
}
.is-block--buffer {
  border-radius: 50% / 42%;
  padding-top: 0.65rem;
  text-align: center;
}
.is-block--pomp {
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  min-height: 42px !important;
}
.is-block__pomp-icon {
  font-size: 0.85rem;
  color: #dc2626;
  transform: rotate(90deg);
}
.is-block--header {
  border-radius: 4px;
  text-align: center;
  padding: 0.2rem 0.35rem;
  min-height: 28px !important;
}
.is-block--header .is-block__type {
  display: none;
}
.is-block--header .is-block__label {
  font-size: 0.72rem;
  font-weight: 700;
}
.is-header-segments {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.8125rem;
}
.is-flow-segment td:first-child { font-style: italic; }
.is-afn-status { margin: 0.35rem 0; }
.is-afn-status__row { margin: 0.2rem 0; font-size: 0.8125rem; }
.is-afn-status--error { color: #991b1b; }
.is-afn-status--warn { color: #854d0e; }
.is-afn-status--ok { color: #166534; }
.is-afn-status--info { color: #0369a1; }
.is-props-hint { font-size: 0.8125rem; margin: 0.25rem 0; }
.is-block--afnemer,
.is-block--opwek {
  text-align: center;
}
.is-block--afnemer .is-block__label,
.is-block--opwek .is-block__label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
}
.is-block--pomp .is-block__type,
.is-block--buffer .is-block__type {
  position: absolute;
  top: -0.55rem;
  left: 50%;
  transform: translateX(-50%);
}
.is-canvas-viewport {
  min-width: 680px;
  min-height: 400px;
}
.is-panel--input,
.is-panel--results {
  overflow: hidden;
  min-height: 0;
}
.is-panel--input {
  display: flex;
  flex-direction: column;
}
.is-panel--results {
  overflow: auto;
  display: flex;
  flex-direction: column;
}
.is-results-body {
  padding: 0.5rem 0.65rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.is-kpis--panel {
  margin: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}
.is-kpis--panel .calq-kpi {
  padding: 0.4rem 0.45rem;
}
.is-missing-block {
  border: 1px solid #fde68a;
  border-radius: 6px;
  background: #fffbeb;
  overflow: hidden;
}
.is-missing-block__head {
  padding: 0.4rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 600;
  background: #fef3c7;
  border-bottom: 1px solid #fde68a;
}
.is-missing-list { padding: 0.35rem 0.5rem; }
.is-missing-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.35rem 0.5rem;
  padding: 0.35rem 0;
  font-size: 0.78rem;
  border-bottom: 1px solid #fef9c3;
}
.is-missing-row:last-child { border-bottom: 0; }
.is-missing-row div { display: flex; flex-direction: column; gap: 0.1rem; }
.is-missing-row .calq-muted { font-size: 0.68rem; }
.is-missing-icon {
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 700;
}
.is-missing-row--ok .is-missing-icon { background: #dcfce7; color: #166534; }
.is-missing-row--warn .is-missing-icon { background: #fef9c3; color: #854d0e; }
.is-missing-row--error .is-missing-icon { background: #fee2e2; color: #991b1b; }
.is-missing-row--info .is-missing-icon { background: #e0f2fe; color: #0369a1; }
.is-check--panel {
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  overflow: hidden;
}
.is-check__head {
  padding: 0.4rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 600;
  background: #f8fafc;
  border-bottom: 1px solid var(--calq-border);
}
.is-check--panel #is-check { padding: 0 0.55rem; }
.is-panel--props-inline {
  border: 1px solid var(--calq-border);
  border-radius: 6px;
  min-height: 120px;
}
.is-panel--props-inline .is-props { max-height: 280px; }
.is-elek-summary--panel { font-size: 0.78rem; }
.is-zones-toolbar {
  padding: 0 0.6rem 0.35rem;
}
.is-details-block > summary {
  cursor: pointer;
  list-style: none;
}
.is-details-block > summary::-webkit-details-marker { display: none; }

/* Zijpanelen: 3-koloms zolang er ruimte is in de workspace (niet viewport — sidebar telt mee) */
.is-panel-nav {
  display: none;
}
.is-drawer-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 90;
  background: rgba(15, 23, 42, 0.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.is-drawer-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.is-drawer-close {
  margin-left: auto;
}
.is-panel--input .is-drawer-close,
.is-panel--results .is-drawer-close {
  display: none;
}

@container is-body (min-width: 880px) {
  .is-drawer-backdrop { display: none !important; }
  .is-panel-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.15rem;
  }
  .is-panel-nav .calq-btn.is-nav-active {
    background: #e0f2fe;
    border-color: #7dd3fc;
    color: #0369a1;
  }
  .is-layout-v3 {
    display: grid;
    grid-template-columns: var(--is-col-input) minmax(0, 1fr) var(--is-col-results);
    gap: 0.75rem;
    align-items: start;
    overflow: visible;
    transition: grid-template-columns 0.22s ease;
  }
  .is-workspace-body.is-open-left .is-layout-v3,
  .is-workspace-body.is-pinned-left .is-layout-v3 {
    --is-col-input: minmax(240px, 280px);
  }
  .is-workspace-body.is-open-right .is-layout-v3,
  .is-workspace-body.is-pinned-right .is-layout-v3 {
    --is-col-results: minmax(220px, 260px);
  }
  .is-side-tab { display: none !important; }
  .is-side-panel {
    position: static;
    transform: none !important;
    width: auto;
    max-width: none;
    max-height: calc(100vh - 11rem);
    height: auto;
    z-index: auto;
    box-shadow: none;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    min-height: 0;
  }
  .is-panel--input.is-side-panel,
  .is-panel--results.is-side-panel {
    display: flex;
  }
  .is-workspace-body:not(.is-open-left):not(.is-pinned-left) .is-panel--input.is-side-panel,
  .is-workspace-body:not(.is-open-right):not(.is-pinned-right) .is-panel--results.is-side-panel {
    display: none;
  }
  .is-side-panel__inner {
    flex: 1;
    min-width: 0;
    max-height: calc(100vh - 11rem);
    overflow-y: auto;
    overflow-x: hidden;
    opacity: 1;
    pointer-events: auto;
  }
  .is-panel--input .is-drawer-close,
  .is-panel--results .is-drawer-close {
    display: inline-flex !important;
  }
  .is-panel--input:not(.is-side-open):not(.is-side-pinned) .is-drawer-close,
  .is-panel--results:not(.is-side-open):not(.is-side-pinned) .is-drawer-close {
    display: none !important;
  }
}

@container is-body (max-width: 879px) {
  .is-layout-v2,
  .is-layout-v3 {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .is-panel-nav {
    display: flex;
    position: sticky;
    top: 0;
    z-index: 60;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    padding: 0.35rem 0;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid var(--calq-border);
    backdrop-filter: blur(6px);
  }
  .is-panel-nav .calq-btn { flex: 1; justify-content: center; }
  .is-drawer-backdrop { display: block; }
  .is-side-tab { display: none !important; }
  .is-side-panel {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 100;
    width: min(360px, 92vw);
    max-width: 400px;
    box-shadow: 0 0 28px rgba(15, 23, 42, 0.18);
    pointer-events: none;
    visibility: hidden;
    flex-direction: column;
  }
  .is-panel--input.is-side-panel {
    left: 0;
    right: auto;
    transform: translateX(-105%);
    transition: transform 0.22s ease;
  }
  .is-panel--results.is-side-panel {
    right: 0;
    left: auto;
    transform: translateX(105%);
    transition: transform 0.22s ease;
  }
  .is-panel--input.is-drawer-open,
  .is-panel--results.is-drawer-open {
    transform: translateX(0);
    pointer-events: auto;
    visibility: visible;
  }
  .is-panel--input .is-drawer-close,
  .is-panel--results .is-drawer-close {
    display: inline-flex;
  }
  .is-panel--canvas { min-height: 360px; }
  body.is-drawer-open { overflow: hidden; }
  .is-workspace-body { padding-bottom: 0.5rem; }
}

/* Fallback zonder container queries */
@supports not (container-type: inline-size) {
  @media (min-width: 960px) {
    .is-panel-nav,
    .is-drawer-backdrop { display: none !important; }
    .is-panel--input,
    .is-panel--results {
      position: static !important;
      transform: none !important;
      pointer-events: auto !important;
      visibility: visible !important;
    }
  }
  @media (max-width: 959px) {
    .is-layout-v2,
    .is-layout-v3 { grid-template-columns: 1fr; }
    .is-panel-nav { display: flex; gap: 0.5rem; margin-bottom: 0.5rem; }
    .is-panel-nav .calq-btn { flex: 1; }
    .is-drawer-backdrop { display: block; }
    .is-side-tab { display: none !important; }
    .is-side-panel {
      position: fixed;
      top: 0;
      bottom: 0;
      z-index: 100;
      width: min(360px, 92vw);
      pointer-events: none;
      visibility: hidden;
    }
    .is-panel--input.is-side-panel { left: 0; transform: translateX(-105%); }
    .is-panel--results.is-side-panel { right: 0; left: auto; transform: translateX(105%); }
    .is-panel--input.is-drawer-open,
    .is-panel--results.is-drawer-open {
      transform: translateX(0);
      pointer-events: auto;
      visibility: visible;
    }
    .is-panel--input .is-drawer-close,
    .is-panel--results .is-drawer-close { display: inline-flex; }
  }
}

@media (max-width: 640px) {
  .is-kpis--panel { grid-template-columns: 1fr; }
}

/* Verwarmingsontwerp — hoofdstuk 56 */
.calq-vo-workspace { display: flex; flex-direction: column; gap: 0.75rem; }
.calq-block__head--row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.calq-vo-table-wrap { overflow-x: auto; margin-top: 0.5rem; }
.calq-vo-table { margin-top: 0; font-size: 0.8125rem; }
.calq-vo-table__input {
  width: 100%;
  min-width: 4rem;
  border: 1px solid transparent;
  background: transparent;
  padding: 0.2rem 0.35rem;
  border-radius: var(--calq-radius-sm, 4px);
  font: inherit;
}
.calq-vo-table__input:focus {
  border-color: var(--calq-accent);
  background: var(--calq-surface);
  outline: none;
}
.calq-vo-table__row { cursor: pointer; }
.calq-vo-table__row--selected td { background: var(--calq-accent-soft); }
.calq-vo-table__calc { white-space: nowrap; }
.calq-vo-table--afgifte th:nth-child(4),
.calq-vo-table--afgifte td:nth-child(4) { min-width: 6.5rem; }
.calq-vo-table__size { display: flex; align-items: center; gap: 0.25rem; white-space: nowrap; }
.calq-vo-table__input--size { width: 4.5rem; min-width: 4rem; }
.calq-vo-table__unit { font-size: 0.75rem; color: var(--calq-muted, #64748b); }
.calq-vo-afgifte-mode {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-bottom: 0.65rem;
  padding: 0.5rem 0.65rem;
  background: var(--calq-surface-alt, #f8fafc);
  border-radius: var(--calq-radius-md, 8px);
}
.calq-vo-mode-opt { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.8125rem; cursor: pointer; }
.calq-vo-gebouw-hint { margin: 0 0 0.5rem; font-size: 0.8125rem; }
.calq-vo-snapshot-note { margin: 0.5rem 0 0; font-size: 0.75rem; }
.calq-vo-table--sources { margin-bottom: 0.75rem; }
.calq-vo-wv-handmatig { margin-top: 0.5rem; }
.calq-field--active { outline: 2px solid var(--calq-accent, #2563eb); outline-offset: 2px; border-radius: var(--calq-radius-md, 8px); }
.calq-vo-wm2--high { color: #b45309; font-weight: 600; }
.calq-vo-afgifte-issues {
  margin-top: 0.75rem;
  padding: 0.65rem 0.75rem;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: var(--calq-radius-md, 8px);
  font-size: 0.8125rem;
}
.calq-vo-afgifte-issues__title { margin: 0 0 0.35rem; font-weight: 600; }
.calq-vo-afgifte-issues__list { margin: 0; padding-left: 1.1rem; }
.calq-vo-stook-summary { margin: 0.75rem 0; }
.calq-vo-opwekking-result { margin-top: 0.75rem; }
.calq-vo-buffer-note { margin: 0.5rem 0 0; font-size: 0.75rem; }
.calq-buf-workspace { display: flex; flex-direction: column; gap: 0.75rem; }
.calq-module-layout--single .calq-module-main { max-width: 52rem; }
.calq-vo-buffer-mode { margin-top: 0.5rem; }
.calq-vo-wp-check { margin: 0.5rem 0; padding: 0.5rem 0.65rem; border-radius: var(--calq-radius-md, 8px); font-size: 0.8125rem; }
.calq-vo-wp-check--ok { background: #dcfce7; color: #166534; }
.calq-vo-wp-check--warn { background: #fffbeb; color: #92400e; border: 1px solid #fcd34d; }
.calq-vo-bivalentie {
  margin: 0.75rem 0;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: var(--calq-radius-md, 8px);
  background: var(--calq-surface-muted, #f8fafc);
  font-size: 0.8125rem;
}
.calq-vo-bivalentie__summary { cursor: pointer; font-weight: 600; color: var(--calq-heading, #0f172a); }
.calq-vo-bivalentie__intro { margin: 0.5rem 0 0.65rem; font-size: 0.75rem; }
.calq-vo-bivalentie__modus { margin: 0.5rem 0; }
.calq-vo-bivalentie__fields { margin-top: 0.5rem; }
.calq-vo-bivalentie__hint { margin: 0.5rem 0 0; font-size: 0.75rem; }
.calq-vo-bivalentie__hint--warn { color: #92400e; }
.calq-vo-bivalentie-result {
  margin: 0.75rem 0;
  padding: 0.55rem 0.65rem;
  border-radius: var(--calq-radius-md, 8px);
  background: var(--calq-accent-soft, #eff6ff);
  font-size: 0.8125rem;
}
.calq-vo-bivalentie-result--compact { margin-top: 0.35rem; padding: 0.4rem 0.55rem; }
.calq-vo-bivalentie__backup--hoog { color: #b45309; font-weight: 600; }
.calq-vo-sizing {
  margin: 0.75rem 0;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: var(--calq-radius-md, 8px);
  background: var(--calq-surface-muted, #f8fafc);
}
.calq-vo-sizing--maatgevend { border-color: #93c5fd; background: #eff6ff; }
.calq-vo-sizing__headline { margin: 0 0 0.5rem; font-size: 0.875rem; }
.calq-vo-sizing__posten { margin: 0; }
.calq-vo-sizing__maatgevend { color: #1d4ed8; font-weight: 600; }
.calq-vo-sizing__manual { margin-top: 0.65rem; }
.calq-vo-sizing__hint { margin: 0; font-size: 0.75rem; }
.calq-vo-naverw {
  margin-top: 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: var(--calq-radius-md, 8px);
  background: #f8fafc;
}
.calq-vo-naverw__toggle { display: block; margin: 0 0 0.35rem; }
.calq-vo-naverw__phi { margin: 0 0 0.35rem; font-size: 0.8125rem; }
.calq-vo-naverw__waarschuwing {
  margin: 0;
  font-size: 0.75rem;
  color: #92400e;
  background: #fffbeb;
  border-left: 3px solid #f59e0b;
  padding: 0.35rem 0.5rem;
}
.calq-vo-hint { margin: 0.5rem 0 0; font-size: 0.75rem; }
.calq-vo-result-card {
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius-md, 8px);
  padding: 0.65rem 0.75rem;
  margin-bottom: 0.5rem;
}
.calq-vo-result-card--warn { border-color: #fcd34d; background: #fffbeb; }
.calq-vo-result-card__title { margin: 0 0 0.35rem; font-size: 0.875rem; }
.calq-badge--ok { background: #dcfce7; color: #166534; }
.calq-badge--warn { background: #fef3c7; color: #92400e; }
[data-calq-module="verwarmings_ontwerp"] .calq-vo-fields {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 0.65rem 1rem;
}
[data-calq-module="verwarmings_ontwerp"] .calq-vo-fields .calq-field--wide { grid-column: 1 / -1; }
.calq-vo-import-row { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 0.25rem; }
.calq-vo-niveau-bar { margin-bottom: 0.5rem; }
.calq-vo-niveau-desc { margin: 0.35rem 0 0; font-size: 0.8125rem; }
.calq-vo-panel-intro { margin: 0 0 0.75rem; font-size: 0.8125rem; }
.calq-vo-schil-result { margin-top: 0.75rem; padding: 0.65rem 0.75rem; background: var(--calq-accent-soft); border-radius: var(--calq-radius-md, 8px); }
.calq-vo-chain { margin: 0.25rem 0 0; padding-left: 1.1rem; font-size: 0.8125rem; }
.calq-vo-gepland { opacity: 0.85; }

.calq-vo-steps { display: flex; flex-direction: column; gap: 0.5rem; }
.calq-vo-step {
  border: 1px solid var(--calq-step-head-border);
  border-radius: var(--calq-radius-md, 8px);
  background: var(--calq-surface, #fff);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15, 58, 36, 0.1), 0 1px 2px rgba(15, 58, 36, 0.06);
}
.calq-vo-step__head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.65rem 0.85rem;
  border: none;
  border-bottom: 1px solid transparent;
  background: var(--calq-step-head-bg);
  font: inherit;
  text-align: left;
  cursor: pointer;
  color: var(--calq-heading);
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.calq-vo-step__head:hover {
  background: var(--calq-step-head-bg-hover);
  border-bottom-color: color-mix(in srgb, var(--calq-step-head-border) 70%, transparent);
}
.calq-vo-step:not(.is-collapsed) .calq-vo-step__head,
.calq-vo-step__head[aria-expanded="true"] {
  background: var(--calq-step-head-bg-open);
  border-bottom-color: var(--calq-step-head-border);
  box-shadow: inset 4px 0 0 var(--calq-step-head-accent);
}
.calq-vo-step--disabled .calq-vo-step__head { cursor: default; opacity: 0.65; box-shadow: none; }
.calq-vo-step--disabled .calq-vo-step__head:hover { background: var(--calq-step-head-bg); }
.calq-vo-step__chevron {
  flex-shrink: 0;
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2.5px solid var(--calq-step-head-accent);
  border-bottom: 2.5px solid var(--calq-step-head-accent);
  transform: rotate(45deg);
  transition: transform 0.15s ease, border-color 0.15s ease;
  margin-right: 0.15rem;
  opacity: 1;
}
.calq-vo-step:not(.is-collapsed) .calq-vo-step__chevron {
  transform: rotate(-135deg);
  border-color: var(--calq-green-dark);
}
.calq-vo-step__title {
  flex: 1;
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--calq-heading);
  letter-spacing: -0.01em;
}
.calq-vo-step__summary {
  font-size: 0.8125rem;
  color: var(--calq-muted, #64748b);
  font-weight: 400;
}
.calq-vo-step__body {
  padding: 0.75rem;
  border-top: 1px solid var(--calq-border, #e2e8f0);
}
.calq-vo-step.is-collapsed .calq-vo-step__body { display: none; }
.calq-vo-step-desc { margin: 0 0 0.75rem; font-size: 0.8125rem; }
.calq-vo-step-toolbar { display: flex; justify-content: flex-end; margin-bottom: 0.5rem; }
.calq-vo-gepland-msg { margin: 0; font-size: 0.8125rem; color: var(--calq-muted, #64748b); }
.calq-vo-chain li.is-open { font-weight: 600; }
.calq-vo-chain__item--ok { color: #166534; }
.calq-vo-chain__item--warn { color: #92400e; }
.calq-vo-chain__item--pending { color: #1d4ed8; }
.calq-vo-chain__item--idle { color: var(--calq-muted, #64748b); }
.calq-vo-chain__item--disabled { opacity: 0.55; }

.calq-vo-keten-wrap { margin: 0.25rem 0 0.5rem; }
.calq-vo-keten {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.calq-vo-keten__heading { display: none; }
.calq-vo-keten__item {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  padding: 0.28rem 0.55rem 0.28rem 0.32rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: 999px;
  background: var(--calq-surface, #fff);
  font: inherit;
  font-size: 0.72rem;
  cursor: pointer;
  color: inherit;
}
.calq-vo-keten__item:hover:not(:disabled) { border-color: var(--calq-accent, #2563eb); }
.calq-vo-keten__item.is-open { border-color: var(--calq-accent, #2563eb); background: var(--calq-accent-soft, #eff6ff); }
.calq-vo-keten__item:disabled { cursor: default; opacity: 0.55; }
.calq-vo-keten__node {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  background: var(--calq-muted, #94a3b8);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
}
.calq-vo-keten__item--ok .calq-vo-keten__node { background: #22c55e; }
.calq-vo-keten__item--warn .calq-vo-keten__node { background: #f59e0b; }
.calq-vo-keten__item--pending .calq-vo-keten__node { background: #3b82f6; }
.calq-vo-keten__item--idle .calq-vo-keten__node { background: #cbd5e1; }
.calq-vo-keten__body { min-width: 0; }
.calq-vo-keten__label { line-height: 1.2; text-align: left; font-weight: 500; }
.calq-vo-keten__summary { display: none; }
.calq-vo-keten__state { display: none; }

/* ——— Grote weergave: keten als vast zijmenu links van de werkbank ——— */
.calq-vo-shell { display: block; }
.calq-vo-shell__body { min-width: 0; }

@media (min-width: 1200px) {
  .calq-vo-shell {
    display: grid;
    grid-template-columns: 14.5rem minmax(0, 1fr);
    gap: 1.1rem;
    align-items: start;
  }
  .calq-vo-shell .calq-vo-keten-wrap {
    position: sticky;
    top: 1rem;
    margin: 0;
    align-self: start;
  }
  .calq-vo-shell .calq-vo-keten {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    padding: 0.4rem;
    border: 1px solid var(--calq-border, #e2e8f0);
    border-radius: var(--calq-radius-lg, 12px);
    background: var(--calq-surface, #fff);
    box-shadow: 0 1px 3px rgba(15, 58, 36, 0.08), 0 1px 2px rgba(15, 58, 36, 0.05);
  }
  .calq-vo-shell .calq-vo-keten__heading {
    display: block;
    margin: 0.2rem 0.5rem 0.45rem;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--calq-muted, #64748b);
  }
  .calq-vo-shell .calq-vo-keten__item {
    position: relative;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.6rem;
    width: 100%;
    min-width: 0;
    border: 1px solid transparent;
    border-radius: var(--calq-radius-md, 8px);
    padding: 0.42rem 0.5rem;
    font-size: 0.8125rem;
  }
  /* verticale ketenlijn achter de knopen */
  .calq-vo-shell .calq-vo-keten__item::before {
    content: "";
    position: absolute;
    left: calc(0.5rem + 0.85rem - 1px);
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--calq-border, #e2e8f0);
    z-index: 0;
  }
  .calq-vo-shell .calq-vo-keten__item:first-of-type::before { top: 50%; }
  .calq-vo-shell .calq-vo-keten__item:last-of-type::before { bottom: 50%; }
  .calq-vo-shell .calq-vo-keten__node {
    position: relative;
    z-index: 1;
    width: 1.7rem;
    height: 1.7rem;
    font-size: 0.78rem;
    box-shadow: 0 0 0 3px var(--calq-surface, #fff);
  }
  .calq-vo-shell .calq-vo-keten__body {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    flex: 1;
    min-width: 0;
  }
  .calq-vo-shell .calq-vo-keten__label {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .calq-vo-shell .calq-vo-keten__summary {
    display: block;
    font-size: 0.68rem;
    color: var(--calq-muted, #64748b);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .calq-vo-shell .calq-vo-keten__state {
    display: none;
    flex-shrink: 0;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--calq-muted, #94a3b8);
  }
  .calq-vo-shell .calq-vo-keten__item--ok .calq-vo-keten__state { display: block; color: #16a34a; }
  .calq-vo-shell .calq-vo-keten__item--warn .calq-vo-keten__state { display: block; color: #b45309; }
  .calq-vo-shell .calq-vo-keten__item:hover:not(:disabled) {
    background: var(--calq-surface-alt, #f8fafc);
    border-color: transparent;
  }
  .calq-vo-shell .calq-vo-keten__item.is-open,
  .calq-vo-shell .calq-vo-keten__item.is-open:hover {
    background: var(--calq-accent-soft, #eff6ff);
    border-color: var(--calq-accent, #2563eb);
  }
}

.calq-vo-step__status {
  flex-shrink: 0;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #cbd5e1;
}
.calq-vo-step__status--ok { background: #22c55e; }
.calq-vo-step__status--warn { background: #f59e0b; }
.calq-vo-step__status--pending { background: #3b82f6; }
.calq-vo-step__status--idle { background: #cbd5e1; }

.calq-vo-opmerkingen textarea {
  width: 100%;
  min-height: 7rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: var(--calq-radius-md, 8px);
  font: inherit;
  resize: vertical;
}
.calq-vo-statisch-summary { margin-bottom: 0.75rem; }
.calq-vo-klimaat-keuze { margin-bottom: 0.75rem; }
.calq-vo-sim-summary { margin: 0.75rem 0; }
.calq-vo-sim-chart-wrap { margin: 0.75rem 0 1rem; overflow-x: auto; }
.calq-vo-sim-chart-wrap--compact { margin: 0.35rem 0 0.65rem; }
.calq-vo-sim-chart-title { margin: 0 0 0.35rem; font-size: 0.75rem; }
.calq-vo-sim-chart { width: 100%; max-width: 28rem; height: auto; display: block; }
.calq-vo-sim-chart-wrap--compact .calq-vo-sim-chart { max-width: 100%; }
.calq-vo-sim-bar { fill: #2563eb; opacity: 0.85; }
.calq-vo-sim-label { font-size: 8px; fill: var(--calq-muted, #64748b); }

.calq-vo-dock-summary { display: flex; flex-direction: column; gap: 1rem; }
.calq-vo-dock__heading { margin: 0 0 0.5rem; font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--calq-muted, #64748b); }
.calq-vo-dock-eind {
  padding: 0.85rem;
  border-radius: 8px;
  border: 1px solid var(--calq-border, #e2e8f0);
  background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 100%);
}
.calq-vo-dock-eind--pending { background: var(--calq-surface-2, #f8fafc); }
.calq-vo-dock-eind__hero { margin-bottom: 0.65rem; }
.calq-vo-dock-eind__main { display: flex; align-items: baseline; gap: 0.35rem; }
.calq-vo-dock-eind__value { font-size: 1.65rem; font-weight: 700; line-height: 1.1; color: #1d4ed8; }
.calq-vo-dock-eind__unit { font-size: 0.75rem; color: var(--calq-muted, #64748b); }
.calq-vo-dock-eind__sub { display: flex; flex-wrap: wrap; gap: 0.65rem 1rem; margin-top: 0.35rem; font-size: 0.8125rem; }
.calq-vo-dock-eind__dl { margin: 0; display: grid; gap: 0.25rem; font-size: 0.8125rem; }
.calq-vo-dock-eind__dl div { display: flex; justify-content: space-between; gap: 0.5rem; }
.calq-vo-dock-eind__dl dt { margin: 0; color: var(--calq-muted, #64748b); font-weight: 500; }
.calq-vo-dock-eind__dl dd { margin: 0; text-align: right; }
.calq-vo-dock-jump { margin-top: 0.5rem; font-size: 0.8125rem; }

.calq-vo-dock-charts { display: flex; flex-direction: column; gap: 0.75rem; }
.calq-vo-dock-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.25rem; }
.calq-vo-dock-step__btn {
  display: flex; align-items: flex-start; gap: 0.5rem; width: 100%;
  padding: 0.45rem 0.35rem; border: none; background: transparent;
  border-radius: 6px; text-align: left; font: inherit; cursor: pointer;
}
.calq-vo-dock-step__btn:hover { background: var(--calq-surface-2, #f1f5f9); }
.calq-vo-dock-step__dot {
  width: 8px; height: 8px; border-radius: 50%; margin-top: 0.35rem; flex-shrink: 0;
  background: #94a3b8;
}
.calq-vo-dock-step--ok .calq-vo-dock-step__dot { background: #16a34a; }
.calq-vo-dock-step--warn .calq-vo-dock-step__dot,
.calq-vo-dock-step--pending .calq-vo-dock-step__dot { background: #ea580c; }
.calq-vo-dock-step--idle .calq-vo-dock-step__dot { background: #cbd5e1; }
.calq-vo-dock-step__body { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.calq-vo-dock-step__label { font-size: 0.8125rem; font-weight: 600; }
.calq-vo-dock-step__val { font-size: 0.75rem; color: var(--calq-muted, #64748b); line-height: 1.3; }

.calq-vo-energy-chart-wrap { margin: 0.5rem 0; }
.calq-vo-energy-chart-wrap--compact { margin: 0; }
.calq-vo-energy-chart-title { margin: 0 0 0.35rem; font-size: 0.75rem; color: var(--calq-muted, #64748b); }
.calq-vo-energy-chart { width: 100%; max-width: 100%; height: auto; display: block; }
.calq-vo-energy-bar__label { font-size: 9px; fill: var(--calq-text, #334155); }
.calq-vo-energy-bar__val { font-size: 9px; fill: var(--calq-muted, #64748b); }
.calq-vo-energy-chart-note { margin: 0.25rem 0 0; font-size: 0.6875rem; }

.calq-vo-klimaat-chart-wrap { margin: 0.25rem 0; }
.calq-vo-klimaat-chart { width: 100%; max-width: 100%; height: auto; display: block; }
.calq-vo-klimaat-bar { fill: #93c5fd; }
.calq-vo-klimaat-bar--active { fill: #2563eb; }

.calq-vo-rapport-charts { display: grid; gap: 1rem; margin: 1rem 0; }
@media (min-width: 720px) {
  .calq-vo-rapport-charts { grid-template-columns: 1fr 1fr; }
}
.calq-vo-breakdown-post { padding-left: 0.75rem; font-size: 0.8125rem; color: var(--calq-muted, #64748b); }
.calq-kpi--highlight .calq-kpi__value { color: #1d4ed8; }
.calq-vo-table--energie th:nth-child(n+2),
.calq-vo-table--energie td:nth-child(n+2) { text-align: right; }
.calq-vo-energie-tip { font-size: 0.75rem; max-width: 16rem; }
.calq-vo-energie-total td { border-top: 2px solid var(--calq-border, #e2e8f0); }
.calq-vo-energie-summary { margin: 0.75rem 0; }
.calq-vo-sim-energie-hint { margin: 0.75rem 0 0; font-size: 0.8125rem; }
.calq-vo-energie-params { margin-bottom: 0.75rem; }
.calq-vo-energie-toggles { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; }

.calq-vo-nevenposten { display: flex; flex-direction: column; gap: 1.25rem; }
.calq-vo-nevenpost {
  padding: 0.85rem 1rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: 8px;
  background: var(--calq-surface-2, #f8fafc);
}
.calq-vo-nevenpost .calq-vo-rapport__subtitle { margin: 0 0 0.65rem; }
.calq-vo-neven-preview { margin: 0.5rem 0 0.65rem; font-size: 0.875rem; }
.calq-vo-neven-wp { display: block; margin: 0.35rem 0 0.5rem; }
.calq-vo-schil-vent {
  margin: 1rem 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: 8px;
  background: var(--calq-surface-2, #f8fafc);
}
.calq-vo-schil-vent .calq-vo-rapport__subtitle { margin: 0 0 0.65rem; }
.calq-vo-schil-vent-readonly { margin: 0.5rem 0; }
.calq-vo-schil-vent-fields { margin-top: 0.5rem; }
.calq-link-btn {
  background: none;
  border: none;
  padding: 0;
  color: var(--calq-link, #2563eb);
  text-decoration: underline;
  cursor: pointer;
  font: inherit;
}
.calq-vo-compleetheid {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: var(--calq-radius-md, 8px);
  background: var(--calq-surface-alt, #f8fafc);
}
.calq-vo-compleetheid__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.35rem; margin-bottom: 0.5rem; font-size: 0.8125rem; }
.calq-vo-compleetheid__score { color: var(--calq-muted, #64748b); font-weight: 400; }
.calq-vo-comp { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.calq-vo-comp__item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--calq-border, #e2e8f0);
  background: #fff;
  font-size: 0.75rem;
}
.calq-vo-comp__dot { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: #cbd5e1; }
.calq-vo-comp__item--ok .calq-vo-comp__dot { background: #22c55e; }
.calq-vo-comp__item--indicatief .calq-vo-comp__dot,
.calq-vo-comp__item--info .calq-vo-comp__dot { background: #f59e0b; }
.calq-vo-comp__item--ontbreekt .calq-vo-comp__dot { background: #94a3b8; }
.calq-vo-comp__item--warn .calq-vo-comp__dot { background: #ef4444; }
.calq-vo-comp-link { font-size: 0.75rem; text-decoration: none; }
.calq-badge--info { background: #dbeafe; color: #1d4ed8; }
.calq-badge--muted { background: #f1f5f9; color: #64748b; }
.calq-vo-gas-check {
  margin: 0.75rem 0;
  padding: 0.5rem 0.65rem;
  border-radius: var(--calq-radius-md, 8px);
  font-size: 0.8125rem;
}
.calq-vo-gas-check--ok { background: #dcfce7; color: #166534; }
.calq-vo-gas-check--warn { background: #fffbeb; color: #92400e; border: 1px solid #fcd34d; }
.calq-vo-gas-check--ontbreekt { background: #f8fafc; color: #64748b; border: 1px dashed #cbd5e1; }
.calq-vo-rapport__title { margin: 0 0 0.25rem; font-size: 1rem; }
.calq-vo-rapport__meta { margin: 0 0 0.75rem; font-size: 0.8125rem; }
.calq-vo-rapport__subtitle { margin: 1rem 0 0.35rem; font-size: 0.875rem; }
.calq-vo-rapport__notes { margin: 0; font-size: 0.8125rem; white-space: pre-wrap; }
.calq-vo-rapport__actions { margin-bottom: 0.75rem; }
.calq-vo-rapport-table th { width: 40%; font-weight: 500; text-align: left; }

.calq-vo-varianten { margin-top: 1.25rem; }
.calq-vo-varianten__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.75rem;
}
.calq-vo-varianten__input {
  flex: 1 1 12rem;
  min-width: 10rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: var(--calq-radius-sm, 6px);
  font: inherit;
  font-size: 0.8125rem;
}
.calq-vo-varianten__list {
  list-style: none;
  margin: 0 0 0.75rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.calq-vo-varianten__item {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.calq-vo-varianten__naam {
  flex: 1 1 10rem;
  padding: 0.25rem 0.45rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: var(--calq-radius-sm, 6px);
  font: inherit;
  font-size: 0.8125rem;
}
.calq-vo-vergelijk-wrap { overflow-x: auto; margin-top: 0.5rem; }
.calq-vo-vergelijk { font-size: 0.8125rem; min-width: 28rem; }
.calq-vo-vergelijk th,
.calq-vo-vergelijk td { white-space: nowrap; padding: 0.35rem 0.5rem; vertical-align: middle; }
.calq-vo-vergelijk th[scope="row"] { font-weight: 500; text-align: left; color: var(--calq-muted, #64748b); }
.calq-vo-vergelijk__best { font-weight: 700; background: color-mix(in srgb, var(--calq-accent-soft, #eff6ff) 60%, transparent); }
.calq-vo-vergelijk__warn { color: #92400e; }
.calq-vo-vergelijk__err { color: #b91c1c; }

/* Ketenberekening — rapportdocument (stap 9, print/PDF) */
.calq-vo-doc { max-width: 52rem; color: var(--calq-text, #1a202c); }
.calq-vo-doc__sectie { margin-bottom: 1.35rem; }
.calq-vo-doc__kop {
  padding: 1rem 1.1rem 1.1rem;
  border: 1px solid var(--calq-border, #e4e8ed);
  border-radius: var(--calq-radius-sm, 8px);
  background: linear-gradient(180deg, var(--calq-accent-pale, #f1f6f3) 0%, var(--calq-surface, #fff) 100%);
}
.calq-vo-doc__org {
  margin: 0 0 0.35rem;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: var(--calq-eyebrow-spacing, 0.12em);
  text-transform: uppercase;
  color: var(--calq-heading, #0f3a24);
}
.calq-vo-doc__title {
  margin: 0 0 0.35rem;
  font-size: 1.25rem;
  line-height: 1.25;
  color: var(--calq-heading, #0f3a24);
}
.calq-vo-doc__project { margin: 0 0 0.2rem; font-size: 0.9375rem; font-weight: 600; }
.calq-vo-doc__meta { margin: 0 0 0.65rem; font-size: 0.8125rem; color: var(--calq-muted, #5f6b7a); }
.calq-vo-doc__adviseur {
  margin: 0;
  padding-top: 0.55rem;
  border-top: var(--calq-head-rule, 1px solid var(--calq-border, #e4e8ed));
  font-size: 0.8125rem;
  color: var(--calq-muted, #5f6b7a);
}
.calq-vo-advies {
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--calq-accent-muted, #cfe0d6);
  border-radius: var(--calq-radius-sm, 8px);
  background: var(--calq-accent-soft, #eef4f0);
}
.calq-vo-advies .calq-vo-rapport__subtitle { margin-top: 0; }
.calq-vo-advies__kern { margin: 0 0 0.55rem; font-size: 0.9375rem; line-height: 1.45; }
.calq-vo-advies__onz,
.calq-vo-advies__vervolg { margin: 0 0 0.45rem; font-size: 0.8125rem; line-height: 1.45; color: var(--calq-text, #1a202c); }
.calq-vo-advies__vervolg { margin-bottom: 0; }

/* Keten VO — tornado gevoeligheidsanalyse (TCO) */
.calq-vo-tornado {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--calq-border, #e2e8f0);
}
.calq-vo-tornado__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 0.35rem;
}
.calq-vo-tornado__head .calq-vo-rapport__subtitle { margin: 0; }
.calq-vo-tornado__pct {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8125rem;
  color: var(--calq-muted, #64748b);
}
.calq-vo-tornado__pct input {
  width: 3.25rem;
  padding: 0.2rem 0.35rem;
  font-size: 0.8125rem;
  border: 1px solid var(--calq-border, #e2e8f0);
  border-radius: var(--calq-radius-sm, 6px);
}
.calq-vo-tornado__hint {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--calq-text, #1a202c);
}
.calq-vo-tornado__chart { display: flex; flex-direction: column; gap: 0.55rem; }
.calq-vo-tornado__row {
  display: grid;
  grid-template-columns: minmax(7rem, 9rem) 1fr minmax(10rem, 13rem);
  align-items: center;
  gap: 0.5rem 0.65rem;
  font-size: 0.8125rem;
}
.calq-vo-tornado__label { font-weight: 500; color: var(--calq-muted, #64748b); }
.calq-vo-tornado__bar-wrap {
  display: flex;
  align-items: stretch;
  height: 1.1rem;
  background: var(--calq-surface-muted, #f1f5f9);
  border-radius: 3px;
  overflow: hidden;
}
.calq-vo-tornado__balk { min-width: 0; transition: width 0.15s ease; }
.calq-vo-tornado__laag {
  margin-left: auto;
  background: color-mix(in srgb, var(--calq-accent, #0f766e) 35%, #94a3b8);
}
.calq-vo-tornado__basis {
  flex: 0 0 3px;
  background: var(--calq-heading, #0f3a24);
  z-index: 1;
}
.calq-vo-tornado__hoog {
  background: color-mix(in srgb, var(--calq-accent, #0f766e) 65%, #64748b);
}
.calq-vo-tornado__vals {
  white-space: nowrap;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.calq-vo-tornado__swing { color: var(--calq-muted, #64748b); font-size: 0.75rem; }
@media (max-width: 640px) {
  .calq-vo-tornado__row { grid-template-columns: 1fr; }
  .calq-vo-tornado__vals { text-align: left; }
}

.calq-uitgangspunten--expanded {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}
.calq-uitgangspunten--expanded .calq-vo-rapport__subtitle { margin-top: 0; }

@media print {
  body * { visibility: hidden; }
  #vo-rapport-print,
  #vo-rapport-print * { visibility: visible; }
  #vo-rapport-print {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    color: #111;
    background: #fff;
  }
  #vo-rapport-print .print-hidden,
  #vo-rapport-print .no-print { display: none !important; }
  #vo-rapport-print .calq-vo-doc__kop {
    border: none;
    border-bottom: 2px solid var(--calq-heading, #0f3a24);
    border-radius: 0;
    background: #fff;
    padding: 0 0 0.75rem;
    margin-bottom: 0.85rem;
  }
  #vo-rapport-print .calq-vo-advies {
    border: 1px solid #cbd5e1;
    background: #f8fafc;
  }
  #vo-rapport-print .calq-vo-doc__sectie--keten,
  #vo-rapport-print .calq-vo-doc__sectie--energie,
  #vo-rapport-print .calq-vo-doc__sectie--varianten,
  #vo-rapport-print .calq-vo-doc__sectie--volledigheid,
  #vo-rapport-print .calq-vo-doc__sectie--opmerkingen { break-before: page; page-break-before: always; }
  #vo-rapport-print .calq-vo-doc__sectie { break-inside: avoid-page; page-break-inside: avoid; }
  #vo-rapport-print table,
  #vo-rapport-print .calq-vo-advies,
  #vo-rapport-print .calq-vo-vergelijk-wrap,
  #vo-rapport-print .calq-vo-compleetheid,
  #vo-rapport-print .calq-vo-schil-result,
  #vo-rapport-print .calq-vo-rapport-charts { break-inside: avoid; page-break-inside: avoid; }
  #vo-rapport-print .calq-table th,
  #vo-rapport-print .calq-table td { border-color: #cbd5e1; }
  #vo-rapport-print .calq-badge--ok { border: 1px solid #86efac; background: #f0fdf4; color: #166534; }
  #vo-rapport-print .calq-badge--warn { border: 1px solid #fcd34d; background: #fffbeb; color: #92400e; }
  @page { margin: 14mm 12mm 16mm; size: A4; }
}

@media print {
  [data-calq-module="verwarmings_ontwerp"] .calq-module-aside,
  [data-calq-module="verwarmings_ontwerp"] .calq-vo-steps .calq-vo-step:not([data-step="8"]),
  [data-calq-module="verwarmings_ontwerp"] .calq-vo-keten-wrap,
  [data-calq-module="verwarmings_ontwerp"] #vo-system-check { display: none !important; }
  [data-calq-module="verwarmings_ontwerp"] .calq-vo-step[data-step="8"] .calq-vo-step__head { display: none; }
  [data-calq-module="verwarmings_ontwerp"] .calq-vo-step[data-step="8"] .calq-vo-step__body { display: block !important; border: none; padding: 0; }
}

/* === Gebouwbeheer / M&R — tabs, subvelden, Kvs-tabel === */
.calq-field__hint {
  grid-column: 1 / -1; margin-top: 0.12rem;
  font-size: 0.68rem; font-weight: 400; line-height: 1.35; color: var(--kq-muted, #6b7280);
}
.calq-gb-subfields { display: contents; }
.calq-gb-subfields[hidden] { display: none; }
.calq-gb-tabs {
  display: flex; flex-wrap: wrap; gap: 0.3rem;
  margin: 0 0 0.9rem; padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--kq-border, #e2e6ec);
}
.calq-gb-tab {
  padding: 0.45rem 0.85rem; border: 1px solid transparent; border-radius: 999px;
  background: transparent; color: var(--kq-muted, #5b6470);
  font: inherit; font-size: 0.86rem; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.calq-gb-tab:hover { background: var(--kq-bg-alt, #f4f4f1); color: var(--kq-text); }
.calq-gb-tab.is-active {
  background: var(--kq-module-bg, #E1F5EE); color: var(--kq-module-ink, #0F6E56);
  border-color: var(--kq-module-line, #9FE1CB);
}
.calq-gb-cols {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1rem; align-items: start;
}
.calq-gb-kvstable { width: 100%; border-collapse: collapse; font-size: 0.82rem; font-variant-numeric: tabular-nums; }
.calq-gb-kvstable th, .calq-gb-kvstable td {
  padding: 0.28rem 0.5rem; text-align: right; border-bottom: 1px solid var(--kq-border, #eceef2);
}
.calq-gb-kvstable th { color: var(--kq-muted, #5b6470); font-weight: 600; }
.calq-gb-kvstable tr.is-advies { background: var(--kq-module-bg, #E1F5EE); font-weight: 700; }
.calq-gb-kvstable tr.is-gekozen td { box-shadow: inset 3px 0 0 var(--calq-accent, #2f6df6); }
.calq-gb-swatch { display: inline-block; width: 0.7rem; height: 0.7rem; border-radius: 3px; vertical-align: -1px; margin-right: 0.15rem; }
.calq-gb-swatch--advies { background: var(--kq-module-bg, #E1F5EE); border: 1px solid var(--kq-module-line, #9FE1CB); }
.calq-gb-swatch--gekozen { background: transparent; box-shadow: inset 3px 0 0 var(--calq-accent, #2f6df6); }
.calq-gb-tablescroll { overflow-x: auto; }
.calq-gb-valvefilter {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.1rem; align-items: center;
  margin-bottom: 0.6rem; font-size: 0.85rem;
}
.calq-gb-valvefilter label { display: inline-flex; align-items: center; gap: 0.35rem; }
.calq-gb-valvefilter select { padding: 0.2rem 0.4rem; }
.calq-gb-valvetable th:nth-child(1), .calq-gb-valvetable td:nth-child(1),
.calq-gb-valvetable th:nth-child(2), .calq-gb-valvetable td:nth-child(2),
.calq-gb-valvetable th:nth-child(4), .calq-gb-valvetable td:nth-child(4) { text-align: left; }
.calq-gb-valvetable tr[data-kvs] { cursor: pointer; }
.calq-gb-valvetable tr[data-kvs]:hover td { background: var(--kq-bg-alt, #f4f4f1); }
.calq-gb-valvetable tr[data-kvs]:focus-visible { outline: 2px solid var(--calq-accent, #2f6df6); outline-offset: -2px; }
.calq-gb-ref { font-size: 0.86rem; line-height: 1.5; }
.calq-gb-ref p { margin: 0 0 0.5rem; }
.calq-gb-fasen { margin: 0; padding-left: 1.1rem; }
.calq-gb-fasen li { margin: 0 0 0.5rem; }

/* === Gebruikersmenu in de contextbalk (naam rechts → dropdown) === */
.calq-usermenu { position: relative; display: inline-flex; }
.calq-usermenu__trigger {
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.24rem 0.5rem 0.24rem 0.3rem;
  border: 1px solid var(--kq-border); border-radius: 999px;
  background: var(--kq-card); color: var(--kq-text);
  cursor: pointer; font: inherit; font-size: 0.82rem; line-height: 1;
}
.calq-usermenu__trigger:hover { border-color: var(--kq-module-line); color: var(--kq-module-ink); }
.calq-usermenu__avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; flex-shrink: 0; border-radius: 50%;
  background: var(--kq-module-bg); color: var(--kq-module-ink);
  font-size: 0.72rem; font-weight: 700;
}
.calq-usermenu__name {
  max-width: 12rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600;
}
.calq-usermenu__caret {
  width: 0.4rem; height: 0.4rem; flex-shrink: 0; margin-left: 0.05rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-1px); transition: transform 0.15s ease;
}
.calq-usermenu.is-open .calq-usermenu__caret { transform: rotate(-135deg) translateY(1px); }
.calq-usermenu__panel {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 60; min-width: 200px;
  display: flex; flex-direction: column; gap: 0.1rem; padding: 0.35rem;
  background: var(--kq-card); border: 1px solid var(--kq-border);
  border-radius: var(--kq-radius-sm, 8px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.14);
}
.calq-usermenu__panel[hidden] { display: none; }
.calq-usermenu__form { margin: 0; }
.calq-usermenu__item {
  display: block; width: 100%; box-sizing: border-box; text-align: left; white-space: nowrap;
  padding: 0.5rem 0.6rem; border: 0; border-radius: var(--kq-radius-sm, 6px);
  background: transparent; color: var(--kq-text); font: inherit; font-size: 0.86rem; font-weight: 500;
  text-decoration: none; cursor: pointer;
}
.calq-usermenu__item:hover { background: var(--kq-bg-alt); color: var(--kq-module-ink); text-decoration: none; }
.calq-usermenu__item--toggle.is-active { color: var(--kq-module-ink); font-weight: 600; }
.calq-usermenu__item--logout { color: var(--kq-muted); }
.calq-usermenu__sep { height: 1px; margin: 0.25rem 0.3rem; background: var(--kq-border); }
@media (max-width: 640px) { .calq-usermenu__name { display: none; } }

/* ═══════════ HWA dak-tekenaar (calq-hwa-tekenaar.js) ═══════════ */
.hwa-tk { margin-bottom: 0.75rem; }
.hwa-tk-toolbar {
  display: flex; flex-wrap: wrap; gap: 0.5rem 0.9rem; align-items: center;
  padding: 0.4rem 0.6rem; background: var(--calq-accent-pale);
  border-bottom: 1px solid var(--calq-border);
}
.hwa-tk-tools { display: flex; gap: 0.3rem; align-items: center; }
.hwa-tk-tools [data-tk-tool].is-active {
  background: var(--calq-green); color: #fff; border-color: var(--calq-green);
}
.hwa-tk-scale { margin-left: auto; gap: 0.7rem; }
.hwa-tk-scale label { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.72rem; color: var(--calq-green-dark); }
.hwa-tk-scale input { width: 3.4rem; padding: 0.15rem 0.3rem; border: 1px solid var(--calq-input-border); border-radius: 5px; font: inherit; font-size: 0.72rem; }
.hwa-tk-hint { margin: 0; padding: 0.3rem 0.6rem; font-size: 0.72rem; color: var(--calq-green-dark); background: var(--calq-accent-soft); }

.hwa-tk-stage { display: grid; grid-template-columns: 1.35fr 1fr; gap: 0.5rem; padding: 0.5rem; }
@media (max-width: 780px) { .hwa-tk-stage { grid-template-columns: 1fr; } }
.hwa-tk-plan-wrap, .hwa-tk-iso-wrap { position: relative; border: 1px solid var(--calq-border); border-radius: 8px; overflow: hidden; background: #fbfdfc; }
.hwa-tk-cap {
  position: absolute; top: 0; left: 0; z-index: 2; padding: 0.12rem 0.45rem;
  font-size: 0.62rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase;
  color: var(--calq-green-dark); background: rgba(255,255,255,0.82); border-bottom-right-radius: 6px;
}
.hwa-tk-plan, .hwa-tk-iso { display: block; width: 100%; height: 360px; touch-action: none; }
.hwa-tk-iso { background: linear-gradient(180deg, #f4f8f6 0%, #eef3f0 100%); }

.hwa-tk-grid line { stroke: #e2ebe5; stroke-width: 1; }
.hwa-tk-face { stroke: var(--calq-green); stroke-width: 1.2; fill-opacity: 0.55; cursor: pointer; transition: fill-opacity 0.1s; }
.hwa-tk-face:hover { fill-opacity: 0.72; }
.hwa-tk-face.is-sel { stroke-width: 2.4; fill-opacity: 0.8; }
.hwa-tk-face-label { font-size: 11px; font-weight: 600; fill: var(--calq-green-dark); pointer-events: none; }
.hwa-tk-face-sub { font-size: 9.5px; fill: #5a6b60; pointer-events: none; }
.hwa-tk-seg { stroke: var(--calq-green-dark); stroke-width: 2; stroke-linecap: round; }
.hwa-tk-seg.is-nok { stroke: #c2410c; stroke-width: 2.4; stroke-dasharray: 6 3; }
.hwa-tk-seg.is-live { stroke: var(--calq-green); stroke-width: 2; }
.hwa-tk-seg.is-preview { stroke: var(--calq-green-light); stroke-width: 1.6; stroke-dasharray: 4 4; opacity: 0.7; }
.hwa-tk-vertex { fill: #fff; stroke: var(--calq-green); stroke-width: 2; }
.hwa-tk-hover { fill: none; stroke: var(--calq-nav-active-border); stroke-width: 2; }

.hwa-tk-iso-wall { fill: #d7ded9; stroke: #9aa8a0; stroke-width: 0.8; fill-opacity: 0.85; }
.hwa-tk-iso-face { stroke: var(--calq-green-dark); stroke-width: 1; fill-opacity: 0.9; }
.hwa-tk-iso-face.is-sel { stroke-width: 2.2; stroke: var(--calq-nav-active-border); }
.hwa-tk-iso-empty { fill: #9aa8a0; font-size: 12px; }

.hwa-tk-panel { padding: 0 0.5rem 0.55rem; }
.hwa-tk-panel-empty { padding: 0.5rem 0.6rem; margin: 0; font-size: 0.75rem; color: #6b7a70; }
.hwa-tk-panel-table { width: 100%; border-collapse: collapse; font-size: 0.74rem; }
.hwa-tk-panel-table th {
  text-align: left; padding: 0.25rem 0.35rem; font-size: 0.66rem; text-transform: uppercase;
  letter-spacing: 0.02em; color: var(--calq-green-dark); border-bottom: 1px solid var(--calq-border);
}
.hwa-tk-panel-table td { padding: 0.18rem 0.35rem; border-bottom: 1px solid var(--calq-border-subtle); }
.hwa-tk-panel-table tr.is-sel { background: var(--calq-nav-active-bg); }
.hwa-tk-panel-table input, .hwa-tk-panel-table select {
  width: 100%; box-sizing: border-box; padding: 0.15rem 0.3rem; font: inherit; font-size: 0.74rem;
  border: 1px solid var(--calq-input-border); border-radius: 5px; background: var(--calq-input);
}
.hwa-tk-panel-table .hwa-tk-p-name input { min-width: 5rem; }
.hwa-tk-panel-table .hwa-tk-p-area { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--calq-green-dark); }

@media print {
  .hwa-tk-toolbar, .hwa-tk-hint { display: none !important; }
  .hwa-tk-stage { grid-template-columns: 1fr 1fr; }
  .hwa-tk-plan, .hwa-tk-iso { height: 260px; }
}
