:root {
  --kf-bg: #f5f5f5;
  --kf-panel: #ffffff;
  --kf-ink: #111;
  --kf-muted: #666;
  --kf-line: #e3e3e3;
  --kf-accent: #111;
  --kf-accent-soft: #efefef;
  --kf-radius: 0;
  --kf-font: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
:root { accent-color: #000; }   /* Kontrollkaestchen und Auswahlfelder schwarz statt Systemblau */
html, body { margin: 0; height: 100%; background: var(--kf-bg); color: var(--kf-ink); font-family: var(--kf-font); }
.kf-root { height: 100vh; }   /* Fallback; 100dvh weiter unten beruecksichtigt die Adressleiste mobiler Browser */
.kf-loading { display: grid; place-items: center; height: 100%; color: var(--kf-muted); }

.kf { display: grid; grid-template-columns: minmax(0, 1fr) 380px; height: 100%; }
.kf-stage { position: relative; min-height: 320px; }
.kf-canvas { width: 100%; height: 100%; display: block; touch-action: none; cursor: grab; }
.kf-canvas:active { cursor: grabbing; }

.kf-toolbar {
  position: absolute; left: 16px; top: 16px; display: flex; gap: 6px; flex-wrap: wrap;
  background: rgba(255,255,255,.92); border: 1px solid var(--kf-line); border-radius: 0; padding: 6px;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}
.kf-toolbar button {
  font: inherit; font-size: 13px; border: 0; background: transparent; color: var(--kf-ink);
  padding: 6px 10px; border-radius: 0; cursor: pointer;
}
.kf-toolbar button:hover { background: var(--kf-accent-soft); color: var(--kf-accent); }
.kf-sep { width: 1px; background: var(--kf-line); margin: 4px 2px; }
.kf-hint { position: absolute; left: 16px; bottom: 12px; font-size: 12px; color: var(--kf-muted); }

.kf-side {
  background: var(--kf-panel); border-left: 1px solid var(--kf-line);
  display: flex; flex-direction: column; min-height: 0;
}
.kf-head { padding: 22px 22px 10px; }
.kf-eyebrow { font-size: 11px; letter-spacing: .12em; color: var(--kf-muted); }
.kf-head h1 { font-size: 22px; font-weight: 600; margin: 4px 0 6px; }
.kf-desc { font-size: 13px; line-height: 1.45; color: var(--kf-muted); margin: 0; white-space: pre-line; }


.kf-props { flex: 1; overflow-y: auto; padding: 4px 22px 16px; }
.kf-group { border-top: 1px solid var(--kf-line); padding: 12px 0 6px; }
.kf-group:first-child { border-top: 0; }
.kf-group h2 { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--kf-muted); margin: 0 0 8px; font-weight: 600; }
.kf-prop { display: grid; grid-template-columns: 42% 58%; align-items: center; gap: 8px; padding: 5px 0; font-size: 14px; }
.kf-label em { display: inline-block; margin-left: 6px; font-style: normal; font-size: 10px; color: var(--kf-accent); background: var(--kf-accent-soft); padding: 1px 5px; border-radius: 0; vertical-align: 1px; }
.kf-prop select {
  min-width: 0;
  font: inherit; font-size: 13px; width: 100%; padding: 6px 8px; border: 1px solid var(--kf-line);
  border-radius: 0; background: #fff; color: var(--kf-ink);
}
.kf-prop select:focus { outline: 2px solid var(--kf-accent-soft); border-color: var(--kf-accent); }
.kf-value { font-size: 13px; color: var(--kf-muted); }

.kf-price { border-top: 1px solid var(--kf-line); padding: 14px 22px 18px; background: #fafafa; }
.kf-price-head { display: flex; justify-content: space-between; align-items: center; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--kf-muted); font-weight: 600; }
.kf-switch { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 13px; color: var(--kf-ink); display: flex; gap: 6px; align-items: center; cursor: pointer; }
.kf-pi, .kf-line { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; padding: 3px 0; }
.kf-price-items { margin-top: 8px; }
.kf-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--kf-line); }
.kf-total-label { font-size: 13px; color: var(--kf-muted); }
.kf-total-value { font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; }
.kf-lines { margin-top: 8px; font-size: 13px; }
.kf-lines summary { cursor: pointer; color: var(--kf-accent); }
.kf-lines-body { max-height: 180px; overflow-y: auto; margin-top: 6px; }
.kf-lines-title { font-weight: 600; margin-top: 6px; }
.kf-line span:last-child, .kf-pi span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.kf-note { color: var(--kf-muted); font-size: 11px; margin: 8px 0 0; }

