: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;
}

* { 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: vaste sidebar links ——— */
.calq-app { display: flex; min-height: 100vh; }
.calq-app-main {
  flex: 1;
  min-width: 0;
  margin-left: var(--calq-sidebar-width);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.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;
  background: #fff;
}
.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: #fff;
  color: var(--calq-nav-tier2-text);
  border: 0;
}
.calq-sidebar-link--l2:not(.active):hover {
  background: #f1f5f9;
  color: var(--calq-green);
  text-decoration: none;
}
.calq-sidebar-link--l2.in-category:not(.active) {
  color: var(--calq-green);
  background: #fff;
  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;
}

.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: repeat(auto-fill, minmax(10rem, 1fr));
  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, .calq-calc-result span { color: var(--calq-muted); margin-right: 0.35rem; }
.calq-calc-result { font-weight: 600; }
.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;
}
.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__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 {
  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; }

@media (max-width: 960px) {
  .calq-kanaal-workspace .calq-module-layout { 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-fill, minmax(9.5rem, 1fr));
}
.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 {
  display: grid;
  grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}
.calq-ic-list-panel { min-width: 0; }
.calq-ic-detail-panel { min-width: 0; }
.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; }

/* ——— 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 — 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: 58rem;
}
[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 {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
  grid-column: 1 / -1;
}
[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;
}
[data-calq-module="geluid"] .calq-geluid-ref-block .calq-block__body {
  padding: 0.5rem 0.75rem;
  background: #f8fafc;
  border-bottom: 1px solid #eef2f7;
}
[data-calq-module="geluid"] .calq-geluid-ref-block .calq-geluid-diagram {
  padding: 0.35rem 0;
  border: 0;
  background: transparent;
}
[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__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 ——— */
[data-calq-module="leidingberekening"] .calq-module-layout {
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 21rem);
  gap: 1.15rem;
}
[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;
  }
}

.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;
}
.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-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.35rem;
  padding: 0.35rem 0.85rem 0.5rem;
}
[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 .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 .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 .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--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.4rem 0.75rem;
  background: #fff;
  border: 1px solid var(--calq-border);
}
[data-calq-module="afgevend_vermogen"] .calq-av-fields--results .calq-field__value {
  font-size: 1.05rem;
  text-align: right;
}
[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: 1.15rem;
}
.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; }
@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; }
@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; }
  .calq-app-main { margin-left: 0 !important; }
  .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: wrap;
  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;
}
/* Workspace-grid (label naast veld) hoort niet in CRM-kop */
.calq-crm-calc__header .calq-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.2rem;
  min-width: 0;
}
.calq-crm-calc__header .calq-field__label,
.calq-crm-calc__header .calq-field input,
.calq-crm-calc__header .calq-field select,
.calq-crm-calc__header .calq-field__value {
  grid-column: unset;
  grid-row: unset;
  width: 100%;
}
.calq-crm-calc__header .calq-field__value--small {
  white-space: normal;
  overflow-wrap: anywhere;
}
.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: auto;
  scrollbar-gutter: stable;
  --ic-ctx-h: 5.5rem;
}
.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-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 {
  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-crm-calc__num-inner {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.15rem;
  max-width: 100%;
}
.calq-mb-table td.calq-crm-calc__num {
  display: table-cell;
  vertical-align: middle;
}
.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.calq-mb-table--sticky {
  border-collapse: separate;
  border-spacing: 0;
}
.calq-mb-table.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;
  background: #fff;
  background-clip: padding-box;
}
.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;
}
/* Controleren: 12 kolommen — minimumbreedte + horizontaal scrollen i.p.v. uitknijpen */
.calq-crm-calc--mode-controleren .calq-mb-table {
  min-width: 74rem;
}
.calq-crm-calc--mode-controleren .calq-mb-table col.col-oms { width: 15%; }
.calq-crm-calc--mode-controleren .calq-mb-table col.col-hvh { width: 3.25rem; }
.calq-crm-calc--mode-controleren .calq-mb-table col.col-money { width: 4.25rem; }
.calq-crm-calc--mode-controleren .calq-mb-table col.col-krt { width: 2.75rem; }
.calq-crm-calc--mode-controleren .calq-mb-table col.col-plm { width: 7.25rem; }
.calq-crm-calc--mode-controleren .calq-mb-table col.col-totaal { width: 4.75rem; }
.calq-crm-calc--mode-controleren .calq-mb-table th.calq-mb-col-control-only {
  overflow: visible;
  text-overflow: clip;
  font-size: 0.66rem;
  padding-left: 0.2rem;
  padding-right: 0.2rem;
}
.calq-crm-calc--mode-controleren .calq-mb-col-plm {
  min-width: 7.25rem;
}
.calq-crm-calc--mode-controleren .calq-mb-inp-row {
  min-width: 6.75rem;
}
.calq-crm-calc--mode-controleren .calq-mb-inp-row .ic-inp {
  min-width: 2.5rem;
}
.calq-crm-calc .ic-inp[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}
.calq-crm-calc .ic-inp[type="number"]::-webkit-outer-spin-button,
.calq-crm-calc .ic-inp[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.calq-crm-calc--filter-actief tr.calq-crm-calc__row-regel[data-actief="0"] {
  display: none;
}
.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-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-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; }

