/* AegisSight Studio - NotebookLM-artiges 3-Spalten-Layout
   Nutzt ausschliesslich die Design-Tokens aus style.css (Navy/Gold). */

.studio {
    display: flex;
    flex-direction: column;
    height: 100vh;
    background: var(--bg-primary);
    color: var(--text-primary);
}

/* === Kopfzeile === */
.studio-top {
    display: flex;
    align-items: center;
    gap: var(--sp-lg);
    padding: var(--sp-md) var(--sp-xl);
    background: var(--bg-topbar);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
    min-height: 52px;
}

.studio-brand {
    font-family: var(--font-title);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.5px;
    white-space: nowrap;
}
.studio-brand span { color: var(--accent); }

/* Kopfzeile: Knopf zum Anlegen (an der Stelle des frueheren Dropdowns) + Titel des Falls */
.studio-new-btn { flex-shrink: 0; }
.studio-incident-title {
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 14px;
    color: var(--text-primary);
    max-width: 460px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.studio-type-badge {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 3px 8px;
    border-radius: var(--radius);
    background: var(--tint-accent);
    color: var(--accent);
    white-space: nowrap;
}
.studio-type-badge.type-research { background: var(--tint-info); color: var(--info); }

.studio-btn {
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: var(--radius);
    padding: 7px 14px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    transition: background 0.15s;
}
.studio-btn:hover { background: var(--accent-hover); }
.studio-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.studio-btn-ghost {
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--border);
}
.studio-btn-ghost:hover { background: var(--bg-hover); color: var(--text-primary); }

/* Pipeline-Statusstreifen */
.studio-status {
    display: none;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-secondary);
    background: var(--tint-accent-subtle);
    border: 1px solid var(--tint-accent);
    border-radius: var(--radius);
    padding: 4px 10px;
    max-width: 360px;
    overflow: hidden;
}
.studio-status.active { display: flex; }
.studio-status .mini-spinner {
    width: 12px; height: 12px;
    border: 2px solid var(--tint-accent);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: studio-spin 0.8s linear infinite;
    flex-shrink: 0;
}
.studio-status-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.studio-status-timer { font-family: var(--font-mono); font-size: 11px; color: var(--text-disabled); }
@keyframes studio-spin { to { transform: rotate(360deg); } }

.studio-top-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: var(--sp-md);
}
/* Reine Textlinks in der Kopfzeile. Links, die als Knopf auftreten (.btn),
   bleiben ausgenommen, sonst ueberschreibt die Farbe hier die Knopf-Optik. */
.studio-top-right a:not(.btn) { color: var(--text-secondary); font-size: 12px; text-decoration: none; }
.studio-top-right a:not(.btn):hover { color: var(--accent); }

/* === 3 Spalten === */
.studio-cols {
    position: relative;      /* Bezug fuer die Hinweis-Auflage (.studio-empty) */
    flex: 1;
    display: grid;
    grid-template-columns: 300px 1fr 320px;
    gap: 1px;
    background: var(--border);
    min-height: 0;
}

.studio-col {
    background: var(--bg-primary);
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}
.studio-col-artifacts { background: var(--bg-secondary); }
.studio-col-center { position: relative; }   /* Bezug fuer das Startpanel (.start-panel) */

/* === Linke Spalte: Reiter "Fälle" / "Quellen" === */
.left-tabs {
    display: flex;
    flex-shrink: 0;
    border-bottom: 1px solid var(--border);
}
.left-tab {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
    padding: var(--sp-lg) var(--sp-md);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-secondary);
    transition: color .15s, border-color .15s, background .15s;
}
.left-tab:hover { background: var(--bg-hover); color: var(--text-primary); }
.left-tab.active { color: var(--accent); border-bottom-color: var(--accent); }
.left-tab .lt-count {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--text-disabled);
}
.left-pane {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1;
    overflow: hidden;
}
.left-pane[hidden] { display: none; }

/* "Alle" / "Eigene" ueber der Fall-Liste. Nutzt die Knopf-Optik der klassischen
   Seitenleiste (.sidebar-filter-btn aus style.css), braucht hier aber den
   Innenabstand der Studio-Spalte statt des Seitenleisten-Abstands. */
.case-scope {
    padding: var(--sp-md) var(--sp-xl) 0;
    margin-bottom: 0;
    flex-shrink: 0;
}

/* Fall-Liste (ersetzt das Dropdown in der Kopfzeile) */
.case-group {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: var(--sp-lg) var(--sp-md) var(--sp-sm);
    background: none;
    border: none;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-disabled);
    text-align: left;
}
.case-group span { color: var(--text-disabled); opacity: .8; }
.case-group-toggle { cursor: pointer; }
.case-group-toggle:hover { color: var(--text-secondary); }
.case-group-toggle svg { transition: transform .15s; }
.case-group-toggle.open svg { transform: rotate(90deg); }

