/* ============================================================
   PAUL Platform — Stylesheet
   Corporate Identity: Greenfield Industrial (greenfield-industrial.de)
   Analysiert & festgelegt April 2026 — UNVERÄNDERLICHE CI-GRUNDLAGE
   Alle Farben aus Avada AWB Color System extrahiert.
   Single Source of Truth: CI_GUIDELINES.md + tailwind.config.js
   ============================================================ */

/* --- PAUL CI Custom Properties (Greenfield Industrial DNA) --- */
:root {
  /* ── Primärfarben (aus awb-color-3, awb-color-7, awb-color-8) ── */
  --paul-green:         #93B93B;   /* Primär-Grün — Signaturfarbe Greenfield */
  --paul-green-emerald: #2CBC63;   /* Sekundär-Grün — Hover, aktive CTAs */
  --paul-green-soft:    #65BC7B;   /* Soft Green — Success, positive States */
  --paul-green-dark:    #7A9C2E;   /* Dunkel-Grün — Pressed-State */
  --paul-navy:          #023A51;   /* Industrial Deep Blue — Sekundärfarbe */
  --paul-dark:          #212934;   /* Near-Black — Haupttext, dunkle BG */
  --paul-charcoal:      #3D4344;   /* Dunkelgrau — Überschriften, Icons */
  --paul-slate:         #59667D;   /* Steel Blue-Gray — Labels, Sekundärtext */

  /* ── Neutrale / Oberflächen ── */
  --paul-steel:         #879397;   /* Medium Gray — Placeholder, deaktiviert */
  --paul-border:        #EDEEF0;   /* Light Gray — Trennlinien, Borders */
  --paul-muted:         #EDEDED;   /* Helles Grau — Alternating rows */
  --paul-page:          #F2F3F5;   /* Seiten-Hintergrund */
  --paul-card:          #F9F9FB;   /* Karten-Hintergrund */
  --paul-light:         #F9FAFB;   /* Off-White — sehr helle Flächen */
  --paul-white:         #FFFFFF;   /* Reines Weiß */

  /* ── Semantische Zustände ── */
  --paul-danger:        #C51A1B;   /* Fehler/Destruktiv (awb-color-custom-13) */
  --paul-danger-light:  #fdeaea;
  --paul-warning:       #F59E0B;
  --paul-warning-light: #fef3c7;
  --paul-success:       #65BC7B;   /* = paul-green-soft */
  --paul-success-light: #e6f4ec;

  /* ── Legacy-Aliases (Kompatibilität bestehender Komponenten) ── */
  /* CI: paul-green IST die Primärfarbe (CTAs, aktive States, Logos) */
  --color-primary:      var(--paul-green);
  --color-primary-dark: var(--paul-dark);     /* Hover-State: Grün → Dunkel (CI-Button-Invertierung) */
  --color-primary-light:#eef4da;              /* Helle Grün-Tönung für Backgrounds / Highlights */
  --color-success:      var(--paul-green-soft);
  --color-success-light:var(--paul-success-light);
  --color-warning:      var(--paul-warning);
  --color-warning-light:var(--paul-warning-light);
  --color-danger:       var(--paul-danger);
  --color-danger-light: var(--paul-danger-light);
  --color-nc:           var(--paul-danger);
  --color-ofi:          var(--paul-warning);
  --color-obs:          var(--paul-steel);
  --color-text:         var(--paul-dark);
  --color-text-muted:   var(--paul-steel);
  --color-border:       var(--paul-border);
  --color-bg:           var(--paul-page);
  --color-bg-card:      var(--paul-white);
  --color-bg-nav:       var(--paul-dark);   /* Navigation: Near-Black */

  /* ── Geometrie (Industriell = scharf, minimal gerundet) ── */
  --radius:             4px;     /* Cards, Panels */
  --radius-sm:          2px;     /* Inputs */
  --radius-btn:         3px;     /* Buttons (aus Greenfield) */
  --radius-lg:          8px;     /* Modals, Overlays */
  --radius-pill:        999px;   /* Tags, Badges */

  /* ── Schatten (dezent, funktional) ── */
  --shadow-sm:  0 1px 3px rgba(33,41,52,.08), 0 1px 2px rgba(33,41,52,.06);
  --shadow-md:  0 4px 12px rgba(33,41,52,.10), 0 2px 4px rgba(33,41,52,.06);
  --shadow-lg:  0 12px 32px rgba(33,41,52,.12), 0 4px 8px rgba(33,41,52,.06);
  --shadow-green: 0 4px 14px rgba(147,185,59,.30);   /* CTA-Glow */

  /* ── Typografie: Montserrat (Greenfield Pflichtschrift) ── */
  --font-sans:  'Montserrat', 'Inter', system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:  'JetBrains Mono', 'Fira Code', Consolas, monospace;

  /* ── Abstände (8-Punkt-Raster) ── */
  --space-xs: 6px;    /* paul-xs */
  --space-sm: 12px;   /* paul-sm */
  --space-md: 20px;   /* paul-md */
  --space-lg: 32px;   /* paul-lg */
  --space-xl: 48px;   /* paul-xl */

  /* ── Button (exakt aus Greenfield --button_padding) ── */
  --btn-padding: 11px 23px;
}

/* ── Montserrat laden (Greenfield Pflichtschrift) ── */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');

/* --- Reset ------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 15px; }
body { font-family: var(--font-sans); color: var(--color-text); background: var(--color-bg); line-height: 1.5; }
a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* --- Navigation (CI: heller Hintergrund, paul-green Akzent) --- */
/*
  Hintergrund: weiß — Logo mit Gradient sichtbar auf hellem Grund
  Untertrennlinie: paul-border
  Links: paul-dark Text, paul-green Aktiv-State
*/
.nav {
  display: flex; align-items: center; gap: var(--space-lg);
  background: var(--paul-white); color: var(--paul-dark);
  padding: 0 var(--space-xl); height: 64px;
  position: sticky; top: 0; z-index: 100;
  border-bottom: 2px solid var(--paul-border);
  box-shadow: var(--shadow-sm);
  font-family: var(--font-sans);
}
.nav__logo { display: flex; align-items: center; }
.nav__logo:hover { text-decoration: none; opacity: .88; }
.nav__logo--superadmin { opacity: .85; }
.nav__logo--iso        { opacity: 1; }
.nav__links { display: flex; gap: 2px; list-style: none; flex: 1; }
.nav__link {
  color: var(--paul-slate); padding: 6px 14px;
  border-radius: var(--radius-btn); font-size: .88rem;
  font-weight: 500; letter-spacing: .01em;
  transition: background 150ms, color 150ms;
}
.nav__link:hover { background: var(--paul-page); color: var(--paul-dark); text-decoration: none; }
.nav__link--active {
  background: var(--paul-green) !important;
  color: #fff !important;
  font-weight: 600;
}
.nav__link--secondary { opacity: .7; font-size: .82rem; }
.nav__link--review { color: var(--paul-green) !important; font-weight: 600; }
.nav__user { display: flex; align-items: center; gap: var(--space-md); }
.nav__user-name { color: var(--paul-slate); font-size: .875rem; font-weight: 500; }
.nav__user-badge { font-size: .65rem; font-weight: 700; padding: 2px 7px;
  border-radius: var(--radius-pill); letter-spacing: .08em; text-transform: uppercase; }
.nav__user-badge--superadmin { background: var(--paul-warning); color: var(--paul-dark); }

/* --- Main Layout ------------------------------------------ */
.main { max-width: 1200px; margin: 0 auto; padding: var(--space-lg) var(--space-xl); }
.footer {
  text-align: center; padding: var(--space-lg);
  color: var(--paul-steel); font-size: .78rem;
  border-top: 1px solid var(--paul-border);
  margin-top: var(--space-xl);
  font-family: var(--font-sans); letter-spacing: .02em;
}
.footer__tenant { color: var(--paul-green); font-weight: 600; }

/* --- Page Header ------------------------------------------ */
.page-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: var(--space-lg); gap: var(--space-md); }
.page-header__title { font-size: 1.55rem; font-weight: 700; color: var(--paul-dark); display: flex; align-items: center; gap: var(--space-sm); flex-wrap: wrap; letter-spacing: -.01em; }
.page-header__subtitle { color: var(--paul-steel); font-size: .88rem; margin-top: var(--space-xs); }
.page-header__actions { display: flex; gap: var(--space-sm); flex-shrink: 0; }
.breadcrumb { font-size: .85rem; color: var(--paul-steel); display: block; margin-bottom: var(--space-xs); }
.breadcrumb:hover { color: var(--paul-green); }

/* --- Cards (Designsystem-Regelwerk → siehe ADR-UI-001-Block am Dateiende) - */
.card {
  background: var(--paul-white); border: 1px solid var(--paul-border);
  border-radius: var(--radius); padding: var(--space-lg);
  box-shadow: var(--shadow-sm); margin-bottom: var(--space-md);
}
/* .card__body { padding: 0 } — bewusst am Ende definiert (ADR-UI-001) */
.card__title { font-size: 1rem; font-weight: 600; color: var(--paul-dark); margin-bottom: var(--space-md); letter-spacing: .01em; }
.card__subtitle { font-size: .875rem; font-weight: 600; color: var(--paul-steel); margin: var(--space-md) 0 var(--space-sm); text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; }
.card__description { color: var(--paul-steel); font-size: .9rem; margin-bottom: var(--space-lg); }
.card--form { max-width: 680px; }
.card--action { background: var(--paul-light); border-color: var(--paul-border); padding: var(--space-md); border-left: 3px solid var(--paul-green); }
.card--meta { background: var(--paul-page); }

/* --- Grid ------------------------------------------------- */
.grid { display: grid; gap: var(--space-md); }
.grid--2col { grid-template-columns: 1fr 1fr; }
@media (max-width: 720px) { .grid--2col { grid-template-columns: 1fr; } }

