:root{
  --red:#FF403F; --red-dk:#E62A28; --ink:#111; --muted:#6b6b6b; --faint:#a3a3a3; --line:#e7e7e7;
  --bg:#f5f5f6; --card:#fff; --sidebar:#0a0a0a;
  --font:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);}
.hidden{display:none!important;}

/* Toasts: nicht-blockierende Warnungen (z.B. fehlgeschlagener Kalender-Sync) */
.toast-wrap{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:2000;max-width:360px;}
.toast{background:#fff;border:1px solid var(--line);border-left:4px solid #d97706;border-radius:8px;padding:10px 14px;box-shadow:0 8px 24px rgba(0,0,0,.18);font-size:13px;line-height:1.4;display:flex;align-items:flex-start;gap:10px;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;}
.toast.show{opacity:1;transform:translateY(0);}
.toast span{flex:1;}
.toast-x{background:transparent;color:var(--muted);padding:0 2px;font-size:12.5px;flex:none;}
.toast-x:hover{color:var(--ink);}
.toast-error{border-left-color:var(--red);}
.toast-ok{border-left-color:#0e9f6e;}
.toast-undo{border-left-color:#111;}
.toast-undo-btn{background:#111;color:#fff;font-size:12px;padding:4px 10px;border-radius:2px;flex:none;white-space:nowrap;}
.toast-undo-btn:hover{background:#333;}
button{font-family:inherit;cursor:pointer;border:none;border-radius:8px;font-weight:600;}
.btn-primary{background:var(--red);color:#fff;padding:10px 16px;font-size:14px;}
.btn-primary:hover{background:var(--red-dk);}
.btn-ghost{background:#1c1c1c;color:#fff;padding:9px 14px;font-size:13px;}
.btn-ghost:hover{background:#2a2a2a;}
.btn-sm{padding:6px 11px;font-size:12.5px;background:#efefef;color:#111;}
.btn-sm:hover{background:#e4e4e4;}
input,select,textarea{font-family:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%;}
input:focus,select:focus,textarea:focus{outline:2px solid var(--red);border-color:var(--red);}
label{display:block;font-size:12.5px;font-weight:600;margin:10px 0 4px;}

/* LOGIN */
.login{position:fixed;inset:0;background:#000;display:flex;align-items:center;justify-content:center;}
.login-card{background:#0f0f0f;border:1px solid #222;border-radius:16px;padding:34px 32px;width:340px;}
.login-logo{font-size:30px;font-weight:800;color:#fff;letter-spacing:1px;text-align:center;}
.login-logo span{color:var(--red);}
.login-logo-img{display:block;width:78%;height:auto;margin:0 auto 8px;}
.login-sub{text-align:center;color:var(--muted);font-size:13px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px;}
.login-card label{color:#bbb;}
.login-card input{background:#1a1a1a;border-color:#2a2a2a;color:#fff;}
.login-err{color:var(--red);font-size:13px;margin-top:10px;text-align:center;min-height:18px;}

/* APP LAYOUT */
.app{display:flex;min-height:100vh;}
.sidebar{width:230px;flex:none;background:var(--sidebar);color:#fff;display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh;}
.brand{font-size:23px;font-weight:800;letter-spacing:1px;padding:10px 6px 24px;text-align:center;}
.brand span{color:var(--red);}
.brand-logo-img{display:block;width:100%;height:auto;margin:0 auto;}
nav{display:flex;flex-direction:column;gap:1px;flex:0 0 auto;}
.nav-grp{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#7a7a7a;font-weight:700;padding:11px 12px 3px;cursor:pointer;display:flex;align-items:center;gap:5px;user-select:none;}
.nav-grp:hover{color:#bdbdbd;}
.nav-chev{font-size:8px;color:#6a6a6a;width:8px;}
nav .nav-grp:first-child{padding-top:2px;}
.navitem{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:9px;color:#cfcfcf;font-size:14px;font-weight:600;cursor:pointer;}
.navitem:hover{background:#191919;color:#fff;}
.navitem.active{background:var(--red);color:#fff;}
.navitem .ic{width:18px;text-align:center;}
.side-tools{border-top:1px solid #1d1d1d;padding:9px 0 4px;margin-top:9px;}
.side-tools-h{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:#6b6b6b;font-weight:700;padding:0 12px 6px;}
a.navitem{text-decoration:none;}
.toolframe{width:100%;height:calc(100vh - 66px);border:0;display:block;background:#f6f6f6;}
.insta-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000;display:flex;align-items:center;justify-content:center;padding:2vh 2vw;}
.insta-modal{background:#fff;border-radius:10px;width:96vw;max-width:1120px;height:94vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.42);}
.insta-bar{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid var(--line);flex:none;}
.insta-frame{flex:1;width:100%;border:0;background:#f6f6f6;}
.mt-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 4px;}
.mt-bar input,.mt-bar select{width:auto;padding:7px 10px;font-size:13px;}
.mt-lbl{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap;}
.tk-list{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:6px;}
.tk-row{display:flex;align-items:center;gap:10px;padding:7px 11px;border-bottom:1px solid #f4f4f4;cursor:pointer;font-size:13.5px;}
.tk-row:last-child{border-bottom:none;}
.tk-row input{width:auto;margin:0;flex:none;}
.tk-row b{min-width:96px;}
.tk-row span{flex:1;}
.side-foot{border-top:1px solid #1d1d1d;padding-top:14px;margin-top:auto;}
.user{font-size:13px;color:#bbb;margin-bottom:10px;padding:0 4px;}
.user b{color:#fff;display:block;}
.side-foot .btn-ghost{width:100%;}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:5;}
.topbar h1{font-size:20px;margin:0;font-weight:700;}
.yearsel{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted);margin:0;}
.yearsel select{width:auto;padding:7px 10px;}
.view{padding:24px 28px 60px;}

/* CARDS / KPIs */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:22px;}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;}
.kpi .k-label{font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;}
.kpi .k-val{font-size:28px;font-weight:800;margin-top:6px;}
.kpi .k-val.red{color:var(--red);}
.kpi .k-sub{font-size:12.5px;color:var(--muted);margin-top:2px;}

.grid{display:grid;gap:18px;}
.grid.cols2{grid-template-columns:1fr 1fr;}
.grid.cols3{grid-template-columns:repeat(3,1fr);}
@media(max-width:1000px){.grid.cols2,.grid.cols3{grid-template-columns:1fr;}}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;}
.card h3{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 14px;font-weight:700;}
.chart-wrap{position:relative;height:300px;}
.chart-wrap.tall{height:340px;}

/* TABLE */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px;}
.toolbar input,.toolbar select{width:auto;}
.toolbar .grow{flex:1;min-width:160px;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;padding:10px 12px;border-bottom:2px solid var(--line);position:sticky;top:0;background:#fff;}
td{padding:10px 12px;border-bottom:1px solid #f0f0f0;vertical-align:top;}
tbody tr:hover{background:#fafafa;cursor:pointer;}
.num{text-align:right;font-variant-numeric:tabular-nums;}
.tablewrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.tablescroll{max-height:64vh;overflow:auto;}

/* BADGES */
.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;}
.b-neu{background:#eaf1fc;color:#2f6fed;}
.b-rollen{background:#fbf3d6;color:#a07a00;}
.b-keine{background:#f1f2f4;color:#6b7280;}
.b-call{background:#f0eafb;color:#7a4fd0;}
.b-pitch{background:#e6f6ec;color:#1a8f4c;}
.b-verloren{background:#fbe9e9;color:#c0392b;}
.b-hold{background:#fbf3d6;color:#a07a00;}
.b-job{background:var(--red);color:#fff;}
.b-abg{background:#ededed;color:#8a8a8a;text-decoration:line-through;}
.b-offen{background:#fff0f0;color:var(--red);border:1px solid #ffd2d1;}
.b-bezahlt{background:#e6f7ee;color:#1a8f4c;}
.b-ohne{background:#f0f0f0;color:var(--muted);}

/* MODAL */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;z-index:50;}
.modal-card{background:#fff;border-radius:16px;width:680px;max-width:100%;padding:24px 26px;}
.modal-card h2{margin:0 0 16px;font-size:18px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:12px;}
.frow .full{grid-column:1/-1;}
.frow3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 16px;margin-bottom:12px;}
.frow3 .full{grid-column:1/-1;}
.modal-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{background:#f0f0f0;border-radius:16px;padding:4px 10px;font-size:12.5px;display:flex;gap:6px;align-items:center;}
.chips .chip{padding:7px 14px;font-size:13.5px;white-space:nowrap;}
.chip input[type=checkbox],.chip input[type=radio]{width:auto;flex:none;margin:0;}
.chip b{cursor:pointer;color:var(--red);}
.muted{color:var(--muted);}
.rank-bar{height:8px;border-radius:6px;background:var(--red);}
details.briefing{margin-top:8px;border-top:1px dashed var(--line);padding-top:8px;}
details.briefing summary{cursor:pointer;font-size:12.5px;color:var(--red);font-weight:600;}
details.fold{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:0 0 12px;}
details.fold>summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--ink);list-style:none;user-select:none;}
details.fold>summary::-webkit-details-marker{display:none;}
details.fold>summary::before{content:"▸";color:var(--muted);margin-right:6px;font-size:10px;}
details.fold[open]>summary::before{content:"▾";}
.hint{font-size:12.5px;color:var(--muted);margin-top:6px;}
.empty{color:var(--muted);text-align:center;padding:40px;}

/* --- iteration 2.x --- */
input[type=number]{-moz-appearance:textfield;}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.eur{position:relative;}
.eur input{padding-right:26px;}
.eur::after{content:"€";position:absolute;right:11px;top:31px;color:var(--muted);font-size:13px;pointer-events:none;}
.pct{position:relative;}
.pct input{padding-right:26px;}
.pct::after{content:"%";position:absolute;right:11px;top:31px;color:var(--muted);font-size:13px;pointer-events:none;}
.kpis.tight{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:11px;margin-bottom:14px;}
.kpis.tight .kpi{padding:12px 14px;border-radius:11px;}
.kpis.tight .k-val{font-size:21px;margin-top:2px;}
.kpis.tight .k-label{font-size:10.5px;}
.kpis.tight .k-sub{font-size:11px;}
.section-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin:18px 0 8px;}
/* Markierung „Nicht als Anfrage zählen" in der Projektliste */
.nozaehl{display:inline-block;margin-left:8px;background:#eee;color:#777;border:1px solid #ddd;border-radius:4px;
  padding:1px 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;}
/* Link zur freigegebenen Buchungsvereinbarung in "Jobs / Kunden" */
.bv-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--red);text-decoration:none;border:1px solid var(--line);border-radius:6px;padding:3px 8px;white-space:nowrap;}
.bv-link:hover{background:#fff4f3;border-color:var(--red);}
/* Talent-Übersicht: KPIs links untereinander, Jahresvergleich rechts daneben */
.tv-top{display:grid;grid-template-columns:minmax(190px,250px) 1fr;gap:16px;align-items:start;margin-bottom:16px;}
.tv-top .tv-kpis{grid-template-columns:1fr;margin-bottom:0;}
@media(max-width:900px){.tv-top{grid-template-columns:1fr;}}
.pipeline-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px;}
/* ohne Zählungen dürfen die Filter-Chips enger stehen */
.pipeline-strip.tight-chips{gap:5px;}
.pipeline-strip.tight-chips .pp{padding:5px 11px;gap:6px;}
.pp{background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 13px;font-size:12.5px;font-weight:600;display:flex;gap:7px;align-items:center;}
.pp .n{font-weight:800;color:var(--pc,var(--ink));}
.pp-dot{width:7px;height:7px;border-radius:50%;background:var(--pc,#999);flex:none;}
.role-badge{display:inline-block;padding:1px 8px;border-radius:14px;font-size:10.5px;font-weight:700;color:#fff;margin:0 3px 2px 0;}
th.sortable{cursor:pointer;user-select:none;} th.sortable:hover{color:var(--ink);}
th .arr{font-size:9px;margin-left:2px;color:var(--red);}
tr.no-job td{background:#fff5f5;}
tr.no-job td:first-child{color:var(--red);font-weight:700;box-shadow:inset 3px 0 0 var(--red);}
.star{color:var(--red);font-weight:800;}
.sortsel{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:12px;}
.sortsel select{width:auto;}
table.rank th.nw,table.rank td.num{white-space:nowrap;}
table.rank th.nw{width:48px;}
table.rank th.cur,table.rank td.cur{background:#fff5f5;}
table.rank th.cur{color:var(--red);}
table.rank tr.no-job td.cur{background:#ffe9e9;}
.talsel{display:flex;flex-wrap:wrap;gap:6px;max-height:140px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px;}
.talsel.compact{gap:3px;padding:6px;max-height:118px;}
.talsel.compact .chip{padding:2px 8px;font-size:12px;}
.talsel .chip{cursor:pointer;}
.talsel .chip input{width:auto;}
.kpis.fit{display:flex;flex-wrap:wrap;gap:11px;}
.kpis.fit .kpi{flex:0 0 auto;min-width:0;}
table.hug{width:auto;min-width:60%;}
table.hug th,table.hug td{white-space:nowrap;}
.seit{display:block;font-size:10.5px;color:var(--muted);font-weight:600;}
.verantw-chip{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11.5px;font-weight:600;color:#fff;background:var(--vc,#666);white-space:nowrap;}
.tag-ehem{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f0f0f0;border:1px solid #e2e2e2;padding:0 6px;border-radius:2px;margin-left:7px;vertical-align:middle;}
/* ehemalige Kontakte dezent grau (nicht rot) */
tr.ehem-row td{color:var(--muted);}
tr.ehem-row td:first-child b{color:#7a7a7a;font-weight:600;}
tr.ehem-row td:first-child{box-shadow:inset 3px 0 0 #dcdcdc;}
/* Geburtstags-Banner */
.bday-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:linear-gradient(90deg,#fff0f0,#fff7e6);border-bottom:1px solid var(--line);padding:11px 28px;font-size:13px;font-weight:600;}
.bday-bar .bd-today{color:var(--red);}
.bday-bar .bd-soon{color:var(--muted);}
.bday-bar .bd-x{margin-left:auto;background:transparent;color:var(--muted);font-size:15px;padding:2px 8px;line-height:1;}
.bday-bar .bd-x:hover{color:var(--ink);}
.chart-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;}
.chart-foot .ok{color:#0e9f6e;font-weight:700;}
.chart-foot .bad{color:var(--red);font-weight:700;}
tr.grouprow td{background:#fafafa;border-top:2px solid var(--line);border-bottom:none;padding-top:13px;}
tr.grouprow td b{font-size:14px;}
tr.joblet td.indent{padding-left:26px;color:var(--muted);}
tr.joblet td{border-bottom:1px solid #f4f4f4;}

/* ============ Feinschliff: eine Schrift (Work Sans), dezent & einheitlich ============ */
:root{ --bg:#fafafa; --line:#ececec; }
/* scharfe, moderne Kanten (weniger rund/verspielt) */
.kpi,.card,.tablewrap,.login-card,.modal-card,.chart-wrap,.toolframe,.talsel{ border-radius:2px; }
button,.btn-primary,.btn-ghost,.btn-sm,input,select,textarea{ border-radius:2px; }
.navitem,a.navitem{ border-radius:3px; }
.badge,.pp,.role-badge,.chip{ border-radius:2px; }
/* etwas weniger fett */
.kpi .k-val{ font-weight:700; }
.topbar h1{ font-weight:600; }
/* Menü dezenter & kleiner (kein Großbuchstaben/Sperren) */
.navitem,a.navitem{ font-size:13px; font-weight:500; letter-spacing:0; text-transform:none; }
.card{ border-color:var(--line); }

/* ===== Design-Refresh: SVG-Icons, Rhythmus, Tabellen ===== */
.navitem .ic{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:none;}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;}
.btn-icon svg{width:15px;height:15px;display:block;}
.navitem .ic svg{width:18px;height:18px;display:block;opacity:.9;}
.navitem.active .ic svg{opacity:1;}
.side-tools .navitem .ic svg{opacity:.8;}
/* KPI-Blöcke etwas mehr Luft + feinere Karten */
.kpis.tight{gap:10px;margin-bottom:18px;}
.kpi{border-color:#eee;}
.kpi .k-label{color:var(--muted);}
/* Tabellen ruhiger: mittige Ausrichtung, gleichmäßige Höhe, Zahlen ohne Umbruch */
table td,table th{vertical-align:middle;}
td.num,th.num,.nw{white-space:nowrap;}
/* Gage-Spalte: komplett linksbündig (Beträge wie Freitext), Freitext bricht um statt die Spalte zu sprengen */
td.gagecol,th.gagecol{text-align:left;white-space:normal;font-variant-numeric:tabular-nums;}
td.gagecol .gage-info{display:inline-block;text-align:left;max-width:200px;line-height:1.35;}
table.stamm td,table.stamm th{padding-top:9px;padding-bottom:9px;}
/* dezentere, aber lesbarere Fußnoten/Muted-Texte */
.muted{color:var(--muted);}
.chart-foot{color:var(--muted);}
/* schlankeres Geburtstags-Band */
.bday-bar{padding:7px 28px;font-size:12.5px;gap:14px;background:#fff8ee;}
/* Basis-Schriftgröße für nicht explizit gesetzten Text (statt Browser-16px) */
body{font-size:14px;}
.toolbar{font-size:13px;}
/* kompakte Mini-KPIs (z.B. Talent-Ranking Kopf) */
.kpis.mini{margin-bottom:14px;}
.kpis.mini .kpi{padding:8px 12px;}
.kpis.mini .k-val{font-size:17px;margin-top:1px;}
.kpis.mini .k-label{font-size:9.5px;}
/* Kontakte: Name mehr Platz, E-Mail begrenzt (Ellipsis) */
table.kontakte .k-name{min-width:150px;white-space:nowrap;}
table.kontakte .k-email{max-width:190px;}
table.kontakte .k-email a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;}
/* Kalender: Rollen-Buttons (REGIE/DoP/AI) exakt so groß wie die Talent-Chips */
.dk-rgroup{border:none;padding:0;gap:3px;margin:0 6px 0 0;}
.btn-sm.dk-rg{font-size:10.5px;padding:1px 8px;line-height:1.3;border-radius:3px;font-weight:700;background:#2a2a2a;}
.btn-sm.dk-rg b{opacity:.6;}
/* Offene Treffen: kompakter */
.card.tg-plain .todo-item,#treffenBody .todo-item{padding:6px 6px;}
/* Offene Rechnungen: Spalten eng an den Inhalt (keine große Lücke Dreh↔Rechnung) */
table.re-table{width:auto;}
table.re-table th,table.re-table td{padding:6px 12px 6px 0;}
table.re-table .re-dreh{max-width:150px;white-space:normal;}
/* Jobs/Kunden: kompaktere Spalten */
table.jk-table th,table.jk-table td{padding:6px 10px;}
table.jk-table td.indent,table.jk-table td.num{white-space:nowrap;}

/* ===== KALENDER ===== */
.dk-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:10px;}
.dk-cals{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.dk-cal{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:5px 10px;border:1px solid var(--line);border-radius:3px;background:#fff;cursor:pointer;color:var(--muted);user-select:none;}
.dk-cal.on{color:var(--ink);border-color:var(--c);background:color-mix(in srgb,var(--c) 8%,#fff);}
.dk-dot{width:9px;height:9px;border-radius:50%;background:var(--c);display:inline-block;flex:none;opacity:.35;}
.dk-cal.on .dk-dot{opacity:1;}
.dk-nav{display:flex;align-items:center;gap:6px;}
.dk-modes{display:flex;margin-right:4px;}
.dk-modes .btn-sm{border-radius:0;}
.dk-modes .btn-sm:first-child{border-radius:3px 0 0 3px;}
.dk-modes .btn-sm:last-child{border-radius:0 3px 3px 0;}
.btn-sm.sel{background:var(--ink);color:#fff;}
.dk-title{font-size:15px;font-weight:700;min-width:170px;text-align:center;text-transform:capitalize;}
.dk-sub{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px;}
.dk-legend{display:flex;gap:8px;flex-wrap:wrap;}
.dk-lg{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:3px;}
.dk-search{display:flex;align-items:center;gap:8px;}
.dk-search input{width:280px;padding:7px 11px;font-size:13px;}
.dk-search #dkSearchCount{font-size:12.5px;white-space:nowrap;}
.dk-grid{padding:0;overflow:hidden;}
.dk-head{display:grid;grid-template-columns:38px repeat(7,1fr);background:#fafafa;border-bottom:1px solid var(--line);}
.dk-head div{padding:8px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.dk-kw-h{text-align:center;padding:8px 4px!important;color:var(--faint)!important;border-right:1px solid var(--line);}
.dk-body{display:flex;flex-direction:column;}
/* Wochenzeile: Hintergrund-Tageszellen + überlagerte Spanning-Balken */
.dk-week{position:relative;border-bottom:1px solid var(--line);}
.dk-week:last-child{border-bottom:none;}
.dk-week-bg{position:absolute;inset:0;display:grid;grid-template-columns:38px repeat(7,1fr);}
.dk-kw{border-right:1px solid var(--line);background:#fafafa;display:flex;align-items:flex-start;justify-content:center;padding-top:6px;font-size:10.5px;font-weight:700;color:var(--faint);white-space:nowrap;letter-spacing:.02em;}
.dk-day{border-right:1px solid var(--line);padding:4px 6px;}
.dk-day:last-child{border-right:none;}
.dk-day.off{background:#fbfbfb;}
.dk-day.off .dk-dnum{color:#c8c8c8;}
.dk-day.today{background:color-mix(in srgb,var(--red) 5%,#fff);}
.dk-day.drop{background:color-mix(in srgb,var(--red) 12%,#fff);outline:2px dashed var(--red);outline-offset:-2px;}
.dk-dnum{font-size:12.5px;font-weight:700;color:var(--muted);}
.dk-day.today .dk-dnum{color:var(--red);}
.dk-mon{font-weight:600;font-size:10.5px;text-transform:capitalize;}
.dk-week-ev{position:absolute;inset:0;padding-top:27px;display:grid;grid-template-columns:38px repeat(7,1fr);row-gap:5px;align-content:start;pointer-events:none;}
/* Eintrag: Talentname als Banner oben (ohne Farben) / Produktion+Kunde fett / ToDo normal */
.dk-ev{position:relative;pointer-events:auto;display:flex;flex-direction:column;gap:1px;margin:0 3px;min-width:0;text-align:left;border:none;border-radius:4px;padding:0 0 3px;cursor:grab;background:#eef0f2;color:var(--ink);overflow:hidden;}
.dk-ev:hover{filter:brightness(.97);}
.dk-ev-tal{display:block;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;line-height:1.5;background:rgba(0,0,0,.07);color:#1f1f1f;padding:1px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dk-ev-tit{display:block;padding:1px 7px 0;font-weight:700;font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dk-ev-rest{font-weight:400;opacity:.8;}
.dk-ev.cl{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0;}
.dk-ev.cr{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0;}
.dk-ev.shared{box-shadow:inset 0 0 0 1px rgba(0,0,0,.13);}
.dk-ev.dim{opacity:.16;}
.dk-ev.hit{box-shadow:0 0 0 2px var(--red);}
.dk-dragging .dk-ev{pointer-events:none;}
body.dk-dragging{cursor:grabbing;}
.dk-ghost{position:fixed;z-index:100;pointer-events:none;background:#111;color:#fff;font-size:11px;font-weight:600;padding:4px 9px;border-radius:4px;max-width:230px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 6px 18px rgba(0,0,0,.32);}
/* Typ-Hierarchie (nur über Hintergrund, keine Talentfarben): JOB rot, Pitch/Option gelb, Block schraffiert, Anfrage blass-blau */
.dk-ev.t-job,.dk-lg.t-job,.dk-badge.t-job{background:#d16b68;color:#fff;}
.dk-ev.t-job .dk-ev-tal{background:rgba(255,255,255,.2);color:#fff;}
.dk-ev.t-done,.dk-lg.t-done,.dk-badge.t-done{background:#d3ebdd;color:#2f6b49;}
.dk-ev.t-option,.dk-lg.t-option,.dk-badge.t-option{background:#fcdf86;color:#6f5300;}
.dk-ev.t-anfrage,.dk-lg.t-anfrage,.dk-badge.t-anfrage{background:#cfe0fb;color:#1e4d8b;}
.dk-ev.t-block,.dk-lg.t-block,.dk-badge.t-block{background:repeating-linear-gradient(45deg,#e3e6ea,#e3e6ea 5px,#f5f6f8 5px,#f5f6f8 10px);color:#5a5f66;}
.dk-ev.t-raus,.dk-lg.t-raus,.dk-badge.t-raus{background:#f3f4f6;color:#9aa0a6;}
.dk-ev.t-raus .dk-ev-tit{text-decoration:line-through;}
.dk-ev.sel{outline:2px solid #2563eb;outline-offset:-2px;box-shadow:0 0 0 2px rgba(37,99,235,.28);}
/* Detail-/Bearbeiten-Fenster */
.dk-detail .dk-d-top{display:flex;align-items:center;gap:10px;}
.dk-badge{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:3px;}
.dk-d-tal{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:13px;}
.dk-shared-note{background:#fff7e6;border:1px solid #f5dca0;border-radius:6px;padding:8px 11px;font-size:13px;margin:4px 0 4px;}

/* Kalender-Suchergebnisse */
.dk-results{padding:6px;display:flex;flex-direction:column;}
.dk-res{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--line);padding:9px 10px;cursor:pointer;font-size:13px;color:var(--ink);}
.dk-res:hover{background:#f6f6f7;}
.dk-res:last-child{border-bottom:none;}
.dk-res-d{flex:none;width:190px;color:var(--muted);font-size:12.5px;text-transform:capitalize;}
.dk-res .dk-badge{flex:none;}
.dk-res-tal{flex:none;width:90px;display:inline-flex;align-items:center;gap:6px;font-weight:600;}
.dk-res-t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Kalender: Löschen-Button */
.btn-sm.dk-del{background:#fdecec;color:#c0392b;}
.btn-sm.dk-del:hover{background:#f9d9d9;}

/* Kalender: Rollen-Gruppen in der Auswahl */
.dk-rgroup{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;padding:3px 5px;border:1px dashed var(--line);border-radius:5px;margin:2px;}
.btn-sm.dk-rg{background:#111;color:#fff;}
.btn-sm.dk-rg:hover{background:#333;}
.btn-sm.dk-rg b{opacity:.65;font-weight:600;margin-left:2px;}

/* Kalender-Navigation kompakter (weniger Zeilenabstand oben) — alle Namen bleiben sichtbar, kein Scrollen */
.dk-cals{gap:2px;align-content:flex-start;}
.dk-cal{font-size:10.5px;padding:1px 6px;gap:4px;line-height:1.3;}
.dk-dot{width:6px;height:6px;}
.dk-rgroup{gap:2px;padding:1px 3px;margin:1px;}
.dk-rgroup .btn-sm{padding:1px 7px;font-size:10.5px;}
.dk-bar{margin-bottom:8px;align-items:flex-start;}
/* Übersicht: kompakte Tabellen (Top 5, laufende Jobs) */
.card table.hug{font-size:13px;}
.card table.hug td{padding:6px 8px;border-bottom:1px solid #f3f3f3;vertical-align:middle;}
.card table.hug tr:last-child td{border-bottom:none;}

/* Keine Talentfarben mehr: Chips neutral, Auswahl per Hervorhebung */
.dk-dot{background:#b4b4b4;}
.dk-cal.on{color:var(--ink);border-color:var(--muted);background:#eeeeee;}
.dk-cal.on .dk-dot{background:var(--ink);}

/* Talent-Ranking: Erklärtext unauffälliger */
.rank-hint{font-size:11px;font-weight:400;color:var(--faint);}
.rank-hint b{font-weight:600;}

/* Conversion-Trichter (Übersicht) */
.conv-funnel{display:flex;flex-direction:column;gap:7px;}
.conv-step{position:relative;background:#f1f2f4;border-radius:5px;overflow:hidden;min-height:30px;}
.conv-bar{position:absolute;top:0;left:0;bottom:0;background:color-mix(in srgb,var(--red) 16%,#fff);}
.conv-txt{position:relative;padding:7px 11px;font-size:13px;}
.conv-txt b{font-weight:700;}
.conv-txt>span{font-variant-numeric:tabular-nums;font-weight:600;}

/* Projektstatus: klickbare Status-Kacheln + Pitches */
.pp{cursor:pointer;user-select:none;}
.pp:hover{border-color:var(--pc,#bbb);}
.pp.on{background:var(--pc,var(--ink));color:#fff;border-color:var(--pc,var(--ink));}
.pp.on .n,.pp.on .pp-dot{color:#fff;background:#fff;}
.pp.on .n{background:none;color:#fff;}
.pp-all.on{background:var(--ink);border-color:var(--ink);}

/* To Dos / Offene Treffen */
.todo-add{display:flex;gap:8px;margin-bottom:12px;}
.todo-add input{flex:1;}
.todo-list{display:flex;flex-direction:column;}
.todo-item{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:8px 6px;border-bottom:1px solid #f3f3f3;cursor:pointer;border-radius:5px;}
.todo-item:hover{background:var(--tg-soft,#f6f6f6);}
.todo-item:last-child{border-bottom:none;}
.todo-item .tg-txt{flex:1;font-weight:500;font-size:13px;line-height:1.35;}
.todo-item .tg-check{flex:none;width:18px;height:18px;border-radius:5px;border:2px solid var(--tg-accent,#bbb);background:#fff;position:relative;transition:.12s;}
.todo-item:hover .tg-check{border-color:var(--tg-accent,#888);}
.todo-item.done .tg-check{background:var(--tg-accent,#888);border-color:var(--tg-accent,#888);}
.todo-item.done .tg-check::after{content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12.5px;font-weight:800;}
.todo-item.done .tg-txt{text-decoration:line-through;color:var(--muted);}
.todo-x{background:transparent;color:var(--muted);font-size:12.5px;padding:2px 6px;flex:none;line-height:1;opacity:.55;}
.todo-item:hover .todo-x{opacity:1;}
.todo-x:hover{background:#eee;}
.todo-sep{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin:12px 0 4px;}
/* farbige Listen-Karten */
.card.tg{border-top:4px solid var(--tg-accent);}
.card.tg h3{color:var(--tg-accent);display:flex;align-items:center;gap:8px;}
.card.tg .tg-count{margin-left:auto;font-weight:600;font-size:11px;text-transform:none;letter-spacing:0;color:#fff;background:var(--tg-accent);padding:2px 9px;border-radius:11px;}
.card.tg .tg-plus{background:var(--tg-accent);color:#fff;}
.card.tg .tg-plus:hover{filter:brightness(.92);}
.tg-0{--tg-accent:#e0457f;--tg-soft:#fdeef4;}
.tg-1{--tg-accent:#2f6fed;--tg-soft:#ecf2fe;}
.tg-2{--tg-accent:#8a4fd6;--tg-soft:#f4eefc;}
.tg-3{--tg-accent:#159a7a;--tg-soft:#e9f7f2;}
/* TO DOS: klar abgetrennte, neutrale (nicht bunte) Boxen — deutlich sichtbarer Rahmen/Titel */
.card.tg-plain{border:2px solid #111;}
.card.tg-plain h3{display:flex;align-items:center;gap:8px;color:#111;font-weight:800;}
.card.tg-plain .tg-count-plain{margin-left:auto;font-weight:700;font-size:11px;text-transform:none;letter-spacing:0;color:#fff;background:#111;padding:2px 9px;border-radius:11px;}
/* Drag & Drop Reihenfolge (To Dos) */
.todo-grip{flex:none;color:#ccc;font-size:13px;cursor:grab;line-height:1;}
.todo-item[draggable="true"]:hover .todo-grip{color:var(--muted);}
.todo-item.dragging{opacity:.4;}
.todo-item.drag-over{box-shadow:inset 0 2px 0 var(--ink);}

/* Präsenz-Warnung (gleichzeitige Bearbeitung) */
.presence-warn{background:#fff7e6;border:1px solid #f5dca0;border-radius:6px;padding:8px 11px;font-size:13px;margin:0 0 12px;color:#6f5300;}
.presence-warn b{font-weight:700;}

/* KONTAKTE */
.role-filts{margin-left:auto;display:inline-flex;gap:6px;}
.role-filt{background:#f4f4f4;color:var(--muted);}
.role-filt b{opacity:.65;font-weight:700;margin-left:2px;}
.role-filt.sel{background:var(--ink);color:#fff;}
.role-filt.sel b{opacity:.75;color:#fff;}
table.kontakte td a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);}
table.kontakte td a:hover{border-color:var(--ink);}

/* Projektstatus: zusammengehörige Kampagnen gruppieren + farblich markieren */
tr.af-grp-head td{background:color-mix(in srgb, var(--kc) 15%, #fff);border-top:2px solid var(--kc);padding:6px 12px;cursor:default;}
.af-grp-title{color:var(--kc);font-weight:800;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;}
.af-grp-n{color:var(--muted);font-size:11px;margin-left:10px;font-weight:600;}
tr.af-grp td{background:color-mix(in srgb, var(--kc) 6%, #fff);}
tr.af-grp td:first-child{box-shadow:inset 4px 0 0 var(--kc);}
tr.af-grp-last td{border-bottom:2px solid color-mix(in srgb, var(--kc) 45%, #fff);}
tr.af-grp:hover td{background:color-mix(in srgb, var(--kc) 13%, #fff);}

/* Wiedervorlage: Einträge derselben Produktion sichtbar bündeln */
table.wv-table tr.wv-g-1{background:#f8f8f8;}
table.wv-table tr.wv-g-first td{border-top:1px solid var(--line);}
table.wv-table tr.wv-g-first:first-child td{border-top:none;}
table.wv-table tr.wv-g-linked{box-shadow:inset 3px 0 0 var(--ink);}
.wv-link{font-size:11px;opacity:.7;}

/* MASTER: Status-/on-air-Felder + Rot-Markierung bei erreichtem Ausstrahlungsdatum */
.ma-sel,.ma-date{padding:4px 6px;font-size:12.5px;width:auto;}
tr.ma-onair td{background:#fdecec;}
tr.ma-onair td b{color:#c0392b;}
.ma-flag{display:inline-block;background:var(--red);color:#fff;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:3px;margin-left:6px;vertical-align:middle;}
/* Farbige Status-Dropdowns, damit der Stand heraussticht */
.ma-sel{font-weight:700;border:1px solid transparent;}
.ma-sel.st-fehlt{background:#fde2e1;color:#b02a25;border-color:#f3b6b3;}
.ma-sel.st-ang{background:#e2ecfb;color:#1e4d8b;border-color:#b8d0f0;}
.ma-sel.st-prod{background:#fdefc7;color:#8a6400;border-color:#f2dd93;}
.ma-sel.st-dc{background:#ece1f7;color:#6b31a8;border-color:#d5c1ec;}
.ma-sel.st-da{background:#d8f0e0;color:#1f7a45;border-color:#aeddbe;}

/* zentriertes Mini-Modal (Wiedervorlage Datum) */
.mini-ov{position:fixed;inset:0;background:rgba(20,20,22,.42);display:flex;align-items:center;justify-content:center;z-index:1000;}
.mini-modal{background:#fff;border-radius:8px;padding:22px 24px;min-width:280px;box-shadow:0 18px 50px rgba(0,0,0,.28);}
.mini-modal h4{margin:0 0 4px;font-size:15px;}
.mini-modal input[type=date]{width:100%;margin-bottom:16px;}
.mini-actions{display:flex;gap:8px;justify-content:flex-end;}

/* ===== Film-Mailer ===== */
.mailer{display:grid;grid-template-columns:minmax(380px,1fr) minmax(360px,560px);gap:22px;align-items:start;}
@media (max-width:1000px){.mailer{grid-template-columns:1fr;}}
.mailer-compose{min-width:0;}
.mailer-compose .mrow{display:flex;flex-direction:column;gap:4px;margin:0 0 12px;}
.mailer-compose .mrow>label{font-size:12.5px;font-weight:600;color:var(--muted);}
.mailer-compose input,.mailer-compose textarea,.mailer-compose select{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--line,#ddd);border-radius:8px;background:var(--card,#fff);color:inherit;}
.mailer-compose textarea{resize:vertical;}
.mrow2{display:flex;gap:8px;align-items:center;margin:0 0 8px;flex-wrap:wrap;}
.mrow2>input,.mrow2>select{flex:1;min-width:120px;}
.mailer-compose .section-h{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:16px 0 8px;border-top:1px solid var(--line,#eee);padding-top:12px;}
.mfilm{display:flex;gap:12px;padding:10px;border:1px solid var(--line,#e6e6e6);border-radius:10px;margin:0 0 10px;background:var(--chip,#faf9f8);}
.mfilm-thumb{flex:0 0 132px;height:74px;border-radius:6px;overflow:hidden;background:#1c1613;display:flex;align-items:center;justify-content:center;}
.mfilm-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.mfilm-thumb .muted{font-size:11px;color:#b9afa8;}
.mfilm-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;}
.mseg{display:flex;flex-wrap:wrap;gap:6px;}
.mseg .chip{cursor:pointer;font-size:12.5px;}
.mseg .chip.on{background:var(--red);color:#fff;border-color:var(--red);}
.mcount{margin:10px 0 4px;font-size:14px;}
.mailer-preview{position:sticky;top:12px;border:1px solid var(--line,#e6e6e6);border-radius:12px;overflow:hidden;background:#f2efec;}
.mp-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card,#fff);border-bottom:1px solid var(--line,#eee);}
.mp-frame{width:100%;height:74vh;border:0;background:#f2efec;display:block;}

/* Mailer — Empfängerliste (Einzelauswahl) */
.mreciplist{max-height:320px;overflow:auto;border:1px solid var(--line,#e6e6e6);border-radius:8px;margin-top:8px;background:var(--card,#fff);}
.mrecip{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid #f2f2f2;font-size:13px;cursor:pointer;}
.mrecip:last-child{border-bottom:none;}
.mrecip:hover{background:#faf9f8;}
.mrecip input{width:auto;flex:none;margin:0;}
.mr-name{font-weight:600;min-width:150px;white-space:nowrap;}
.mr-firma{color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mr-seg{color:#a99f99;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;flex:none;}

/* Akquise — Mehrfachauswahl-Leiste */
.akq-selbar:not(:empty){display:flex;align-items:center;gap:8px;margin:8px 0;padding:8px 12px;background:#fff4f4;border:1px solid #ffd7d6;border-radius:8px;font-size:13px;}

/* Kalender: fortlaufender "3 Monate"-Modus — Raster scrollbar statt fixiert */
.dk-grid.dk-scrollmode{max-height:74vh;overflow-y:auto;}

/* ============================================================================
   MOBILANSICHT — Telefone und schmale Tablets
   Das Grundlayout ist für den Schreibtisch gebaut: 230 px Seitenleiste NEBEN
   dem Inhalt. Auf einem 375-px-Display bliebe dafür kaum Platz. Unterhalb von
   820 px wird daraus deshalb eine gestapelte Ansicht mit waagerechter
   Navigation, und alle Tabellen werden seitlich scrollbar statt gequetscht.
   ========================================================================== */
@media (max-width:820px){
  /* Seitenleiste wird zur Kopfzeile */
  .app{flex-direction:column;}
  .sidebar{width:auto;height:auto;position:sticky;top:0;z-index:20;
           flex-direction:column;padding:8px 10px 6px;gap:6px;}
  .brand{padding:2px 4px 6px;}
  .brand-logo-img{width:118px;margin:0;}
  /* Menü waagerecht, seitlich wischbar */
  #nav{display:flex;flex-direction:row;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;
       padding-bottom:2px;scrollbar-width:none;}
  #nav::-webkit-scrollbar{display:none;}
  .navitem{flex:none;white-space:nowrap;padding:7px 12px;font-size:13.5px;}
  .navitem .ic{display:none;}          /* Symbole raus — spart Breite */
  .navgrp{display:none;}               /* Gruppenüberschriften raus */
  .side-tools{display:flex;flex-direction:row;gap:6px;overflow-x:auto;border-top:none;
              margin-top:2px;padding:2px 0 0;}
  .side-tools-h{display:none;}
  .side-tools a{flex:none;white-space:nowrap;}
  /* Abmelden oben rechts statt unten */
  .side-foot{position:absolute;top:8px;right:10px;margin:0;padding:0;border-top:none;width:auto;}
  .side-foot .btn-ghost{width:auto;padding:5px 10px;font-size:12px;}

  /* Inhaltsbereich enger fassen */
  .topbar{padding:10px 12px;}
  .topbar h1{font-size:17px;}
  .view{padding:12px 10px 70px;}

  /* Kennzahlen zweispaltig statt gequetscht */
  .kpis,.kpis.tight{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px;}
  .kpi{padding:11px 12px;}
  .k-val{font-size:19px;}
  .grid.cols2,.grid.cols3{grid-template-columns:1fr;}
  .tv-top{grid-template-columns:1fr;}
  .chart-wrap{height:220px;}

  /* Tabellen: lieber seitlich scrollen als unlesbar stauchen */
  .tablewrap{overflow-x:auto;}
  .tablewrap table{min-width:560px;}
  .tablescroll{max-height:none;}
  table{font-size:12.5px;}
  table td,table th{padding-left:8px;padding-right:8px;}

  /* Bedienelemente fingerfreundlich */
  .toolbar{gap:7px;}
  .toolbar input,.toolbar select,.toolbar .grow{width:100%;min-width:0;}
  input,select,textarea{font-size:16px;}   /* verhindert das Auto-Zoomen in iOS */
  .btn-sm{padding:7px 11px;}
  .pipeline-strip{gap:5px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px;}
  .pp{flex:none;white-space:nowrap;}

  /* Dialoge bildschirmfüllend */
  .modal{padding:0;align-items:flex-end;}
  .modal-card{width:100%;max-width:100%;border-radius:14px 14px 0 0;padding:16px 14px 24px;
              max-height:92vh;overflow-y:auto;}
  .frow{grid-template-columns:1fr;}
  .modal-actions{flex-wrap:wrap;gap:8px;}

  /* Anmeldung */
  .login-card{width:100%;max-width:340px;margin:0 14px;padding:26px 22px;}
}

/* Sehr schmale Telefone */
@media (max-width:400px){
  .kpis,.kpis.tight{grid-template-columns:1fr;}
  .brand-logo-img{width:100px;}
}
/* „Passwort vergessen" unter der Anmeldung */
.pw-forgot{display:block;width:100%;margin-top:10px;background:transparent;color:#9a9a9a;
  font-size:12.5px;font-weight:600;padding:6px;text-decoration:underline;}
.pw-forgot:hover{color:#fff;}