.case-item {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--border);
    border-radius: var(--radius-md, 6px);
    background: var(--bg-card);
    margin-bottom: 4px;
    overflow: hidden;
    transition: border-color .15s, background .15s;
}
.case-item:hover { border-color: var(--accent); }
.case-item.active { border-color: var(--accent); background: var(--tint-accent-faint); }
.case-open {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: 12.5px;
}
.case-item.active .case-open { color: var(--accent); font-weight: 600; }
.case-title {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.case-count {
    flex-shrink: 0;
    font-size: 10.5px;
    color: var(--text-disabled);
}
/* === Startpanel: frisch angelegter Fall, der Nutzer entscheidet aktiv === */
.start-panel {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--sp-xl);
    background: var(--bg-primary);
    overflow-y: auto;
}
.start-panel[hidden] { display: none; }
.sp-inner { width: 100%; max-width: 560px; }
.sp-head { margin-bottom: var(--sp-xl); text-align: center; }
.sp-title {
    font-family: var(--font-title);
    font-weight: 700;
    font-size: 19px;
    color: var(--text-primary);
}
.sp-sub { margin-top: 4px; font-size: 13px; color: var(--text-secondary); }

.sp-warn {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-md);
    padding: var(--sp-md) var(--sp-lg);
    margin-bottom: var(--sp-lg);
    border: 1px solid var(--warning);
    border-radius: var(--radius-md, 6px);
    background: var(--tint-warning);
    color: var(--warning);
    font-size: 12px;
    line-height: 1.45;
}
.sp-warn[hidden] { display: none; }
.sp-warn svg { flex-shrink: 0; margin-top: 1px; }

.sp-options { display: flex; flex-direction: column; gap: var(--sp-md); }
.sp-opt {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-lg);
    width: 100%;
    padding: var(--sp-lg);
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    text-align: left;
    color: var(--text-primary);
    font-family: var(--font-body);
    transition: border-color .15s, background .15s, transform .08s;
}
.sp-opt:hover { border-color: var(--accent); background: var(--bg-hover); }
.sp-opt:active { transform: translateY(1px); }
.sp-opt:disabled { opacity: .45; cursor: not-allowed; }
.sp-ico { flex-shrink: 0; display: inline-flex; color: var(--accent); margin-top: 2px; }
.sp-text { min-width: 0; }
.sp-name {
    display: block;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 13.5px;
    margin-bottom: 3px;
}
.sp-desc { display: block; font-size: 12px; color: var(--text-secondary); line-height: 1.45; }