/* --- Buttons (CI: Greenfield Industrial Spec) ------------- */
/*
  Standard (Primary): #93B93B → #212934 (Grün→Dunkel, Gradient)
  Hover   (Primary):  #212934 → #93B93B (invertiert)
  Ghost   (Outline):  Border/Text #023A51, BG transparent
  Button-Text:        immer #FFFFFF auf farbigem Button
  Padding exakt:      11px 23px  (--button_padding Greenfield)
  Radius:             3px
  Transition:         200ms cubic-bezier(0.25, 0.46, 0.45, 0.94)
*/
.btn {
  display: inline-flex; align-items: center; gap: var(--space-xs);
  padding: var(--btn-padding);        /* 11px 23px — exakt Greenfield */
  border-radius: var(--radius-btn);   /* 3px */
  font-family: var(--font-sans);
  font-size: .875rem; font-weight: 600; cursor: pointer;
  border: 1px solid transparent;
  transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
  text-decoration: none; white-space: nowrap;
  letter-spacing: .02em; text-transform: none;
}
.btn:hover { text-decoration: none; }

/* Primary — Grün → Dunkel Gradient */
.btn--primary {
  background: linear-gradient(135deg, var(--paul-green) 0%, var(--paul-dark) 100%);
  color: #fff; border-color: transparent;
}
.btn--primary:hover:not(:disabled) {
  background: linear-gradient(135deg, var(--paul-dark) 0%, var(--paul-green) 100%);
  box-shadow: var(--shadow-green);
}

/* Outline / Ghost — Navy als Sekundärfarbe per CI */
.btn--outline {
  background: transparent;
  color: var(--paul-navy);
  border-color: var(--paul-navy);
}
.btn--outline:hover:not(:disabled) {
  background: rgba(2,58,81,.06);
}

/* Ghost — unsichtbarer Button für Utility-Aktionen */
.btn--ghost {
  background: transparent; color: var(--paul-slate); border-color: transparent;
}
.btn--ghost:hover:not(:disabled) { background: var(--paul-border); color: var(--paul-dark); }

