/* ============================================================
   IGNITE App — screen-spezifische Ergänzungen zu ministry-dashboard.css
   Konvention: Klassen-Präfix ig-, je Screen ein Abschnitt am Dateiende.
   ============================================================ */

/* dashboard */

.ig-db-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:16px; flex-wrap:wrap; margin-bottom:20px;
}
.ig-db-title{
  font-size:var(--fs-2xl, 2rem); font-weight:var(--fw-black, 800);
  letter-spacing:var(--tracking-tight, -0.01em); color:var(--fg, #000);
  line-height:1.1; margin:2px 0 6px;
}
.ig-db-kunde{
  font-size:var(--fs-base, 0.875rem); color:var(--fg-2, #808080);
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.ig-db-snapmeta{ font-size:var(--fs-xs, 0.6875rem); color:var(--fg-2, #808080); }

.ig-db-note{ margin-bottom:20px; }

.ig-db-unassigned{
  font-size:var(--fs-xs, 0.6875rem); color:var(--negative, #e30613);
  margin:-6px 0 10px;
}

/* Team-Karten */
.ig-db-teams{
  display:grid; grid-template-columns:repeat(2, 1fr);
  gap:14px; margin-bottom:24px;
}
.ig-db-team{ padding:0; overflow:hidden; display:flex; flex-direction:column; }
.ig-db-team-head{ padding:16px 18px 12px; border-bottom:1px solid var(--line, #dadada); position:relative; }
.ig-db-team-head::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--ig-db-accent, #000);
}
.ig-db-team-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.ig-db-team-name{
  font-size:var(--fs-lg, 1.125rem); font-weight:var(--fw-black, 800);
  color:var(--fg, #000); letter-spacing:var(--tracking-tight, -0.01em);
}
.ig-db-team-sub{ font-size:var(--fs-xs, 0.6875rem); color:var(--fg-2, #808080); margin-top:2px; }
.ig-db-team-chart{ position:relative; height:180px; padding:10px 14px 4px; border-bottom:1px solid #ececec; }

.ig-db-cover{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:12px 18px 0; }
.ig-db-cover-label{
  font-size:10px; font-weight:var(--fw-semibold, 600); text-transform:uppercase;
  letter-spacing:.08em; color:var(--fg-2, #808080); margin-right:2px;
}
.ig-db-cover-chip{
  font-size:10px; font-weight:var(--fw-semibold, 600); padding:2px 8px;
  border:1px solid var(--border, #dadada); border-radius:0;
  color:var(--fg-3, #b3b3b3); background:#fafafa;
  text-transform:uppercase; letter-spacing:.05em;
}
.ig-db-cover-chip.on{ background:#000; color:#fff; }

.ig-db-div{
  display:flex; gap:14px; flex-wrap:wrap; padding:8px 18px 0;
  font-size:var(--fs-xs, 0.6875rem); color:var(--fg-1, #4d4d4d);
}

.ig-db-members{ padding:12px 18px 16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.ig-db-member{
  display:flex; align-items:center; gap:10px; padding:8px 10px;
  background:var(--bg-soft, #f4f4f4); border:1px solid transparent; border-radius:2px;
}
.ig-db-member:hover{ border-color:var(--border, #dadada); }
.ig-db-member-bar{ width:4px; align-self:stretch; border-radius:2px; flex-shrink:0; }
.ig-db-member-body{ flex:1; min-width:0; }
.ig-db-member-name{ font-size:var(--fs-sm, 0.75rem); font-weight:var(--fw-semibold, 600); color:var(--fg, #000); }
.ig-db-member-abt{ font-size:var(--fs-xs, 0.6875rem); color:var(--fg-2, #808080); margin-top:1px; }
.ig-db-member-missing .ig-db-member-name{ color:var(--fg-3, #b3b3b3); font-style:italic; }
.ig-db-member-empty{
  font-size:var(--fs-xs, 0.6875rem); color:var(--fg-3, #b3b3b3);
  font-style:italic; padding:10px; text-align:center;
}
.ig-db-style-badge{
  display:inline-block; font-size:10px; font-weight:var(--fw-semibold, 600);
  padding:2px 8px; border-radius:0; text-transform:uppercase;
  letter-spacing:.05em; white-space:nowrap; flex-shrink:0;
}

/* Portfolio */
.ig-db-portfolio{ margin-bottom:24px; }
.ig-db-portfolio-chart{ position:relative; height:190px; }
.ig-db-prim-chips{ display:flex; gap:6px; flex-wrap:wrap; margin-top:12px; }
.ig-db-prim-chip{
  display:inline-flex; align-items:center; gap:6px;
  font-size:10px; font-weight:var(--fw-semibold, 600); padding:2px 8px;
  border:1px solid var(--border, #dadada); border-radius:0;
  color:var(--fg-1, #4d4d4d); background:#fafafa;
}
.ig-db-prim-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }

/* Empty-State */
.ig-db-empty{ text-align:center; padding:48px 24px; margin-bottom:24px; }
.ig-db-empty-title{
  font-size:var(--fs-lg, 1.125rem); font-weight:var(--fw-bold, 700);
  color:var(--fg, #000); margin-bottom:8px;
}
.ig-db-empty-text{
  font-size:var(--fs-sm, 0.75rem); color:var(--fg-2, #808080);
  max-width:460px; margin:0 auto 18px; line-height:1.6;
}

@media (max-width: 1000px){
  .ig-db-teams{ grid-template-columns:1fr; }
}

/* ═══════════ core (App-Shell, Router, gemeinsame Bausteine) ═══════════ */

.ig-app { display: flex; min-height: 100vh; }

.ig-sidebar {
  width: 216px; flex-shrink: 0;
  background: var(--white);
  border-right: 1.5px solid var(--black);
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh;
}
.ig-sidebar-head { padding: 18px 16px 14px; border-bottom: 1px solid var(--border); -webkit-app-region: drag; }
.ig-sidebar-head .ministry-mark { width: 44px; }
.ig-sidebar-title { font-size: var(--fs-md); font-weight: var(--fw-bold); letter-spacing: var(--tracking-tight); margin-top: 10px; }
.ig-sidebar-sub { font-size: var(--fs-xs); color: var(--fg-2); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }

.ig-nav { padding: 12px 0; flex: 1; overflow-y: auto; display: flex; flex-direction: column; }
.ig-nav-group { font-size: 10px; font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--fg-3); padding: 14px 16px 6px; }
.ig-nav a {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 16px; color: var(--fg-1); text-decoration: none;
  font-size: var(--fs-sm); font-weight: var(--fw-medium);
  border-left: 3px solid transparent;
}
.ig-nav a:hover { background: var(--bg-soft); }
.ig-nav a.active { border-left-color: var(--ministry-red); background: var(--bg-soft); font-weight: var(--fw-semibold); color: var(--fg); }
.ig-nav a.disabled { color: var(--fg-3); pointer-events: none; }
.ig-nav .ig-nav-num {
  width: 18px; height: 18px; border: 1px solid var(--border); font-size: 10px;
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  color: var(--fg-2); font-weight: var(--fw-semibold);
}
.ig-nav a.active .ig-nav-num { border-color: var(--ministry-red); color: var(--ministry-red); }

.ig-sidebar-foot { padding: 12px 16px; border-top: 1px solid var(--border); font-size: 10px; color: var(--fg-3); }

.ig-content { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ig-topbar {
  background: var(--bg); border-bottom: 1.5px solid var(--black);
  padding: 12px 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  position: sticky; top: 0; z-index: 90;
}
.ig-topbar h1 { font-size: var(--fs-lg); font-weight: var(--fw-semibold); letter-spacing: var(--tracking-tight); }
.ig-topbar .ig-proj { font-size: var(--fs-xs); color: var(--fg-2); }
.ig-main { padding: 24px 28px 48px; max-width: 1400px; width: 100%; margin: 0 auto; }

/* Toast */
.ig-toasts { position: fixed; bottom: 20px; right: 20px; z-index: 500; display: flex; flex-direction: column; gap: 8px; }
.ig-toast {
  background: var(--black); color: var(--white); padding: 10px 16px;
  font-size: var(--fs-sm); border-left: 3px solid var(--ministry-aqua);
  box-shadow: var(--shadow-2); max-width: 380px;
}
.ig-toast.err { border-left-color: var(--ministry-red); }
.ig-toast.ok { border-left-color: #1a7a4a; }

/* Fortschritt */
.ig-progress { background: var(--bg-soft); border: 1px solid var(--border); height: 22px; position: relative; overflow: hidden; }
.ig-progress-bar { position: absolute; inset: 0 auto 0 0; background: var(--ministry-aqua); transition: width 300ms var(--ease-out); }
.ig-progress-label { position: relative; z-index: 1; font-size: var(--fs-xs); line-height: 22px; padding: 0 10px; color: var(--fg); font-weight: var(--fw-medium); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Modal */
.ig-modal-bg { position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 300; display: flex; align-items: center; justify-content: center; padding: 24px; }
.ig-modal { background: var(--white); border: 1.5px solid var(--black); max-width: 720px; width: 100%; max-height: 88vh; overflow-y: auto; padding: var(--space-6); }
.ig-modal h2 { font-size: var(--fs-xl); font-weight: var(--fw-bold); letter-spacing: var(--tracking-tight); margin-bottom: var(--space-4); }
.ig-modal-wide { max-width: 1100px; }

/* Formulare */
.ig-field { margin-bottom: var(--space-4); }
.ig-field label { display: block; font-size: var(--fs-xs); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--fg-2); margin-bottom: 6px; }
.ig-field input[type="text"], .ig-field input[type="password"], .ig-field select, .ig-field textarea {
  width: 100%; padding: 8px 10px; border: 1px solid var(--border); border-radius: 0;
  font-family: var(--font-sans); font-size: var(--fs-base); color: var(--fg); background: var(--white);
}
.ig-field textarea { min-height: 90px; resize: vertical; line-height: 1.5; }
.ig-field input:focus, .ig-field select:focus, .ig-field textarea:focus { outline: 2px solid var(--ministry-aqua); outline-offset: -1px; }
.ig-field .ig-hint { font-size: var(--fs-xs); color: var(--fg-3); margin-top: 4px; }

/* Empty-State */
.ig-empty { text-align: center; padding: var(--space-7) var(--space-5); color: var(--fg-2); }
.ig-empty .ig-empty-icon { font-size: 40px; margin-bottom: var(--space-3); }
.ig-empty h3 { font-size: var(--fs-lg); font-weight: var(--fw-semibold); color: var(--fg); margin-bottom: var(--space-2); }
.ig-empty p { font-size: var(--fs-sm); max-width: 460px; margin: 0 auto var(--space-4); }

/* Projektkarten (Start) */
.ig-proj-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.ig-proj-card { cursor: pointer; }
.ig-proj-card .ig-proj-name { font-size: var(--fs-md); font-weight: var(--fw-semibold); margin-bottom: 2px; }
.ig-proj-card .ig-proj-meta { font-size: var(--fs-xs); color: var(--fg-2); }
.ig-proj-card .ig-proj-path { font-size: 10px; color: var(--fg-3); font-family: var(--font-mono); margin-top: 8px; word-break: break-all; }

/* Interview-Liste + Transkript */
.ig-int-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: var(--white); border: 1px solid var(--border); margin-bottom: 8px; }
.ig-int-row .ig-int-name { font-weight: var(--fw-semibold); font-size: var(--fs-base); }
.ig-int-row .ig-int-meta { font-size: var(--fs-xs); color: var(--fg-2); }
.ig-seg { display: flex; gap: 12px; padding: 8px 12px; border-bottom: 1px solid var(--bg-soft); font-size: var(--fs-sm); }
.ig-seg .ig-seg-t { font-family: var(--font-mono); font-size: 10px; color: var(--fg-3); width: 52px; flex-shrink: 0; padding-top: 2px; }
.ig-seg .ig-seg-sp { width: 20px; height: 20px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 10px; font-weight: var(--fw-bold); }
.ig-seg.sp-I .ig-seg-sp { background: var(--bg-soft); color: var(--fg-2); border: 1px solid var(--border); }
.ig-seg.sp-P .ig-seg-sp { background: var(--ministry-aqua-20); color: #1a6175; border: 1px solid var(--ministry-aqua-60); }
.ig-seg.loop { background: var(--ministry-red-20); }
.ig-seg .ig-seg-text { flex: 1; }
.ig-anchor-chip { scroll-margin-top: 80px; }

/* CPSP-Farbcodes */
.ig-style-clarifier { --style-color: #61c3d9; }
.ig-style-ideator { --style-color: #e30613; }
.ig-style-developer { --style-color: #1a7a4a; }
.ig-style-implementer { --style-color: #000000; }
.ig-style-badge {
  display: inline-block; font-size: 10px; font-weight: var(--fw-semibold);
  padding: 2px 8px; text-transform: uppercase; letter-spacing: 0.06em;
  border: 1px solid var(--style-color); color: var(--style-color); background: var(--white);
}
.ig-cpsp-bars { display: grid; gap: 4px; }
.ig-cpsp-bar { display: grid; grid-template-columns: 84px 1fr 34px; align-items: center; gap: 8px; font-size: var(--fs-xs); }
.ig-cpsp-bar .track { background: var(--bg-soft); border: 1px solid var(--border); height: 10px; position: relative; }
.ig-cpsp-bar .fillbar { position: absolute; inset: 0 auto 0 0; background: var(--style-color, var(--ministry-aqua)); }
.ig-cpsp-bar .val { text-align: right; color: var(--fg-2); font-family: var(--font-mono); font-size: 10px; }

/* Personen-Karte */
.ig-person-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.ig-person-card .ig-person-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 10px; }
.ig-person-card .ig-person-name { font-weight: var(--fw-semibold); }
.ig-person-card .ig-person-dept { font-size: var(--fs-xs); color: var(--fg-2); }
.ig-quote { font-size: var(--fs-xs); color: var(--fg-1); border-left: 2px solid var(--ministry-aqua); padding: 4px 10px; margin-top: 8px; font-style: italic; background: var(--bg-soft); }

/* Team-Builder */
.ig-builder { display: grid; grid-template-columns: 260px 1fr; gap: 14px; align-items: start; }
.ig-pool, .ig-team-col { background: var(--white); border: 1px solid var(--border); padding: 12px; min-height: 120px; }
.ig-team-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.ig-chip {
  display: flex; align-items: center; justify-content: space-between; gap: 6px;
  border: 1px solid var(--border); background: var(--white);
  padding: 6px 8px; margin-bottom: 6px; font-size: var(--fs-xs); cursor: grab;
  border-left: 3px solid var(--style-color, var(--border));
}
.ig-chip:active { cursor: grabbing; }
.ig-chip .ig-chip-dept { color: var(--fg-3); font-size: 10px; }
.ig-drop-ok { outline: 2px dashed var(--ministry-aqua); outline-offset: -4px; }
.ig-team-score { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--fg-2); }

/* Material-Raster */
.ig-mat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.ig-mat-card img { width: 100%; aspect-ratio: 3/2; object-fit: cover; border: 1px solid var(--border); background: var(--bg-soft); margin-bottom: 10px; }
.ig-mat-card .ig-mat-thumb { width: 100%; aspect-ratio: 3/2; border: 1px solid var(--border); background: var(--bg-soft); display: flex; align-items: center; justify-content: center; color: var(--fg-3); font-size: 32px; margin-bottom: 10px; }

/* Aufbereitung / Digitalisierung */
.ig-doc-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.ig-preview-frame { width: 100%; height: 70vh; border: 1px solid var(--border); background: var(--bg-soft); }
.ig-status-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }
.ig-status-extracted { background: var(--warning); }
.ig-status-edited { background: #1a7a4a; }
.ig-status-generated { background: var(--ministry-aqua); }

/* Tabs-Zeile mit größerem Abstand */
.ig-tabs { margin-bottom: var(--space-5); }

/* Grafik-Ergebnis */
.ig-grafik-img { max-width: 100%; border: 1px solid var(--border); background: var(--white); }

/* bewertung-portfolio */

.ig-pf-intro {
  font-size: var(--fs-sm);
  color: var(--fg-1);
  line-height: 1.6;
  max-width: 860px;
  margin-bottom: 16px;
}

/* KPI-Kachel mit Urteils-Akzent oben */
.ig-pf-kpi { position: relative; overflow: hidden; }
.ig-pf-kpi::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--accent, var(--black));
}

/* Chart-Container */
.ig-pf-chart { position: relative; height: 260px; }
.ig-pf-chart-tall { height: 420px; }

/* Rangfolge-Liste */
.ig-pf-kv {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid var(--line);
  font-size: var(--fs-sm);
}
.ig-pf-kv:last-of-type { border-bottom: none; }
.ig-pf-kv span { color: var(--fg-2); }
.ig-pf-kv b { font-weight: var(--fw-semibold); text-align: right; white-space: nowrap; }

/* Council-Matrix-Tabelle */
.ig-pf-scroll { overflow-x: auto; }
.ig-pf-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.ig-pf-table th, .ig-pf-table td {
  padding: 9px 10px;
  text-align: center;
  border-bottom: 1px solid var(--line);
}
.ig-pf-table th {
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fg-2);
  font-weight: var(--fw-semibold);
}
.ig-pf-table .ig-pf-th-sub { font-weight: var(--fw-regular); }
.ig-pf-table td:first-child, .ig-pf-table th:first-child {
  text-align: left;
  font-weight: var(--fw-semibold);
}
.ig-pf-table tr:hover td { background: var(--bg-soft); }
.ig-pf-dotv { display: inline-block; width: 13px; height: 13px; border-radius: 50%; }
.ig-pf-legend {
  display: flex;
  gap: 16px;
  margin-top: 12px;
  font-size: var(--fs-xs);
  color: var(--fg-2);
  flex-wrap: wrap;
}
.ig-pf-legend span { display: flex; align-items: center; gap: 6px; }

/* Modell-Karte */
.ig-pf-model { margin-bottom: 16px; }
.ig-pf-model-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1.5px solid var(--black);
}
.ig-pf-mh-left { flex: 1; min-width: 260px; }
.ig-pf-eyebrow {
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--fg-2);
  margin-bottom: 4px;
}
.ig-pf-name {
  font-size: var(--fs-xl);
  font-weight: var(--fw-black);
  letter-spacing: var(--tracking-tight);
  line-height: 1.15;
  margin-bottom: 8px;
}
.ig-pf-pitch { font-size: var(--fs-sm); color: var(--fg-1); line-height: 1.6; max-width: 680px; }
.ig-pf-metrics { display: flex; gap: 10px; flex-wrap: wrap; }
.ig-pf-metric {
  background: var(--bg-soft);
  border: 1px solid var(--border);
  padding: 8px 12px;
  min-width: 96px;
}
.ig-pf-metric .l {
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--fg-2);
}
.ig-pf-metric .v { font-size: var(--fs-md); font-weight: var(--fw-black); color: var(--fg); }

/* Editor-Zeile (Slider + Urteil) */
.ig-pf-editor {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 12px 16px;
  padding: 12px 14px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  margin-bottom: 4px;
}
.ig-pf-field label {
  display: block;
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fg-2);
  margin-bottom: 6px;
}
.ig-pf-field input[type="range"] {
  width: 100%;
  accent-color: var(--ministry-red);
  cursor: pointer;
}
.ig-pf-field select {
  width: 100%;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius-none);   /* Ministry: eckig */
  background: var(--white);
  color: var(--fg);
}
.ig-pf-field-val { font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--fg); }
.ig-pf-field-hint { font-size: var(--fs-xs); color: var(--fg-3); margin-top: 6px; }

/* Council: Abschnitts-Label */
.ig-pf-csec {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--fg-2);
  margin: 18px 0 10px;
  display: block;
}

/* Council: Linsen-Matrix */
.ig-pf-cmatrix { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.ig-pf-cmcell {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 11px 8px;
  text-align: center;
  background: var(--card);
  cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.ig-pf-cmcell:hover { border-color: var(--black); box-shadow: var(--shadow-2); }
.ig-pf-cdot {
  display: block;
  width: 14px; height: 14px;
  border-radius: 50%;
  border: none;
  padding: 0;
  margin: 0 auto 7px;
  cursor: pointer;
}
button.ig-pf-cdot:hover { outline: 2px solid var(--black); outline-offset: 2px; }
.ig-pf-cdot-static { margin: 0; flex: 0 0 auto; cursor: default; }
.ig-pf-clbl {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--fg-2);
  line-height: 1.3;
}
.ig-pf-crt { font-size: 12px; font-weight: var(--fw-bold); margin-top: 5px; }

/* Council: Berater-Details */
.ig-pf-adv {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
  margin-bottom: 8px;
  overflow: hidden;
}
.ig-pf-adv summary {
  list-style: none;
  cursor: pointer;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.ig-pf-adv summary::-webkit-details-marker { display: none; }
.ig-pf-adv-lens {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: #2b8aa0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ig-pf-adv-name { font-weight: var(--fw-semibold); font-size: var(--fs-sm); }
.ig-pf-adv-rt {
  margin-left: auto;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  padding: 3px 9px;
  white-space: nowrap;
}
.ig-pf-chev {
  color: var(--gray-500);
  transition: transform var(--dur-fast) var(--ease-out);
  font-size: var(--fs-xs);
  margin-left: 8px;
}
.ig-pf-adv[open] .ig-pf-chev { transform: rotate(90deg); }
.ig-pf-adv-body {
  padding: 2px 16px 15px 42px;
  color: var(--fg-1);
  font-size: var(--fs-sm);
  line-height: 1.62;
}

/* Council: Synthese */
.ig-pf-syn-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ig-pf-syn {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  background: var(--card);
}
.ig-pf-syn h6 {
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 9px;
}
.ig-pf-syn ul { list-style: none; display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; }
.ig-pf-syn li {
  font-size: var(--fs-xs);
  line-height: 1.5;
  color: var(--fg-1);
  padding-left: 13px;
  position: relative;
}
.ig-pf-syn li::before {
  content: '';
  position: absolute;
  left: 0; top: 6px;
  width: 5px; height: 5px;
  border-radius: 50%;
}
.ig-pf-syn p { font-size: var(--fs-xs); line-height: 1.55; color: var(--fg-1); }
.ig-pf-syn-einig { border-left: 4px solid var(--positive); }
.ig-pf-syn-einig h6 { color: var(--positive); }
.ig-pf-syn-einig li::before { background: var(--positive); }
.ig-pf-syn-streit { border-left: 4px solid var(--ministry-aqua); }
.ig-pf-syn-streit h6 { color: #2b8aa0; }
.ig-pf-syn-ueber { border-left: 4px solid var(--ministry-red); }
.ig-pf-syn-ueber h6 { color: var(--ministry-red); }
.ig-pf-syn-ueber li::before { background: var(--ministry-red); }

/* Council: Urteil des Vorsitzenden */
.ig-pf-verdict {
  border: 1px solid var(--border);
  border-left: 5px solid var(--vc, var(--ministry-aqua));
  border-radius: var(--radius-sm);
  background: var(--bg-soft);
  padding: 16px 18px;
  margin: 0 0 12px;
}
.ig-pf-vpill {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  padding: 3px 10px;
  letter-spacing: 0.04em;
  margin-bottom: 9px;
}
.ig-pf-verdict p { font-size: var(--fs-sm); line-height: 1.6; }
.ig-pf-vrow { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.ig-pf-vkv {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 13px 15px;
  background: var(--card);
}
.ig-pf-vkv .vk {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--fg-2);
  margin-bottom: 6px;
}
.ig-pf-vkv p { font-size: var(--fs-sm); line-height: 1.55; }

/* Council: riskanteste Annahme */
.ig-pf-risk {
  border: 2px solid var(--ministry-red);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  background: var(--card);
  margin-bottom: 4px;
}
.ig-pf-risk h6 {
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ministry-red);
  margin-bottom: 7px;
}
.ig-pf-risk > p { font-size: var(--fs-sm); line-height: 1.58; }
.ig-pf-risk-test {
  margin-top: 11px;
  padding: 11px 13px;
  background: #fdeef0;
  border-radius: var(--radius-sm);
  font-size: var(--fs-sm);
  line-height: 1.55;
}

@media (max-width: 900px) {
  .ig-pf-editor { grid-template-columns: repeat(2, 1fr); }
  .ig-pf-cmatrix { grid-template-columns: repeat(2, 1fr); }
  .ig-pf-syn-grid { grid-template-columns: 1fr; }
  .ig-pf-vrow { grid-template-columns: 1fr; }
  .ig-pf-chart-tall { height: 320px; }
}

/* aufbereitung-grafik */
.ig-gr-loading {
  padding: 28px 16px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-sm);
  color: var(--fg-2);
  font-size: var(--fs-sm);
  text-align: center;
}
.ig-gr-warn {
  border: 1px solid var(--ministry-red);
  border-left: 4px solid var(--ministry-red);
  border-radius: var(--radius-sm);
  background: #fdeef0;
  padding: 12px 14px;
  font-size: var(--fs-sm);
  line-height: 1.55;
  margin-bottom: 12px;
}
.ig-gr-frame {
  display: block;
  width: 100%;
  min-height: 78vh;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #fff;
}
.ig-gr-outhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
  margin-bottom: 10px;
}
.ig-gr-outputs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
}
.ig-gr-card img {
  width: 100%;
  display: block;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #fff;
}
.ig-gr-noimg {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-sm);
  color: var(--fg-2);
  font-size: var(--fs-sm);
}
.ig-gr-links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.ig-gr-links .btn { text-decoration: none; }

/* ═══════════ transkript-dialogansicht (1:1-Wortlaut) ═══════════ */
.ig-turn { padding: 10px 0; border-bottom: 1px solid var(--bg-soft); scroll-margin-top: 20px; }
.ig-turn:last-child { border-bottom: none; }
.ig-turn-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 3px; }
.ig-turn-name { font-weight: var(--fw-bold); font-size: var(--fs-sm); }
.ig-turn-name.sp-I { color: var(--fg-2); }
.ig-turn-name.sp-P { color: var(--fg); }
.ig-turn-time { font-family: var(--font-mono); font-size: 10px; color: var(--fg-3); }
.ig-turn-text { font-size: var(--fs-sm); line-height: 1.65; color: var(--gray-900); }
.ig-turn.loop { background: var(--ministry-red-20); margin: 0 -22px; padding: 10px 22px; }

/* auswertung-teamtool */
/* Screen „Auswertung & Teams“ — Port des Team-Tools (Snapshot-Leiste,
   Team-Konfiguration, Team-Karten, Teilnehmer-Tabelle mit Aufklapp-Details). */

.ig-tt-snapbar {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  margin-bottom: 14px; padding: 12px 16px;
  background: var(--bg-soft, #f4f4f4); border: 1px solid var(--border, #dadada);
  border-radius: var(--radius-sm, 4px);
}
.ig-tt-snaplabel {
  font-size: var(--fs-xs, 0.6875rem); font-weight: var(--fw-semibold, 600);
  text-transform: uppercase; letter-spacing: 0.04em; color: var(--gray-900, #4d4d4d);
  margin-right: 4px;
}
.ig-tt-input {
  font-family: var(--font-sans, "Outfit", system-ui, sans-serif);
  font-size: var(--fs-xs, 0.6875rem); padding: 6px 10px;
  border: 1px solid var(--gray-500, #b3b3b3); border-radius: 0;
  background: var(--white, #fff); color: var(--fg, #000);
}
.ig-tt-input:focus { outline: none; border-color: var(--ministry-aqua, #61c3d9); }
select.ig-tt-input.ig-tt-snapsel { min-width: 210px; }
.ig-tt-num { width: 72px; }
.ig-tt-status { font-size: var(--fs-xs, 0.6875rem); color: var(--fg-2, #808080); margin-left: auto; }

.ig-tt-config { display: flex; align-items: flex-end; gap: 18px; flex-wrap: wrap; margin-bottom: 20px; }
.ig-tt-config-group { display: flex; flex-direction: column; gap: 4px; }
.ig-tt-config-group label {
  font-size: var(--fs-xs, 0.6875rem); font-weight: var(--fw-semibold, 600);
  text-transform: uppercase; letter-spacing: 0.06em; color: var(--fg-2, #808080);
}
.ig-tt-config-score { margin-left: auto; display: flex; align-items: center; gap: 10px; }

.ig-tt-chart { position: relative; height: 190px; }
.ig-tt-prim-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
.ig-tt-prim-chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--fs-xs, 0.6875rem); color: var(--fg-1, #4d4d4d);
  border: 1px solid var(--border, #dadada); padding: 3px 8px; background: var(--white, #fff);
}
.ig-tt-prim-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }

/* Pool + Team-Karten (Drag-and-drop) */
.ig-tt-pool { margin-bottom: 14px; }
.ig-tt-pool-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ig-tt-pool-chips .ig-chip { margin-bottom: 0; }
.ig-tt-teams {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 12px; margin-bottom: 24px;
}
.ig-tt-team { padding: 0; overflow: hidden; display: flex; flex-direction: column; position: relative; }
.ig-tt-team::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--ig-tt-accent, #000);
}
.ig-tt-team-head { padding: 14px 16px 10px; border-bottom: 1px solid var(--line, #dadada); }
.ig-tt-team-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ig-tt-team-name {
  font-size: var(--fs-md, 1rem); font-weight: var(--fw-bold, 700);
  color: var(--fg, #000); letter-spacing: var(--tracking-tight, -0.01em);
}
.ig-tt-team-sub { font-size: var(--fs-xs, 0.6875rem); color: var(--fg-2, #808080); margin-top: 2px; }
.ig-tt-team-chart { position: relative; height: 170px; padding: 8px 12px 0; border-bottom: 1px solid #ececec; }
.ig-tt-cover { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; padding: 10px 16px 0; }
.ig-tt-cover-label {
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--fg-2, #808080); font-weight: var(--fw-semibold, 600); margin-right: 2px;
}
.ig-tt-cover-chip {
  font-size: 9px; font-weight: var(--fw-semibold, 600); text-transform: uppercase;
  letter-spacing: 0.05em; padding: 2px 6px;
  border: 1px solid var(--border, #dadada); color: var(--fg-3, #b3b3b3); background: var(--white, #fff);
}
.ig-tt-div {
  display: flex; gap: 12px; flex-wrap: wrap; padding: 8px 16px 0;
  font-size: var(--fs-xs, 0.6875rem); color: var(--fg-2, #808080);
}
.ig-tt-team-members { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.ig-tt-team-members .ig-chip { margin-bottom: 0; }
.ig-tt-empty { font-size: var(--fs-xs, 0.6875rem); color: var(--fg-3, #b3b3b3); font-style: italic; }

/* Teilnehmer-Tabelle */
.ig-tt-filters { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 10px 0 12px; }
.ig-tt-scroll { overflow-x: auto; }
.ig-tt-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm, 0.75rem); }
.ig-tt-table thead th {
  font-size: var(--fs-xs, 0.6875rem); text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--fg-2, #808080); font-weight: var(--fw-semibold, 600); text-align: left;
  padding: 8px 10px; border-bottom: 1.5px solid var(--black, #000); white-space: nowrap;
}
.ig-tt-table thead th.sortable { cursor: pointer; user-select: none; }
.ig-tt-table thead th.sortable:hover, .ig-tt-table thead th.sortable.active { color: var(--fg, #000); }
.ig-tt-table tbody td { padding: 9px 10px; border-bottom: 1px solid var(--line, #dadada); vertical-align: middle; }
.ig-tt-row { cursor: pointer; transition: background 150ms var(--ease-out, ease-out); }
.ig-tt-row:hover { background: var(--bg-soft, #f4f4f4); }
.ig-tt-caret {
  display: inline-block; width: 14px; color: var(--fg-3, #b3b3b3); font-size: 11px;
  transition: transform 150ms var(--ease-out, ease-out);
}
.ig-tt-row.open .ig-tt-caret { transform: rotate(90deg); color: var(--fg, #000); }
.ig-tt-name { font-weight: var(--fw-semibold, 600); color: var(--fg, #000); }
.ig-tt-tag { font-size: 10px; color: var(--fg-3, #b3b3b3); margin-left: 6px; white-space: nowrap; }
.ig-tt-assign {
  font-family: var(--font-sans, "Outfit", system-ui, sans-serif);
  font-size: 10px; font-weight: var(--fw-semibold, 600); padding: 3px 6px;
  border: 1px solid var(--border, #dadada); border-left: 3px solid var(--sc, #ccc);
  border-radius: 0; background: var(--white, #fff); color: var(--fg-1, #4d4d4d); cursor: pointer;
}
.ig-tt-mini { display: flex; gap: 6px; align-items: flex-end; }
.ig-tt-mini-col { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.ig-tt-mini-track { width: 9px; height: 32px; background: #ececec; display: flex; align-items: flex-end; overflow: hidden; }
.ig-tt-mini-fill { width: 100%; }
.ig-tt-mini-label { font-size: 9px; color: var(--fg-3, #b3b3b3); font-weight: var(--fw-semibold, 600); }

/* Aufklapp-Details */
.ig-tt-detail-cell { background: #fcfcfc; border-bottom: 1.5px solid var(--black, #000) !important; padding: 0 !important; }
.ig-tt-detail { padding: 16px 18px 18px; }
.ig-tt-summary {
  background: var(--bg-soft, #f4f4f4); border-left: 3px solid var(--ministry-aqua, #61c3d9);
  padding: 9px 13px; font-size: var(--fs-sm, 0.75rem); color: var(--fg-1, #4d4d4d); margin-bottom: 14px;
}
.ig-tt-dl {
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--fg-2, #808080); font-weight: var(--fw-semibold, 600); margin-right: 8px;
}
.ig-tt-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.ig-tt-h5 {
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--fg-2, #808080); font-weight: var(--fw-semibold, 600);
  margin: 0 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--line, #dadada);
}
.ig-tt-dim {
  display: grid; grid-template-columns: 190px 1fr 44px; align-items: center; gap: 8px;
  font-size: var(--fs-xs, 0.6875rem); margin-bottom: 7px;
}
.ig-tt-dim .track { background: var(--bg-soft, #f4f4f4); border: 1px solid var(--border, #dadada); height: 10px; position: relative; }
.ig-tt-dim .fill { position: absolute; inset: 0 auto 0 0; }
.ig-tt-dim .val { text-align: right; color: var(--fg-2, #808080); font-size: 10px; font-family: var(--font-mono, monospace); }
.ig-tt-marker { display: flex; gap: 6px; flex-wrap: wrap; }
.ig-tt-evidence { margin-top: 14px; }

@media (max-width: 900px) {
  .ig-tt-detail-grid { grid-template-columns: 1fr; gap: 14px; }
  .ig-tt-dim { grid-template-columns: 130px 1fr 40px; }
  .ig-tt-config-score { margin-left: 0; }
}

/* bewertung-portfolio-v2 */
/* Nachbau von Tools/IAV-Modellbewertung-Dashboard.html mit Präfix ig-pf2-.
   Die älteren ig-pf-Regeln oben bleiben stehen, werden aber nicht mehr genutzt. */

.ig-pf2-loading { font-size: var(--fs-sm); color: var(--fg-2); }
.ig-pf2-sec { margin-bottom: 8px; }

/* Kopfband (Original: .db-header) */
.ig-pf2-head {
  background: var(--white); border: 1px solid var(--border); border-bottom: 1.5px solid var(--black);
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.ig-pf2-head-title { font-size: var(--fs-md); font-weight: var(--fw-semibold); color: var(--fg); }
.ig-pf2-head-sub {
  font-size: var(--fs-xs); color: var(--fg-2); letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase; margin-top: 1px;
}
.ig-pf2-head-logik { text-align: right; }
.ig-pf2-head-logik .l {
  font-size: var(--fs-xs); color: var(--fg-2); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
}
.ig-pf2-head-logik .v {
  font-size: var(--fs-lg); font-weight: var(--fw-black); color: var(--fg); letter-spacing: var(--tracking-tight);
}

/* Subnav (Original: .subnav) */
.ig-pf2-subnav {
  background: var(--white); border: 1px solid var(--border); border-top: none;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  padding: 6px 16px; display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 20px;
}
.ig-pf2-subnav button {
  font-family: var(--font-sans); font-size: var(--fs-xs); color: var(--fg-2); background: transparent;
  padding: 5px 10px; border: 1px solid transparent; border-radius: 0; cursor: pointer;
  transition: all var(--dur-fast) var(--ease-out);
}
.ig-pf2-subnav button:hover { border-color: var(--black); color: var(--fg); }

/* Sektions-Kopf (Original: .sec-head / .sec-intro) */
.ig-pf2-sechead {
  font-size: var(--fs-2xl); font-weight: var(--fw-black); letter-spacing: var(--tracking-tight);
  color: var(--fg); margin: var(--space-6) 0 var(--space-2);
}
.ig-pf2-sec:first-of-type .ig-pf2-sechead { margin-top: 8px; }
.ig-pf2-intro { font-size: var(--fs-base); color: var(--fg-1); max-width: 860px; margin-bottom: var(--space-4); line-height: 1.6; }

.ig-pf2-kpirow .kpi-value.small { font-size: var(--fs-lg); }

/* Chart */
.ig-pf2-chart { position: relative; height: 420px; }

/* Rangfolge (Original: .kv) */
.ig-pf2-kv {
  display: flex; justify-content: space-between; gap: 8px; padding: 7px 0;
  border-bottom: 1px solid var(--line); font-size: var(--fs-sm); cursor: pointer;
}
.ig-pf2-kv:hover span { color: var(--fg); }
.ig-pf2-kv:last-of-type { border-bottom: none; }
.ig-pf2-kv span { color: var(--fg-2); transition: color var(--dur-fast) var(--ease-out); }
.ig-pf2-kv b { font-weight: var(--fw-semibold); text-align: right; white-space: nowrap; }

/* Thesis / Empfehlung (Original: .thesis) */
.ig-pf2-thesis {
  background: var(--black); color: #fff; border-radius: var(--radius-sm);
  padding: var(--space-5) var(--space-6); margin: var(--space-4) 0;
}
.ig-pf2-t-eyebrow {
  font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--ministry-aqua-60, #a0dbe8); margin-bottom: var(--space-2);
}
.ig-pf2-t-main { font-size: var(--fs-lg); font-weight: var(--fw-bold); line-height: 1.4; margin-bottom: var(--space-2); }
.ig-pf2-t-main em { color: var(--ministry-red); font-style: normal; }
.ig-pf2-t-sub { font-size: var(--fs-sm); color: #cfcfcf; line-height: 1.6; }

/* Modell-Tabs (Original: .mtab) */
.ig-pf2-mtab-row { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.ig-pf2-mtab {
  padding: 8px 14px; border: 1px solid var(--border); border-radius: 0; background: transparent;
  color: var(--fg-2); font-family: var(--font-sans); font-size: var(--fs-sm); font-weight: var(--fw-medium);
  cursor: pointer; transition: all var(--dur-fast) var(--ease-out); display: flex; align-items: center; gap: 7px;
}
.ig-pf2-mtab:hover { border-color: var(--black); color: var(--fg); }
.ig-pf2-mtab.active { background: var(--black); border-color: var(--black); color: var(--white); }
.ig-pf2-mtab .dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.ig-pf2-mtab .num { font-weight: var(--fw-black); opacity: .5; font-size: var(--fs-xs); }

.ig-pf2-mpanel { display: none; animation: igPf2Fade var(--dur-base) var(--ease-out); }
.ig-pf2-mpanel.active { display: block; }
@keyframes igPf2Fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* Modell-Kopf (Original: .model-head) */
.ig-pf2-model-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  margin-bottom: var(--space-4); padding-bottom: var(--space-4); border-bottom: 1.5px solid var(--black);
}
.ig-pf2-mh-left { flex: 1; min-width: 280px; }
.ig-pf2-eyebrow {
  font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--fg-2); margin-bottom: 4px;
}
.ig-pf2-name {
  font-size: var(--fs-2xl); font-weight: var(--fw-black); letter-spacing: var(--tracking-tight);
  line-height: 1.1; margin-bottom: 8px;
}
.ig-pf2-pitch { font-size: var(--fs-base); color: var(--fg-1); line-height: 1.6; max-width: 700px; }
.ig-pf2-metrics { display: flex; gap: 10px; flex-wrap: wrap; }
.ig-pf2-metric { background: var(--bg-soft); border: 1px solid var(--border); padding: 8px 12px; min-width: 92px; }
.ig-pf2-metric .l { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--fg-2); }
.ig-pf2-metric .v { font-size: var(--fs-md); font-weight: var(--fw-black); color: var(--fg); }

/* Subtabs im Modell (Original: .subtab) */
.ig-pf2-subtab-row { display: flex; gap: 2px; margin-bottom: 18px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.ig-pf2-subtab {
  padding: 8px 16px; border: none; border-bottom: 2px solid transparent; border-radius: 0; background: transparent;
  color: var(--fg-2); font-family: var(--font-sans); font-size: var(--fs-sm); font-weight: var(--fw-medium);
  cursor: pointer; margin-bottom: -1px; transition: all var(--dur-fast) var(--ease-out);
}
.ig-pf2-subtab:hover { color: var(--fg); }
.ig-pf2-subtab.active { color: var(--fg); font-weight: var(--fw-semibold); border-bottom-color: var(--mc, var(--ministry-red)); }
.ig-pf2-subpanel { display: none; animation: igPf2Fade var(--dur-base) var(--ease-out); }
.ig-pf2-subpanel.active { display: block; }

/* Council-Detail (Original: .crole, .csec, .cmatrix, .adv, .syn-*, .verdict-band, .risk-card) */
.ig-pf2-crole { font-size: var(--fs-xs); color: var(--fg-2); margin-bottom: 14px; }
.ig-pf2-crole b { color: var(--fg-1); font-weight: var(--fw-semibold); }
.ig-pf2-csec {
  font-size: var(--fs-xs); font-weight: var(--fw-semibold); text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow); color: var(--fg-2); margin: 18px 0 10px; display: block;
}
.ig-pf2-cmatrix { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.ig-pf2-cmcell {
  border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 11px 8px; text-align: center;
  background: var(--white); cursor: pointer; transition: all var(--dur-fast) var(--ease-out);
}
.ig-pf2-cmcell:hover { border-color: var(--black); box-shadow: var(--shadow-2); }
.ig-pf2-cdot {
  width: 13px; height: 13px; border-radius: 50%; border: none; padding: 0;
  display: block; margin: 0 auto 7px; cursor: pointer;
}
button.ig-pf2-cdot:hover { outline: 2px solid var(--black); outline-offset: 2px; }
.ig-pf2-cdot-static { margin: 0; flex: 0 0 auto; cursor: default; width: 12px; height: 12px; }
.ig-pf2-clbl {
  font-size: 11px; font-weight: var(--fw-semibold); text-transform: uppercase;
  letter-spacing: .03em; color: var(--fg-2); line-height: 1.3;
}
.ig-pf2-crt { font-size: 12px; font-weight: var(--fw-bold); margin-top: 5px; }

.ig-pf2-adv { border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--white); margin-bottom: 8px; overflow: hidden; }
.ig-pf2-adv summary { list-style: none; cursor: pointer; padding: 13px 16px; display: flex; align-items: center; gap: 12px; }
.ig-pf2-adv summary::-webkit-details-marker { display: none; }
.ig-pf2-adv-lens { font-size: 11px; font-weight: var(--fw-semibold); color: #2b8aa0; text-transform: uppercase; letter-spacing: .05em; }
.ig-pf2-adv-name { font-weight: var(--fw-semibold); font-size: var(--fs-sm); }
.ig-pf2-adv-rt { margin-left: auto; font-size: 11px; font-weight: var(--fw-semibold); padding: 3px 9px; border-radius: 3px; white-space: nowrap; }
.ig-pf2-chev { color: var(--gray-500, #b3b3b3); transition: transform .15s var(--ease-out); font-size: 11px; margin-left: 8px; }
.ig-pf2-adv[open] .ig-pf2-chev { transform: rotate(90deg); }
.ig-pf2-adv-body { padding: 2px 16px 15px 40px; color: var(--fg-1); font-size: var(--fs-sm); line-height: 1.62; }

.ig-pf2-syn-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ig-pf2-syn { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 14px 16px; background: var(--white); }
.ig-pf2-syn h6 { font-size: var(--fs-xs); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 9px; }
.ig-pf2-syn ul { list-style: none; display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; }
.ig-pf2-syn li { font-size: var(--fs-xs); line-height: 1.5; color: var(--fg-1); padding-left: 13px; position: relative; }
.ig-pf2-syn li::before { content: ''; position: absolute; left: 0; top: 6px; width: 5px; height: 5px; border-radius: 50%; }
.ig-pf2-syn p { font-size: var(--fs-xs); line-height: 1.55; color: var(--fg-1); }
.ig-pf2-syn-einig { border-left: 4px solid #1a7a4a; }
.ig-pf2-syn-einig h6 { color: #1a7a4a; }
.ig-pf2-syn-einig li::before { background: #1a7a4a; }
.ig-pf2-syn-streit { border-left: 4px solid var(--ministry-aqua); }
.ig-pf2-syn-streit h6 { color: #2b8aa0; }
.ig-pf2-syn-ueber { border-left: 4px solid var(--ministry-red); }
.ig-pf2-syn-ueber h6 { color: var(--ministry-red); }
.ig-pf2-syn-ueber li::before { background: var(--ministry-red); }

.ig-pf2-verdict {
  border: 1px solid var(--border); border-left: 5px solid var(--vc, var(--ministry-aqua));
  border-radius: var(--radius-sm); background: var(--bg-soft); padding: 16px 18px; margin: 10px 0 12px;
}
.ig-pf2-vpill {
  display: inline-block; font-size: 11px; font-weight: var(--fw-bold); padding: 3px 10px;
  border-radius: 3px; letter-spacing: .04em; margin-bottom: 9px;
}
.ig-pf2-verdict p { font-size: var(--fs-sm); line-height: 1.6; }
.ig-pf2-vrow { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.ig-pf2-vkv { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 13px 15px; background: var(--white); }
.ig-pf2-vkv .vk {
  font-size: 11px; font-weight: var(--fw-semibold); text-transform: uppercase;
  letter-spacing: .05em; color: var(--fg-2); margin-bottom: 6px;
}
.ig-pf2-vkv p { font-size: var(--fs-sm); line-height: 1.55; }
.ig-pf2-risk { border: 2px solid var(--ministry-red); border-radius: var(--radius-sm); padding: 14px 16px; background: var(--white); }
.ig-pf2-risk h6 {
  font-size: var(--fs-xs); font-weight: var(--fw-bold); text-transform: uppercase;
  letter-spacing: .05em; color: var(--ministry-red); margin-bottom: 7px;
}
.ig-pf2-risk > p { font-size: var(--fs-sm); line-height: 1.58; }
.ig-pf2-risk-test { margin-top: 11px; padding: 11px 13px; background: #fdeef0; border-radius: var(--radius-sm); font-size: var(--fs-sm); line-height: 1.55; }
.ig-pf2-risk-test b { color: #1a7a4a; }

/* Business Model Canvas (Original: .bmc) */
.ig-pf2-bmc-meta { font-size: var(--fs-xs); color: var(--fg-2); margin-bottom: 12px; letter-spacing: .02em; }
.ig-pf2-bmc-meta b { color: var(--fg-1); font-weight: var(--fw-semibold); }
.ig-pf2-bmc {
  display: grid; gap: 8px; grid-template-columns: repeat(5, 1fr);
  grid-template-areas:
    "kp ka wa kb ks"
    "kp kr wa kc ks"
    "cost cost rev rev comp";
}
.ig-pf2-bmc-cell { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 11px 12px; background: var(--white); }
.ig-pf2-bmc-cell h6 {
  font-size: 11px; font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .07em;
  color: var(--fg); margin-bottom: 8px; padding-bottom: 6px; border-bottom: 1px solid var(--line);
  display: flex; align-items: center; gap: 6px;
}
.ig-pf2-bmc-cell h6::before { content: ''; width: 7px; height: 7px; background: var(--mc, var(--ministry-red)); flex-shrink: 0; }
.ig-pf2-bmc-cell ul { list-style: none; display: flex; flex-direction: column; gap: 5px; margin: 0; padding: 0; }
.ig-pf2-bmc-cell li { font-size: var(--fs-xs); color: var(--fg-1); line-height: 1.4; padding-left: 11px; position: relative; }
.ig-pf2-bmc-cell li::before {
  content: ''; position: absolute; left: 0; top: 6px; width: 4px; height: 4px;
  border-radius: 50%; background: var(--mc, var(--ministry-red)); opacity: .55;
}
.ig-pf2-bmc-cell li.leer { color: var(--fg-3); font-style: italic; }
.ig-pf2-bmc-cell.hl { background: var(--bg-soft); }
.ig-pf2-area-kp { grid-area: kp; } .ig-pf2-area-ka { grid-area: ka; } .ig-pf2-area-kr { grid-area: kr; }
.ig-pf2-area-wa { grid-area: wa; } .ig-pf2-area-kb { grid-area: kb; } .ig-pf2-area-kc { grid-area: kc; }
.ig-pf2-area-ks { grid-area: ks; } .ig-pf2-area-cost { grid-area: cost; } .ig-pf2-area-rev { grid-area: rev; }
.ig-pf2-area-comp { grid-area: comp; }

/* Beschreibung (Original: .desc-lead, .detail-grid, .block) */
.ig-pf2-desc-lead {
  font-size: var(--fs-base); color: var(--fg-1); line-height: 1.65; max-width: 880px;
  margin-bottom: 18px; padding-left: 14px; border-left: 3px solid var(--mc, var(--ministry-red));
}
.ig-pf2-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 12px; }
.ig-pf2-block h5 {
  font-size: var(--fs-xs); font-weight: var(--fw-semibold); text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow); color: var(--fg-2); margin-bottom: 8px;
}
.ig-pf2-block ul { list-style: none; display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; }
.ig-pf2-block li { font-size: var(--fs-sm); color: var(--fg-1); padding-left: 16px; position: relative; line-height: 1.5; }
.ig-pf2-block li::before { content: ''; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; background: var(--mc, var(--black)); }
.ig-pf2-desc-p { font-size: var(--fs-sm); color: var(--fg-1); line-height: 1.6; }
.ig-pf2-block .ig-pf2-desc-p + h5 { margin-top: 14px; }

/* Editor (Subtab Anpassen) */
.ig-pf2-editor {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
  background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 14px 16px;
}
.ig-pf2-field label {
  display: block; font-size: 11px; font-weight: var(--fw-semibold); text-transform: uppercase;
  letter-spacing: .06em; color: var(--fg-2); margin-bottom: 6px;
}
.ig-pf2-field input[type="range"] { width: 100%; accent-color: var(--ministry-aqua); margin: 6px 0 4px; }
.ig-pf2-field select {
  width: 100%; font-family: var(--font-sans); font-size: var(--fs-sm); padding: 7px 8px;
  border: 1px solid var(--border); border-radius: 0; background: var(--white); color: var(--fg);
}
.ig-pf2-field-val { font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--fg); }
.ig-pf2-field-hint { font-size: var(--fs-xs); color: var(--fg-3); margin-top: 10px; line-height: 1.5; }

/* Council-Matrix (Original: .matrix, .dotv, .legend) */
.ig-pf2-scroll { overflow-x: auto; }
.ig-pf2-matrix { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.ig-pf2-matrix th, .ig-pf2-matrix td { padding: 9px 10px; text-align: center; border-bottom: 1px solid var(--line); }
.ig-pf2-matrix th {
  font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em;
  color: var(--fg-2); font-weight: var(--fw-semibold);
}
.ig-pf2-matrix th .sub { font-weight: var(--fw-regular); }
.ig-pf2-matrix td:first-child, .ig-pf2-matrix th:first-child { text-align: left; font-weight: var(--fw-semibold); }
.ig-pf2-matrix td[data-goto-model] { cursor: pointer; }
.ig-pf2-matrix tr:hover td { background: var(--bg-soft); }
.ig-pf2-dotv { display: inline-block; width: 14px; height: 14px; border-radius: 50%; }
button.ig-pf2-dotbtn { border: none; padding: 0; cursor: pointer; }
button.ig-pf2-dotbtn:hover { outline: 2px solid var(--black); outline-offset: 2px; }
.ig-pf2-legend { display: flex; gap: 16px; margin-top: 12px; font-size: var(--fs-xs); color: var(--fg-2); flex-wrap: wrap; }
.ig-pf2-legend span { display: flex; align-items: center; gap: 6px; }
.ig-pf2-legend .ig-pf2-dotv { width: 13px; height: 13px; }

/* Fußnote (Original: .footer) */
.ig-pf2-footer {
  margin-top: var(--space-6); padding: var(--space-5); background: var(--bg-soft);
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  font-size: var(--fs-xs); color: var(--fg-2); line-height: 1.7;
}
.ig-pf2-footer b { color: var(--fg-1); }

@media (max-width: 1100px) {
  .ig-pf2-bmc {
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "kp ka" "wa kr" "kb kc" "ks ks" "cost rev" "comp comp";
  }
}
@media (max-width: 900px) {
  .ig-pf2-editor { grid-template-columns: 1fr 1fr; }
  .ig-pf2-detail-grid { grid-template-columns: 1fr; }
  .ig-pf2-cmatrix { grid-template-columns: repeat(2, 1fr); }
  .ig-pf2-syn-grid { grid-template-columns: 1fr; }
  .ig-pf2-vrow { grid-template-columns: 1fr; }
  .ig-pf2-bmc { grid-template-columns: 1fr; grid-template-areas: "kp" "ka" "kr" "wa" "kb" "kc" "ks" "cost" "rev" "comp"; }
  .ig-pf2-chart { height: 320px; }
  .ig-pf2-head-logik { display: none; }
}

/* ═══════════ methode (Ablauf-Landkarte, kundenneutral) ═══════════ */
.ig-me-h { margin-top: 6px; }
.ig-me-viewtabs { margin: 18px 0 20px; }

/* Achse öffnen → verdichten */
.ig-me-axis { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.ig-me-axis-pole {
  font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); white-space: nowrap;
}
.ig-me-axis-line { flex: 1; height: 2px; background: linear-gradient(90deg, var(--ministry-aqua), var(--ministry-red)); }

/* Phasen-Spine */
.ig-me-spine { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.ig-me-phase {
  position: relative; text-align: left; cursor: pointer;
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 16px 14px 14px; font-family: var(--font-sans);
  display: flex; flex-direction: column; gap: 5px;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.ig-me-phase::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--me-accent, var(--black));
}
.ig-me-phase:hover { box-shadow: var(--shadow-2); }
.ig-me-phase.active { border-color: var(--black); box-shadow: var(--shadow-2); }
.ig-me-phase-num {
  font-size: var(--fs-xs); font-weight: var(--fw-black); color: var(--me-accent, var(--fg));
  letter-spacing: var(--tracking-eyebrow);
}
.ig-me-phase-name { font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--fg); letter-spacing: var(--tracking-tight); }
.ig-me-phase-tag { font-size: var(--fs-xs); color: var(--fg-2); line-height: 1.45; }

/* Detail-Panel */
.ig-me-detail {
  background: var(--white); border: 1px solid var(--border); border-left: 4px solid var(--me-accent, var(--black));
  border-radius: var(--radius-sm); padding: 20px 22px; margin-bottom: 4px;
}
.ig-me-detail-head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.ig-me-detail-num {
  width: 40px; height: 40px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
  font-size: var(--fs-lg); font-weight: var(--fw-black); color: var(--white); background: var(--me-accent, var(--black));
}
.ig-me-detail-name { font-size: var(--fs-xl); font-weight: var(--fw-black); letter-spacing: var(--tracking-tight); line-height: 1.1; }
.ig-me-detail-pole { font-size: var(--fs-xs); color: var(--fg-2); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }
.ig-me-detail-summary { font-size: var(--fs-base); color: var(--fg-1); line-height: 1.6; max-width: 780px; margin-bottom: 14px; }

.ig-me-points { list-style: none; display: grid; gap: 7px; margin-bottom: 4px; }
.ig-me-points li { position: relative; padding-left: 16px; font-size: var(--fs-sm); color: var(--fg-1); line-height: 1.5; }
.ig-me-points li::before { content: ''; position: absolute; left: 0; top: 7px; width: 6px; height: 6px; background: var(--me-accent, var(--black)); }

.ig-me-sub {
  display: block; font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--fg-2);
  margin: 20px 0 10px;
}

/* Karten-Raster im Detail */
.ig-me-cards { display: grid; gap: 10px; }
.ig-me-cards-4 { grid-template-columns: repeat(4, 1fr); }
.ig-me-cards-3 { grid-template-columns: repeat(3, 1fr); }
.ig-me-cards-2 { grid-template-columns: repeat(2, 1fr); }
.ig-me-cards .card { padding: 14px 16px; }

.ig-me-role-num { font-size: var(--fs-lg); font-weight: var(--fw-black); color: var(--ministry-red); letter-spacing: var(--tracking-tight); }
.ig-me-role-name { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--fg); margin: 4px 0 3px; }
.ig-me-role-desc { font-size: var(--fs-xs); color: var(--fg-2); line-height: 1.5; }

.ig-me-field-name { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--fg); margin-bottom: 3px; }
.ig-me-field-q { font-size: var(--fs-xs); color: var(--fg-2); }

.ig-me-matrix-name {
  font-size: var(--fs-xs); font-weight: var(--fw-semibold); text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow); color: var(--fg-2); margin-bottom: 6px;
}
.ig-me-matrix-axes { font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--fg); margin-bottom: 6px; }
.ig-me-matrix-desc { font-size: var(--fs-xs); color: var(--fg-1); line-height: 1.55; }

.ig-me-pf { position: relative; overflow: hidden; padding-top: 16px; }
.ig-me-pf::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--me-accent, var(--black)); }
.ig-me-pf-name { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--fg); margin-bottom: 4px; }
.ig-me-pf-desc { font-size: var(--fs-xs); color: var(--fg-2); line-height: 1.5; }
.ig-me-axishint { font-size: var(--fs-xs); color: var(--fg-3); margin-top: 10px; font-style: italic; }

/* Prozess-übergreifende Abschnitte */
.ig-me-section { margin-top: 24px; }
.ig-me-lead { font-size: var(--fs-sm); color: var(--fg-1); line-height: 1.6; max-width: 780px; margin-bottom: 14px; }

/* Verdichtungs-Funnel */
.ig-me-funnel { display: grid; gap: 7px; max-width: 640px; }
.ig-me-funnel-row { display: flex; align-items: center; gap: 12px; }
.ig-me-funnel-bar { height: 26px; min-width: 40px; flex-shrink: 0; }
.ig-me-funnel-label { font-size: var(--fs-sm); color: var(--fg-1); white-space: nowrap; }

/* Ergebnis-Kette */
.ig-me-chain { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; }
.ig-me-chain-step { flex: 1; min-width: 140px; background: var(--white); border: 1px solid var(--border); border-top: 3px solid var(--ministry-aqua); border-radius: var(--radius-sm); padding: 12px 14px; }
.ig-me-chain-step:last-child { border-top-color: var(--ministry-red); }
.ig-me-chain-name { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--fg); margin-bottom: 3px; }
.ig-me-chain-desc { font-size: var(--fs-xs); color: var(--fg-2); line-height: 1.5; }
.ig-me-chain-arrow { display: flex; align-items: center; color: var(--fg-3); font-size: var(--fs-lg); flex-shrink: 0; }

.ig-me-closing { margin-top: 24px; }

/* Durchlauf-Modus */
.ig-me-flow-steps { display: flex; gap: 8px; margin-bottom: 20px; }
.ig-me-flow-step {
  flex: 1; cursor: pointer; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 10px 8px; font-family: var(--font-sans); display: flex; flex-direction: column; align-items: center; gap: 6px;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.ig-me-flow-step:hover { border-color: var(--black); }
.ig-me-flow-dot {
  width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--fg-2);
}
.ig-me-flow-lbl { font-size: var(--fs-xs); color: var(--fg-2); font-weight: var(--fw-medium); }
.ig-me-flow-step.done .ig-me-flow-dot { border-color: var(--me-accent, var(--black)); color: var(--me-accent, var(--fg)); }
.ig-me-flow-step.active { border-color: var(--black); }
.ig-me-flow-step.active .ig-me-flow-dot { background: var(--me-accent, var(--black)); border-color: var(--me-accent, var(--black)); color: var(--white); }
.ig-me-flow-step.active .ig-me-flow-lbl { color: var(--fg); font-weight: var(--fw-semibold); }

.ig-me-flow-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.ig-me-flow-count { font-size: var(--fs-xs); color: var(--fg-2); }
.ig-me-flow-nav .btn[disabled] { opacity: 0.4; pointer-events: none; }

@media (max-width: 900px) {
  .ig-me-spine { grid-template-columns: repeat(2, 1fr); }
  .ig-me-cards-4 { grid-template-columns: repeat(2, 1fr); }
  .ig-me-cards-3 { grid-template-columns: 1fr; }
  .ig-me-cards-2 { grid-template-columns: 1fr; }
  .ig-me-flow-steps { flex-wrap: wrap; }
  .ig-me-flow-lbl { display: none; }
}

/* ═══════════ material: Tools-Kacheln ═══════════ */
.ig-tool-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.ig-tool-card { display: flex; flex-direction: column; gap: 14px; }
.ig-tool-top { display: flex; gap: 14px; align-items: flex-start; }
.ig-tool-icon { font-size: 28px; line-height: 1; color: var(--ministry-red); flex-shrink: 0; }
.ig-tool-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: auto; }
.ig-tool-actions .btn { text-decoration: none; }
.ig-tool-actions .btn[disabled] { opacity: 0.4; cursor: default; pointer-events: none; }
.ig-tool-note { font-size: var(--fs-xs); color: var(--fg-3); margin-top: -4px; }
.ig-tool-soon .ig-tool-icon { color: var(--fg-3); }

/* ═══════════ planung (Projektplan-Cockpit) ═══════════ */
.ig-plan-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.ig-plan-status { font-size: var(--fs-xs); color: var(--fg-3); white-space: nowrap; }
.ig-plan-tabs { margin: 6px 0 18px; }
.ig-plan-card { margin-bottom: 16px; }

.ig-plan-overall { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.ig-plan-overall-label { font-size: var(--fs-sm); font-weight: var(--fw-semibold); white-space: nowrap; }
.ig-plan-overall .ig-plan-bar { flex: 1; height: 10px; }

.ig-plan-phase-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.ig-plan-phase-title { font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--fg); }
.ig-plan-phase-prog { display: flex; align-items: center; gap: 10px; font-size: var(--fs-xs); color: var(--fg-2); white-space: nowrap; }

.ig-plan-bar { width: 120px; height: 6px; background: var(--bg-soft); border: 1px solid var(--border); position: relative; flex-shrink: 0; }
.ig-plan-bar-fill { position: absolute; inset: 0 auto 0 0; background: var(--positive); }

.ig-plan-tinput { border: 1px solid transparent; background: transparent; font: inherit; font-size: var(--fs-sm); padding: 5px 7px; border-radius: 0; color: var(--fg); min-width: 60px; }
.ig-plan-tinput:hover { border-color: var(--border); }
.ig-plan-tinput:focus { outline: none; border-color: var(--ministry-aqua); background: var(--white); }
.ig-plan-tinput.title { flex: 1 1 240px; font-weight: var(--fw-medium); }
.ig-plan-tinput.rolle { flex: 0 0 220px; font-weight: var(--fw-medium); }

.ig-plan-field { border: 1px solid var(--border); background: var(--white); font: inherit; font-size: var(--fs-sm); padding: 5px 8px; border-radius: 0; color: var(--fg); }
.ig-plan-field:focus { outline: none; border-color: var(--ministry-aqua); }

.ig-plan-iconbtn { width: 28px; height: 28px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border); background: var(--white); color: var(--fg-2); cursor: pointer; border-radius: 0; font-size: 13px; }
.ig-plan-iconbtn:hover { border-color: var(--black); color: var(--fg); }

.ig-plan-add { margin-top: 10px; font-size: var(--fs-xs); color: var(--fg-2); background: transparent; border: 1px dashed var(--border); padding: 6px 12px; cursor: pointer; border-radius: 0; }
.ig-plan-add:hover { border-color: var(--black); color: var(--fg); }

.ig-plan-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 92px; flex-shrink: 0; padding: 5px 10px; font-size: 10px; font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: 0.05em; border: 1px solid transparent; cursor: pointer; border-radius: 0; white-space: nowrap; }
.ig-plan-badge.is-offen { background: var(--bg-soft); color: var(--fg-2); border-color: var(--border); }
.ig-plan-badge.is-arbeit { background: var(--ministry-aqua-20); color: #1a6175; }
.ig-plan-badge.is-erledigt { background: var(--positive-bg); color: var(--positive); }
.ig-plan-badge.is-entfaellt { background: transparent; color: var(--fg-3); border-color: var(--border); text-decoration: line-through; }
.ig-plan-badge.is-besorgt { background: var(--ministry-aqua-20); color: #1a6175; }
.ig-plan-badge.is-eingepackt { background: var(--positive-bg); color: var(--positive); }

.ig-plan-rolle { display: flex; align-items: center; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--bg-soft); }
.ig-plan-rolle:last-of-type { border-bottom: none; }
.ig-plan-rolle .ig-plan-tinput:not(.rolle) { flex: 1; }

.ig-plan-task { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--bg-soft); }
.ig-plan-task:last-of-type { border-bottom: none; }

.ig-plan-termin { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--bg-soft); }
.ig-plan-termin:last-of-type { border-bottom: none; }
.ig-plan-termin .ig-plan-tinput.title { flex: 0 0 220px; }

.ig-plan-item-wrap { padding: 9px 0; border-bottom: 1px solid var(--bg-soft); }
.ig-plan-item-wrap:last-of-type { border-bottom: none; }
.ig-plan-item { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ig-plan-item-sub { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; padding-left: 100px; }

@media (max-width: 900px) {
  .ig-plan-item-sub { padding-left: 0; }
  .ig-plan-tinput.title, .ig-plan-termin .ig-plan-tinput.title { flex: 1 1 100%; }
}

/* ═══════════ planung: Reiseplanung (Stepper) ═══════════ */
.ig-reise-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 4px; }
.ig-reise-steps { flex-wrap: wrap; margin-top: 12px; }
.ig-reise-panel { margin-top: 18px; }
.ig-reise-section { font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--fg); margin: 4px 0 14px; }

.ig-reise-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 18px; margin-bottom: 16px; }
.ig-reise-field { margin-bottom: 0; }
.ig-reise-field.full { grid-column: 1 / -1; }

.ig-reise-checks { display: flex; flex-wrap: wrap; gap: 6px 24px; margin-bottom: 16px; }
.ig-reise-check { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: var(--fs-sm); color: var(--fg-1); cursor: pointer; }
.ig-reise-check input { width: 16px; height: 16px; accent-color: var(--ministry-red); flex-shrink: 0; }

.ig-reise-nav { margin-top: 8px; }

@media (max-width: 700px) {
  .ig-reise-grid { grid-template-columns: 1fr; }
}

/* Schritt 2/5/6 — Teilnehmende, Catering, Material */
.ig-reise-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 18px; }
.ig-reise-kpi { text-align: center; }
.ig-reise-kpi .kpi-value { font-size: var(--fs-xl); }
.ig-reise-subhead { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--fg); margin-bottom: 10px; }
.ig-reise-addrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 12px; background: var(--bg-soft); border: 1px solid var(--border); margin-bottom: 12px; }
.ig-reise-mini { font-size: var(--fs-xs); padding: 4px 6px; }
.ig-reise-prow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--bg-soft); }
.ig-reise-prow:last-of-type { border-bottom: none; }
.ig-reise-pname { font-weight: var(--fw-semibold); flex: 1; min-width: 140px; }
.ig-reise-pemail { color: var(--fg-2); font-size: var(--fs-sm); flex: 1; min-width: 140px; }
.ig-reise-empty { font-size: var(--fs-xs); color: var(--fg-3); font-style: italic; padding: 8px 0; }
.ig-reise-guestrow { display: flex; align-items: center; justify-content: space-between; gap: 14px; background: var(--bg-soft); border: 1px solid var(--border); padding: 12px 14px; font-size: var(--fs-sm); }
.ig-reise-matitem { display: flex; align-items: center; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--bg-soft); }
.ig-reise-matitem:last-of-type { border-bottom: none; }
.ig-reise-matlabel { display: flex; align-items: center; gap: 8px; flex: 1; font-size: var(--fs-sm); cursor: pointer; }
.ig-reise-matlabel input { width: 16px; height: 16px; accent-color: var(--ministry-red); flex-shrink: 0; }
.ig-reise-matsub { color: var(--fg-3); font-size: var(--fs-xs); }
@media (max-width: 900px) { .ig-reise-kpis { grid-template-columns: repeat(2, 1fr); } }

/* Schritt 9 — Zusammenfassung */
.ig-reise-warn { background: var(--ministry-red-20); border: 1px solid var(--ministry-red); border-left: 4px solid var(--ministry-red); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 16px; }
.ig-reise-warn-title { font-weight: var(--fw-bold); color: var(--ministry-red); font-size: var(--fs-sm); margin-bottom: 6px; }
.ig-reise-warn ul { margin: 0; padding-left: 18px; font-size: var(--fs-sm); color: var(--fg-1); }
.ig-reise-warn li { margin: 2px 0; }
.ig-reise-ok { margin-bottom: 16px; }
.ig-reise-mailhead { font-size: var(--fs-sm); margin-bottom: 8px; color: var(--fg-1); }
.ig-reise-mailbody { background: var(--bg-soft); border: 1px solid var(--border); padding: 14px 16px; font-family: var(--font-mono); font-size: var(--fs-xs); line-height: 1.55; white-space: pre-wrap; word-break: break-word; max-height: 460px; overflow: auto; color: var(--fg-1); margin-bottom: 14px; }
.ig-reise-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.ig-reise-actions .btn[disabled] { opacity: 0.4; cursor: default; pointer-events: none; }
.ig-reise-sent { font-size: var(--fs-xs); color: var(--fg-2); margin-top: 8px; }

/* ═══════════ admin (Benutzerverwaltung + Feedback) ═══════════ */

.ig-adm-tablewrap { margin-top: 4px; }
.ig-adm-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.ig-adm-table thead th {
  text-align: left; padding: 8px 10px; font-size: 10px; font-weight: var(--fw-semibold);
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--fg-2);
  border-bottom: 1.5px solid var(--black); white-space: nowrap;
}
.ig-adm-table tbody td { padding: 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.ig-adm-table tbody tr:hover { background: var(--bg-soft); }

.ig-adm-role {
  display: inline-flex; align-items: center; font-size: 10px; font-weight: var(--fw-semibold);
  text-transform: uppercase; letter-spacing: 0.05em; padding: 3px 8px; border: 1px solid transparent;
  border-radius: 0; white-space: nowrap;
}
.ig-adm-role-admin { background: var(--negative-bg); color: var(--ministry-red); }
.ig-adm-role-staff { background: var(--neutral-bg); color: #1a6175; }
.ig-adm-role-extern { background: var(--bg-soft); color: var(--fg-2); border-color: var(--border); }

.ig-adm-status { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); color: var(--fg-1); white-space: nowrap; }
.ig-adm-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--fg-3); flex-shrink: 0; }
.ig-adm-dot.on { background: var(--positive); }

.ig-adm-projcell { display: flex; flex-direction: column; gap: 6px; min-width: 160px; }
.ig-adm-projchips { display: flex; flex-wrap: wrap; gap: 4px; }
.ig-adm-projchip {
  font-size: 10px; font-weight: var(--fw-medium); padding: 2px 7px;
  border: 1px solid var(--border); border-radius: 0; color: var(--fg-1); background: var(--bg-soft); white-space: nowrap;
}

.ig-adm-actions { min-width: 220px; }
.ig-adm-actionrow { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 6px; }
.ig-adm-actionrow:last-child { margin-bottom: 0; }
.ig-adm-actionlbl { font-size: 10px; color: var(--fg-3); text-transform: uppercase; letter-spacing: 0.05em; }
.ig-adm-inlineselect {
  padding: 5px 6px; border: 1px solid var(--border); border-radius: 0; font-family: var(--font-sans);
  font-size: var(--fs-xs); color: var(--fg); background: var(--white);
}
.ig-adm-mini { padding: 5px 9px; font-size: 10px; }
.ig-adm-danger { border-color: var(--ministry-red); color: var(--ministry-red); }
.ig-adm-danger:hover { background: var(--negative-bg); }

.ig-adm-modalactions { display: flex; justify-content: flex-end; gap: 8px; margin-top: var(--space-4); }
.ig-adm-projlist { display: flex; flex-direction: column; gap: 2px; max-height: 320px; overflow-y: auto; border: 1px solid var(--border); padding: 8px 10px; margin-bottom: 4px; }
.ig-adm-projchk { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: var(--fs-sm); color: var(--fg-1); cursor: pointer; }
.ig-adm-projchk input { width: 16px; height: 16px; accent-color: var(--ministry-red); flex-shrink: 0; }

.ig-adm-createform { display: flex; flex-direction: column; }

.ig-adm-fbcount { font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--fg-1); margin-bottom: 10px; }
.ig-adm-fbpre {
  background: var(--bg-soft); border: 1px solid var(--border); padding: 12px 14px;
  font-family: var(--font-mono); font-size: var(--fs-xs); line-height: 1.55; white-space: pre-wrap;
  word-break: break-word; max-height: 360px; overflow-y: auto; color: var(--fg-1);
}

@media (max-width: 900px) {
  .ig-adm-actions, .ig-adm-projcell { min-width: 0; }
}

/* ═══════════ feedback (Sidebar-Button + Modal) ═══════════ */

.ig-fb-navbtn {
  margin-top: auto; margin-left: 16px; margin-right: 16px; margin-bottom: 10px;
  padding: 9px 12px; background: var(--white); border: 1px solid var(--border); border-radius: 0;
  font-family: var(--font-sans); font-size: var(--fs-sm); font-weight: var(--fw-medium);
  color: var(--fg-1); text-align: left; cursor: pointer;
}
.ig-fb-navbtn:hover { border-color: var(--ministry-red); color: var(--ministry-red); background: var(--negative-bg); }

.ig-fb-hint { font-size: var(--fs-sm); color: var(--fg-2); margin-bottom: 12px; }
.ig-fb-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: var(--space-2); }

/* ═══════════ Externen-Portal (public/portal.html) ═══════════
   Eigenständige, mobil-taugliche Seite außerhalb der SPA. Layout-Regeln
   sitzen unter .ig-portal-page (auf <body>), NICHT auf dem bloßen
   body-Selektor — app.css wird auch von index.html/login.html geladen. */

.ig-portal-page {
  display: flex; flex-direction: column; align-items: center;
  min-height: 100vh; padding: 20px 16px 60px;
}

.ig-portal-topbar {
  width: 100%; max-width: 640px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-bottom: 28px;
}
.ig-portal-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ig-portal-brand .ministry-mark { width: 32px; flex-shrink: 0; }
.ig-portal-brand-title {
  font-size: var(--fs-base); font-weight: var(--fw-bold); color: var(--fg);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.ig-portal-wrap { width: 100%; max-width: 640px; display: flex; flex-direction: column; gap: 16px; }

.ig-portal-heading {
  font-size: var(--fs-xl); font-weight: var(--fw-black); letter-spacing: var(--tracking-tight);
  color: var(--fg); margin: 4px 0 4px;
}

.ig-portal-hint {
  background: var(--neutral-bg); border: 1px solid var(--ministry-aqua-60); border-radius: 4px;
  padding: 22px 20px; text-align: center; display: flex; flex-direction: column; gap: 14px; align-items: center;
}
.ig-portal-hint p { font-size: var(--fs-sm); color: var(--fg-1); line-height: 1.6; max-width: 440px; }

.ig-portal-list { display: flex; flex-direction: column; gap: 16px; }

.ig-portal-card { padding: 22px 20px; }
.ig-portal-card-head { margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.ig-portal-card-title {
  font-size: var(--fs-lg); font-weight: var(--fw-black); letter-spacing: var(--tracking-tight);
  color: var(--fg); margin-bottom: 3px; overflow-wrap: break-word;
}
.ig-portal-card-kunde { font-size: var(--fs-xs); color: var(--fg-2); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }
.ig-portal-phase {
  display: inline-block; margin-top: 8px; font-size: 10px; font-weight: var(--fw-semibold);
  text-transform: uppercase; letter-spacing: .05em; padding: 3px 8px;
  background: var(--neutral-bg); color: #1a6175; border-radius: 0;
}

.ig-portal-block { padding: 12px 0; border-bottom: 1px solid var(--bg-soft); }
.ig-portal-block:last-child { border-bottom: none; padding-bottom: 0; }
.ig-portal-block-label {
  font-size: 10px; font-weight: var(--fw-semibold); text-transform: uppercase;
  letter-spacing: .05em; color: var(--fg-2); margin-bottom: 5px;
}
.ig-portal-block-text { font-size: var(--fs-sm); color: var(--fg-1); line-height: 1.55; overflow-wrap: break-word; }
.ig-portal-block-sub { color: var(--fg-2); margin-top: 2px; }
.ig-portal-infotext { white-space: pre-line; }

.ig-portal-maps-link {
  display: inline-block; margin-top: 8px; font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  color: #1a6175; text-decoration: none; border-bottom: 1px solid currentColor;
}
.ig-portal-maps-link:hover { color: var(--ministry-red); }

.ig-portal-tage, .ig-portal-termine { display: flex; flex-direction: column; gap: 6px; }
.ig-portal-tag-row, .ig-portal-termin-row {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; font-size: var(--fs-sm); color: var(--fg-1);
}
.ig-portal-tag-datum, .ig-portal-termin-titel { font-weight: var(--fw-semibold); }
.ig-portal-tag-zeit, .ig-portal-termin-datum, .ig-portal-termin-anw { color: var(--fg-2); font-size: var(--fs-xs); }

.ig-portal-fb-btn {
  align-self: center; margin-top: 4px; padding: 10px 18px;
  background: var(--white); border: 1px solid var(--border); border-radius: 0;
  font-family: var(--font-sans); font-size: var(--fs-sm); font-weight: var(--fw-medium);
  color: var(--fg-1); cursor: pointer;
}
.ig-portal-fb-btn:hover { border-color: var(--ministry-red); color: var(--ministry-red); background: var(--negative-bg); }

@media (max-width: 480px) {
  .ig-portal-page { padding: 16px 12px 48px; }
  .ig-portal-card { padding: 18px 16px; }
  .ig-portal-topbar { margin-bottom: 20px; }
}

/* ═══════════ Portal-Verwaltung (Projektplan → Termine-Tab) ═══════════
   Editor, Anlege-Formular, Zuordnungsliste und Vorschau-Modal für den
   Abschnitt „Portal für Externe". Vorschau-Karten selbst nutzen die
   ig-portal-* Klassen oben (gleiche Darstellung wie im echten Portal). */

.ig-ext-hint { font-size: var(--fs-xs); color: var(--fg-2); margin: -6px 0 14px; line-height: 1.5; }
.ig-ext-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ig-ext-row3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.ig-ext-checks { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 4px; }
.ig-ext-checkrow { display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); color: var(--fg-1); cursor: pointer; }
.ig-ext-checkrow input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--ministry-red); flex-shrink: 0; }
.ig-ext-err { font-size: var(--fs-xs); color: var(--ministry-red); margin-top: 8px; min-height: 14px; }

.ig-ext-list { display: flex; flex-direction: column; gap: 8px; }
.ig-ext-userrow {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 12px; background: var(--bg-soft); border-radius: 2px; flex-wrap: wrap;
}
.ig-ext-userinfo { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ig-ext-username { font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--fg); }
.ig-ext-useremail { font-size: var(--fs-xs); color: var(--fg-2); }
.ig-ext-danger { border-color: var(--ministry-red); color: var(--ministry-red); padding: 6px 12px; font-size: var(--fs-xs); flex-shrink: 0; }
.ig-ext-danger:hover { background: var(--negative-bg); }
.ig-ext-empty { font-size: var(--fs-sm); color: var(--fg-2); font-style: italic; padding: 8px 0; }

.ig-ext-preview { display: flex; flex-direction: column; gap: 16px; max-height: 70vh; overflow-y: auto; padding-right: 4px; }

@media (max-width: 720px) {
  .ig-ext-row2, .ig-ext-row3 { grid-template-columns: 1fr; }
}