/* Rueckfrage-Dialog (ersetzt das Browser-confirm) */
.modal.modal-confirm { max-width: 460px; }
.confirm-list {
    list-style: none;
    margin: 0 0 var(--sp-lg);
    padding: var(--sp-md) var(--sp-lg);
    background: var(--bg-elevated);
    border: 1px solid var(--border);
    border-radius: var(--radius-md, 6px);
    max-height: 190px;
    overflow-y: auto;
}
.confirm-list li {
    font-size: 12.5px;
    color: var(--text-primary);
    padding: 3px 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.confirm-list li.cd-more { color: var(--text-disabled); font-style: italic; }
.confirm-warn { font-size: 13px; color: var(--text-primary); margin-bottom: var(--sp-md); }
.confirm-warn strong { color: var(--danger, #EF4444); }
.confirm-hint { font-size: 12px; color: var(--text-disabled); }

/* Mehrfachauswahl. Achtung: .col-actions setzt display:flex und wuerde das
   hidden-Attribut ueberstimmen - deshalb hier explizit ausblenden. */
#case-select-row[hidden] { display: none; }
.case-check {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    padding: 0 2px 0 8px;
    cursor: pointer;
}
.case-check input { cursor: pointer; accent-color: var(--accent); }
.case-item.picked { border-color: var(--accent); background: var(--tint-accent); }
.case-sel-hint { font-size: 11px; color: var(--accent); }

.bulk-bar {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: var(--sp-md);
    padding: var(--sp-lg);
    border-top: 1px solid var(--border);
    background: var(--bg-secondary);
}
.bulk-bar[hidden] { display: none; }
.bulk-count {
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 12px;
    color: var(--text-primary);
}
.bulk-actions { display: flex; flex-wrap: wrap; gap: var(--sp-sm); }
.btn-bulk {
    flex: 1;
    min-width: 84px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: var(--radius-md, 6px);
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: 11.5px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}
.btn-bulk svg { flex-shrink: 0; }
.btn-bulk:hover { border-color: var(--accent); color: var(--accent); }
.btn-bulk[hidden] { display: none; }
.btn-bulk.danger { color: var(--danger, #EF4444); }
.btn-bulk.danger:hover { border-color: var(--danger, #EF4444); background: var(--tint-error, rgba(239,68,68,.12)); }
.btn-bulk.ghost { color: var(--text-disabled); font-weight: 500; }
.btn-bulk.ghost:hover { color: var(--text-primary); border-color: var(--border); }

.case-menu-btn {
    flex-shrink: 0;
    width: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    border-left: 1px solid var(--border);
    color: var(--text-disabled);
    cursor: pointer;
}
.case-menu-btn:hover { color: var(--accent); background: var(--bg-hover); }

.case-menu {
    position: fixed;
    z-index: 300;
    min-width: 170px;
    padding: 4px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg, 8px);
    box-shadow: 0 8px 28px rgba(0,0,0,.28);
}
.case-menu button {
    display: block;
    width: 100%;
    padding: 7px 10px;
    background: none;
    border: none;
    border-radius: var(--radius-md, 6px);
    text-align: left;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 12.5px;
    color: var(--text-primary);
}
.case-menu button:hover { background: var(--bg-hover); }
.case-menu button.danger { color: var(--danger, #EF4444); }
.case-menu button.danger:hover { background: var(--tint-error, rgba(239,68,68,.12)); }

.col-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: var(--sp-lg) var(--sp-xl);
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}
.col-head .col-count {
    margin-left: auto;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-disabled);
}
.col-body {
    flex: 1;
    overflow-y: auto;
    padding: var(--sp-lg) var(--sp-xl);
    min-height: 0;
}

/* === Spalte 1: Quellen === */
.col-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: var(--sp-md) var(--sp-xl);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}
.col-actions label {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px; color: var(--text-secondary); cursor: pointer;
}
.col-actions input[type="checkbox"] { accent-color: var(--accent); cursor: pointer; }
.col-actions .spacer { margin-left: auto; }
.ingest-add-btn { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; padding: 4px 10px; }

/* --- Quellen-Ingest: Dropzone + Job-Liste --- */
.ingest-panel {
    padding: var(--sp-md) var(--sp-xl);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}
.dropzone {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 4px; text-align: center;
    padding: 16px 12px;
    border: 1.5px dashed var(--border);
    border-radius: 10px;
    color: var(--text-secondary);
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.dropzone:hover, .dropzone.drag { border-color: var(--accent); background: var(--bg-hover); }
.dropzone .dz-icon { color: var(--accent); }
.dropzone .dz-hint { font-size: 12.5px; color: var(--text-primary); }
.dropzone .dz-sub { font-size: 11px; color: var(--text-disabled); }
.ingest-url { display: flex; gap: 6px; margin-top: 8px; }
.ingest-url input {
    flex: 1; min-width: 0; font-size: 12px;
    padding: 6px 10px; border-radius: 8px;
    border: 1px solid var(--border); background: var(--bg-card); color: var(--text-primary);
}
.ingest-url input:focus { outline: none; border-color: var(--accent); }

.ingest-jobs { flex-shrink: 0; overflow-y: auto; max-height: 40%; padding: 0 var(--sp-xl); }
.ingest-jobs:not(:empty) { padding-top: var(--sp-sm); padding-bottom: var(--sp-sm); border-bottom: 1px solid var(--border); }
.ju-group { margin-bottom: 8px; }
.ju-group-head {
    display: flex; align-items: center; gap: 6px;
    font-size: 11px; font-weight: 600; letter-spacing: .02em;
    color: var(--text-secondary); text-transform: uppercase;
    margin: 4px 0;
}
.ju-group-head .ju-count {
    margin-left: auto; background: var(--bg-card); border: 1px solid var(--border);
    border-radius: 8px; padding: 0 6px; font-weight: 500; text-transform: none;
}
.ju-item {
    background: var(--bg-card); border: 1px solid var(--border);
    border-radius: 8px; padding: 7px 9px; margin-bottom: 5px;
}
.ju-item.error { border-color: var(--danger, #d9534f); }
.ju-row { display: flex; align-items: center; gap: 6px; }
.ju-name { flex: 1; min-width: 0; font-size: 12.5px; color: var(--text-primary);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ju-del { background: none; border: none; color: var(--text-disabled); font-size: 16px;
    line-height: 1; cursor: pointer; padding: 0 2px; }
.ju-del:hover { color: var(--danger, #d9534f); }
.ju-bar { height: 4px; background: var(--bg-hover); border-radius: 3px; overflow: hidden; margin-top: 6px; }
.ju-bar span { display: block; height: 100%; background: var(--accent); transition: width .4s ease; }
.ju-stage { font-size: 10.5px; color: var(--text-disabled); margin-top: 3px; }
.ju-err { font-size: 11px; color: var(--danger, #d9534f); margin-top: 4px; }
.ju-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.ju-btn {
    font-size: 11px; padding: 3px 9px; border-radius: 12px;
    border: 1px solid var(--border); background: var(--bg-elevated, var(--bg-card));
    color: var(--text-secondary); cursor: pointer; text-decoration: none;
}
.ju-btn:hover { border-color: var(--accent); color: var(--accent); }
.ju-media:not(:empty) { margin-top: 6px; }
.ju-text {
    font-size: 12px; line-height: 1.5; color: var(--text-secondary);
    background: var(--bg-hover); border-radius: 8px; padding: 8px 10px;
    max-height: 220px; overflow-y: auto; white-space: normal;
}

/* Kategorie-Gliederung der regulären Quellenliste (Webseiten/Dokumente/…) */
.src-cat { margin-bottom: 2px; }
.src-cat-head {
    display: flex; align-items: center; gap: 6px;
    padding: 10px var(--sp-xl) 4px;
    font-size: 11px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase;
    color: var(--text-secondary);
    cursor: pointer; user-select: none;
}
.src-cat-head:hover { color: var(--text-primary); }
.src-cat-head svg.src-cat-icon, .src-cat-head > svg:not(.src-cat-chevron) { color: var(--accent); }
.src-cat-head .src-cat-count { margin-left: auto; color: var(--text-disabled); font-weight: 500; }
.src-cat-chevron { color: var(--text-disabled); transition: transform .15s ease; flex-shrink: 0; }
.src-cat.collapsed .src-cat-chevron { transform: rotate(-90deg); }
.src-cat.collapsed .src-item { display: none; }
.src-upload { display: flex; flex-direction: column; gap: 4px; }
.src-upload .ju-actions { margin-top: 2px; }
.ju-btn-del { color: var(--text-disabled); }
.ju-btn-del:hover { border-color: var(--danger, #d9534f); color: var(--danger, #d9534f); }

/* Historie (frühere Lageberichte / Faktencheck-Läufe, aufklappbar) */
.hist-item { border: 1px solid var(--border); border-radius: 8px; margin-bottom: 6px; background: var(--bg-card); }
.hist-item > summary {
    list-style: none; cursor: pointer; padding: 8px 10px;
    display: flex; align-items: center; gap: 10px; font-size: 12.5px;
}
.hist-item > summary::-webkit-details-marker { display: none; }
.hist-item > summary::before {
    content: "\25B8"; color: var(--text-disabled); transition: transform .15s; font-size: 11px;
}
.hist-item[open] > summary::before { transform: rotate(90deg); }
.hist-time { color: var(--text-primary); font-weight: 600; }
.hist-meta { color: var(--text-disabled); margin-left: auto; }
.hist-body { padding: 4px 12px 12px; }
.hist-prev { font-size: 12px; color: var(--text-secondary); line-height: 1.5; }
.fc-history { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 10px; }
.fc-history > summary {
    cursor: pointer; font-size: 12px; font-weight: 600; color: var(--text-secondary);
    list-style: none; padding: 2px 0;
}
.fc-history > summary::-webkit-details-marker { display: none; }
.fc-history > summary::before { content: "\25B8 "; color: var(--text-disabled); }
.fc-history[open] > summary::before { content: "\25BE "; }
.fc-history-body { margin-top: 8px; }

/* Quellen-Suchfeld (oberster Punkt der Quellen-Spalte) */
.src-search {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: var(--sp-md) var(--sp-xl);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}
.src-search-icon {
    display: inline-flex;
    align-items: center;
    color: var(--text-disabled);
    flex-shrink: 0;
}
.src-search input {
    flex: 1;
    min-width: 0;
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    border-radius: var(--radius);
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: 13px;
    padding: 7px 10px;
}
.src-search input:focus { outline: none; border-color: var(--accent); }
.src-item.filtered-out { display: none; }

.src-item {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    margin-bottom: 6px;
    background: var(--bg-card);
    overflow: hidden;
}
.src-item.deselected { opacity: 0.45; }
.src-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    cursor: pointer;
}
.src-head:hover { background: var(--bg-hover); }
.src-check { accent-color: var(--accent); cursor: pointer; flex-shrink: 0; }
.src-name {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.src-count {
    font-size: 11px;
    color: var(--text-disabled);
    background: var(--bg-elevated);
    border-radius: 10px;
    padding: 1px 7px;
    flex-shrink: 0;
}
.src-badges { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.src-lang { font-size: 10px; color: var(--text-disabled); flex-shrink: 0; }

.src-articles {
    display: none;
    border-top: 1px solid var(--border);
    padding: 4px 10px 8px;
}
.src-item.open .src-articles { display: block; }
.src-article {
    display: block;
    font-size: 12px;
    color: var(--text-secondary);
    padding: 4px 0;
    text-decoration: none;
    border-bottom: 1px solid var(--tint-hover-subtle);
    line-height: 1.4;
}
.src-article:last-child { border-bottom: none; }
.src-article:hover { color: var(--accent); }
.src-article .src-article-date { color: var(--text-disabled); font-size: 10px; margin-right: 6px; }

/* Quelle beim Zitat-Klick hervorheben */
.src-item.cite-flash {
    animation: cite-flash 1.6s ease;
    border-color: var(--accent);
}
@keyframes cite-flash {
    0%, 30% { box-shadow: 0 0 0 2px var(--accent), var(--glow-accent); }
    100% { box-shadow: none; }
}

/* Reliability-/Bias-Badges (Wiederverwendung der style.css-Klassen, hier nur Ausrichtung) */
.src-badges .source-reliability-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.src-badges .source-political-badge,
.src-badges .source-ifcn-badge,
.src-badges .source-eu-disinfo-badge,
.src-badges .source-state-badge,
.src-badges .source-alignment-chip-badge { font-size: 9px; }

/* === Spalte 2: Konversation === */
.chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: var(--sp-lg) var(--sp-xl);
    display: flex;
    flex-direction: column;
    gap: var(--sp-lg);
    min-height: 0;
}
.chat-msg { max-width: 92%; }
.chat-msg-user {
    align-self: flex-end;
    background: var(--accent);
    color: #fff;
    border-radius: 12px 12px 2px 12px;
    padding: 8px 12px;
    font-size: 13px;
    line-height: 1.5;
}
.chat-msg-assistant {
    align-self: flex-start;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px 12px 12px 2px;
    padding: 10px 14px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-primary);
}
.chat-msg-assistant.pinned {
    border-color: var(--tint-accent);
    background: var(--tint-accent-faint);
    max-width: 100%;
    align-self: stretch;
}
.chat-msg-assistant .briefing-content { font-size: 13px; }
.chat-pin-label {
    font-size: 10px; text-transform: uppercase; letter-spacing: 0.6px;
    color: var(--accent); font-weight: 600; margin-bottom: 6px;
}
.chat-cite {
    display: inline-block;
    color: var(--accent);
    font-weight: 600;
    cursor: pointer;
    font-size: 11px;
    vertical-align: super;
    padding: 0 1px;
}
.chat-cite:hover { text-decoration: underline; }
.chat-thinking { color: var(--text-disabled); font-style: italic; font-size: 12px; }

.chat-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0 var(--sp-xl) var(--sp-md);
    flex-shrink: 0;
}
.chat-chip {
    background: var(--bg-card);
    border: 1px solid var(--border);
    color: var(--text-secondary);
    border-radius: 14px;
    padding: 5px 12px;
    font-size: 12px;
    cursor: pointer;
    white-space: nowrap;
}
.chat-chip:hover { border-color: var(--accent); color: var(--accent); }

.chat-scope {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 var(--sp-xl) var(--sp-sm);
    font-size: 12px;
    color: var(--text-disabled);
    cursor: pointer;
    user-select: none;
    flex-shrink: 0;
}
.chat-scope input { accent-color: var(--accent); cursor: pointer; margin: 0; }
.chat-scope:hover { color: var(--text-secondary); }
.chat-scope.on { color: var(--accent); }

.chat-input-row {
    display: flex;
    gap: 8px;
    padding: var(--sp-md) var(--sp-xl) var(--sp-lg);
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}
.chat-input-row textarea {
    flex: 1;
    resize: none;
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: 13px;
    padding: 10px 12px;
    max-height: 120px;
    line-height: 1.5;
}
.chat-input-row textarea:focus { outline: none; border-color: var(--accent); }
.chat-send {
    align-self: flex-end;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: var(--radius-lg);
    width: 40px; height: 40px;
    font-size: 16px;
    cursor: pointer;
    flex-shrink: 0;
}
.chat-send:hover { background: var(--accent-hover); }
.chat-send:disabled { opacity: 0.5; cursor: not-allowed; }

/* === Spalte 2: Mitte = Tab-Panel (oben) + Konversation (unten) === */
.studio-col-center { min-height: 0; }

/* Tab-Panel: nur sichtbar, wenn mindestens ein Studio-Teil geoeffnet ist */
.center-tabs {
    display: none;
    flex-direction: column;
    min-height: 0;
}
.studio-col-center.has-tabs .center-tabs { display: flex; flex: 1 1 auto; min-height: 120px; }

.center-tabbar {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    padding: 6px 8px 0;
    overflow-x: auto;
    flex-shrink: 0;
    background: var(--bg-topbar);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.35);
    position: relative;
    z-index: 1;
}
.center-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 8px 7px 12px;
    border: 1px solid var(--border);
    border-top: 2px solid transparent;
    border-bottom: none;
    border-radius: var(--radius) var(--radius) 0 0;
    background: var(--bg-secondary);
    color: var(--text-secondary);
    font-family: var(--font-title);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    max-width: 210px;
    margin-bottom: 0;
    transition: background 0.15s, color 0.15s;
}
.center-tab:hover { background: var(--bg-hover); color: var(--text-primary); }
.center-tab .ct-icon { display: inline-flex; align-items: center; color: var(--accent); flex-shrink: 0; }
.center-tab .ct-icon svg { width: 14px; height: 14px; }
.center-tab .ct-title { overflow: hidden; text-overflow: ellipsis; }
.center-tab.active {
    color: var(--text-primary);
    background: var(--bg-primary);
    border-color: var(--border);
    border-top: 2px solid var(--accent);
    margin-bottom: -1px;                 /* verbindet den aktiven Tab mit dem Inhalt darunter */
}
/* Drag&Drop-Umsortierung */
.center-tab.dragging-tab { opacity: 0.45; }
.center-tab.drop-before { box-shadow: inset 2px 0 0 var(--accent); }
.center-tab.drop-after { box-shadow: inset -2px 0 0 var(--accent); }
.center-tab-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    border-radius: 4px;
    color: var(--text-disabled);
    flex-shrink: 0;
}
.center-tab-close:hover { background: var(--bg-hover); color: var(--text-primary); }

.center-tab-content {
    flex: 1;
    min-height: 0;
    display: flex;
    background: var(--bg-primary);
}
.tab-panel {
    display: none;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: var(--sp-xl);
    font-size: 13px;
    line-height: 1.7;
}
.tab-panel.active { display: block; }
.tab-panel[data-art="map"] { padding: 0; }
/* Grosszuegigere Abstaende, damit Bericht/Zusammenfassung nicht gequetscht wirken */
.tab-panel h3,
.tab-panel .briefing-heading { margin: 18px 0 8px; font-size: 14px; }
.tab-panel > *:first-child,
.tab-panel .briefing-content > *:first-child { margin-top: 0; }
.tab-panel ul { margin: 10px 0 14px 20px; }
.tab-panel li { margin-bottom: 7px; }
.tab-panel p { margin: 10px 0; }

/* Verschiebbare Trennung zwischen Tab-Panel und Konversation */
.center-divider {
    display: none;
    flex: 0 0 12px;
    height: 12px;
    align-items: center;
    justify-content: center;
    cursor: row-resize;
    background: var(--bg-secondary);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    touch-action: none;
    flex-shrink: 0;
}
.studio-col-center.has-tabs .center-divider { display: flex; }
.center-divider::before {
    content: "";
    width: 44px;
    height: 3px;
    border-radius: 3px;
    background: var(--text-disabled);
    opacity: 0.55;
    transition: background 0.15s, opacity 0.15s;
}
.center-divider:hover::before,
.center-divider.dragging::before { background: var(--accent); opacity: 1; }

/* Konversation unten (immer sichtbar) */
.chat-region {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 auto;
}
.studio-col-center.has-tabs .chat-region { flex: 0 0 var(--chat-h, 42%); min-height: 150px; }

/* === Spalte 3: Studio-Menue (oeffnet Tabs in der Mitte) === */
.studio-menu { padding: var(--sp-md); }
.studio-menu-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 10px 12px;
    margin-bottom: 8px;
    cursor: pointer;
    text-align: left;
    color: var(--text-primary);
    font-family: var(--font-body);
    transition: background 0.15s, border-color 0.15s;
}
.studio-menu-item:hover { background: var(--bg-hover); border-color: var(--accent); }
.studio-menu-item.open { border-color: var(--tint-accent); }
.studio-menu-item.active { border-color: var(--accent); background: var(--tint-accent-faint); }
.studio-menu-item .mi-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
}
.studio-menu-item .mi-title {
    flex: 1;
    min-width: 0;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.studio-menu-item .mi-meta { font-size: 11px; color: var(--text-disabled); flex-shrink: 0; }

/* === Spalte 3: Artefakt-Karten (Ergebnis UND Erzeuger in einem Element) ===
   Klick auf den Kopf oeffnet das Ergebnis in der Mitte, das Symbol rechts rechnet
   es neu, die Zeile darunter meldet den Datenstand (aktuell / veraltet / laeuft). */
@keyframes st-spin { to { transform: rotate(360deg); } }

/* Karten-Container fuellt den Karte-Tab */
#map-container {
    width: 100%;
    height: 100%;
    min-height: 320px;
    overflow: hidden;
}
#map-empty {
    display: none;
    align-items: center;
    justify-content: center;
    height: 120px;
    color: var(--text-disabled);
    font-size: 13px;
}

/* Timeline (schlank) */
.tl-item {
    padding: 6px 0;
    border-bottom: 1px solid var(--tint-hover-subtle);
    font-size: 12px;
}
.tl-item:last-child { border-bottom: none; }
.tl-time { color: var(--text-disabled); font-size: 11px; margin-right: 8px; font-family: var(--font-mono); }
.tl-item a { color: var(--text-secondary); text-decoration: none; }
.tl-item a:hover { color: var(--accent); }

/* Aktivitaets-/Ereignis-Timeline (in Untersektionen gegliedert) */
.ev-section { border-bottom: 1px solid var(--border); }
.ev-section:last-child { border-bottom: none; }
.ev-section-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 2px;
    cursor: pointer;
    user-select: none;
    list-style: none;
}
.ev-section-head::-webkit-details-marker { display: none; }
.ev-section-head:hover .ev-section-title { color: var(--accent); }
.ev-section-icon { display: inline-flex; align-items: center; color: var(--accent); flex-shrink: 0; }
.ev-section-icon svg { width: 16px; height: 16px; }
.ev-section-title {
    flex: 1;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 13px;
    color: var(--text-primary);
}
.ev-section-count {
    font-size: 11px;
    color: var(--text-disabled);
    background: var(--bg-elevated);
    border-radius: 10px;
    padding: 1px 8px;
    flex-shrink: 0;
}
.ev-section-head::after {
    content: "\25B8";
    display: inline-block;
    color: var(--text-secondary);
    font-size: 10px;
    transition: transform 0.15s;
}
.ev-section[open] .ev-section-head::after { transform: rotate(90deg); }
.ev-section-body { padding: 2px 0 10px 6px; }

/* Sektions-Akzente (Icon-Farbe je Typ) */
.sec-refresh .ev-section-icon { color: var(--info); }
.sec-source_change .ev-section-icon { color: var(--success); }
.sec-article_ingest .ev-section-icon { color: var(--text-secondary); }

/* Einzel-Ereignis (kompakt: Zeit links, Inhalt rechts) */
.ev-item {
    display: flex;
    gap: 10px;
    padding: 7px 0;
    border-bottom: 1px solid var(--tint-hover-subtle);
}
.ev-item:last-child { border-bottom: none; }
.ev-time {
    font-size: 11px;
    color: var(--text-disabled);
    font-family: var(--font-mono);
    flex-shrink: 0;
    min-width: 78px;
    padding-top: 1px;
}
.ev-main { flex: 1; min-width: 0; }
.ev-title { font-size: 12px; line-height: 1.5; color: var(--text-primary); word-break: break-word; }
.ev-title a { color: var(--text-secondary); text-decoration: none; }
.ev-title a:hover { color: var(--accent); text-decoration: underline; }
.ev-src { font-size: 11px; color: var(--text-disabled); margin-top: 2px; }

/* Q&A: ausklappbare Antwort */
.ev-answer { margin-top: 6px; }
.ev-answer summary {
    cursor: pointer;
    font-size: 12px;
    color: var(--accent);
    list-style: none;
    user-select: none;
}
.ev-answer summary::-webkit-details-marker { display: none; }
.ev-answer summary::before { content: "\25B8  "; }
.ev-answer[open] summary::before { content: "\25BE  "; }
.ev-answer-body {
    margin-top: 6px;
    padding: 8px 10px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font-size: 12px;
    line-height: 1.6;
    color: var(--text-secondary);
}

/* Faktencheck im Tab */
.tab-panel .factcheck-item { padding: 8px 0; border-bottom: 1px solid var(--tint-hover-subtle); }
.tab-panel .factcheck-item:last-child { border-bottom: none; }

/* Export-Karte */
.export-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.export-row select {
    background: var(--input-bg); color: var(--text-primary);
    border: 1px solid var(--input-border); border-radius: var(--radius);
    padding: 6px 10px; font-size: 12px;
}

/* Empty / Leerzustaende */
/* Ohne offenen Fall: Mitte + rechte Spalte bleiben SICHTBAR, nur ausgegraut und
   nicht bedienbar. Der Hinweis liegt als Auflage darueber (Spalte 1 bleibt aktiv). */
.studio-cols.idle .studio-col-center,
.studio-cols.idle .studio-col-artifacts {
    opacity: .32;
    filter: grayscale(.55);
    pointer-events: none;
    user-select: none;
}
.studio-empty {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 301px;                /* rechts neben der Fall-Liste (300px + 1px Fuge) */
    right: 321px;               /* und links neben der Bausteine-Spalte (320px + 1px Fuge),
                                   sonst sitzt der Hinweis sichtbar zu weit rechts */
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--sp-xl);
    pointer-events: none;       /* nur Hinweis, faengt keine Klicks ab */
}
.se-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 22px 28px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 10px;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .28);
    color: var(--text-secondary);
    font-size: 14px;
    text-align: center;
    max-width: 340px;
}
.se-box svg { color: var(--accent); }
.tab-panel .empty-hint { color: var(--text-disabled); font-size: 12px; }

/* === Responsiv === */
@media (max-width: 1100px) {
    .studio-cols { grid-template-columns: 1fr; grid-auto-rows: minmax(0, 1fr); }
    .studio-col { max-height: 60vh; }
    /* Gestapelte Spalten: der Hinweis nimmt die volle Breite */
    .studio-empty { left: 0; right: 0; }
}

/* Fall-Chat: Recherche-Angebot des Analysten (Phase 3) */
.chat-offer{margin-top:10px;padding:12px 14px;border:1px solid var(--studio-border,#8aa0c022);border-radius:10px;background:var(--studio-panel-2,rgba(120,140,180,.08));font-size:13px;}
.chat-offer-title{font-weight:600;margin-bottom:4px;}
.chat-offer-text{opacity:.85;margin-bottom:8px;line-height:1.45;}
.chat-offer-label{display:block;font-size:12px;opacity:.7;margin-bottom:4px;}
.chat-offer-add{width:100%;box-sizing:border-box;resize:vertical;font:inherit;padding:6px 8px;border:1px solid var(--studio-border,#8aa0c033);border-radius:8px;background:rgba(127,127,127,.06);color:inherit;margin-bottom:6px;}
.chat-offer-focus{font-size:12px;opacity:.7;margin-bottom:8px;}
.chat-offer-btn{cursor:pointer;}
.chat-offer-btn:disabled{opacity:.6;cursor:default;}

/* === Einstellungen des Falls ========================================== */
/* Ersetzt das Bearbeiten-Modal der klassischen Ansicht. Eine Spalte mit
   begrenzter Breite, damit die Felder auf breiten Schirmen nicht auseinander
   laufen. */
.settings-panel {
    max-width: 560px;
    padding: 4px 2px 16px;
}

.settings-panel .form-group {
    margin-bottom: 16px;
}

.settings-panel label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

.settings-panel .toggle-label {
    display: flex;
    margin-bottom: 0;
}

.settings-panel input[type="text"],
.settings-panel input[type="number"],
.settings-panel input[type="time"],
.settings-panel select,
.settings-panel textarea {
    width: 100%;
}

.settings-panel textarea {
    min-height: 72px;
    resize: vertical;
}

/* Hinweis auf einen gerade laufenden Schritt */
.settings-note {
    margin-bottom: 16px;
    padding: 10px 12px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--bg-elevated);
    font-size: 12px;
    color: var(--text-secondary);
}

.settings-note[hidden] {
    display: none;
}

/* Warnung, sobald der KI-Weg vom gespeicherten Stand abweicht */
.settings-warn {
    margin-top: 8px;
    padding: 8px 10px;
    border-left: 2px solid var(--warning);
    background: var(--tint-warning);
    color: var(--text-secondary);
}

.settings-warn[hidden] {
    display: none;
}

.settings-foot {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

/* Der Zustandstext schiebt die Knoepfe nach rechts */
.settings-state {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    color: var(--text-tertiary);
}

.settings-state.ok {
    color: var(--success);
}

.settings-state.fehler {
    color: var(--error);
}

/* Kennzeichen des KI-Wegs in der Fallliste. Schrumpft nicht, der Titel
   kuerzt sich stattdessen. */
.case-ai-tag {
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.case-ai-tag.ai-eu {
    color: #10B981;
}

.case-ai-tag.ai-anthropic {
    color: var(--text-disabled);
}

/* === Der Lauf (Spalte 3) ============================================== */
/* Genau ein Startpunkt. Die vier Schritte darunter sind Anzeige, sie starten
   nichts. Frueher standen hier Artefakt-Karten, in denen ein Klick links das
   Ergebnis oeffnete und einer rechts es neu rechnete. Das lag zu nah
   beieinander und kostete im falschen Fall Geld. */

.lauf-stand {
    padding: 12px;
    margin-bottom: 12px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-card);
}

/* Vollstaendig umlaufender Rahmen, kein einseitiger Streifen */
.lauf-stand.betont {
    border: 2px solid var(--sidebar-active, #C8A851);
    padding: 11px;
}

.ls-haupt {
    font-size: 13px;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.ls-haupt.warn { color: var(--warning); }

.ls-neben {
    font-size: 11px;
    color: var(--text-tertiary);
}

.ls-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 6px;
    border: 1px solid var(--sidebar-active, #C8A851);
    background: var(--sidebar-active, #C8A851);
    color: #1A1A1A;
    font-family: var(--font-title, inherit);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: filter .15s, opacity .15s;
}

.ls-btn:hover:not(:disabled) { filter: brightness(1.08); }

.ls-btn:disabled { opacity: .45; cursor: not-allowed; }

.ls-btn.abbrechen {
    background: transparent;
    border-color: var(--error);
    color: var(--error);
}

.ls-icon { display: inline-flex; flex-shrink: 0; }

.ls-hinweis {
    margin-top: 8px;
    font-size: 11px;
    color: var(--text-tertiary);
    text-align: center;
}

.ls-hinweis[hidden] { display: none; }

/* --- Die Kette --- */
.lauf-kette {
    display: flex;
    align-items: center;
    padding: 4px 6px 8px;
}

.kn {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    border-radius: 50%;
    border: 2px solid var(--border);
    background: var(--bg-elevated);
}

.kn-fertig { background: var(--success); border-color: var(--success); }
.kn-veraltet { background: var(--warning); border-color: var(--warning); }
.kn-laeuft {
    background: var(--sidebar-active, #C8A851);
    border-color: var(--sidebar-active, #C8A851);
    animation: kn-puls 1.4s ease-in-out infinite;
}
.kn-gesperrt { opacity: .45; }

.kn-linie { flex: 1; height: 2px; background: var(--border); }
.kn-linie.aktiv { background: var(--success); }

@keyframes kn-puls { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

@media (prefers-reduced-motion: reduce) {
    .kn-laeuft { animation: none; }
}

.lauf-fortschritt {
    font-size: 11px;
    color: var(--text-tertiary);
    text-align: center;
    margin-bottom: 12px;
}

/* --- Die Schritte --- */
.lauf-schritte { margin-bottom: 4px; }

.schritt {
    border: 1px solid var(--border);
    border-radius: 6px;
    margin-bottom: 6px;
    background: var(--bg-card);
    overflow: hidden;
}

.schritt-laeuft, .schritt-veraltet {
    border: 2px solid var(--sidebar-active, #C8A851);
}

.schritt-gesperrt { opacity: .55; }

.schritt-kopf {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    background: none;
    border: none;
    color: var(--text-primary);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.schritt-kopf:hover { background: var(--tint-hover-subtle, rgba(255,255,255,.03)); }

.schritt-nr {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    background: var(--bg-elevated);
    color: var(--text-tertiary);
}

.schritt-fertig .schritt-nr { background: var(--tint-success); color: var(--success); }
.schritt-veraltet .schritt-nr { background: var(--tint-warning); color: var(--warning); }
.schritt-laeuft .schritt-nr { background: var(--tint-accent); color: var(--sidebar-active, #C8A851); }

.schritt-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.schritt-name { font-size: 12px; }
.schritt-stand { font-size: 11px; color: var(--text-tertiary); }
.schritt-fertig .schritt-stand { color: var(--success); }
.schritt-veraltet .schritt-stand { color: var(--warning); }

.schritt-pfeil {
    flex-shrink: 0;
    color: var(--text-tertiary);
    display: inline-flex;
    transition: transform .18s;
}

.schritt.offen .schritt-pfeil { transform: rotate(180deg); }

.schritt-mehr {
    display: none;
    padding: 0 10px 10px 40px;
    font-size: 11px;
    line-height: 1.5;
    color: var(--text-secondary);
}

.schritt.offen .schritt-mehr { display: block; }

/* --- Bereichstrenner im Menue --- */
.menu-bereich {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 20px 0 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-tertiary);
}

.menu-bereich::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--border);
}

/* Untergeordnete Ansicht, gehoert zum Eintrag darueber */
.studio-menu-item.mi-unter {
    padding-left: 30px;
    font-size: 12px;
}

.studio-menu-item.mi-unter .mi-title { font-size: 12px; }