/* Danger */
.btn--danger { background: var(--paul-danger); color: #fff; border-color: var(--paul-danger); }
.btn--danger:hover:not(:disabled) { background: #a01516; }

/* Warning */
.btn--warning { color: var(--paul-warning); border-color: var(--paul-warning); background: transparent; }

/* Sizes */
.btn--sm  { padding: 6px 14px; font-size: .82rem; }
.btn--xs  { padding: 3px 9px; font-size: .76rem; }

.btn[disabled], .btn:disabled { opacity: .45; cursor: not-allowed; pointer-events: none; }
.btn--loading { opacity: .7; }

/* --- Badges ----------------------------------------------- */
.badge {
  display: inline-block; padding: 2px 8px; border-radius: 20px;
  font-size: .75rem; font-weight: 600; letter-spacing: .02em;
}
.badge--draft      { background: #eee; color: #555; }
.badge--active     { background: var(--color-primary-light); color: var(--color-primary); }
.badge--review     { background: var(--color-warning-light); color: var(--color-warning); }
.badge--approved   { background: var(--color-success-light); color: var(--color-success); }
.badge--archived   { background: #eee; color: #888; }
.badge--cancelled  { background: var(--color-danger-light); color: var(--color-danger); }
.badge--open       { background: #eef; color: #44a; }
.badge--completed  { background: var(--color-success-light); color: var(--color-success); }
.badge--in-progress{ background: var(--color-warning-light); color: var(--color-warning); }
.badge--closed     { background: #eee; color: #555; }
.badge--locked     { background: #f0e8ff; color: #5a2d8a; }
.badge--superseded { background: #eee; color: #999; }
.badge--default    { background: #eee; color: #555; }

/* --- Stats Bar -------------------------------------------- */
.stats-bar { display: flex; gap: var(--space-md); margin-bottom: var(--space-lg); flex-wrap: wrap; }
.stats-bar__item {
  background: var(--color-bg-card); border: 1px solid var(--color-border);
  border-radius: var(--radius-lg); padding: var(--space-md) var(--space-lg);
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  min-width: 120px; box-shadow: var(--shadow-sm);
}
.stats-bar__value { font-size: 2rem; font-weight: 700; color: var(--color-primary); }
.stats-bar__label { font-size: .8rem; color: var(--color-text-muted); text-align: center; }
.stats-bar__item--warning .stats-bar__value { color: var(--color-warning); }
.stats-bar__item--success .stats-bar__value  { color: var(--color-success); }

/* --- Table ------------------------------------------------ */
.table { width: 100%; border-collapse: collapse; }
.table thead { background: #f0f4f8; }
.table th { text-align: left; padding: var(--space-sm) var(--space-md); font-size: .8rem; font-weight: 600; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .04em; border-bottom: 2px solid var(--color-border); }
.table__row { border-bottom: 1px solid var(--color-border); transition: background .1s; }
.table__row:hover { background: var(--color-primary-light); }
.table__cell { padding: var(--space-sm) var(--space-md); font-size: .9rem; }
.table__cell--mono { font-family: var(--font-mono); font-size: .85rem; }
.table__cell--actions { text-align: right; }

/* --- Forms ------------------------------------------------ */
.form-group { margin-bottom: var(--space-md); }
.form-label { display: block; font-size: .875rem; font-weight: 500; margin-bottom: var(--space-xs); color: var(--color-text); }
.form-required { color: var(--color-danger); }
.form-optional { color: var(--color-text-muted); font-weight: 400; font-size: .8rem; }
.form-hint { font-size: .8rem; color: var(--color-text-muted); margin-top: var(--space-xs); }
.form-error { font-size: .8rem; color: var(--color-danger); display: block; margin-top: var(--space-xs); }
.form-group--error .form-input,
.form-group--error .form-select,
.form-group--error .form-textarea { border-color: var(--color-danger); }

.form-input, .form-select, .form-textarea {
  width: 100%; padding: 8px 12px; border: 1px solid var(--color-border);
  border-radius: var(--radius); font-size: .9rem; font-family: inherit;
  background: #fff; transition: border-color .15s;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  outline: none;
  border-color: var(--paul-green);
  box-shadow: 0 0 0 3px rgba(147,185,59,.18);   /* paul-green ring */
}
.form-input--date { max-width: 200px; }
.form-input--inline { flex: 1; }
.form-select--inline { width: auto; }
.form-textarea { resize: vertical; min-height: 80px; }

.form-row { display: flex; gap: var(--space-sm); align-items: flex-start; flex-wrap: wrap; }
.form-actions { display: flex; justify-content: flex-end; gap: var(--space-sm); margin-top: var(--space-lg); padding-top: var(--space-md); border-top: 1px solid var(--color-border); align-items: center; }
.save-status { font-size: .85rem; color: var(--color-success); }

/* --- Fieldset --------------------------------------------- */
.fieldset { border: 1px solid var(--color-border); border-radius: var(--radius); padding: var(--space-lg); margin-bottom: var(--space-lg); }
.fieldset__legend { font-weight: 600; font-size: .875rem; color: var(--color-primary); padding: 0 var(--space-sm); }
.fieldset[disabled] { opacity: .7; background: #fafafa; }

/* --- Phase Nav (Stepper) ---------------------------------- */
.phase-nav {
  display: flex; align-items: center;
  background: var(--color-bg-card); border: 1px solid var(--color-border);
  border-radius: var(--radius-lg); padding: var(--space-md);
  gap: 0; overflow-x: auto; margin-bottom: var(--space-md);
}
.phase-nav__step {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: var(--space-sm) var(--space-lg); border-radius: var(--radius);
  text-decoration: none; color: var(--color-text-muted); transition: background .15s;
  flex: 1; text-align: center; min-width: 110px;
}
.phase-nav__step:hover:not([aria-disabled]) { background: var(--color-primary-light); text-decoration: none; }
.phase-nav__step--current { background: var(--color-primary-light); color: var(--color-primary); font-weight: 600; }
.phase-nav__step--approved { color: var(--color-success); }
.phase-nav__step--completed { color: var(--color-primary); }
.phase-nav__step--locked { opacity: .5; cursor: not-allowed; }
.phase-nav__icon { font-size: 1.25rem; font-weight: 700; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 2px solid currentColor; }
.phase-nav__step--approved .phase-nav__icon { background: var(--color-success); color: #fff; border-color: var(--color-success); }
.phase-nav__label { font-size: .8rem; font-weight: 600; }
.phase-nav__status { font-size: .7rem; }
.phase-nav__connector { flex: 0 0 24px; height: 2px; background: var(--color-border); }

/* --- Phase List (in case_detail) -------------------------- */
.phase-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.phase-list__item {
  display: flex; align-items: center; gap: var(--space-md);
  padding: var(--space-md); border: 1px solid var(--color-border);
  border-radius: var(--radius); text-decoration: none; color: var(--color-text);
  transition: background .15s;
}
.phase-list__item:hover { background: var(--color-primary-light); text-decoration: none; }
.phase-list__item--locked { color: var(--color-text-muted); }
.phase-list__number { width: 28px; height: 28px; background: var(--color-primary); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; flex-shrink: 0; }
.phase-list__info { flex: 1; }
.phase-list__name { font-weight: 500; display: block; }
.phase-list__meta { font-size: .8rem; color: var(--color-text-muted); }
.phase-list__lock { margin-left: auto; }

/* --- Finding Cards ---------------------------------------- */
.finding-list { display: flex; flex-direction: column; gap: var(--space-sm); margin: var(--space-md) 0; }
.finding-card {
  border: 1px solid var(--color-border); border-radius: var(--radius);
  padding: var(--space-md); border-left-width: 4px;
}
.finding-card--nc  { border-left-color: var(--color-nc); }
.finding-card--ofi { border-left-color: var(--color-ofi); }
.finding-card--obs { border-left-color: var(--color-obs); }
.finding-card__header { display: flex; align-items: center; gap: var(--space-sm); flex-wrap: wrap; margin-bottom: var(--space-sm); }
.finding-card__number { font-family: var(--font-mono); font-weight: 700; font-size: .85rem; }
.finding-card__clause { color: var(--color-text-muted); font-size: .85rem; flex: 1; }
.finding-card__severity { font-size: .75rem; font-weight: 700; padding: 2px 6px; border-radius: 4px; }
.finding-card__severity--major { background: var(--color-danger-light); color: var(--color-danger); }
.finding-card__severity--minor { background: var(--color-warning-light); color: var(--color-warning); }
.finding-card__description { font-size: .9rem; }
.finding-card__evidence { font-size: .8rem; color: var(--color-text-muted); margin-top: var(--space-xs); }
.finding-card__actions { margin-top: var(--space-sm); display: flex; gap: var(--space-xs); }

/* --- Finding Summary (Phase 4) ---------------------------- */
.finding-summary { display: flex; gap: var(--space-md); margin-bottom: var(--space-md); flex-wrap: wrap; }
.finding-summary__item { display: flex; flex-direction: column; align-items: center; padding: var(--space-md); border-radius: var(--radius); min-width: 100px; text-align: center; }
.finding-summary__item--nc  { background: var(--color-danger-light); }
.finding-summary__item--ofi { background: var(--color-warning-light); }
.finding-summary__item--obs { background: #f0f0f0; }
.finding-summary__count { font-size: 1.75rem; font-weight: 700; }
.finding-summary__label { font-size: .75rem; font-weight: 500; }

/* --- Detail List ------------------------------------------ */
.detail-list { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-xs) var(--space-md); }
.detail-list dt { font-size: .8rem; font-weight: 600; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .04em; padding-top: 2px; }
.detail-list dd { font-size: .9rem; }
.detail-list--compact { gap: 4px var(--space-md); }

/* --- Flash Messages --------------------------------------- */
.flash-container { padding: 0 var(--space-xl); }
.flash {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--space-sm) var(--space-md); border-radius: var(--radius);
  margin: var(--space-sm) 0; font-size: .875rem;
}
.flash--success { background: var(--color-success-light); color: var(--color-success); border: 1px solid #b6dfc8; }
.flash--error   { background: var(--color-danger-light); color: var(--color-danger); border: 1px solid #f5b8b8; }
.flash--info    { background: var(--color-primary-light); color: var(--color-primary); border: 1px solid rgba(147,185,59,.35); }
.flash__close   { background: none; border: none; cursor: pointer; font-size: 1.1rem; color: inherit; padding: 0 4px; opacity: .6; }
.flash__close:hover { opacity: 1; }

/* --- Empty State ------------------------------------------ */
.empty-state { text-align: center; padding: var(--space-xl); }
.empty-state__text { color: var(--color-text-muted); margin-bottom: var(--space-md); }
.empty-state--inline { padding: var(--space-lg); background: #fafafa; border-radius: var(--radius); border: 1px dashed var(--color-border); }

/* --- Lock Banner / Notices -------------------------------- */
.lock-banner { background: #f0e8ff; color: #5a2d8a; border: 1px solid #d0baff; border-radius: var(--radius); padding: var(--space-sm) var(--space-md); font-size: .875rem; font-weight: 500; }
.locked-notice { background: #fafafa; border: 1px solid var(--color-border); border-radius: var(--radius); padding: var(--space-md); font-size: .875rem; color: var(--color-text-muted); text-align: center; }

/* --- Modal Inline ----------------------------------------- */
.modal-inline { background: var(--color-bg-card); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-lg); margin-top: var(--space-md); box-shadow: var(--shadow-md); }

/* --- Status Form (inline) --------------------------------- */
.status-form { margin-top: var(--space-sm); }

/* --- Danger Zone ------------------------------------------ */
.danger-zone { border: 1px solid var(--color-danger); border-radius: var(--radius); margin-top: var(--space-lg); }
.danger-zone__toggle { padding: var(--space-md); cursor: pointer; font-size: .875rem; color: var(--color-danger); font-weight: 500; list-style: none; }
.danger-zone__toggle:hover { background: var(--color-danger-light); }
.danger-zone__content { padding: var(--space-md); background: var(--color-danger-light); border-top: 1px solid var(--color-danger); }

/* --- Doc List --------------------------------------------- */
.doc-list { display: flex; flex-direction: column; gap: var(--space-sm); margin-top: var(--space-md); }
.doc-list__item { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-sm) var(--space-md); background: #fafafa; border: 1px solid var(--color-border); border-radius: var(--radius); }
.doc-list__name { flex: 1; font-size: .875rem; }
.doc-list__version { font-size: .8rem; color: var(--color-text-muted); }

/* --- Export Actions --------------------------------------- */
.export-actions { display: flex; gap: var(--space-sm); margin-bottom: var(--space-md); flex-wrap: wrap; }

/* --- Utilities -------------------------------------------- */
.mono { font-family: var(--font-mono); font-size: .9em; }
.text-body { font-size: .9rem; line-height: 1.6; }
.text-body--muted { color: var(--color-text-muted); }
.section { margin-bottom: var(--space-lg); }
.section__title { font-size: .95rem; font-weight: 600; color: var(--color-primary); margin-bottom: var(--space-md); }

/* --- Form section titles ---------------------------------- */
.form-section-title { font-size: 1rem; font-weight: 600; color: var(--color-primary); border-bottom: 1px solid var(--color-border); padding-bottom: var(--space-xs); margin-bottom: var(--space-md); display: flex; align-items: center; gap: var(--space-sm); }

/* --- Compact form variants (finding inline rows) ---------- */
.form-label--sm  { font-size: .78rem; margin-bottom: 2px; }
.form-input--sm  { padding: 4px 8px; font-size: .85rem; }
.form-select--sm { padding: 4px 8px; font-size: .85rem; }
.form-textarea--sm { padding: 4px 8px; font-size: .85rem; }

/* --- Alert (inline error banner) -------------------------- */
.alert { padding: var(--space-sm) var(--space-md); border-radius: var(--radius); margin-bottom: var(--space-md); font-size: .875rem; }
.alert--error { background: var(--color-danger-light); border: 1px solid var(--color-danger); color: var(--color-danger); }
.alert--success { background: var(--color-success-light); border: 1px solid var(--color-success); color: var(--color-success); }

/* --- Badge neutral ---------------------------------------- */
.badge--neutral { background: #eee; color: #555; font-weight: 400; font-size: .75rem; }

/* --- Empty state actions ---------------------------------- */
.empty-state__actions { display: flex; gap: var(--space-sm); justify-content: center; flex-wrap: wrap; }

/* --- Quick-action buttons (Dashboard) --------------------- */
.quick-actions { display: flex; gap: var(--space-sm); flex-wrap: wrap; align-items: center; }

/* --- Finding cards inline (new form) ---------------------- */
.finding-list--inline { display: flex; flex-direction: column; gap: var(--space-md); margin-bottom: var(--space-md); }
.finding-card--new { background: #fafafa; border: 1px solid var(--color-border); border-radius: var(--radius); padding: var(--space-md); }
.finding-card--nc  { border-left: 3px solid var(--color-danger); }
.finding-card--ofi { border-left: 3px solid var(--color-warning); }
.finding-card--obs { border-left: 3px solid #999; }

/* --- Maßnahmen-Karten (Maßnahmenkatalog) ------------------ */
.massnahmen-list { display: flex; flex-direction: column; gap: var(--space-md); margin-bottom: var(--space-md); }
.massnahme-card { background: #fafafa; border: 1px solid var(--color-border); border-left: 3px solid var(--color-primary); border-radius: var(--radius); padding: var(--space-md); }
.massnahme-card__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-sm); }
.massnahme-card__nr { font-family: var(--font-mono); font-size: .8rem; font-weight: 600; color: var(--color-primary); background: var(--color-primary-light); padding: 2px 8px; border-radius: 4px; }

/* ============================================================
   KI / AI Interface
   ============================================================ */

/* --- AI-Workspace (Seiten-Container) ---------------------- */
.ai-workspace { display: flex; flex-direction: column; gap: var(--space-lg); }

/* --- Split-Layout: Rohnotizen | Ergebnis ------------------ */
.ai-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); align-items: start; }
@media (max-width: 860px) { .ai-split { grid-template-columns: 1fr; } }

.ai-split__panel { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); padding: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-md); }

/* --- Panel-Header ----------------------------------------- */
.ai-panel-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-xs); border-bottom: 1px solid var(--color-border); padding-bottom: var(--space-sm); }
.ai-panel-header__title { font-size: 1rem; font-weight: 600; color: var(--color-text); margin: 0; }
.ai-panel-header__hint { font-size: .8rem; color: var(--color-text-muted); }

/* --- Konfidenz-Badge -------------------------------------- */
.ai-confidence { font-size: .75rem; font-weight: 600; padding: 3px 10px; border-radius: 12px; }
.ai-confidence--hoch    { background: var(--color-success-light); color: var(--color-success); }
.ai-confidence--mittel  { background: var(--color-warning-light); color: var(--color-warning); }
.ai-confidence--niedrig { background: var(--color-danger-light);  color: var(--color-danger); }

/* --- Kontext-Warnung (Corrective RAG) --------------------- */
.ai-context-warning { background: var(--color-warning-light); border: 1px solid var(--color-warning); border-radius: var(--radius); padding: var(--space-sm) var(--space-md); font-size: .85rem; color: var(--color-warning); }

/* --- Quellen-Transparenz ---------------------------------- */
.ai-sources { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: .8rem; }
.ai-sources__label { color: var(--color-text-muted); font-weight: 500; }
.ai-sources__tag { background: var(--color-primary-light); color: var(--color-primary); padding: 2px 8px; border-radius: 10px; font-size: .75rem; }

/* --- KI-Ergebnis-Text ------------------------------------- */
.ai-result-text { background: #f8fafc; border: 1px solid var(--color-border); border-radius: var(--radius); padding: var(--space-md); max-height: 500px; overflow-y: auto; }
.ai-result-pre { white-space: pre-wrap; word-break: break-word; font-family: inherit; font-size: .875rem; line-height: 1.7; margin: 0; color: var(--color-text); }

/* --- KI-Metadaten ----------------------------------------- */
.ai-meta { display: flex; gap: var(--space-md); flex-wrap: wrap; }
.ai-meta__item { font-size: .75rem; color: var(--color-text-muted); }
.ai-meta__item::before { content: '•'; margin-right: 4px; }
.ai-meta__item:first-child::before { content: ''; margin-right: 0; }

/* --- HITL Aktionsbereich ---------------------------------- */
.ai-actions { border-top: 1px solid var(--color-border); padding-top: var(--space-md); }
.ai-actions__hint { font-size: .8rem; color: var(--color-text-muted); margin-bottom: var(--space-sm); }
.ai-actions__buttons { display: flex; gap: var(--space-sm); flex-wrap: wrap; align-items: center; }

/* --- Platzhalter (vor dem ersten Aufruf) ------------------ */
.ai-placeholder { text-align: center; padding: var(--space-xl) var(--space-lg); color: var(--color-text-muted); }
.ai-placeholder__icon { font-size: 2.5rem; margin-bottom: var(--space-sm); }
.ai-placeholder__text { font-size: .95rem; font-weight: 500; color: var(--color-text); margin-bottom: var(--space-xs); }
.ai-placeholder__hint { font-size: .85rem; }

/* --- Großes Textarea für Rohnotizen ----------------------- */
.ai-textarea { min-height: 320px; font-family: var(--font-mono); font-size: .85rem; resize: vertical; }

/* --- Verstecktes Element für Clipboard-Copy --------------- */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* --- KI-Teaser in Phase 3 --------------------------------- */
.ai-teaser { display: flex; align-items: center; gap: var(--space-sm); background: var(--color-primary-light); border: 1px solid rgba(147,185,59,.25); border-radius: var(--radius); padding: var(--space-sm) var(--space-md); margin-bottom: var(--space-md); flex-wrap: wrap; }
.ai-teaser--subtle { background: #f8fafc; border-color: #e2e8f0; }
.ai-teaser__icon { font-size: 1.2rem; }
.ai-teaser__text { flex: 1; font-size: .875rem; color: var(--color-primary); }

/* ============================================================
   Norm-Picker (Checkbox-Mehrfachauswahl)
   ============================================================ */

.norm-picker {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-sm);
  margin-bottom: var(--space-xs);
}

.norm-card {
  display: flex;
  align-items: stretch;
  cursor: pointer;
  border: 2px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color .15s, box-shadow .15s;
  user-select: none;
}
.norm-card:hover { border-color: var(--color-primary); }

.norm-card__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Karte wird hervorgehoben wenn Checkbox checked */
.norm-card:has(.norm-card__input:checked) {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-light);
}
.norm-card:has(.norm-card__input:checked) .norm-card__body {
  background: var(--color-primary-light);
}

.norm-card__body {
  flex: 1;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  transition: background .15s;
}
.norm-card__code {
  font-family: var(--font-mono);
  font-size: .8rem;
  font-weight: 700;
  color: var(--color-primary);
}
.norm-card__name {
  font-size: .8rem;
  color: var(--color-text-muted);
}

/* Zusammenfassung unter dem Picker */
.norm-selection-summary {
  font-size: .85rem;
  color: var(--color-primary);
  font-weight: 500;
  margin-top: var(--space-xs);
}
.norm-selection-hint {
  font-size: .8rem;
  color: var(--color-danger);
  margin-top: var(--space-xs);
}


/* =========================================================
   KI-Ausgabe: Gerendertes HTML (ki_to_html Filter)
   ========================================================= */

.ki-output { font-size: .875rem; line-height: 1.7; color: var(--color-text); }

.ki-spacer { height: .4rem; }

.ki-divider {
  border: none; border-top: 2px solid var(--color-primary);
  margin: var(--space-md) 0 var(--space-sm);
}
.ki-block-sep {
  border: none; border-top: 1px dashed var(--color-border);
  margin: var(--space-md) 0;
}

.ki-gesamtzusammenfassung {
  font-size: 1.05rem; font-weight: 700; color: var(--color-primary);
  margin: var(--space-md) 0 var(--space-sm); padding: 0;
}

.ki-prozess {
  font-size: 1rem; font-weight: 700; color: var(--color-primary);
  margin: var(--space-md) 0 2px;
}
.ki-prozess span { color: var(--color-text); }

.ki-meta {
  font-size: .8rem; color: var(--color-text-muted); margin: 1px 0;
}
.ki-meta__key { font-weight: 600; }

.ki-theme-heading {
  font-weight: 600; color: var(--color-text);
  margin: var(--space-sm) 0 2px;
  font-size: .9rem;
}

/* Bewertungs-Chips */
.ki-positiv {
  background: var(--color-success-light); color: var(--color-success);
  border-left: 3px solid var(--color-success);
  padding: 4px 10px; border-radius: 0 var(--radius) var(--radius) 0;
  margin: 4px 0; font-weight: 600; font-size: .875rem;
}
.ki-ofi {
  background: var(--color-warning-light); color: var(--color-warning);
  border-left: 3px solid var(--color-warning);
  padding: 4px 10px; border-radius: 0 var(--radius) var(--radius) 0;
  margin: 4px 0; font-weight: 600; font-size: .875rem;
}
.ki-nc {
  background: var(--color-danger-light); color: var(--color-danger);
  border-left: 3px solid var(--color-danger);
  padding: 4px 10px; border-radius: 0 var(--radius) var(--radius) 0;
  margin: 4px 0; font-weight: 600; font-size: .875rem;
}
.ki-positiv--numbered, .ki-ofi--numbered, .ki-nc--numbered { font-weight: 400; }
.ki-positiv--heading, .ki-ofi--heading, .ki-nc--heading {
  font-size: .9rem; margin-top: var(--space-sm);
  background: transparent; border-left-width: 4px;
}

.ki-repeat-warning {
  background: #fff8e1; color: #795548;
  border-left: 3px solid #ff9800;
  padding: 3px 10px; margin: 4px 0; font-size: .8rem;
  border-radius: 0 var(--radius) var(--radius) 0;
}

.ki-erledigt {
  background: var(--color-success-light); color: var(--color-success);
  padding: 2px 10px; font-size: .8rem; border-radius: var(--radius);
  text-decoration: line-through; margin: 2px 0;
}

.ki-field {
  padding-left: 1.25rem; font-size: .85rem; color: var(--color-text); margin: 2px 0;
}
.ki-field__key { font-weight: 600; color: var(--color-text-muted); }

.ki-section-title {
  font-weight: 700; font-size: .875rem; color: var(--color-text);
  margin: var(--space-sm) 0 4px; border-bottom: 1px solid var(--color-border);
  padding-bottom: 2px;
}

.ki-bullet {
  padding-left: 1.25rem; font-size: .85rem; margin: 1px 0; color: var(--color-text);
}
.ki-stat {
  padding-left: 1rem; font-size: .85rem; margin: 1px 0;
  color: var(--color-text-muted);
}
.ki-text { margin: 2px 0; font-size: .875rem; color: var(--color-text); }


/* =========================================================
   Export-Section (Phasen 1–3)
   ========================================================= */

.export-section {
  margin-top: var(--space-lg);
  border-top: 1px solid var(--color-border);
  padding-top: var(--space-lg);
}
.export-section__title {
  font-size: .9rem; font-weight: 600; color: var(--color-text-muted);
  text-transform: uppercase; letter-spacing: .05em; margin-bottom: var(--space-sm);
}
.export-actions {
  display: flex; gap: var(--space-sm); flex-wrap: wrap; align-items: center;
}


/* =========================================================
   Print-View (Druckansicht für PDF-Export via Browser)
   ========================================================= */

@media print {
  .no-print { display: none !important; }
  body { background: #fff; }
  .print-page { padding: 20mm; }
  .print-cover__logo { max-height: 60px; }
  .print-cover__title { font-size: 24pt; color: #212934; margin-top: 20mm; }
  .print-cover__meta { margin-top: 10mm; font-size: 11pt; }
  .print-section { page-break-inside: avoid; margin-top: 10mm; }
  h2 { color: #212934; border-bottom: 2px solid #93B93B; }
  .print-finding--nc { background: #fdeaea; border-left: 4px solid #a91c1c; padding: 4mm; margin: 3mm 0; }
  .print-finding--ofi { background: #fdf3dc; border-left: 4px solid #c57c00; padding: 4mm; margin: 3mm 0; }
  .print-finding--obs { background: #f5f5f5; border-left: 4px solid #888; padding: 4mm; margin: 3mm 0; }
}


/* =========================================================
   Rechtskataster-Modul
   ========================================================= */

/* --- Index / Cards --- */
.legal-disclaimer {
  display: flex; gap: var(--space-sm); align-items: flex-start;
  background: #fffbeb; border: 1px solid #f59e0b; border-radius: var(--radius);
  padding: var(--space-md); margin-bottom: var(--space-lg);
  font-size: .875rem; color: #92400e;
}
.legal-disclaimer__icon { font-size: 1.2rem; flex-shrink: 0; }
.legal-disclaimer--export {
  background: #f8fafc; border-color: var(--color-border);
  color: var(--color-text-muted); margin-top: var(--space-md); font-size: .8rem;
}

.legal-card {
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius); padding: var(--space-md);
  display: flex; flex-direction: column; gap: var(--space-xs);
}
.legal-card--complete { border-left: 4px solid var(--color-success); }
.legal-card--generating { border-left: 4px solid #f59e0b; }
.legal-card--error { border-left: 4px solid var(--color-danger); }
.legal-card--draft { border-left: 4px solid var(--color-border); }

.legal-card__header { display: flex; align-items: center; justify-content: space-between; }
.legal-reg-number { font-size: .8rem; font-weight: 700; color: var(--color-text-muted); font-family: monospace; }
.legal-card__company { font-size: 1.05rem; font-weight: 700; margin: 0; }
.legal-card__meta { font-size: .8rem; color: var(--color-text-muted); margin: 0; }
.legal-card__stats { display: flex; gap: var(--space-sm); flex-wrap: wrap; }
.legal-stat { font-size: .8rem; color: var(--color-text-muted); }
.legal-stat--risk { color: var(--color-danger); font-weight: 600; }
.legal-card__date { font-size: .75rem; color: var(--color-text-muted); }
.legal-card__actions { display: flex; gap: var(--space-xs); flex-wrap: wrap; margin-top: auto; padding-top: var(--space-sm); }

/* --- Status Badges --- */
.legal-status-badge {
  display: inline-block; padding: 2px 8px; border-radius: 99px;
  font-size: .75rem; font-weight: 600;
}
.legal-status-badge--complete { background: #dcfce7; color: #166534; }
.legal-status-badge--draft    { background: #f3f4f6; color: #374151; }
.legal-status-badge--generating { background: #fef3c7; color: #92400e; }
.legal-status-badge--error    { background: #fee2e2; color: #991b1b; }

/* --- Statistik-Kacheln --- */
.legal-stats-row {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: var(--space-sm); margin-bottom: var(--space-lg);
}
.legal-stat-tile {
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius); padding: var(--space-sm);
  text-align: center;
}
.legal-stat-tile__number { display: block; font-size: 1.75rem; font-weight: 700; color: var(--color-primary); }
.legal-stat-tile__label  { display: block; font-size: .75rem; color: var(--color-text-muted); }
.legal-stat-tile--green  { border-color: #86efac; }
.legal-stat-tile--green .legal-stat-tile__number { color: #166534; }
.legal-stat-tile--yellow { border-color: #fde68a; }
.legal-stat-tile--yellow .legal-stat-tile__number { color: #92400e; }
.legal-stat-tile--red    { border-color: #fca5a5; }
.legal-stat-tile--red .legal-stat-tile__number { color: #991b1b; }
.legal-stat-tile--blue   { border-color: #93c5fd; }
.legal-stat-tile--blue .legal-stat-tile__number { color: #1d4ed8; }

/* --- Kategorien-Badges --- */
.legal-cat-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 4px;
  font-size: .8rem; font-weight: 700; flex-shrink: 0;
}
.legal-cat-badge--a { background: #dcfce7; color: #166534; }
.legal-cat-badge--b { background: #fef3c7; color: #92400e; }
.legal-cat-badge--c { background: #dbeafe; color: #1d4ed8; }
.legal-cat-badge--d { background: #f3e8ff; color: #6b21a8; }
.legal-cat-badge--e { background: #ffe4e6; color: #9f1239; }

/* --- Risiko-Badges --- */
.legal-risk-badge {
  display: inline-block; padding: 2px 7px; border-radius: 99px;
  font-size: .75rem; font-weight: 600;
}
.legal-risk-badge--hoch    { background: #fee2e2; color: #991b1b; }
.legal-risk-badge--mittel  { background: #fef3c7; color: #92400e; }
.legal-risk-badge--niedrig { background: #dcfce7; color: #166534; }

/* --- Übersicht Kategorien-Liste --- */
.legal-overview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); margin-bottom: var(--space-lg); }
@media (max-width: 768px) { .legal-overview-grid { grid-template-columns: 1fr; } }

.legal-info-box {
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius); padding: var(--space-md);
}
.legal-info-box__title { font-size: .9rem; font-weight: 700; margin-bottom: var(--space-sm); color: var(--color-primary); }

.legal-dl { display: grid; grid-template-columns: auto 1fr; gap: 4px var(--space-sm); font-size: .85rem; }
.legal-dl dt { font-weight: 600; color: var(--color-text-muted); white-space: nowrap; }
.legal-dl dd { margin: 0; }

.legal-cat-row {
  display: flex; align-items: center; gap: var(--space-xs);
  padding: 6px 8px; border-radius: 4px; margin-bottom: 4px;
}
.legal-cat-row--a { background: #f0fdf4; }
.legal-cat-row--b { background: #fffbeb; }
.legal-cat-row--c { background: #eff6ff; }
.legal-cat-row--d { background: #faf5ff; }
.legal-cat-row--e { background: #fff1f2; }
.legal-cat-label { font-size: .85rem; font-weight: 600; flex: 1; }
.legal-cat-count { font-size: .8rem; color: var(--color-text-muted); }
.legal-cat-risk  { font-size: .75rem; color: var(--color-danger); font-weight: 600; }

.legal-generation-note {
  background: #f0f9ff; border: 1px solid #bae6fd;
  border-radius: var(--radius); padding: var(--space-sm);
  font-size: .8rem; color: #0369a1;
}

/* --- Register-Tabelle --- */
.legal-filter-bar {
  display: flex; gap: var(--space-sm); flex-wrap: wrap;
  margin-bottom: var(--space-md);
}
.form-select--sm { padding: 4px 8px; font-size: .85rem; }

.legal-table-wrap { overflow-x: auto; }
.legal-table {
  width: 100%; border-collapse: collapse; font-size: .85rem;
}
.legal-table th {
  background: var(--color-primary); color: #fff;
  padding: 8px 10px; text-align: left; white-space: nowrap;
  font-size: .8rem; font-weight: 600;
}
.legal-table td { padding: 8px 10px; border-bottom: 1px solid var(--color-border); vertical-align: top; }

.legal-row--cat-a { border-left: 3px solid #22c55e; }
.legal-row--cat-b { border-left: 3px solid #f59e0b; }
.legal-row--cat-c { border-left: 3px solid #3b82f6; }
.legal-row--cat-d { border-left: 3px solid #a855f7; }
.legal-row--cat-e { border-left: 3px solid #f43f5e; }

.legal-cell-title { min-width: 200px; max-width: 250px; }
.legal-cell-text  { min-width: 150px; max-width: 250px; font-size: .8rem; color: var(--color-text-muted); }
.legal-law-number, .legal-amendment, .legal-norm-ref {
  display: block; font-size: .75rem; color: var(--color-text-muted);
}
.legal-norm-ref { color: var(--color-primary); font-weight: 600; }

.legal-status-select {
  padding: 2px 6px; border-radius: 4px; border: 1px solid var(--color-border);
  font-size: .8rem; font-weight: 600; width: 100%;
}
.legal-status-select--konform        { background: #dcfce7; }
.legal-status-select--bedingt_konform { background: #fef3c7; }
.legal-status-select--nicht_konform  { background: #fee2e2; }
.legal-status-select--zu_pruefen     { background: #f0f9ff; }
.legal-status-select--nicht_anwendbar{ background: #f3f4f6; }

/* --- ISO-Paul Prüf-Buttons --- */
.review-btn-group {
  display: flex; gap: 2px;
}
.review-btn {
  width: 30px; height: 28px;
  border: 1px solid var(--paul-border); border-radius: 4px;
  background: var(--paul-white); cursor: pointer;
  font-size: 1rem; line-height: 1;
  opacity: .35; transition: opacity 150ms, transform 100ms;
}
.review-btn:hover { opacity: .7; }
.review-btn--active { opacity: 1 !important; transform: scale(1.12); }
.review-btn--pending.review-btn--active { border-color: #93c5fd; background: #f0f9ff; }
.review-btn--ok.review-btn--active      { border-color: #86efac; background: #dcfce7; }
.review-btn--nok.review-btn--active     { border-color: #fca5a5; background: #fee2e2; }

/* --- Detail-Zeile --- */
.legal-detail-row td { background: #f9fafb; }
.legal-detail { padding: var(--space-sm); display: flex; flex-direction: column; gap: var(--space-xs); }
.legal-detail-section { font-size: .85rem; }
.legal-detail-section p { margin: 2px 0; color: var(--color-text-muted); }
.legal-detail-section--risk { color: var(--color-danger); }
.legal-detail-section--horizon {
  background: #fffbeb; border: 1px solid #fde68a;
  border-radius: 4px; padding: 6px 8px;
}
.legal-source-link { font-size: .75rem; color: var(--color-primary); word-break: break-all; }
.legal-questions { margin: 4px 0; padding-left: 1.2rem; }
.legal-questions li { font-size: .82rem; color: var(--color-text-muted); margin: 2px 0; }
.legal-detail-note { border-top: 1px solid var(--color-border); padding-top: var(--space-xs); }

/* --- Handlungserfordernis --- */
.legal-section-title { font-size: 1rem; font-weight: 700; margin: var(--space-md) 0 var(--space-sm); }
.legal-section-title--red    { color: var(--color-danger); }
.legal-section-title--yellow { color: #92400e; }

.legal-action-card {
  border-radius: var(--radius); padding: var(--space-sm);
  margin-bottom: var(--space-xs); font-size: .875rem;
}
.legal-action-card__header { display: flex; align-items: center; gap: var(--space-xs); margin-bottom: 4px; }
.legal-action-card--hoch   { background: #fef2f2; border-left: 3px solid var(--color-danger); }
.legal-action-card--mittel { background: #fffbeb; border-left: 3px solid #f59e0b; }
.legal-deadline { display: inline-block; font-size: .8rem; color: #92400e; margin-top: 4px; }
.legal-sanction { display: inline-block; font-size: .8rem; color: var(--color-danger); margin-left: var(--space-sm); }

/* --- 12-Monate-Horizont --- */
.legal-horizon-intro { color: var(--color-text-muted); font-size: .875rem; margin-bottom: var(--space-md); }
.legal-horizon-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.legal-horizon-card {
  border-radius: var(--radius); padding: var(--space-sm);
  border-left: 3px solid var(--color-border); background: var(--color-surface);
}
.legal-horizon-card--geplante-aenderung { border-color: #f59e0b; background: #fffbeb; }
.legal-horizon-card--neue-anforderung   { border-color: var(--color-danger); background: #fef2f2; }
.legal-horizon-card--wegfall            { border-color: #6b7280; background: #f9fafb; }
.legal-horizon-card__header { display: flex; align-items: center; gap: var(--space-xs); flex-wrap: wrap; margin-bottom: 4px; }
.legal-horizon-status { font-size: .78rem; font-weight: 600; color: #92400e; }
.legal-confidence { font-size: .75rem; color: var(--color-text-muted); }
.legal-confidence--hoch   { color: #166534; }
.legal-confidence--mittel { color: #92400e; }
.legal-horizon-date { font-size: .8rem; color: #92400e; margin: 2px 0; }
.legal-horizon-action { font-size: .85rem; background: #f0fdf4; border-radius: 4px; padding: 4px 8px; margin-top: 4px; }
.legal-horizon-source { font-size: .75rem; color: var(--color-text-muted); margin-top: 4px; }

/* --- KI-Chat --- */
.legal-chat { display: flex; flex-direction: column; gap: var(--space-sm); }
.legal-chat__history {
  min-height: 200px; max-height: 400px; overflow-y: auto;
  border: 1px solid var(--color-border); border-radius: var(--radius);
  padding: var(--space-sm); display: flex; flex-direction: column; gap: var(--space-sm);
  background: #f9fafb;
}
.legal-chat__msg { display: flex; flex-direction: column; gap: 2px; }
.legal-chat__msg--user .legal-chat__text {
  align-self: flex-end; background: var(--color-primary); color: #fff;
  padding: 6px 12px; border-radius: 12px 12px 2px 12px;
  max-width: 80%; font-size: .875rem;
}
.legal-chat__msg--assistant .legal-chat__text {
  align-self: flex-start; background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 6px 12px; border-radius: 12px 12px 12px 2px;
  max-width: 90%; font-size: .875rem; white-space: pre-wrap;
}
.legal-chat__role { font-size: .72rem; font-weight: 600; color: var(--color-text-muted); }
.legal-chat__msg--user .legal-chat__role { text-align: right; }
.legal-chat__input-row { display: flex; gap: var(--space-sm); align-items: flex-end; }
.legal-chat__input { flex: 1; }
.legal-chat__actions { display: flex; flex-direction: column; gap: 4px; }
.legal-chat__hint { font-size: .75rem; color: var(--color-text-muted); font-style: italic; }

/* --- Edit Form --- */
.legal-edit-form .card { margin-bottom: var(--space-lg); }
.form-row--checkboxes { flex-wrap: wrap; gap: var(--space-md); }
.form-checkbox {
  display: flex; align-items: center; gap: var(--space-xs);
  cursor: pointer; font-size: .9rem;
}
.form-actions--sticky {
  position: sticky; bottom: 0; background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  padding: var(--space-sm) 0; z-index: 10;
}

/* --- Prefill-Banner (from-case) --- */
.legal-prefill-banner {
  display: flex; gap: var(--space-sm); align-items: flex-start;
  background: #eff6ff; border: 1px solid #93c5fd; border-radius: var(--radius);
  padding: var(--space-md); margin-bottom: var(--space-lg);
}
.legal-prefill-banner__icon { font-size: 1.4rem; flex-shrink: 0; }
.legal-prefill-banner__content { font-size: .875rem; color: #1e40af; }
.legal-prefill-banner__content strong { display: block; margin-bottom: 4px; }
.legal-prefill-banner__content p { margin: 0; }

/* --- Pflichtfeld-Hervorhebung (fehlende Felder aus Auditfall) --- */
.form-group--required-fill { position: relative; }
.form-input--highlight {
  border-color: #f97316 !important;
  background: #fff7ed !important;
}
.form-input--highlight:focus { box-shadow: 0 0 0 2px rgba(249,115,22,.25); }
.form-required-fill-badge {
  display: inline-block; margin-left: 6px;
  background: #fff7ed; border: 1px solid #f97316;
  color: #c2410c; font-size: .72rem; font-weight: 600;
  padding: 1px 6px; border-radius: 99px;
}
.form-required-fill-hint {
  width: 100%; font-size: .82rem; color: #c2410c;
  font-weight: 600; margin: 0 0 6px;
}


/* =========================================================
   ZIP-Dokumentenimport Modul
   ========================================================= */

/* --- Audittyp-Banner (Pflicht / Optional) --- */
.docimport-delivery-banner {
  display: flex; align-items: flex-start; gap: var(--space-md);
  border-radius: var(--radius); padding: var(--space-md) var(--space-lg);
  margin-bottom: var(--space-lg); font-size: .875rem; line-height: 1.5;
}
.docimport-delivery-banner--rot {
  background: #fef2f2; border: 1px solid #fca5a5; color: #b91c1c;
}
.docimport-delivery-banner--gruen {
  background: #f0fdf4; border: 1px solid #86efac; color: #15803d;
}
.docimport-delivery-banner__icon { font-size: 1.4rem; flex-shrink: 0; }
.docimport-delivery-banner__content { flex: 1; }
.docimport-delivery-banner__content p { margin: 4px 0 0; }
.docimport-delivery-banner__revision { font-size: .8rem; opacity: .85; margin-top: 6px !important; }
.docimport-delivery-banner__revision--warn { color: #92400e; }

.docimport-delivery-badge {
  display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .05em;
  padding: 1px 7px; border-radius: 999px; margin-left: 6px; vertical-align: middle;
}
.docimport-delivery-badge--rot   { background: #fecaca; color: #991b1b; }
.docimport-delivery-badge--gruen { background: #bbf7d0; color: #166534; }

/* --- Aktive Revision Badge --- */
.docimport-active-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .75rem; font-weight: 600; color: #065f46;
  background: #d1fae5; border: 1px solid #6ee7b7;
  padding: 2px 10px; border-radius: 999px;
}

/* Optionaler Upload-Hinweis neben Titel */
.docimport-optional-badge {
  font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
  background: #d1fae5; color: #065f46; border-radius: 999px;
  padding: 2px 8px; margin-left: 8px; vertical-align: middle;
}

/* Aktive Revision: hervorgehobene Zeile in der Liste */
.docimport-list-item--active-revision {
  border-left: 4px solid #10b981 !important;
  background: #f0fdf4 !important;
}

/* --- UI-Hinweis --- */
.docimport-ui-hint {
  background: #f0f9ff; border: 1px solid #bae6fd; border-radius: var(--radius);
  padding: var(--space-md); margin-bottom: var(--space-lg);
  font-size: .875rem; color: #0369a1; line-height: 1.5;
}

/* --- Upload-Zone --- */
.docimport-upload-zone {
  border: 2px dashed var(--color-border); border-radius: var(--radius);
  padding: var(--space-xl); text-align: center;
  transition: border-color .2s, background .2s; cursor: pointer;
}
.docimport-upload-zone--dragging {
  border-color: var(--color-primary); background: #eff6ff;
}
.docimport-upload-zone__icon { font-size: 2.5rem; margin-bottom: var(--space-sm); }
.docimport-upload-zone__text { font-size: 1rem; color: var(--color-text); }
.docimport-upload-zone__hint { font-size: .8rem; color: var(--color-text-muted); margin-top: 4px; }
.docimport-upload-zone__selected { font-size: .875rem; color: var(--color-primary); font-weight: 600; margin-top: var(--space-sm); }
.docimport-upload-zone__browse .link { color: var(--color-primary); text-decoration: underline; cursor: pointer; }

/* --- Ordnerstruktur-Vorschau --- */
.docimport-folder-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); }
@media (max-width: 768px) { .docimport-folder-grid { grid-template-columns: 1fr; } }
.docimport-folder-group-title { font-size: .85rem; font-weight: 700; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: var(--space-xs); }
.docimport-folder-item { display: flex; align-items: center; gap: var(--space-xs); padding: 4px 6px; border-radius: 4px; font-size: .85rem; margin-bottom: 3px; }
.docimport-folder-item--pflicht { background: #eff6ff; }
.docimport-folder-item--norm { background: #f9fafb; }
.docimport-folder-order { font-weight: 700; color: var(--color-text-muted); font-size: .75rem; min-width: 20px; }
.docimport-folder-name { font-family: monospace; }
.docimport-folder-note { font-size: .8rem; color: var(--color-text-muted); margin-top: var(--space-sm); font-style: italic; }

/* --- Import-Liste --- */
.docimport-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.docimport-list-item {
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius); padding: var(--space-sm);
}
.docimport-list-item__header { display: flex; align-items: center; gap: var(--space-sm); flex-wrap: wrap; }
.docimport-list-item__name { font-weight: 600; font-family: monospace; font-size: .875rem; flex: 1; }
.docimport-list-item__date { font-size: .75rem; color: var(--color-text-muted); }
.docimport-list-item__stats { display: flex; gap: var(--space-sm); font-size: .8rem; color: var(--color-text-muted); margin: 4px 0; flex-wrap: wrap; }
.docimport-list-item__actions { display: flex; gap: var(--space-xs); }
.docimport-stat--rot { color: var(--color-danger); font-weight: 600; }
.docimport-stat--gelb { color: #92400e; font-weight: 600; }

/* --- Statistik-Kacheln --- */
.docimport-stats-row {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: var(--space-sm); margin-bottom: var(--space-lg);
}
.docimport-stat-tile {
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius); padding: var(--space-sm); text-align: center;
}
.docimport-stat-tile__number { display: block; font-size: 1.75rem; font-weight: 700; color: var(--color-primary); }
.docimport-stat-tile__label  { display: block; font-size: .75rem; color: var(--color-text-muted); }
.docimport-stat-tile--gruen .docimport-stat-tile__number { color: #166534; }
.docimport-stat-tile--gelb  .docimport-stat-tile__number { color: #92400e; }
.docimport-stat-tile--rot   .docimport-stat-tile__number { color: var(--color-danger); }

/* --- Pflichtordner-Ampel-Grid --- */
.docimport-pflicht-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-xs);
}
.docimport-pflicht-tile {
  display: flex; flex-direction: column; gap: 2px;
  padding: 8px 10px; border-radius: var(--radius); border: 1px solid transparent;
}
.docimport-pflicht-tile--gruen { background: #f0fdf4; border-color: #86efac; }
.docimport-pflicht-tile--gelb  { background: #fffbeb; border-color: #fde68a; }
.docimport-pflicht-tile--rot   { background: #fef2f2; border-color: #fca5a5; }
.docimport-pflicht-tile__ampel { font-size: 1.1rem; }
.docimport-pflicht-tile__order { font-size: .7rem; font-weight: 700; color: var(--color-text-muted); }
.docimport-pflicht-tile__name  { font-size: .82rem; font-weight: 600; }
.docimport-pflicht-tile__count { font-size: .72rem; color: var(--color-text-muted); }
.docimport-pflicht-tile__status { font-size: .7rem; font-family: monospace; color: var(--color-text-muted); }

/* --- Prüfmatrix-Tabelle --- */
.docimport-table-wrap { overflow-x: auto; }
.docimport-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.docimport-table th {
  background: var(--color-primary); color: #fff;
  padding: 7px 10px; text-align: left; font-size: .78rem; font-weight: 600;
  white-space: nowrap; position: sticky; top: 0; z-index: 1;
}
.docimport-table td { padding: 7px 10px; border-bottom: 1px solid var(--color-border); vertical-align: top; }
.docimport-row--gruen { border-left: 3px solid #22c55e; }
.docimport-row--gelb  { border-left: 3px solid #f59e0b; }
.docimport-row--rot   { border-left: 3px solid var(--color-danger); }

.docimport-cell-ampel  { font-size: 1rem; width: 30px; }
.docimport-cell-folder { min-width: 180px; max-width: 200px; font-weight: 600; }
.docimport-cell-filename { min-width: 200px; max-width: 260px; word-break: break-all; }
.docimport-cell-type   { min-width: 140px; color: var(--color-text-muted); }
.docimport-cell-note   { min-width: 200px; max-width: 300px; font-size: .78rem; color: var(--color-text-muted); }
.docimport-cell-conf   { text-align: right; min-width: 60px; }
.docimport-cell-bool   { text-align: center; }
.docimport-ext { font-size: .7rem; color: var(--color-text-muted); margin-left: 4px; }
.docimport-empty { color: var(--color-text-muted); }

/* --- Status-Badges --- */
.docimport-status {
  display: inline-block; padding: 1px 7px; border-radius: 99px;
  font-size: .72rem; font-weight: 600; white-space: nowrap;
}
.docimport-status--passend, .docimport-status--wahrscheinlich-passend
  { background: #dcfce7; color: #166534; }
.docimport-status--unklar, .docimport-status--mehrfachablage-pruefen
  { background: #fef3c7; color: #92400e; }
.docimport-status--wahrscheinlich-falsch-abgelegt, .docimport-status--falsch-abgelegt,
.docimport-status--fehlt, .docimport-status--leerer-ordner
  { background: #fee2e2; color: #991b1b; }

.docimport-status-badge {
  display: inline-block; padding: 2px 8px; border-radius: 99px;
  font-size: .75rem; font-weight: 600;
}
.docimport-status-badge--complete  { background: #dcfce7; color: #166534; }
.docimport-status-badge--uploaded  { background: #f0f9ff; color: #0369a1; }
.docimport-status-badge--analyzing { background: #fef3c7; color: #92400e; }
.docimport-status-badge--error     { background: #fee2e2; color: #991b1b; }

/* --- Kategorie-Badge --- */
.docimport-cat {
  display: inline-block; padding: 1px 6px; border-radius: 4px;
  font-size: .7rem; font-weight: 700;
}
.docimport-cat--pflicht { background: #dbeafe; color: #1d4ed8; }
.docimport-cat--norm_spezifisch, .docimport-cat--norm-spezifisch
  { background: #f3f4f6; color: #6b7280; }

/* --- Problem-Cards --- */
.docimport-problems { display: flex; flex-direction: column; gap: var(--space-sm); }
.docimport-problem-card {
  border-radius: var(--radius); padding: var(--space-sm);
  border-left: 3px solid var(--color-border);
}
.docimport-problem-card--rot  { background: #fef2f2; border-color: var(--color-danger); }
.docimport-problem-card--gelb { background: #fffbeb; border-color: #f59e0b; }
.docimport-problem-card__header { display: flex; align-items: center; gap: var(--space-xs); flex-wrap: wrap; margin-bottom: 4px; }
.docimport-problem-card__file { font-family: monospace; font-size: .82rem; margin: 2px 0; }
.docimport-problem-card__note { font-size: .85rem; color: var(--color-text-muted); margin: 2px 0; }
.docimport-problem-card__expected { font-size: .8rem; color: var(--color-text-muted); font-style: italic; margin: 2px 0; }

/* --- Ordner-Detail --- */
.docimport-folder-detail {
  border-bottom: 1px solid var(--color-border); padding: var(--space-sm) 0;
}
.docimport-folder-detail__header {
  display: flex; align-items: center; gap: var(--space-xs); flex-wrap: wrap;
  padding: 4px 0;
}
.docimport-folder-detail__count { font-size: .78rem; color: var(--color-text-muted); margin-left: auto; }
.docimport-folder-detail__toggle { font-size: .75rem; color: var(--color-text-muted); }
.docimport-folder-detail__body { padding: var(--space-sm) 0 0 var(--space-md); }
.docimport-folder-detail__expected { font-size: .82rem; color: var(--color-text-muted); font-style: italic; margin-bottom: var(--space-xs); }
.docimport-folder-detail__file {
  display: flex; align-items: flex-start; gap: var(--space-xs);
  flex-wrap: wrap; padding: 4px 0; border-top: 1px solid #f3f4f6; font-size: .85rem;
}
.docimport-filename { flex-shrink: 0; max-width: 300px; word-break: break-all; }
.docimport-detected-type { color: var(--color-text-muted); font-style: italic; }
.docimport-role-badge {
  background: #f3f4f6; color: #6b7280; font-size: .72rem;
  padding: 1px 6px; border-radius: 99px;
}
.docimport-meta { font-size: .75rem; color: var(--color-text-muted); }
.docimport-plaus-note { width: 100%; font-size: .78rem; color: var(--color-text-muted); margin: 2px 0 0 24px; }

/* --- Fehlende Pflichtordner --- */
.docimport-missing-section { margin-top: var(--space-lg); }
.docimport-missing-title { font-size: .9rem; font-weight: 700; color: var(--color-danger); margin-bottom: var(--space-sm); }
.docimport-missing-item {
  display: flex; gap: var(--space-sm); flex-wrap: wrap;
  padding: 6px 8px; background: #fef2f2; border-radius: 4px;
  margin-bottom: 4px; font-size: .85rem;
}

/* ============================================================
   Paul Platform V2 — Plattform-spezifische Styles
   Superadmin · ISO-Paul · Tenant-Navigation
   ============================================================ */

/* --- Plattform V2: Nav-Varianten — keine Overrides nötig,
   da bereits oben korrekt definiert. Nur Fallbacks: ---------- */
.nav__link--secondary { opacity: .7; font-size: .85em; }
.nav__user-badge--superadmin { background: var(--paul-warning); color: var(--paul-dark); }

/* --- Footer: Mandanten-Anzeige (CI) ------------------------- */
.footer__tenant { color: var(--paul-green); font-weight: 600; }

/* --- ISO-Paul: Modul-Grid ----------------------------------- */
.iso-module-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-md);
  margin-top: var(--space-lg);
}

.iso-module-card {
  display: flex; align-items: flex-start; gap: var(--space-md);
  padding: var(--space-md) var(--space-lg);
  background: var(--color-bg-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, transform .1s;
  text-decoration: none; color: inherit;
}
.iso-module-card:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
  text-decoration: none;
}
.iso-module-card--muted {
  opacity: .7;
  background: var(--color-bg);
}
.iso-module-card--muted:hover { opacity: .85; transform: none; }

.iso-module-card__icon {
  font-size: 2rem; line-height: 1; flex-shrink: 0; margin-top: 2px;
}
.iso-module-card__content { flex: 1; }
.iso-module-card__title {
  font-size: 1rem; font-weight: 600; margin-bottom: .2rem;
  color: var(--color-primary);
}
.iso-module-card__desc {
  font-size: .85rem; color: var(--color-text-muted); margin-bottom: .5rem; line-height: 1.4;
}

/* --- Superadmin: Layout ------------------------------------- */
.layout-two-col {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: var(--space-lg);
  align-items: start;
}
@media (max-width: 900px) {
  .layout-two-col { grid-template-columns: 1fr; }
}

/* --- Badges: Erweiterungen ---------------------------------- */
.badge--info {
  background: #dbeafe; color: #1d4ed8;
}

/* --- Table: Muted-Row --------------------------------------- */
.table__row--muted { opacity: .5; }

/* --- Norm-Card: Radio-Select -------------------------------- */
.norm-card {
  display: flex; flex-direction: column; gap: .25rem;
  padding: var(--space-md); border: 2px solid var(--color-border);
  border-radius: var(--radius-lg); cursor: pointer;
  transition: border-color .15s, background .15s;
  flex: 1; min-width: 200px;
}
.norm-card:hover { border-color: var(--color-primary); }
.norm-card--selected { border-color: var(--color-primary); background: var(--color-primary-light); }
.norm-card__code { font-size: 2rem; }
.norm-card__name { font-weight: 700; font-size: 1rem; color: var(--color-primary); }
.norm-card__desc { font-size: .82rem; color: var(--color-text-muted); line-height: 1.4; }

/* --- Card: Header ------------------------------------------- */
.card__header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: var(--space-md);
}

/* --- Form: Hint -------------------------------------------- */
.form-hint { font-size: .78rem; color: var(--color-text-muted); margin-top: .2rem; display: block; }
.form-input--mono { font-family: var(--font-mono); font-size: .9em; }

/* --- Alert: Warning Variante (falls fehlt) ------------------ */
.alert--warning {
  background: var(--color-warning-light); color: #7c4a03;
  border: 1px solid #f5d07a; border-radius: var(--radius);
  padding: var(--space-sm) var(--space-md); font-size: .9rem;
}

/* --- Alpine.js: x-cloak verhindert FOUC -------------------- */
[x-cloak] { display: none !important; }

/* --- Button: Secondary (CI: paul-navy als Sekundärfarbe) ---- */
.btn--secondary {
  background: transparent;
  color: var(--paul-navy);
  border-color: var(--paul-navy);
}
.btn--secondary:hover:not(:disabled) {
  background: rgba(2,58,81,.07);
  border-color: var(--paul-navy);
}

/* --- Rechtskataster: KI-Recherche-Highlight-Ring ------------ */
.form-input.ki-filled,
.form-select.ki-filled,
.form-textarea.ki-filled {
  border-color: #3b82f6;
  background: #eff6ff;
  transition: border-color .3s, background .3s;
}

/* ============================================================
   Management Review — ISO-Paul
   ============================================================ */

/* --- Fortschrittsbalken ----------------------------------- */
.mr-progress-bar {
  height: 6px; border-radius: 3px;
  background: var(--paul-border); margin-bottom: .25rem; overflow: hidden;
}
.mr-progress-bar__fill {
  height: 100%; background: var(--paul-green);
  border-radius: 3px; transition: width .4s ease;
}
.mr-progress-label { font-size: .75rem; color: var(--paul-slate); margin-bottom: 1.5rem; }

/* --- Aktions-Banner (Status-Übergang) --------------------- */
.mr-action-bar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: .75rem; padding: .75rem 1rem;
  background: var(--paul-page); border: 1px solid var(--paul-border);
  border-radius: var(--radius); margin-bottom: 1.5rem;
}
.mr-action-bar__left  { font-size: .875rem; }
.mr-action-bar__right { flex-shrink: 0; }
.mr-status-form {
  flex-basis: 100%; border-top: 1px solid var(--paul-border);
  padding-top: .75rem; margin-top: .25rem;
}

/* --- Gruppen-Header --------------------------------------- */
.mr-group { margin-bottom: 2.5rem; }
.mr-group__title {
  font-size: 1rem; font-weight: 700; color: var(--paul-navy);
  text-transform: uppercase; letter-spacing: .06em;
  border-bottom: 2px solid var(--paul-green); padding-bottom: .4rem;
  margin-bottom: 1rem;
}

/* --- Section Card ----------------------------------------- */
.mr-section-card {
  border: 1px solid var(--paul-border); border-radius: var(--radius-lg);
  background: var(--paul-white); margin-bottom: .75rem;
  padding: 1rem 1.25rem; transition: border-color .2s, box-shadow .2s;
}
.mr-section-card:hover { box-shadow: var(--shadow-sm); }
.mr-section-card--take-over  { border-left: 3px solid var(--paul-green); }
.mr-section-card--edit        { border-left: 3px solid #3b82f6; }
.mr-section-card--manual      { border-left: 3px solid var(--paul-slate); }
.mr-section-card--na          { border-left: 3px solid #9ca3af; background: #f9fafb; }

.mr-section-card__header     { margin-bottom: .5rem; }
.mr-section-card__title-row  { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.mr-section-card__title      { font-size: .95rem; font-weight: 600; color: var(--paul-dark); margin: 0; }
.mr-section-card__desc       { font-size: .8rem; color: var(--paul-slate); margin: .25rem 0 0; }

/* --- Entscheidungs-Badges --------------------------------- */
.mr-decision-badge {
  font-size: .7rem; font-weight: 600; padding: .2rem .55rem;
  border-radius: 20px; white-space: nowrap;
}
.mr-decision-badge--take-over { background: #dcfce7; color: #166534; }
.mr-decision-badge--edit      { background: #dbeafe; color: #1e40af; }
.mr-decision-badge--manual    { background: #f3f4f6; color: #374151; }
.mr-decision-badge--na        { background: #f3f4f6; color: #9ca3af; }
.mr-decision-badge--pending   { background: #fef3c7; color: #92400e; }

/* --- Vorgeschlagener Wert ---------------------------------- */
.mr-section-card__suggestion  { margin: .5rem 0; }
.mr-suggestion-label {
  font-size: .75rem; font-weight: 600; color: var(--paul-slate);
  display: flex; align-items: center; gap: .4rem; margin-bottom: .35rem;
}
.mr-source-tag {
  font-size: .65rem; background: var(--paul-border); color: var(--paul-slate);
  padding: .1rem .35rem; border-radius: 3px; font-weight: 400;
}
.mr-suggestion-text {
  font-size: .8rem; background: var(--paul-page); border: 1px solid var(--paul-border);
  border-radius: var(--radius); padding: .6rem .75rem; white-space: pre-wrap;
  color: var(--paul-dark); font-family: inherit; margin: 0; max-height: 120px;
  overflow-y: auto;
}
.mr-section-card__no-suggestion { margin: .35rem 0; }

/* --- Effektiver Wert (entschieden) ------------------------ */
.mr-section-card__effective { margin: .5rem 0; }
.mr-effective-label { font-size: .75rem; font-weight: 600; color: var(--paul-slate); display: block; margin-bottom: .2rem; }
.mr-effective-text {
  font-size: .85rem; color: var(--paul-dark); background: #f0fdf4;
  border: 1px solid #bbf7d0; border-radius: var(--radius);
  padding: .5rem .7rem; white-space: pre-wrap;
}
.mr-section-card__na-reason { margin: .35rem 0; font-size: .85rem; }

/* --- Entscheidungs-Aktionsbereich ------------------------- */
.mr-section-card__actions { margin-top: .75rem; border-top: 1px solid var(--paul-border); padding-top: .75rem; }
.mr-decision-btns { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .5rem; }
.mr-decision-btn {
  font-size: .8rem; font-weight: 500; padding: .35rem .75rem;
  border: 1px solid var(--paul-border); border-radius: var(--radius-btn);
  background: var(--paul-white); color: var(--paul-dark); cursor: pointer;
  transition: all 150ms;
}
.mr-decision-btn:hover { background: var(--paul-page); }
.mr-decision-btn--active {
  background: var(--paul-navy) !important; color: #fff !important;
  border-color: var(--paul-navy) !important;
}
.mr-decision-btn--na { color: var(--paul-slate); }
.mr-decision-btn--na.mr-decision-btn--active { background: #9ca3af !important; border-color: #9ca3af !important; }
.mr-edit-area { margin-top: .6rem; padding: .75rem; background: var(--paul-page); border-radius: var(--radius); }

/* --- Feedback: Fehler / Gespeichert ----------------------- */
.mr-error { color: var(--color-danger); font-size: .8rem; margin: .25rem 0; }
.mr-saved { color: var(--paul-green); font-size: .8rem; margin: .25rem 0; }

/* --- Follow-up-Tabelle ------------------------------------ */
.followup-action-bar { display: flex; margin-bottom: 1rem; }
.followup-table-wrap { overflow-x: auto; }
.followup-row--done    { opacity: .65; }
.followup-row--obsolete { opacity: .45; text-decoration: line-through; }
.followup-status-select { font-size: .8rem; }
.followup-status--open        { background: #fef3c7; }
.followup-status--in-progress { background: #dbeafe; }
.followup-status--done        { background: #dcfce7; }
.followup-status--overdue     { background: #fee2e2; }
.followup-status--cancelled   { background: #f3f4f6; }
.followup-status--obsolete    { background: #f3f4f6; color: #9ca3af; }

/* --- Fortschritt-Mini (Index-Tabelle) --------------------- */
.progress-mini {
  width: 80px; height: 6px; background: var(--paul-border);
  border-radius: 3px; display: inline-block; overflow: hidden; vertical-align: middle;
}
.progress-mini__bar {
  height: 100%; background: var(--paul-green); border-radius: 3px;
}

/* --- Tab-Badge -------------------------------------------- */
.tab-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; font-size: .7rem; font-weight: 700;
  background: var(--paul-warning, #f59e0b); color: #fff;
  border-radius: 9px; padding: 0 .3rem; margin-left: .3rem;
}



/* ==========================================================================
   Setup-Konsolidierung — Ergänzungen (2026-04-23)
   ========================================================================== */

/* --- form-control: Kompatibilitäts-Alias für form-input/select/textarea --- */
.form-control {
  width: 100%; padding: 8px 12px; border: 1px solid var(--color-border);
  border-radius: var(--radius); font-size: .9rem; font-family: inherit;
  background: #fff; transition: border-color .15s; display: block;
}
.form-control:focus {
  outline: none;
  border-color: var(--paul-green);
  box-shadow: 0 0 0 3px rgba(147,185,59,.18);
}
select.form-control { appearance: auto; }
textarea.form-control { resize: vertical; min-height: 80px; }

/* ==========================================================================
   CARD-SYSTEM — DESIGNSYSTEM-REGELWERK (ADR-UI-001)
   ==========================================================================

   ARCHITEKTUR (kanonisch):
   ┌─ .card  (padding: var(--space-lg)) ──────────────────────────────────┐
   │  ┌─ .card__header  (margin-bottom: var(--space-md)) ───────────────┐ │
   │  │  Titel + Aktionen                                                │ │
   │  └──────────────────────────────────────────────────────────────────┘ │
   │  ┌─ .card__body  (padding: 0) ─────────────────────────────────────┐ │
   │  │  Hauptinhalt — erhält Padding vom .card-Elternelement           │ │
   │  └──────────────────────────────────────────────────────────────────┘ │
   └──────────────────────────────────────────────────────────────────────┘

   REGEL: .card__body ist ein reiner Strukturcontainer.
   → Kein eigenes Padding — .card stellt padding:var(--space-lg) bereit.
   → Sonderfälle NICHT über globale Umdefinition lösen.

   MODIFIER / VARIANTEN:
   · .card--form       max-width: 680px  (schmale Formularkarten)
   · .card--wide       max-width: 880px  (Setup-Formularkarten, Tabellen)
   · .card--action     farbige Hervorhebung (Aktionskarten)
   · .card--meta       Hintergrundfarbvariante

   GHOST-CLASS-HINWEIS (pre-existing, noch nicht aktiviert):
   · .card__body--noPad — Intention: Inhalte sollen bündig an den Kartenrand
     reichen (Tabellen, Timeline). Aktivierung bei Bedarf mit:
       .card__body--noPad { margin: calc(-1 * var(--space-lg)); }
     Aktuell bewusst NICHT aktiviert → bestehende Layouts unverändert.
   · .p-0 auf .card__body — ebenfalls ghost class ohne Definition.
     Beide Klassen sind im Codebase als Intentions-Hinweis dokumentiert,
     haben aber keinen CSS-Effekt. Vor Aktivierung: alle 5 Verwendungsstellen
     prüfen (session_detail.html, decisions.html, item_form.html,
     actions/detail.html).

   NEUE KARTEN / FORMULARE: .card + (optional) .card__header + .card__body
   verwenden. Kein .card__body { padding } manuell setzen.
   ========================================================================== */

/* card__body: Strukturcontainer — Padding kommt vom .card-Elternelement.
   Äquivalent zum Pre-Session-2-Zustand (damals: keine Regel = effektiv 0). */
.card__body { padding: 0; }

/* --- card--wide: Setup-/Breittabellen-Karten ----------------------------- */
.card--wide { max-width: 880px; }

/* --- grid--3col: Dreispaltiges responsives Grid (z.B. Adresszeile) ------- */
.grid--3col { grid-template-columns: 2fr 1fr 1fr; }
@media (max-width: 720px) { .grid--3col { grid-template-columns: 1fr; } }

/* --- setup-form: veraltet — durch .card + .card--wide ersetzen ----------- */
.setup-form { max-width: 880px; }

/* --- ki-badge: KI-Hinweis-Element ---------------------------------------- */
.ki-badge {
  display: inline-flex; align-items: center; gap: .35rem;
  background: #f0f9ff; border: 1px solid #bae6fd;
  color: #0369a1; border-radius: var(--radius); padding: 3px 10px;
  font-size: .78rem; font-weight: 500;
}

/* --- ki-suggestion-panel: Container für KI-Vorschläge -------------------- */
.ki-suggestion-panel {
  border: 1px solid #bae6fd; border-radius: var(--radius);
  background: #f0f9ff; padding: var(--space-md);
  margin-top: var(--space-md);
}
.ki-suggestion-panel__title {
  font-size: .9rem; font-weight: 600; color: #0369a1;
  margin-bottom: var(--space-sm);
}

/* --- upload-zone: Datei-Upload-Bereich ------------------------------------ */
.upload-zone {
  border: 2px dashed var(--color-border); border-radius: var(--radius);
  padding: var(--space-lg); text-align: center;
  background: var(--paul-page); transition: border-color .15s;
}
.upload-zone:hover { border-color: var(--paul-green); }
.upload-zone input[type="file"] { display: none; }
