/* KANT App — Maß-Seite + 4 Tabs. Nutzt die :root-Tokens aus landing.css. */
body.app{ min-height:100vh; }
.appmain{ max-width:1080px; margin:0 auto; padding:0 var(--s3) var(--s8); }

/* App-Bar */
.appbar{ position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:var(--s3);
  padding:12px var(--s3); background:var(--bar-bg); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--hairline); }
.appbar__back{ color:var(--gold-soft); font-weight:700; text-decoration:none; font-size:15px; flex:0 0 auto; }
.appbar__addr{ display:flex; align-items:center; gap:8px; color:var(--offwhite); font-weight:600; font-size:15px; min-width:0; }
.appbar__addr span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.appbar__pin{ color:var(--gold); flex:0 0 auto; }
.appbar__badge{ margin-left:auto; font-size:12px; color:var(--mist); }

/* Maß-Seite */
.masse{ padding:var(--s5) 0 var(--s3); }
.masse__h{ font-family:"Playfair Display",serif; font-weight:600; font-size:clamp(24px,4vw,34px); color:var(--offwhite); margin:0 0 var(--s3); }
.masse__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--hairline);
  border:1px solid var(--hairline-2); border-radius:var(--radius-lg); overflow:hidden; }
.mtile{ background:var(--card-bg); padding:var(--s3) var(--s2); display:flex; flex-direction:column; gap:6px; min-width:0; }
.mtile__k{ font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.mtile__v{ font-family:"Playfair Display",serif; font-size:clamp(20px,2.6vw,28px); font-weight:600; color:var(--gold-soft); line-height:1.05; }
.mtile__v small{ font-family:"Inter",sans-serif; font-size:12px; font-weight:500; color:var(--mist); margin-left:3px; }
.mtile__v.est{ color:var(--mist); }
.mtile__b{ font-size:10.5px; color:var(--mist); line-height:1.25; margin-top:-1px; }   /* Konfidenz/Spanne pro Größe */
.mtile.skeleton .mtile__v{ color:transparent; }
.masse__note{ font-size:11.5px; color:var(--muted); margin:10px 2px 0; font-family:"Fira Code",monospace; }
@media (max-width:780px){ .masse__grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:430px){ .masse__grid{ grid-template-columns:repeat(2,1fr); } }

/* Tabs */
.tabs{ display:flex; gap:6px; margin:var(--s5) 0 var(--s3); border-bottom:1px solid var(--hairline); overflow-x:auto; }
.tab{ appearance:none; border:0; background:transparent; color:var(--mist); font-family:inherit; font-size:15px; font-weight:600;
  padding:12px 18px; border-radius:12px 12px 0 0; cursor:pointer; white-space:nowrap; border-bottom:2px solid transparent; transition:.2s var(--ease); }
.tab:hover{ color:var(--offwhite); background:rgba(244,241,234,0.04); }
.tab.is-active{ color:var(--gold); border-bottom-color:var(--gold); }

/* Panels */
.panel{ animation:fadein .3s var(--ease); }
.panel[hidden]{ display:none; }
@keyframes fadein{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none;} }
.panel__sum{ margin-top:var(--s3); font-size:14px; color:var(--mist); }
.panel__note{ margin-top:var(--s2); font-size:12px; color:var(--muted); font-family:"Fira Code",monospace; }

/* Konfigurator */
.config{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:var(--s2); margin-bottom:var(--s3); }
.cfg{ display:flex; flex-direction:column; gap:5px; }
.cfg label{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.cfg select, .cfg input{ appearance:none; background:var(--card-bg); color:var(--offwhite); border:1px solid var(--hairline-2);
  border-radius:10px; padding:10px 12px; font-family:inherit; font-size:14px; cursor:pointer; }
.cfg select:focus, .cfg input:focus{ outline:2px solid var(--blue); }

/* Material-Liste je Bauteil */
.matlist{ display:grid; gap:var(--s2); }
.matcard{ background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:var(--radius-md); overflow:hidden; }
.matcard__h{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--s2); padding:12px var(--s3);
  background:linear-gradient(120deg,rgba(212,175,55,0.07),rgba(79,195,247,0.05)); border-bottom:1px solid var(--hairline); }
