/* Steuerungscockpit – Ergänzungen zu app.css (aus dem Fristen-Dashboard übernommen).
   Nur Komponenten, die es dort nicht gibt. Farben ausschließlich über die Tokens aus brand.css/app.css. */

:root{
  --esc-1:#3b6ea8;   /* Stufe 1 Arbeitsebene */
  --esc-2:#c98a1f;   /* Stufe 2 Abteilungsleiter */
  --esc-3:#a6111c;   /* Stufe 3 Geschäftsführung */
}

/* Ampel-Klassen des Servers (ok/nodate) auf die bestehenden Badge-Stile abbilden */
.badge.ok{background:var(--accent-badge); color:var(--accent);}
.badge.ok i{background:var(--due-upcoming);}
.badge.nodate{background:var(--neutral-tint); color:var(--ink-soft);}
.badge.nodate i{background:var(--due-none);}

.late-text{color:var(--crit) !important; font-weight:700;}
.warn-text{color:var(--warn) !important;}
.chip.warn{background:var(--warn-bg); color:var(--warn); box-shadow:inset 0 0 0 1px var(--warn-line);}
.chip.ok{background:var(--done-bg); color:var(--green);}
.chip.oum{background:var(--accent-badge); color:var(--accent);}

/* Eskalationsstufe */
.esk-tag{
  display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; line-height:1.35; white-space:nowrap;
  padding:2px 9px; border-radius:var(--radius-pill); background:var(--surface-sub); color:var(--ink); box-shadow:inset 0 0 0 1px var(--line);
}
.esk-tag::before{content:""; width:7px; height:7px; border-radius:2px; background:var(--ec, var(--neutral)); transform:rotate(45deg);}
.esk-tag.s1{--ec:var(--esc-1);}
.esk-tag.s2{--ec:var(--esc-2);}
.esk-tag.s3{--ec:var(--esc-3);}
.esk-tag.late{background:var(--crit-bg); color:var(--crit); box-shadow:inset 0 0 0 1px var(--crit-line);}

/* Priorität */
.prio{font-size:12.5px; font-weight:600; color:var(--ink-soft);}
.prio.p-hoch{color:var(--brand); font-weight:700;}
.prio.p-niedrig{color:var(--ink-mute); font-weight:400;}

/* KPI-Kacheln: 7 statt 5 */
.kpis.kpis-7{grid-template-columns:repeat(7, minmax(0,1fr));}
.kpi.inwork{--kc:var(--st-blue);} .kpi.inwork .num{color:var(--accent);}
.kpi.esc{--kc:var(--esc-2);} .kpi.esc .num{color:var(--warn);}
@media (max-width:1180px){ .kpis.kpis-7{grid-template-columns:repeat(4, minmax(0,1fr));} }
@media (max-width:640px){ .kpis.kpis-7{grid-template-columns:repeat(2, minmax(0,1fr));} }