.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 */
.rc-edit-wrap { margin: 1rem 0; }
.rc-edit-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.5rem; }
.rc-edit-scroll { overflow-x: auto; border: 1px solid #e2e8f0; border-radius: 8px; }
.rc-edit-table input { width: 100%; min-width: 4rem; font: inherit; padding: 0.35rem 0.5rem; border: 1px solid #cbd5e1; border-radius: 4px; }
.rc-edit-table .rc-input-wide { min-width: 16rem; }
.rc-edit-table td:last-child { width: 2.5rem; text-align: center; }
.rc-preview { margin-top: 0.75rem; max-height: 200px; overflow: auto; border: 1px solid #e2e8f0; border-radius: 8px; }
.rc-preview img { max-width: 100%; height: auto; display: block; }

.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(220px, 1fr));
  gap: 0.85rem 1.25rem;
}
/* Label boven invoer — override compacte calq-workspace rij-layout */
.bt-workspace .bt-controls .calq-field,
.bt-workspace .bt-table-toolbar .calq-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  margin: 0;
}
.bt-workspace .bt-controls .calq-field__label,
.bt-workspace .bt-table-toolbar .calq-field__label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--calq-text);
  line-height: 1.35;
}
.bt-workspace .bt-controls .calq-field input,
.bt-workspace .bt-controls .calq-field select,
.bt-workspace .bt-table-toolbar .calq-field input,
.bt-workspace .bt-table-toolbar .calq-field select {
  width: 100%;
  min-width: 0;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--calq-text);
  border: 1px solid var(--calq-input-border);
  border-radius: 6px;
  background: var(--calq-input);
}
.bt-workspace .bt-controls .calq-field select,
.bt-workspace .bt-table-toolbar .calq-field select {
  padding-right: 2.25rem;
  cursor: pointer;
}
.bt-workspace .bt-controls .calq-field input:focus,
.bt-workspace .bt-controls .calq-field select:focus,
.bt-workspace .bt-table-toolbar .calq-field input:focus,
.bt-workspace .bt-table-toolbar .calq-field select:focus {
  outline: none;
  border-color: var(--calq-green-light);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--calq-green-light) 22%, transparent);
}
.bt-controls__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.85rem;
}
.bt-controls__note { font-size: 0.8125rem; color: #475569; line-height: 1.45; }
.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; }