/* ---- Smartphone und Tablet ----
   Hochformat: 3D-Bild oben fest, darunter die Einstellungen mit eigenem Scrollbereich; Preis und Teilen bleiben unten
   sichtbar. Querformat (geringe Hoehe): 3D-Bild links, Einstellungen rechts – wie am Desktop, nur kompakter. */
.kf-root { height: 100dvh; }
@media (max-width: 860px) and (orientation: portrait) {
  .kf { grid-template-columns: 1fr; grid-template-rows: minmax(220px, 44%) minmax(0, 1fr); height: 100%; }
  .kf-stage { min-height: 0; }
  .kf-side { border-left: 0; border-top: 1px solid var(--kf-line); min-height: 0; }
  .kf-head { padding: 12px 16px 4px; }
  .kf-head h1 { font-size: 18px; margin: 2px 0 2px; }
  .kf-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; }
  .kf-props { padding: 2px 16px 12px; -webkit-overflow-scrolling: touch; }
  .kf-price { padding: 8px 16px 10px; }
  .kf-price-items, .kf-note { display: none; }
  .kf-total { margin-top: 4px; padding-top: 4px; }
  .kf-total-value { font-size: 19px; }
  .kf-lines { margin-top: 4px; }
  .kf-foot { padding: 8px 16px calc(8px + env(safe-area-inset-bottom)); }
  .kf-banner { margin: 10px 16px 0; }
  .kf-tabs { margin: 4px 16px 2px; }
}
@media (max-height: 560px) and (orientation: landscape) {
  .kf { grid-template-columns: minmax(0, 1fr) minmax(300px, 46%); height: 100%; }
  .kf-stage { min-height: 0; }
  .kf-head { padding: 10px 16px 2px; }
  .kf-head h1 { font-size: 17px; margin: 2px 0; }
  .kf-desc { display: none; }
  .kf-props { padding: 2px 16px 10px; }
  .kf-price { padding: 6px 16px 8px; }
  .kf-price-items, .kf-note { display: none; }
  .kf-total { margin-top: 2px; padding-top: 4px; }
  .kf-total-value { font-size: 18px; }
  .kf-lines { margin-top: 2px; }
  .kf-foot { padding: 6px 16px calc(6px + env(safe-area-inset-bottom)); }
  .kf-banner { margin: 8px 16px 0; }
}
/* Auf kleinen Bildschirmen scrollt die ganze Seitenleiste (Kopf und Einstellungen); Preis und Teilen bleiben unten stehen */
@media (max-width: 860px) and (orientation: portrait), (max-height: 560px) and (orientation: landscape) {
  .kf-side { overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
  .kf-props { flex: 1 0 auto; overflow: visible; }
  .kf-price { position: sticky; bottom: var(--kf-foot-h, 50px); z-index: 2; box-shadow: 0 -6px 12px -10px rgba(0,0,0,.25); }
  .kf-foot { position: sticky; bottom: 0; z-index: 2; background: var(--kf-panel); }
  .kf-price-head { font-size: 11px; }
  .kf-price-title { display: none; }
  .kf-price-head { justify-content: flex-end; margin-bottom: -22px; position: relative; z-index: 1; pointer-events: none; }
  .kf-price-head .kf-switch { pointer-events: auto; }
  .kf-total { border-top: 0; margin-top: 0; padding-top: 0; flex-direction: column; align-items: flex-start; gap: 0; }
}
/* Werkzeugleiste auf kleinen Bildschirmen: eine Zeile, bei Bedarf seitlich wischen */
@media (max-width: 860px), (max-height: 560px) {
  .kf-hint { display: none; }
  .kf-toolbar { left: 8px; right: 8px; top: 8px; flex-wrap: nowrap; overflow-x: auto; gap: 2px; padding: 4px;
    scrollbar-width: none; -webkit-overflow-scrolling: touch; width: max-content; max-width: calc(100% - 16px); }
  .kf-toolbar::-webkit-scrollbar { display: none; }
  .kf-toolbar button { font-size: 12px; padding: 6px 8px; white-space: nowrap; flex: none; }
  .kf-prop { font-size: 13px; padding: 4px 0; }
  .kf-prop select, .kf-sw-current { font-size: 14px; min-height: 36px; }   /* ausreichend grosse Tippflaechen */
}

/* Auswahl Gruppe / Tisch */
.kf-intro { font-size: 12px; line-height: 1.45; color: var(--kf-muted); margin: 6px 0 4px; }
.kf-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; }
.kf-label em.kf-over { color: #111; background: #ededed; }
.kf-reset { font: inherit; font-size: 11px; color: var(--kf-accent); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; }

/* ---- Teilen, Sprache, Anmeldung ---- */
[hidden] { display: none !important; }
.kf-message { display: grid; place-items: center; height: 100%; padding: 24px; text-align: center; color: var(--kf-muted); font-size: 16px; }
.kf-head-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.kf-lang { display: flex; border: 1px solid var(--kf-line); border-radius: 0; overflow: hidden; }
.kf-lang button { font: inherit; font-size: 11px; letter-spacing: .06em; border: 0; background: #fff; color: var(--kf-muted); padding: 3px 8px; cursor: pointer; }
.kf-lang button[aria-pressed="true"] { background: var(--kf-accent); color: #fff; }
.kf-banner { margin: 16px 22px 0; padding: 10px 12px; border-radius: 0; background: var(--kf-accent-soft); color: var(--kf-accent); font-size: 13px; }
.kf-banner strong { display: block; }
.kf-banner small { color: var(--kf-muted); }
.kf-banner p { margin: 6px 0 0; color: var(--kf-ink); line-height: 1.45; }
.kf-pi-discount span { color: var(--kf-accent); }
.kf-foot { display: flex; align-items: center; gap: 10px; padding: 10px 22px; border-top: 1px solid var(--kf-line); font-size: 12px; }
.kf-foot-status { color: var(--kf-muted); margin-left: auto; }
.kf-btn { font: inherit; font-size: 13px; border: 1px solid var(--kf-line); background: #fff; color: var(--kf-ink); padding: 7px 14px; border-radius: 0; cursor: pointer; text-decoration: none; display: inline-block; }
.kf-btn:hover { border-color: var(--kf-accent); }
.kf-btn-primary { background: var(--kf-accent); border-color: var(--kf-accent); color: #fff; }
.kf-btn-primary:hover { filter: brightness(1.08); }
.kf-link { font: inherit; font-size: 12px; border: 0; background: none; color: var(--kf-accent); cursor: pointer; padding: 0; text-decoration: underline; }
.kf-dialog { border: 0; border-radius: 0; padding: 0; width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.25); color: var(--kf-ink); font-family: var(--kf-font); }
.kf-dialog::backdrop { background: rgba(0,0,0,.35); }
.kf-form { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px; font-size: 14px; }
.kf-form h2 { margin: 0; font-size: 18px; font-weight: 600; }
.kf-form h3 { margin: 10px 0 0; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--kf-muted); }
.kf-form label:not(.kf-check) { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--kf-muted); }
.kf-form input:not([type=checkbox]), .kf-form select, .kf-form textarea { font: inherit; font-size: 14px; color: var(--kf-ink); padding: 7px 9px; border: 1px solid var(--kf-line); border-radius: 0; background: #fff; min-width: 0; }
.kf-form fieldset { border: 1px solid var(--kf-line); border-radius: 0; padding: 8px 12px 10px; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.kf-form legend { font-size: 12px; color: var(--kf-muted); padding: 0 4px; }
.kf-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kf-check { display: flex; gap: 8px; align-items: center; font-size: 14px; cursor: pointer; }
.kf-price-opts { display: flex; flex-direction: column; gap: 6px; padding-left: 22px; }
.kf-off { opacity: .45; }
.kf-actions { display: flex; justify-content: flex-end; gap: 8px; }
.kf-muted { color: var(--kf-muted); font-size: 13px; margin: 0; }
.kf-error { color: #000; font-weight: 600; font-size: 13px; margin: 0; border-left: 3px solid #000; padding-left: 8px; }
.kf-result { display: grid; grid-template-columns: 1fr auto auto; gap: 6px; align-items: center; background: var(--kf-accent-soft); padding: 10px; border-radius: 0; }
.kf-result span { grid-column: 1 / -1; font-size: 12px; color: var(--kf-accent); }
.kf-links { display: flex; flex-direction: column; gap: 6px; max-height: 200px; overflow-y: auto; }
.kf-linkrow { display: grid; grid-template-columns: 1fr auto; gap: 0 10px; font-size: 13px; padding: 6px 0; border-bottom: 1px solid var(--kf-line); }
.kf-linkrow a { color: var(--kf-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kf-linkrow small { grid-column: 1; color: var(--kf-muted); font-size: 11px; }
.kf-linkrow .kf-link { grid-row: 1 / 3; grid-column: 2; align-self: center; }
[data-mode="shared"] .kf-canvas { cursor: default; }

/* ---- 3D-Download und AR ---- */
.kf-menu { position: absolute; z-index: 5; display: flex; flex-direction: column; min-width: 220px; max-width: 300px; background: #fff; border: 1px solid var(--kf-line); border-radius: 0; padding: 6px; box-shadow: 0 8px 24px rgba(0,0,0,.10); }
.kf-menu button { font: inherit; font-size: 13px; text-align: left; border: 0; background: none; padding: 8px 10px; border-radius: 0; cursor: pointer; color: var(--kf-ink); }
.kf-menu button:hover { background: var(--kf-accent-soft); color: var(--kf-accent); }
.kf-menu small { color: var(--kf-muted); font-size: 11px; line-height: 1.4; padding: 6px 10px 4px; border-top: 1px solid var(--kf-line); margin-top: 4px; }
.kf-ar { align-items: center; text-align: center; }
.kf-ar .kf-actions { align-self: stretch; }
.kf-qr svg { width: 220px; height: 220px; display: block; }
.kf-ar-go { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; padding: 12px 18px; }
.kf-ar-go img { width: 44px; height: 32px; object-fit: cover; border-radius: 0; }

/* ---- Bemassung ---- */
.kf-dims { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.kf-dim-ext { stroke: #888; stroke-width: 0.8; fill: none; stroke-dasharray: 3 3; }
.kf-dim-line { stroke: #444; stroke-width: 1; fill: none; }
.kf-dim-line.kf-dim-main { stroke: var(--kf-accent); stroke-width: 1.3; }
.kf-dim-text { font: 600 12px var(--kf-font); fill: #333; text-anchor: middle; paint-order: stroke; stroke: rgba(245,245,245,.95); stroke-width: 4px; stroke-linejoin: round; font-variant-numeric: tabular-nums; }
.kf-dim-text.kf-dim-main { fill: var(--kf-accent); font-size: 13px; }
.kf-toolbar button[aria-pressed="true"] { background: var(--kf-accent); color: #fff; }

/* ---- Nachricht des Absenders ---- */
.kf-msg-dlg { width: min(420px, calc(100vw - 32px)); }
.kf-msg p { margin: 0; line-height: 1.5; font-size: 15px; white-space: normal; }
.kf-msg .kf-check { font-size: 13px; color: var(--kf-muted); }

/* ---- Interaktoren im 3D-Bild ---- */
.kf-ia { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.kf-ia-btn {
  position: absolute; left: 0; top: 0; pointer-events: auto; width: 34px; height: 34px; border-radius: 0;
  border: 2px solid var(--kf-accent); background: rgba(255,255,255,.95); color: var(--kf-accent);
  font: 600 22px/1 var(--kf-font); display: grid; place-items: center; padding: 0 0 2px; cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,.15); transition: background .15s, color .15s;
}
.kf-ia-btn:hover, .kf-ia-btn:focus-visible { background: var(--kf-accent); color: #fff; outline: none; }
.kf-ia-remove { border-color: #888; color: #555; }
.kf-ia-remove:hover, .kf-ia-remove:focus-visible { background: #555; border-color: #555; color: #fff; }
@media (pointer: coarse) { .kf-ia-btn { width: 44px; height: 44px; font-size: 26px; } }
.kf-label em.kf-inherit { color: var(--kf-muted); background: #f2f2f2; }
.kf-note-dev { font-size: 11px; color: #111; }

/* ---- Alle Tische / einzelner Tisch ---- */
.kf-summary { font-size: 13px; color: var(--kf-ink); margin: 0 0 6px; font-variant-numeric: tabular-nums; }
.kf-tabs { display: flex; align-items: center; gap: 8px; margin: 4px 22px 2px; padding: 6px 8px; border-radius: 0; background: var(--kf-accent-soft); font-size: 13px; }
.kf-tabs strong { color: var(--kf-accent); font-weight: 600; }
.kf-nav-btn { font: 600 16px/1 var(--kf-font); width: 26px; height: 26px; border-radius: 0; border: 1px solid var(--kf-line); background: #fff; color: var(--kf-accent); cursor: pointer; padding: 0; }
.kf-nav-btn:disabled { opacity: .35; cursor: default; }
.kf-nav-all { margin-left: auto; }
.kf-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #111; margin-left: 6px; vertical-align: 2px; }
.kf-per-row .kf-label .kf-link { font-size: 14px; color: var(--kf-ink); }
.kf-per-cell { flex-direction: column; align-items: stretch; gap: 4px; }
.kf-per-cell select { min-width: 0; font: inherit; font-size: 13px; width: 100%; padding: 6px 8px; border: 1px solid var(--kf-line); border-radius: 0; background: #fff; color: var(--kf-ink); }
.kf-per-table summary { cursor: pointer; color: var(--kf-muted); font-size: 13px; padding: 2px 0; }
.kf-per-row { grid-template-columns: 22% 78%; }
.kf-per-cell { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 6px; }

/* ---- Vorschaubilder fuer Oberflaechen ---- */
.kf-sw-current { display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; font: inherit; font-size: 13px; color: var(--kf-ink);
  padding: 4px 8px 4px 4px; border: 1px solid var(--kf-line); border-radius: 0; background: #fff; cursor: pointer; text-align: left; }
.kf-sw-current:hover, .kf-sw-current[aria-expanded="true"] { border-color: var(--kf-accent); }
.kf-sw-current img, .kf-sw-current .kf-sw-color, .kf-sw-none { width: 40px; height: 26px; object-fit: cover; border-radius: 0; flex: none; border: 1px solid rgba(0,0,0,.12); box-sizing: border-box; }
.kf-sw-color { display: inline-block; }
.kf-sw-none { display: inline-block; background: repeating-linear-gradient(45deg, #eee 0 4px, #fff 4px 8px); }
.kf-sw-current span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kf-sw-current b { color: var(--kf-muted); font-weight: 400; }
.kf-sw-static { cursor: default; border-color: transparent; padding-left: 0; }
.kf-sw-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; padding: 8px 0 4px; max-height: 300px; overflow-y: auto; }
.kf-sw { display: flex; flex-direction: column; gap: 3px; padding: 3px; border: 1px solid transparent; border-radius: 0; background: none; cursor: pointer; font: inherit; font-size: 10.5px; line-height: 1.25; color: var(--kf-muted); text-align: left; }
.kf-sw img, .kf-sw .kf-sw-color, .kf-sw .kf-sw-none { width: 100%; height: 40px; object-fit: cover; border-radius: 0; border: 1px solid rgba(0,0,0,.12); box-sizing: border-box; }
.kf-sw span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kf-sw:hover { border-color: var(--kf-line); color: var(--kf-ink); }
.kf-sw[aria-selected="true"] { border-color: var(--kf-accent); background: var(--kf-accent-soft); color: var(--kf-accent); }

/* ---- Katalog ---- */
.kf-root.kc-root { height: auto; min-height: 100vh; }
.kc { max-width: 1180px; margin: 0 auto; padding: 28px 24px 40px; }
.kc-head { margin-bottom: 18px; }
.kc-head[hidden] { display: none; }
.kc-nav-hint { margin: 2px 0 0 26px; font-size: 12px; }
.kc-head-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.kc-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 14px; font-size: 13px; color: var(--kf-muted); }
.kc-crumbs:empty { display: none; }
.kc-crumbs .kf-link { font-size: 13px; color: var(--kf-accent); text-decoration: none; }
.kc-crumbs .kf-link:hover { text-decoration: underline; }
.kc-title { font-size: 26px; font-weight: 600; margin: 8px 0 0; }
.kc-banner { margin: 0 0 18px; }
.kc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.kc-tile { display: flex; flex-direction: column; align-items: stretch; gap: 6px; text-align: left; font: inherit; color: var(--kf-ink);
  background: var(--kf-panel); border: 1px solid var(--kf-line); border-radius: 0; padding: 10px 10px 12px; cursor: pointer;
  transition: border-color .15s, box-shadow .15s, transform .15s; }
.kc-tile:hover, .kc-tile:focus-visible { border-color: var(--kf-accent); box-shadow: 0 6px 18px rgba(0,0,0,.07); outline: none; }
.kc-tile img, .kc-noimg { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #fff; border-radius: 0; display: block; }
.kc-noimg { background: repeating-linear-gradient(45deg, #f2f2f2 0 8px, #fff 8px 16px); }
.kc-name { font-size: 14px; font-weight: 500; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.kc-tile small { font-size: 12px; color: var(--kf-muted); }
.kc-folder .kc-name::before { content: ""; display: inline-block; width: 12px; height: 9px; margin-right: 6px; border: 1.5px solid var(--kf-muted); border-radius: 0; vertical-align: 0; }
.kc-badge { align-self: flex-start; font-size: 12px; font-weight: 600; color: #fff; background: var(--kf-accent); padding: 3px 9px; border-radius: 0; }
.kc-foot { margin-top: 28px; border: 0; padding: 12px 0 0; }
.kc-detail-body img { width: 100%; max-height: 320px; object-fit: contain; background: #fff; border-radius: 0; }
.kf-back { color: var(--kf-accent); text-decoration: none; letter-spacing: .06em; }
.kf-back:hover { text-decoration: underline; }
@media (max-width: 560px) { .kc { padding: 18px 16px 32px; } .kc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .kc-title { font-size: 21px; } }

/* ---- Benutzerkonten ---- */
.kf-small { font-size: 12px; margin: 0; }
.kf-hint-max { display: block; font-size: 11px; color: var(--kf-muted); margin-top: 2px; font-weight: 400; }
.kf-off-badge { color: #000; font-weight: 700; text-transform: uppercase; font-size: 10px; letter-spacing: .06em; }
.kf-linkrow-acts { display: inline-flex; gap: 10px; }
.kf-foot a.kf-link { color: var(--kf-accent); }