.matcard__h b{ color:var(--offwhite); font-size:15px; }
.matcard__h span{ font-size:12px; color:var(--mist); }
.matrow{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--s2); padding:9px var(--s3); border-top:1px solid var(--hairline); font-size:13.5px; }
.matrow:first-child{ border-top:0; }
.matrow .bez{ color:var(--mist); }
.matrow .mng{ color:var(--offwhite); font-variant-numeric:tabular-nums; white-space:nowrap; }
.matrow .gp{ color:var(--gold-soft); font-variant-numeric:tabular-nums; white-space:nowrap; min-width:120px; text-align:right; }

/* LV / Angebot */
.lv{ display:grid; gap:var(--s2); }
.lvtitel{ background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:var(--radius-md); overflow:hidden; }
.lvtitel__h{ padding:11px var(--s3); font-weight:700; color:var(--offwhite); background:rgba(244,241,234,0.03); border-bottom:1px solid var(--hairline); font-size:14px; }
.lvrow{ display:grid; grid-template-columns:1fr auto auto; gap:var(--s2); align-items:baseline; padding:8px var(--s3); border-top:1px solid var(--hairline); font-size:13px; }
.lvrow .bez{ color:var(--mist); }
.lvrow .mng{ color:var(--muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.lvrow .gp{ color:var(--gold-soft); font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right; }
.lvrow.eventual .bez::after{ content:" · Eventual"; color:var(--amber); font-size:11px; }
.lvrow.eventual .gp{ color:var(--muted); }
.lv__total{ margin-top:var(--s3); padding:var(--s3); background:linear-gradient(120deg,rgba(212,175,55,0.08),rgba(79,195,247,0.05));
  border:1px solid var(--hairline-2); border-radius:var(--radius-md); }
.lv__total .big{ font-family:"Playfair Display",serif; font-size:clamp(22px,3vw,30px); color:var(--gold-soft); }
.lv__total .lbl{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:600; }

/* 3D */
.app .model3d{ height:min(58vh,520px); border-radius:var(--radius-lg); border:1px solid var(--hairline-2); background:linear-gradient(180deg,#f2f5f8 0%,#e3e8ee 100%); overflow:hidden; position:relative; touch-action:none; }
.app .model3d__hint{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); max-width:82%; text-align:center; font-size:15px; line-height:1.45; color:#33383f; font-family:system-ui,-apple-system,sans-serif; z-index:2; }

/* Förderung */
.foerder{ display:grid; gap:var(--s3); }
.fcard{ background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:var(--radius-md); padding:var(--s3) var(--s4); }
.fhero{ display:flex; align-items:center; gap:var(--s3); }
.fdot{ width:14px; height:14px; border-radius:50%; flex:0 0 auto; }
.fhero.ok .fdot{ background:#5fbf7f; box-shadow:0 0 10px 2px rgba(95,191,127,.6); }
.fhero.no .fdot{ background:var(--amber); box-shadow:0 0 10px 2px rgba(232,160,75,.6); }
.fhero b{ font-size:17px; color:var(--offwhite); }
.frow{ display:flex; justify-content:space-between; gap:var(--s2); padding:7px 0; border-top:1px solid var(--hairline); font-size:14px; }
.frow:first-child{ border-top:0; }
.frow .k{ color:var(--mist); } .frow .v{ color:var(--gold-soft); font-variant-numeric:tabular-nums; }
.appfoot{ margin-top:var(--s6); text-align:center; font-size:11px; color:var(--muted); font-family:"Fira Code",monospace; }

/* KI-Berater */
.berater{ margin-top:var(--s5); }
.berater__h{ font-size:15px; color:var(--offwhite); margin:0 0 var(--s3); font-weight:600; }
.berater__h span{ color:var(--gold); }
.chips{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:var(--s2); }
.chip{ appearance:none; text-align:left; cursor:pointer; background:var(--card-bg); border:1px solid var(--hairline-2);
  border-radius:12px; padding:12px 14px; color:var(--offwhite); font-family:inherit; font-size:14px; display:flex; align-items:center; gap:10px; transition:.2s var(--ease); }
.chip:hover{ border-color:rgba(212,175,55,.4); background:rgba(212,175,55,.06); }
.chip.active{ border-color:var(--gold); }
.chip .num{ color:var(--gold); font-weight:700; flex:0 0 auto; }
.chat{ margin-top:var(--s3); background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:var(--radius-md); padding:var(--s3) var(--s4); }
/* WICHTIG: app.html lädt auch landing.css, deren `.chat{display:none}` (nur via .show sichtbar) sonst
   unser #chat dauerhaft versteckt. app.js zeigt es über das hidden-Attribut → hier hart durchsetzen. */
.berater .chat:not([hidden]){ display:block; }
.chat[hidden]{ display:none; }
.chat .q{ display:block; color:var(--gold-soft); font-weight:600; margin-bottom:10px; }
.chat .answer{ color:var(--mist); font-size:14.5px; line-height:1.6; }
.chat .answer p{ margin:0 0 10px; } .chat .answer table{ border-collapse:collapse; width:100%; font-size:13px; margin:8px 0; }
.chat .answer th,.chat .answer td{ border:1px solid var(--hairline-2); padding:5px 8px; text-align:left; }
.chat .thinking i{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--gold); margin-right:4px; animation:blink 1.2s var(--ease) infinite; }
.chat__disc{ margin:12px 0 0; font-size:11px; color:var(--muted); font-family:"Fira Code",monospace; }

/* ═══ Kalkulations-Konfigurator (E0→E1→E2) ═══ */
.kalk-empty{ color:var(--muted); font-size:13px; padding:var(--s3); }
/* Vorlage (Schritt 0) */
.kalk-vorlage{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:var(--s3); }
.kalk-vorlage__lbl{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-right:6px; width:100%; }
.vcard{ appearance:none; cursor:pointer; background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:12px;
  padding:9px 14px; color:var(--mist); font-family:inherit; font-size:13.5px; font-weight:600; transition:.2s var(--ease); }
.vcard:hover{ border-color:rgba(212,175,55,.4); color:var(--offwhite); }
.vcard.is-active{ border-color:var(--gold); color:var(--gold-soft); background:rgba(212,175,55,.08); }
/* E0 — Dachteil-Buttons */
.kalk-dachteile{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:var(--s2); }
.dt{ appearance:none; cursor:pointer; text-align:left; background:var(--card-bg); border:1px solid var(--hairline-2);
  border-radius:var(--radius-md); padding:14px 16px; display:flex; flex-direction:column; gap:4px; position:relative; transition:.2s var(--ease); }
.dt:hover{ border-color:rgba(212,175,55,.45); }
.dt.is-open{ border-color:var(--gold); background:rgba(212,175,55,.06); }
.dt__label{ font-size:13.5px; font-weight:600; color:var(--offwhite); }
.dt__val{ font-family:"Playfair Display",serif; font-size:22px; font-weight:600; color:var(--gold-soft); line-height:1; }
.dt__val small{ font-family:"Inter",sans-serif; font-size:11px; color:var(--mist); }
.dt__badge{ position:absolute; top:10px; right:12px; font-size:11px; color:var(--muted); background:rgba(244,241,234,.06); border-radius:8px; padding:1px 7px; }
/* E1/E2 — Drawer */
.kalk-drawer{ margin-top:var(--s3); }
.kalk-drawer:empty{ margin:0; }
.drawer__h{ display:flex; align-items:center; justify-content:space-between; gap:var(--s2); font-weight:700; color:var(--offwhite); font-size:16px; margin:0 0 var(--s2); }
.drawer__exp{ appearance:none; cursor:pointer; background:transparent; border:1px solid var(--hairline-2); border-radius:10px; color:var(--mist); font-family:inherit; font-size:12px; padding:6px 11px; }
.drawer__exp:hover{ border-color:var(--gold); color:var(--gold-soft); }
.kalk-man{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; background:var(--card-bg); border:1px dashed var(--hairline-2); border-radius:var(--radius-md); padding:12px var(--s3); margin-bottom:var(--s2); }
.kalk-man label{ color:var(--mist); font-size:13px; }
.kalk-man input{ width:120px; background:var(--ink); color:var(--offwhite); border:1px solid var(--hairline-2); border-radius:10px; padding:8px 10px; font-family:inherit; }
.kalk-man__ok{ appearance:none; cursor:pointer; background:var(--gold); color:#1a1206; border:0; border-radius:10px; font-weight:700; padding:8px 14px; }
/* Position (Paket-Akkordeon) */
.pos{ display:grid; grid-template-columns:auto 1fr; align-items:center; background:var(--card-bg); border:1px solid var(--hairline-2);
  border-radius:var(--radius-md); margin-bottom:8px; overflow:hidden; }
.pos.is-open{ border-color:rgba(212,175,55,.45); }
.pos__sel{ display:flex; align-items:center; justify-content:center; padding:0 4px 0 12px; }
.pos__sel input{ width:16px; height:16px; cursor:pointer; accent-color:var(--gold); }
.pos__head{ appearance:none; cursor:pointer; background:transparent; border:0; color:inherit; font-family:inherit; text-align:left;
  display:grid; grid-template-columns:auto 1fr auto auto auto auto; align-items:center; gap:10px; padding:13px 14px 13px 6px; width:100%; }
.pos__preis{ color:var(--offwhite); font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.pos__dot{ width:9px; height:9px; border-radius:50%; background:var(--muted); flex:0 0 auto; }
.pos.pf-required .pos__dot{ background:var(--gold); } .pos.pf-empfohlen .pos__dot{ background:var(--blue); }
.pos.pf-bedingt .pos__dot{ background:var(--amber); } .pos.pf-optional .pos__dot{ background:var(--muted); }
.pos__name{ font-weight:600; color:var(--offwhite); font-size:14px; }
.pos__opt{ color:var(--mist); font-size:12.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pos__mng{ color:var(--gold-soft); font-size:13px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.pos__chev{ color:var(--muted); font-size:12px; }
.pos__body{ grid-column:1 / -1; padding:4px 14px 12px; border-top:1px solid var(--hairline); display:grid; gap:10px; }
/* Bauteil + Optionen (E2) */
.bt{ background:rgba(244,241,234,.02); border:1px solid var(--hairline); border-radius:12px; padding:10px 12px; }
.bt.bt-auto{ border-color:rgba(232,160,75,.5); }
.bt__h{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:8px; }
.bt__name{ color:var(--offwhite); font-size:13px; font-weight:600; }
.badge-auto{ color:#1a1206; background:var(--amber); border-radius:7px; padding:1px 7px; font-size:10.5px; font-style:normal; font-weight:700; margin-left:6px; }
.bt__mng{ color:var(--gold-soft); font-size:12.5px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.bt__opts{ display:flex; flex-wrap:wrap; gap:8px; }
.opt{ appearance:none; cursor:pointer; text-align:left; background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:10px;
  padding:8px 11px; color:var(--mist); font-family:inherit; max-width:280px; transition:.2s var(--ease); }
.opt:hover{ border-color:rgba(212,175,55,.4); }
.opt.is-active{ border-color:var(--gold); background:rgba(212,175,55,.08); }
.opt__lbl{ display:block; color:var(--offwhite); font-size:13px; font-weight:600; }
.opt__exp{ display:block; color:var(--muted); font-size:11.5px; margin-top:2px; line-height:1.4; }
/* Größen-/Varianten-Picker je gewählter Option (nur wenn >1 Variante) */
.bt-groessen{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:8px; }
.bt-groessen__k{ color:var(--muted); font-size:11.5px; margin-right:2px; }
.ogz{ appearance:none; cursor:pointer; background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:8px; color:var(--offwhite); font-size:12px; padding:4px 9px; }
.ogz:hover{ border-color:rgba(212,175,55,.4); }
.ogz.is-active{ border-color:var(--gold); background:rgba(212,175,55,.12); color:var(--gold); font-weight:600; }
/* Manuelle Mengen-Eingabe (Bauteile ohne Modell-Menge) */
.bt.bt-man{ border-color:rgba(122,162,201,.4); }
.bt__manual{ color:var(--blue); background:rgba(122,162,201,.16); border-radius:7px; padding:1px 7px; font-size:10.5px; font-style:normal; font-weight:700; }
.bt__warum{ margin-top:8px; font-size:11.5px; color:var(--muted); line-height:1.4; font-style:italic; }
.bt__warn{ margin-top:8px; font-size:11.5px; color:var(--gold-soft); line-height:1.4; }
.bt-mng{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; padding-top:10px; border-top:1px dashed var(--hairline-2); }
.bt-mng__in{ width:130px; min-height:40px; background:var(--ink); color:var(--offwhite); border:1px solid var(--hairline-2); border-radius:10px; padding:8px 11px; font-family:inherit; font-size:14px; font-variant-numeric:tabular-nums; scroll-margin-bottom:96px; }
.bt-mng__in:focus{ outline:none; border-color:var(--gold); }
.bt-mng__u{ color:var(--mist); font-size:13px; }
.bt-mng__ok{ appearance:none; cursor:pointer; background:var(--gold); color:#1a1206; border:0; border-radius:10px; font-weight:700; font-size:13px; padding:9px 15px; min-height:40px; }
.bt-mng__ok:hover{ filter:brightness(1.08); }
.bt-mng__hint{ flex-basis:100%; color:var(--muted); font-size:11px; }
/* Export-Bar (sticky) */
.kalk-bar{ position:sticky; bottom:0; z-index:15; display:flex; align-items:center; gap:12px; margin-top:var(--s3);
  padding:12px var(--s3); background:var(--bar-bg); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid var(--hairline-2); border-radius:var(--radius-md); }
.kalk-bar[hidden]{ display:none; }
.kalk-bar__count{ color:var(--offwhite); font-weight:600; font-size:14px; }
.kalk-bar__preis{ margin-left:auto; color:var(--muted); font-size:12px; font-family:"Fira Code",monospace; }
.kalk-bar__btn{ appearance:none; cursor:pointer; background:var(--gold); color:#1a1206; border:0; border-radius:10px; font-family:inherit;
  font-weight:700; font-size:13.5px; padding:9px 18px; transition:.2s var(--ease); }
.kalk-bar__btn:hover{ filter:brightness(1.08); }
.kalk-bar__btn.ghost{ background:transparent; color:var(--mist); border:1px solid var(--hairline-2); }
.kalk-bar{ flex-wrap:wrap; }
.kalk-bar__profi{ appearance:none; cursor:pointer; background:transparent; color:var(--muted); border:1px solid var(--hairline-2); border-radius:10px; padding:7px 12px; font-family:inherit; font-size:13px; }
.kalk-bar__profi.is-on{ border-color:var(--gold-soft); color:var(--gold-soft); }
.kalk-profi{ display:inline-flex; align-items:center; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--muted); }
.kalk-profi__p50{ color:var(--gold-soft); font-variant-numeric:tabular-nums; font-weight:600; }
.kalk-profi__m{ display:inline-flex; align-items:center; gap:6px; }
.kalk-profi__m input{ width:58px; background:rgba(244,241,234,.04); border:1px solid var(--hairline-2); border-radius:8px; color:var(--offwhite); padding:4px 6px; font-family:inherit; font-size:13px; }
/* Export-Overlay */
.kalk-ov{ position:fixed; inset:0; z-index:50; background:rgba(6,16,26,.7); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:var(--s3); }
.kalk-ov__box{ background:var(--charcoal); border:1px solid var(--hairline-2); border-radius:var(--radius-lg); max-width:680px; width:100%; max-height:84vh; overflow:auto; padding:var(--s4); }
.kalk-ov__h{ display:flex; justify-content:space-between; align-items:baseline; font-weight:700; color:var(--offwhite); font-size:16px; margin-bottom:var(--s3); }
.kalk-ov__preis{ color:var(--muted); font-size:12px; font-family:"Fira Code",monospace; }
.kalk-ov__t{ border-collapse:collapse; width:100%; font-size:13px; }
.kalk-ov__t th{ text-align:left; color:var(--muted); font-weight:600; border-bottom:1px solid var(--hairline-2); padding:6px 8px; font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.kalk-ov__t td{ color:var(--mist); border-bottom:1px solid var(--hairline); padding:7px 8px; }
.kalk-ov__t td:last-child{ color:var(--offwhite); font-variant-numeric:tabular-nums; white-space:nowrap; }
.kalk-ov__a{ display:flex; gap:10px; justify-content:flex-end; margin-top:var(--s3); }
/* Konformitäts-Hinweise (Mindestneigung / Zusatzmaßnahme) */
.kalk-karte:empty{ display:none; }
.kalk-karte:not(:empty){ margin-bottom:var(--s3); }
.kkarte{ border:1px solid var(--hairline-2); border-radius:var(--radius-lg); padding:14px 16px; background:rgba(244,241,234,.025); }
.kkarte__top{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.kkarte__dot{ width:10px; height:10px; border-radius:50%; flex:0 0 auto; background:var(--muted); }
.kkarte__amp{ color:var(--offwhite); font-size:13.5px; font-weight:600; }
.kkarte__preis{ margin-left:auto; color:var(--gold-soft); font-size:14px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.kkarte--ok{ border-color:rgba(46,158,91,.42); } .kkarte--ok .kkarte__dot{ background:#2e9e5b; }
.kkarte--warn{ border-color:rgba(232,160,75,.42); } .kkarte--warn .kkarte__dot{ background:var(--amber); }
.kkarte--bad{ border-color:rgba(224,90,74,.45); } .kkarte--bad .kkarte__dot{ background:#e05a4a; }
.kkarte__ann{ margin-top:10px; font-size:12px; color:var(--amber); line-height:1.4; }
.kkarte__frag{ margin-top:10px; }
.kkarte__fragh{ font-size:12px; color:var(--muted); }
.kkarte__frag ul{ margin:6px 0 0; padding-left:18px; color:var(--offwhite); font-size:12.5px; }
.kkarte__frag li{ margin:2px 0; }
.kalk-hinweise{ display:grid; gap:8px; }
.kalk-hinweise:empty{ display:none; }
.kalk-hinweise:not(:empty){ margin-bottom:var(--s3); }
.khinw{ display:flex; align-items:flex-start; gap:10px; padding:11px 14px; border-radius:var(--radius-md);
  font-size:13.5px; line-height:1.45; border:1px solid var(--hairline-2); background:var(--card-bg); color:var(--mist); }
.khinw__ic{ flex:0 0 auto; width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; margin-top:1px; }
.khinw--sperre{ border-color:rgba(224,90,74,.55); background:rgba(224,90,74,.08); color:var(--offwhite); }
.khinw--sperre .khinw__ic{ background:#e05a4a; color:#fff; }
.khinw--pflicht{ border-color:rgba(232,160,75,.5); background:rgba(232,160,75,.08); color:var(--offwhite); }
.khinw--pflicht .khinw__ic{ background:var(--amber); color:#1a1206; }
.khinw--normativ .khinw__ic, .khinw--excludes_soft .khinw__ic, .khinw--info .khinw__ic{ background:rgba(122,162,201,.25); color:var(--blue); }

@media (max-width:560px){ .pos__head{ grid-template-columns:auto 1fr auto auto; } .pos__opt,.pos__mng{ display:none; } .kalk-dachteile{ grid-template-columns:repeat(2,1fr); } }

/* — Gerüst-Tab — */
.gr-hero{ text-align:center; padding:18px 20px; margin-bottom:14px; border-radius:var(--radius-md);
  border:1px solid rgba(232,160,75,.28); background:rgba(232,160,75,.07); }
.gr-hero__k{ display:block; font-size:13px; color:var(--mist); letter-spacing:.02em; }
.gr-hero__v{ display:block; font-size:40px; font-weight:700; color:var(--offwhite); line-height:1.1; margin:4px 0 2px; }
.gr-hero__v small{ font-size:17px; font-weight:500; color:var(--mist); margin-left:5px; }
.gr-hero__band{ display:block; font-size:12.5px; color:var(--mist); }
.gr-rows{ margin-bottom:14px; }
.gr-side{ padding:14px 16px; margin-bottom:14px; border-radius:var(--radius-md); border:1px solid var(--hairline-2); background:var(--card-bg); }
.gr-side__h{ font-weight:600; color:var(--offwhite); margin-bottom:4px; }
.gr-side__p{ font-size:12.5px; color:var(--mist); line-height:1.5; margin:0 0 10px; }
.gr-side__row{ display:flex; align-items:center; gap:10px; }
.gr-side__row label{ font-size:13px; color:var(--mist); min-width:92px; }
.gr-side__row input[type=range]{ flex:1; accent-color:var(--amber,#d4af37); }
.gr-side__row output{ font-variant-numeric:tabular-nums; color:var(--offwhite); font-weight:600; min-width:58px; text-align:right; }
.gr-side__meta{ font-size:12.5px; color:var(--mist); margin-top:8px; }
.gr-side__meta b{ color:var(--offwhite); }
.gr-vor__h{ font-weight:600; color:var(--offwhite); margin-bottom:6px; }
.gr-vor__l{ margin:0 0 4px; padding-left:18px; color:var(--mist); font-size:13px; line-height:1.7; }
@media (max-width:480px){
  .gr-side__row{ flex-wrap:wrap; }
  .gr-side__row label{ width:100%; margin-bottom:2px; }
  .gr-side__row input[type=range]{ flex:1 1 70%; }
  .gr-side__row output{ flex:0 0 auto; min-width:46px; }
}

/* — Förderung (Profi) — */
.fform{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px 12px; margin-bottom:14px; }
.fform label{ display:flex; flex-direction:column; font-size:12px; color:var(--mist); gap:3px; }
.fform input, .fform select{ padding:8px 10px; border-radius:9px; border:1px solid var(--hairline-2); background:var(--card-bg); color:var(--offwhite); font-size:13.5px; }
.fform__chk{ flex-direction:row !important; align-items:center; gap:8px; grid-column:1/-1; font-size:13px; color:var(--offwhite); }
.fform__chk input{ width:auto; }
.fwege{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; }
.fcard__h{ font-weight:600; color:var(--offwhite); margin-bottom:6px; font-size:14px; }
.fcard--rec{ border-color:rgba(232,160,75,.45); background:rgba(232,160,75,.06); position:relative; }
.frec{ position:absolute; top:-9px; right:10px; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#1a1206; background:var(--amber,#d4af37); padding:2px 8px; border-radius:6px; }
.frow--sum{ border-top:1px solid var(--hairline-2); margin-top:4px; padding-top:6px; font-weight:600; }
.frow--sum .v{ color:var(--amber,#d4af37); }
.fbed{ margin:0; padding-left:18px; color:var(--mist); font-size:12.5px; line-height:1.6; }
.freg-h{ font-size:12px; color:var(--mist); margin:2px 0 8px; line-height:1.45; }
@media (max-width:560px){ .fform{ grid-template-columns:1fr; } .fwege{ grid-template-columns:1fr; } }

/* ── Tab Angebot — Pro-Position-Preiswahl (p10/p50/p90) ── */
.agtop{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:var(--s3); }
.agtop__h{ font-family:"Playfair Display",serif; font-weight:600; font-size:clamp(20px,3vw,28px); color:var(--offwhite); margin:0; }
.agtop__sub{ font-size:12.5px; color:var(--muted); margin:6px 0 0; max-width:48ch; }
.agtop__sum{ text-align:right; }
.agtop__sumv{ display:block; font-family:"Playfair Display",serif; font-size:clamp(22px,3.4vw,30px); color:var(--gold-soft); font-variant-numeric:tabular-nums; line-height:1.05; }
.agtop__suml{ font-size:11px; color:var(--muted); }
.agquick{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12px; color:var(--muted); margin-bottom:var(--s3); }
.agq{ appearance:none; cursor:pointer; background:transparent; color:var(--muted); border:1px solid var(--hairline-2); border-radius:8px; padding:5px 11px; font-family:inherit; font-size:12px; }
.agq:hover{ color:var(--gold-soft); border-color:var(--gold-soft); }
.aglist{ display:grid; gap:10px; }
.agrow{ border:1px solid var(--hairline); border-radius:12px; padding:11px 14px; background:rgba(244,241,234,.02); }
.agrow__h{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:9px; }
.agrow__name{ color:var(--offwhite); font-size:13.5px; font-weight:600; }
.agrow__eur{ color:var(--gold-soft); font-size:14px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.agseg-wrap{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.agseg{ appearance:none; cursor:pointer; background:rgba(244,241,234,.03); color:var(--muted); border:1px solid var(--hairline-2); padding:6px 15px; font-family:inherit; font-size:12.5px; }
.agseg:first-child{ border-radius:9px 0 0 9px; }
.agseg:nth-of-type(3){ border-radius:0 9px 9px 0; }
.agseg+.agseg{ border-left:0; }
.agseg.is-on{ background:var(--gold); color:#1a1206; border-color:var(--gold); font-weight:600; }
.agrow__band{ font-size:11px; color:var(--muted); font-family:"Fira Code",monospace; margin-left:auto; }
.agfoot{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:var(--s4); }
.agfoot__disc{ font-size:11px; color:var(--muted); }

/* ── Ziehbarer Preis-Slider je Position (natives range, gr-frei-Muster) ── */
.agslide{ display:flex; align-items:center; gap:10px; margin-top:10px; }
.agsl{ -webkit-appearance:none; appearance:none; flex:1 1 auto; min-width:120px; height:6px; border-radius:5px;
  background:linear-gradient(90deg, var(--gold) calc(var(--p,50)*1%), var(--hairline-2) calc(var(--p,50)*1%)); cursor:pointer; }
.agsl:focus{ outline:2px solid var(--blue); outline-offset:4px; }
.agsl::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:18px; height:18px; border-radius:50%; background:var(--gold); border:2px solid #1a1206; cursor:grab; box-shadow:0 1px 4px rgba(0,0,0,.4); }
.agsl::-moz-range-thumb{ width:18px; height:18px; border-radius:50%; background:var(--gold); border:2px solid #1a1206; cursor:grab; }
.agsl:active::-webkit-slider-thumb{ cursor:grabbing; }
.agsl__eur{ min-width:78px; text-align:right; color:var(--gold-soft); font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; }
.agsl__num{ width:78px; background:rgba(244,241,234,.04); border:1px solid var(--hairline-2); border-radius:8px; color:var(--offwhite); padding:5px 7px; font-family:inherit; font-size:13px; text-align:right; }
.agsl-fix{ margin-top:10px; font-size:12px; color:var(--muted); }
@media (max-width:560px){ .agsl__num{ display:none; } }

/* Leistungsbeschreibung (Langtext) je Angebot-Position */
.agdesc{ margin-top:10px; font-size:12px; }
.agdesc summary{ cursor:pointer; color:var(--gold-soft); list-style:none; user-select:none; }
.agdesc summary::-webkit-details-marker{ display:none; }
.agdesc summary::before{ content:"▸ "; }
.agdesc[open] summary::before{ content:"▾ "; }
.agdesc p{ margin:8px 0 0; color:var(--mist); line-height:1.5; }

/* Angebot: Modus-Umschalter Automatisch/Präzise */
.agmod{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12px; color:var(--muted); margin-bottom:var(--s3); }
.agmodb{ appearance:none; cursor:pointer; background:transparent; color:var(--muted); border:1px solid var(--hairline-2); border-radius:8px; padding:6px 14px; font-family:inherit; font-size:12.5px; }
.agmodb.is-on{ background:var(--gold); color:#1a1206; border-color:var(--gold); font-weight:600; }

/* Dämmstärke-Slider je Dämmstoff (live U-Wert + GEG/BEG-Ampel) */
.bt-dmm{ margin-top:12px; padding-top:10px; border-top:1px dashed var(--hairline-2); }
.bt-dmm__h{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; font-size:11.5px; color:var(--muted); margin-bottom:8px; }
.bt-dmm__u{ font-variant-numeric:tabular-nums; }
.bt-dmm__uv{ color:var(--offwhite); }
.bt-dmm__amp{ font-weight:600; }
.bt-dmm.is-beg .bt-dmm__amp, .bt-dmm.is-beg .bt-dmm__uv{ color:#3aa869; }
.bt-dmm.is-geg .bt-dmm__amp{ color:var(--gold-soft); }
.bt-dmm.is-rot .bt-dmm__amp, .bt-dmm.is-rot .bt-dmm__uv{ color:#e05a4a; }
.bt-dmm__row{ display:flex; align-items:center; gap:10px; }
.bt-dmm__sl{ -webkit-appearance:none; appearance:none; flex:1; height:6px; border-radius:5px; background:var(--hairline-2); cursor:pointer; accent-color:var(--gold); }
.bt-dmm__sl::-webkit-slider-thumb{ -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:var(--gold); border:2px solid #1a1206; cursor:grab; }
.bt-dmm__sl::-moz-range-thumb{ width:18px; height:18px; border-radius:50%; background:var(--gold); border:2px solid #1a1206; cursor:grab; }
.bt-dmm__mm{ min-width:64px; text-align:right; color:var(--gold-soft); font-size:13px; font-variant-numeric:tabular-nums; }
.bt-dmm__q{ display:flex; gap:8px; margin-top:8px; }