.bt-runs-table { margin-top: 1rem; }
.bt-runs-table__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: flex-end; }
.bt-status-badge {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
}
.bt-status--ok { background: #dcfce7; color: #166534; }
.bt-status--warn { background: #fef3c7; color: #92400e; }
.bt-status--error { background: #fee2e2; color: #991b1b; }
.bt-status--draft { background: #f1f5f9; color: #64748b; }
.calq-btn--sm { padding: 0.25rem 0.55rem; font-size: 0.78rem; }
.calq-btn--danger { background: #fff; border-color: #fca5a5; color: #b91c1c; }
.calq-btn--danger:hover { background: #fef2f2; border-color: #f87171; }

.bt-run-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 0.75rem;
  align-items: flex-start;
}
.bt-run-header__back {
  display: inline-block;
  font-size: 0.82rem;
  color: #64748b;
  text-decoration: none;
  margin-bottom: 0.35rem;
}
.bt-run-header__back:hover { color: var(--calq-green, #15803d); }
.bt-run-header__title { margin: 0; font-size: 1.35rem; }
.bt-run-header__label-input {
  font: inherit;
  font-weight: 700;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 0.15rem 0.35rem;
  width: min(100%, 28rem);
  background: transparent;
}
.bt-run-header__label-input:hover,
.bt-run-header__label-input:focus {
  border-color: #cbd5e1;
  background: #fff;
  outline: none;
}
.bt-run-header__meta { margin: 0.25rem 0 0; font-size: 0.82rem; }
.bt-run-header__actions { display: flex; gap: 0.5rem; align-items: 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-crm-calc__fase-tabs { 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;
}
.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;
  transition: padding 0.22s ease;
}
.is-workspace-body.is-pinned-left .is-layout-v3 {
  padding-left: min(280px, 34vw);
}
.is-workspace-body.is-pinned-right .is-layout-v3 {
  padding-right: min(300px, 36vw);
}
.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-panel-nav,
  .is-drawer-backdrop { display: none !important; }
  .is-layout-v3 {
    grid-template-columns: 1fr;
  }
  .is-side-panel {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 45;
    display: flex;
    width: min(300px, 36vw);
    max-width: 320px;
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.1);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    overflow: visible;
  }
  .is-panel--input.is-side-panel {
    left: 0;
    flex-direction: row;
    transform: translateX(calc(-100% + 2.65rem));
  }
  .is-panel--results.is-side-panel {
    right: 0;
    left: auto;
    flex-direction: row-reverse;
    transform: translateX(calc(100% - 2.65rem));
  }
  .is-side-panel.is-side-open,
  .is-side-panel.is-side-pinned,
  .is-side-panel.is-side-peek,
  .is-side-panel:hover {
    transform: translateX(0);
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.14);
    z-index: 46;
  }
  .is-side-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.65rem;
    width: 2.65rem;
    margin: 0;
    padding: 0.5rem 0.35rem;
    border: 1px solid var(--calq-border);
    background: #f8fafc;
    cursor: pointer;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    font-size: 0.72rem;
    font-weight: 600;
    color: #475569;
    letter-spacing: 0.05em;
    transition: background 0.15s ease, color 0.15s ease;
  }
  .is-side-tab--left {
    border-radius: 0 8px 8px 0;
    border-left: 0;
  }
  .is-side-tab--right {
    border-radius: 8px 0 0 8px;
    border-right: 0;
  }
  .is-side-tab:hover,
  .is-side-panel.is-side-open .is-side-tab,
  .is-side-panel.is-side-pinned .is-side-tab {
    background: #e0f2fe;
    color: #0369a1;
  }
  .is-panel--input,
  .is-panel--results {
    position: absolute !important;
    pointer-events: auto !important;
    visibility: visible !important;
  }
  .is-panel--input .is-drawer-close,
  .is-panel--results .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; }
}

/* LCC wizard */
[data-calq-module="lcc"] .calq-subnav--lcc {
  flex-wrap: wrap;
}
[data-calq-module="lcc"] .lcc-step-nav {
  display: flex;
  gap: 0.5rem;
  padding: 0.45rem 0.55rem;
  border-top: 1px solid var(--calq-border);
}
[data-calq-module="lcc"] .lcc-scope-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding: 0.35rem 0.55rem;
}
[data-calq-module="lcc"] .lcc-scope-chips__label {
  font-size: 0.72rem;
  color: var(--calq-muted);
  margin-right: 0.25rem;
}
[data-calq-module="lcc"] .lcc-scope-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  border: 1px solid var(--calq-border);
  border-radius: var(--calq-radius-sm);
  font-size: 0.75rem;
  background: var(--calq-accent-soft);
}
[data-calq-module="lcc"] .lcc-gebouwtype-hint {
  grid-column: 1 / -1;
  margin: 0 0.55rem;
}
[data-calq-module="lcc"] .calq-block__subhead {
  font-size: 0.78rem;
  margin: 0.5rem 0.55rem 0.25rem;
  font-weight: 600;
}
[data-calq-module="lcc"] .lcc-field-required .calq-field__label::after {
  content: " *";
  color: var(--calq-danger, #c0392b);
}
[data-calq-module="lcc"] #lcc-onderhoud-table td.calq-field--calc,
[data-calq-module="lcc"] #lcc-energie-table td.calq-field--calc {
  background: var(--calq-accent-soft);
  color: var(--calq-muted);
  font-size: 0.8125rem;
}
[data-calq-module="lcc"] .lcc-varianten-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.35rem 0.55rem;
  border-bottom: 1px solid var(--calq-border);
}
[data-calq-module="lcc"] .calq-subnav--variants {
  flex: 1 1 auto;
  min-width: 0;
}
[data-calq-module="lcc"] .calq-subnav__link--add {
  font-style: italic;
  opacity: 0.85;
}
[data-calq-module="lcc"] .lcc-varianten-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
[data-calq-module="lcc"] .calq-btn--sm {
  font-size: 0.72rem;
  padding: 0.2rem 0.5rem;
}
[data-calq-module="lcc"] #lcc-varianten-table tr.is-active-variant {
  background: var(--calq-accent-strong);
  font-weight: 600;
}
[data-calq-module="lcc"] #lcc-varianten-table tr.lcc-varianten-diff {
  border-top: 2px solid var(--calq-border);
  background: var(--calq-accent-soft);
  font-size: 0.8125rem;
}
[data-calq-module="lcc"] #lcc-varianten-table tr.lcc-varianten-diff td:first-child {
  font-weight: 600;
}

/* Artikel opzoeken */
.ao-workspace .ao-search-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-end;
}
.ao-workspace .calq-field--grow { flex: 1; min-width: 220px; }
.ao-workspace .calq-field--action { flex: 0 0 auto; }
.ao-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.65rem 1rem;
}
.ao-meta-item { display: flex; flex-direction: column; gap: 0.15rem; }
.ao-meta-label { font-size: 0.72rem; color: #64748b; text-transform: uppercase; letter-spacing: 0.02em; }
.ao-meta-value { font-size: 0.9rem; color: #0f172a; }
.ao-prijzen-hint { font-size: 0.82rem; margin: 0 0 0.75rem; }
.ao-col-bruto { color: #475569; }
.ao-col-netto { color: #0f766e; }
.ao-row--unavailable { opacity: 0.55; }
.ao-norm-section { margin-bottom: 1rem; }
.ao-norm-section:last-child { margin-bottom: 0; }
.ao-norm-title { font-size: 0.95rem; margin: 0 0 0.35rem; }
.ao-ctn-table { max-width: 360px; margin-top: 0.5rem; }
.ao-ctn-fase--active { background: #ecfdf5; font-weight: 600; }