/* Cockpit */
.cockpit-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px;}
@media (max-width:900px){ .cockpit-grid{grid-template-columns:1fr;} }
.panel-title{font-size:16px; letter-spacing:var(--ls-h2); line-height:1.3; display:flex; align-items:center; gap:8px;}
.panel-sub{font-size:12.5px; color:var(--ink-mute); margin:2px 0 10px;}
.panel-link{display:inline-block; margin-top:10px; font-size:13px; font-weight:700; text-decoration:none;}
.mini-list{list-style:none; margin:0; padding:0;}
.mini-list li{display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:10px; align-items:center; padding:9px 6px; border-bottom:1px solid var(--line-soft); cursor:pointer; border-radius:8px;}
.mini-list li:last-child{border-bottom:none;}
.mini-list li:hover{background:var(--row-hover);}
.mini-list li:focus-visible{outline:2px solid var(--accent); outline-offset:-2px; box-shadow:none;}
.mini-id{font-size:12px; font-weight:700; color:var(--ink-mute); font-variant-numeric:tabular-nums;}
.mini-main{min-width:0; display:flex; flex-direction:column;}
.mini-title{font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.mini-meta{font-size:12px; color:var(--ink-mute);}
.mini-list li.mini-more{display:block; text-align:center; font-size:12.5px; font-weight:700; color:var(--accent);}

.bars{display:flex; flex-direction:column; gap:4px;}
.bar-row{display:grid; grid-template-columns:minmax(110px, 180px) 1fr 34px; gap:10px; align-items:center; background:none; border:none; padding:5px 6px; border-radius:8px; cursor:pointer; text-align:left;}
.bar-row:hover{background:var(--row-hover);}
.bar-label{font-size:13px; font-weight:600; color:var(--ink-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.bar-track{height:12px; background:var(--surface-sub); border-radius:3px; overflow:hidden;}
.bar-fill{display:flex; justify-content:flex-end; height:100%; background:var(--due-upcoming); border-radius:3px; min-width:4px;}
.bar-late{display:block; height:100%; background:var(--due-overdue);}
.bar-num{font-size:13px; font-weight:700; text-align:right; font-variant-numeric:tabular-nums; color:var(--ink);}
.legend .sw{display:inline-block; width:12px; height:10px; border-radius:2px; margin-right:5px; vertical-align:-1px;}

.stats{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px;}
.stat{background:var(--surface-sub); border-radius:var(--radius-sm); padding:12px 14px;}
.stat-num{font-size:24px; font-weight:800; color:var(--ink); line-height:1.1; font-variant-numeric:tabular-nums;}
.stat-lbl{font-size:13px; font-weight:700; color:var(--ink-soft); margin-top:4px;}
.stat-hint{font-size:12px; color:var(--ink-mute); margin-top:2px;}

/* Tabelle */
.tab-n{font-size:11px; opacity:.75; font-variant-numeric:tabular-nums;}
.items-table td.aufgabe-cell{max-width:420px;}
.items-table td.aufgabe-cell .thema{color:var(--ink); font-weight:600;}
.items-table td.aufgabe-cell .src-tag{margin-top:3px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
tr.row-incomplete td:first-child{box-shadow:inset 3px 0 0 var(--due-soon);}

/* Kanban */
.kcard.late{border-left:3px solid var(--due-overdue);}
.kcard .k-tags{display:inline-flex; gap:4px; flex-wrap:wrap; justify-content:flex-end;}

/* Detail & Formular */
.detail-badges{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:6px 0 18px;}
.timeline .change .old{color:var(--ink-mute); text-decoration:line-through; font-weight:600;}
fieldset.sub-box{border:1px solid var(--line); border-radius:var(--radius-sm); padding:12px 16px 16px; margin:18px 0 0; background:var(--surface-dash);}
fieldset.sub-box legend{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:var(--ls-section); color:var(--ink-mute); padding:0 6px;}
fieldset.sub-box .hint{margin:0 0 10px; font-size:12.5px; color:var(--ink-mute);}
.rule-box{background:var(--warn-bg); border:1px solid var(--warn-line); border-radius:var(--radius-sm); padding:10px 14px; margin-bottom:16px; font-size:13.5px; display:flex; flex-direction:column; gap:3px;}

/* Eskalationen */
.stufen{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; margin-bottom:18px;}
@media (max-width:900px){ .stufen{grid-template-columns:1fr;} }
.stufe-head{display:flex; align-items:center; gap:8px; margin-bottom:8px;}
.stufe-head strong{color:var(--ink);}
.stufe-n{margin-left:auto; font-size:12.5px; font-weight:700; color:var(--ink-mute);}
.stufe-row{font-size:13px; margin-top:4px; line-height:1.45;}
ul.rules{margin:6px 0 0; padding-left:18px; font-size:13.5px; line-height:1.55; color:var(--ink-body);}
ul.rules li{margin-bottom:4px;}

/* Meetings */
.meeting-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)); gap:14px;}
@media (max-width:420px){ .meeting-grid{grid-template-columns:1fr;} }
.meeting-card{padding:16px 18px; display:flex; flex-direction:column; gap:10px;}
.meeting-head{display:flex; gap:12px; align-items:flex-start;}
.meeting-head h3{font-size:16px; line-height:1.3;}
.meeting-name{flex:1; min-width:0;}
.meeting-name .muted{font-size:12.5px;}
.meeting-nr{flex:none; width:30px; height:30px; border-radius:50%; background:var(--accent); color:var(--on-accent); display:grid; place-items:center; font-weight:800; font-size:13px;}
.meeting-zweck{margin:0; font-style:italic; color:var(--ink-body); font-size:13.5px;}
.meeting-facts{display:flex; gap:6px; flex-wrap:wrap; align-items:center; font-size:12.5px;}
.meeting-dl{display:grid; grid-template-columns:95px 1fr; gap:4px 10px; margin:0; font-size:12.5px;}
.meeting-dl dt{color:var(--ink-mute); font-weight:600;}
.meeting-dl dd{margin:0; color:var(--ink-body);}
details.agenda summary{cursor:pointer; font-size:13px; font-weight:700; color:var(--accent);}
details.agenda ol{margin:8px 0 0; padding-left:20px; font-size:12.5px; color:var(--ink-body);}
details.agenda li{margin-bottom:4px;}
details.agenda li{display:list-item;}
details.agenda li .min{float:right; margin-left:10px; color:var(--ink-mute); font-variant-numeric:tabular-nums;}
.meeting-foot{margin-top:auto; display:flex; justify-content:space-between; align-items:center; gap:10px; padding-top:10px; border-top:1px solid var(--line-soft);}
ol.agenda-plain{margin:0; padding-left:20px; font-size:13.5px;}

/* Admin */
.listen-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(380px, 1fr)); gap:14px; align-items:start;}
@media (max-width:420px){ .listen-grid{grid-template-columns:1fr;} }
.listen-grid .admin-table input[type="text"]{min-width:0;}
.listen-grid .admin-table input[type="number"]{width:64px;}
.agenda-edit{display:flex; flex-direction:column; gap:6px;}
.agenda-row{display:grid; grid-template-columns:1fr 80px 36px; gap:6px;}
.agenda-row input{width:100%;}
