/* inrema-assistant - Komponenten (aus bestaetigtem Mockup). Auf tokens.css + main.css.
   Enthaelt auch Dark-Absicherung. Kanonisch dokumentiert in MANIFEST.md. */
/* ==== Tokens: übernommen aus inrema-dashboard/tokens.css (einzige Farbquelle) ==== */
:root{
  --bg:oklch(0.975 0.003 250); --card:oklch(0.996 0.002 250); --tint:oklch(0.972 0.004 250);
  --sidebar:oklch(0.30 0.028 252); --sidebar-2:oklch(0.37 0.03 252);
  --sidebar-text:oklch(0.93 0.008 252); --sidebar-muted:oklch(0.70 0.02 252);
  --border:oklch(0.90 0.004 250); --track:oklch(0.925 0.004 250);
  --text:oklch(0.34 0.014 252); --muted:oklch(0.52 0.012 252); --faint:oklch(0.64 0.01 252);
  --white:oklch(1 0 0);
  --accent:oklch(0.57 0.13 252); --accent-deep:oklch(0.49 0.13 254);
  --green:oklch(0.60 0.13 152); --green-text:oklch(0.45 0.12 152);
  --red:oklch(0.56 0.19 27); --red-text:oklch(0.47 0.17 27);
  --amber:oklch(0.70 0.12 70); --amber-text:oklch(0.50 0.11 60);
  --status-ok-bg:oklch(0.60 0.13 152/.12); --status-ok-border:oklch(0.60 0.13 152/.30);
  --status-warn-bg:oklch(0.70 0.12 70/.14); --status-warn-border:oklch(0.70 0.12 70/.34);
  --status-down-bg:oklch(0.56 0.19 27/.10); --status-down-border:oklch(0.56 0.19 27/.30);
  --accent-bg:oklch(0.57 0.13 252/.10); --accent-border:oklch(0.57 0.13 252/.28);
  --overlay:oklch(0.25 0.03 255/.35);
  --shadow:0 1px 2px oklch(0.30 0.03 255/.05),0 1px 3px oklch(0.30 0.03 255/.05);
  --radius-card:14px; --radius-pill:999px; --radius-sm:9px; --sidebar-w:238px;
  --font:'Inter',system-ui,-apple-system,sans-serif;
}
/* Dunkler Host: Neutrale abdunkeln, damit das Mockup auf dunklem Grund lesbar bleibt.
   Das reale Produkt ist hell (wie das Dashboard) — dies ist nur die Absicherung. */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:oklch(0.22 0.012 252); --card:oklch(0.27 0.014 252); --tint:oklch(0.25 0.014 252);
  --border:oklch(0.34 0.012 252); --border-soft:oklch(0.31 0.012 252); --track:oklch(0.32 0.012 252);
  --text:oklch(0.93 0.01 252); --muted:oklch(0.72 0.014 252); --faint:oklch(0.60 0.012 252);
}}
:root[data-theme="dark"]{
  --bg:oklch(0.22 0.012 252); --card:oklch(0.27 0.014 252); --tint:oklch(0.25 0.014 252);
  --border:oklch(0.34 0.012 252); --border-soft:oklch(0.31 0.012 252); --track:oklch(0.32 0.012 252);
  --text:oklch(0.93 0.01 252); --muted:oklch(0.72 0.014 252); --faint:oklch(0.60 0.012 252);
}

*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;}
h1,h2,h3,p{margin:0;}

/* ==== Layout ==== */
.app{display:flex;align-items:flex-start;}
.main{flex:1;min-width:0;max-width:100%;padding:26px 34px 60px;}
.main__inner{max-width:none;margin:0;display:flex;flex-direction:column;gap:18px;}

/* ==== Sidebar (Navy) ==== */
.sidebar{width:var(--sidebar-w);flex:none;background:var(--sidebar);color:var(--sidebar-text);
  display:flex;flex-direction:column;padding:22px 16px 18px;position:sticky;top:0;height:100vh;overflow-y:auto;}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 20px;}
.brand__mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(145deg,var(--accent),var(--accent-deep));
  display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:700;font-size:17px;flex:none;}
.brand__name{font-size:14px;font-weight:700;letter-spacing:.06em;color:var(--white);line-height:1.1;}
.brand__sub{font-size:9.5px;color:var(--sidebar-muted);letter-spacing:.14em;margin-top:2px;}
.nav__label{font-size:10px;letter-spacing:.13em;color:var(--sidebar-muted);font-weight:600;padding:18px 10px 8px;text-transform:uppercase;}
.nav__label:first-of-type{padding-top:6px;}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 11px;border-radius:var(--radius-sm);
  border:none;background:transparent;color:var(--sidebar-text);font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;
  transition:background .15s,color .15s;text-decoration:none;}
.nav-item:hover{background:var(--sidebar-2);}
.nav-item.is-active{background:var(--sidebar-2);color:var(--white);font-weight:600;box-shadow:inset 3px 0 0 var(--accent);}
.nav-item svg{width:17px;height:17px;flex:none;opacity:.85;}
.nav-item .count{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);
  background:var(--accent);color:var(--white);font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;}
.nav-item .count--amber{background:var(--amber);}
.sidebar__foot{margin-top:auto;padding:14px 10px 2px;border-top:1px solid var(--sidebar-2);font-size:11px;color:var(--sidebar-muted);
  display:flex;align-items:center;justify-content:space-between;gap:10px;}
.sidebar__foot strong{display:block;color:var(--sidebar-text);font-weight:600;margin-top:3px;}
.foot-bell{flex:none;width:36px;height:36px;border:none;border-radius:10px;background:var(--sidebar-2);color:var(--sidebar-text);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;}
.foot-bell svg{width:18px;height:18px;}
.foot-bell .dotmark{position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:var(--amber);border:2px solid var(--sidebar);}

/* ==== Mobile top bar ==== */
.topnav{display:none;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--sidebar);color:var(--white);position:sticky;top:0;z-index:30;}
.topnav .brand{padding:0;}
.topnav .brand__name{color:var(--white);}
.nav-toggle{background:var(--sidebar-2);border:none;color:var(--white);width:40px;height:40px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.nav-toggle svg{width:20px;height:20px;}

/* ==== Topbar ==== */
.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.topbar__greet{font-size:23px;font-weight:700;letter-spacing:-.01em;}
.topbar__date{font-size:13px;color:var(--muted);margin-top:3px;}
.topbar__right{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.pill{display:inline-flex;align-items:center;gap:8px;border-radius:var(--radius-pill);padding:7px 13px;font-size:12.5px;font-weight:600;border:1px solid;}
.pill__dot{width:8px;height:8px;border-radius:50%;flex:none;}
.pill--ok{background:var(--status-ok-bg);border-color:var(--status-ok-border);color:var(--green-text);}
.pill--ok .pill__dot{background:var(--green);}
.pill--accent{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent-deep);}
.pill--accent .pill__dot{background:var(--accent);}

/* ==== View label ==== */
.viewsep{display:flex;align-items:center;gap:12px;margin-top:8px;}
.viewsep__tag{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);}
.viewsep__line{flex:1;height:1px;background:var(--border);}

/* ==== Briefing banner ==== */
.briefing{display:flex;align-items:flex-start;gap:13px;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:12px;padding:14px 16px;}
.briefing__icon{width:30px;height:30px;border-radius:8px;background:linear-gradient(145deg,var(--accent),var(--accent-deep));color:var(--white);
  display:flex;align-items:center;justify-content:center;flex:none;}
.briefing__icon svg{width:17px;height:17px;}
.briefing__t{font-size:13.5px;line-height:1.5;}
.briefing__t b{font-weight:700;}
.briefing__t .muted{color:var(--muted);}

/* ==== KPI ==== */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:13px;padding:15px 17px;box-shadow:var(--shadow);cursor:pointer;transition:border-color .15s,transform .15s;}
.kpi:hover{border-color:var(--accent);transform:translateY(-2px);}
.kpi__head{display:flex;align-items:center;justify-content:space-between;}
.kpi__label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:600;}
.kpi__dot{width:8px;height:8px;border-radius:50%;flex:none;}
.kpi__value{font-size:28px;font-weight:700;margin-top:8px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;}
.kpi__value small{font-size:13px;color:var(--faint);font-weight:600;margin-left:5px;}

/* ==== Bento / cards ==== */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.bento>*{min-width:0;}
.card{background:var(--card);border:1px solid var(--border);border-radius:15px;padding:20px;box-shadow:var(--shadow);}
.card--w2{grid-column:span 2;}
.card--w3{grid-column:span 3;}
.card__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:10px;}
.card__title{font-size:14.5px;font-weight:700;}
.card__title small{font-size:11.5px;color:var(--faint);font-weight:400;margin-left:8px;}
.card__more{font-size:12px;color:var(--accent-deep);font-weight:600;cursor:pointer;}

/* ==== Mail rows (Reply-Zero) ==== */
.mrow{display:flex;gap:12px;padding:13px 0;border-top:1px solid var(--border);}
.mrow:first-of-type{border-top:none;}
.mrow__avatar{width:34px;height:34px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:var(--white);}
.mrow__body{min-width:0;flex:1;}
.mrow__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mrow__from{font-size:13.5px;font-weight:600;}
.mrow__subj{font-size:13px;color:var(--text);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mrow__ai{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.45;display:flex;gap:7px;}
.mrow__ai svg{width:14px;height:14px;flex:none;margin-top:1px;color:var(--accent);}
.mrow__actions{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap;}

/* chips */
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:var(--radius-pill);border:1px solid;white-space:nowrap;}
.chip--you{background:var(--status-warn-bg);border-color:var(--status-warn-border);color:var(--amber-text);}
.chip--wait{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent-deep);}
.chip--fyi{background:var(--tint);border-color:var(--border);color:var(--muted);}
.chip--done{background:var(--status-ok-bg);border-color:var(--status-ok-border);color:var(--green-text);}
.chip__dot{width:7px;height:7px;border-radius:50%;}
.chip--you .chip__dot{background:var(--amber);}
.chip--wait .chip__dot{background:var(--accent);}
.tag{font-size:10.5px;font-weight:600;color:var(--muted);background:var(--tint);border:1px solid var(--border);border-radius:6px;padding:2px 7px;}

.btn{font:inherit;font-size:12px;font-weight:600;padding:6px 12px;border-radius:8px;cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--text);}
.btn:hover{border-color:var(--accent);}
.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--white);}
.btn--primary:hover{background:var(--accent-deep);}
.btn--ghost{background:transparent;}

/* ==== Task list ==== */
.task{display:flex;gap:11px;padding:11px 0;border-top:1px solid var(--border);align-items:flex-start;}
.task:first-of-type{border-top:none;}
.tbox{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border);flex:none;margin-top:1px;cursor:pointer;}
.tbox.is-done{background:var(--green);border-color:var(--green);position:relative;}
.tbox.is-done::after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg);}
.task__t{font-size:13px;line-height:1.4;}
.task.is-done .task__t{color:var(--faint);text-decoration:line-through;}
.task__meta{font-size:11px;color:var(--faint);margin-top:3px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.task__when{color:var(--amber-text);font-weight:600;}
.task__auto{color:var(--accent-deep);font-weight:600;}

/* ==== Chat teaser ==== */
.chat__q{background:var(--tint);border:1px solid var(--border);border-radius:11px;padding:11px 13px;font-size:13px;color:var(--muted);margin-bottom:10px;}
.chat__a{font-size:13px;line-height:1.55;}
.chat__a b{font-weight:700;}
.chat__input{display:flex;gap:8px;margin-top:14px;}
.chat__input input{flex:1;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:11px 13px;font-size:16px;font-family:inherit;color:var(--text);outline:none;}
.chat__input input:focus{border-color:var(--accent);}
.chat__mic{width:44px;flex:none;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.chat__mic svg{width:18px;height:18px;}

/* ==== CRM ==== */
.crm{display:grid;grid-template-columns:300px 1fr;gap:16px;}
.crmlist{background:var(--card);border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow);overflow:hidden;}
.crmlist__search{padding:13px;border-bottom:1px solid var(--border);position:relative;}
.crmlist__search input{width:100%;background:var(--tint);border:1px solid var(--border);border-radius:9px;padding:9px 12px 9px 34px;font-size:15px;font-family:inherit;color:var(--text);outline:none;}
.crmlist__search svg{position:absolute;left:24px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--faint);}
.cust{display:flex;align-items:center;gap:11px;padding:12px 14px;border-top:1px solid var(--border);cursor:pointer;text-decoration:none;color:inherit;}
.cust:hover{background:var(--tint);}
.cust.is-active{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent);}
.cust__av{width:32px;height:32px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:700;font-size:12px;}
.cust__n{font-size:13px;font-weight:600;}
.cust__m{font-size:11px;color:var(--faint);margin-top:1px;}
.cust__flag{margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--amber);flex:none;}

.detail{background:var(--card);border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow);padding:22px;}
.detail__head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.detail__av{width:46px;height:46px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:700;font-size:17px;}
.detail__name{font-size:18px;font-weight:700;}
.detail__meta{font-size:12.5px;color:var(--muted);margin-top:2px;}
.detail__spacer{flex:1;}
.metae{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:18px 0;padding:15px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.metae__k{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);font-weight:600;}
.metae__v{font-size:14px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums;}
.metae__v.link{color:var(--accent-deep);cursor:pointer;}
.sub{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:4px 0 12px;}

/* notes timeline */
.note{display:flex;gap:12px;padding-bottom:16px;position:relative;}
.note::before{content:"";position:absolute;left:8px;top:20px;bottom:-2px;width:2px;background:var(--border);}
.note:last-child::before{display:none;}
.note__dot{width:18px;height:18px;border-radius:50%;flex:none;background:var(--card);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;z-index:1;}
.note__dot--call{border-color:var(--green);}
.note__dot--mail{border-color:var(--accent);}
.note__dot i{width:6px;height:6px;border-radius:50%;background:var(--accent);}
.note__dot--call i{background:var(--green);}
.note__body{flex:1;min-width:0;}
.note__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.note__kind{font-size:11px;font-weight:700;color:var(--text);}
.note__date{font-size:11px;color:var(--faint);}
.note__txt{font-size:13px;color:var(--muted);line-height:1.5;margin-top:4px;}
.note__txt b{color:var(--text);font-weight:600;}

.assigned{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border);}
.assigned:first-of-type{border-top:none;}
.assigned__i{width:26px;height:26px;border-radius:7px;background:var(--tint);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);flex:none;}
.assigned__i svg{width:14px;height:14px;}
.assigned__t{font-size:12.5px;min-width:0;}
.assigned__t .s{color:var(--faint);font-size:11px;}
.assigned__box{margin-left:auto;}

.notewrap{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin-top:20px;}
.addnote{display:flex;gap:8px;margin-top:12px;}
.addnote input{flex:1;background:var(--tint);border:1px solid var(--border);border-radius:9px;padding:9px 12px;font-size:15px;font-family:inherit;color:var(--text);outline:none;}
.addnote input:focus{border-color:var(--accent);}

.note-foot{margin-top:26px;font-size:11.5px;color:var(--faint);text-align:center;line-height:1.6;}

/* avatar hues */
.h-blue{background:oklch(0.55 0.12 252);} .h-teal{background:oklch(0.55 0.10 195);}
.h-plum{background:oklch(0.52 0.12 320);} .h-green{background:oklch(0.55 0.11 152);}
.h-amber{background:oklch(0.60 0.11 70);} .h-slate{background:oklch(0.55 0.02 255);}

/* ==== Folder chips (Postfach-Ordner) ==== */
.folderchips{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 14px;}
.fchip{font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;}
.fchip.is-on{background:var(--sidebar);border-color:var(--sidebar);color:var(--white);}
.fchip .n{opacity:.7;margin-left:5px;font-variant-numeric:tabular-nums;}

/* ==== Termine / Kalender ==== */
.cal-row{display:flex;gap:12px;padding:13px 0;border-top:1px solid var(--border);align-items:flex-start;}
.cal-row:first-of-type{border-top:none;}
.cal-when{width:74px;flex:none;text-align:center;}
.cal-when .d{font-size:19px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;}
.cal-when .mo{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-top:3px;}
.cal-when .t{font-size:11px;color:var(--muted);margin-top:5px;font-variant-numeric:tabular-nums;}
.cal-strip{width:3px;border-radius:3px;flex:none;align-self:stretch;}
.cal-body{flex:1;min-width:0;}
.cal-title{font-size:13.5px;font-weight:600;}
.cal-meta{font-size:11.5px;color:var(--muted);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.cal-zoom{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--accent-deep);}
.cal-zoom svg{width:13px;height:13px;}
.chip--kunde{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent-deep);}
.chip--priv{background:oklch(0.52 0.12 320/.10);border-color:oklch(0.52 0.12 320/.28);color:oklch(0.44 0.12 320);}
.chip--info{background:var(--tint);border-color:var(--border);color:var(--muted);}
.chip--betrifft{background:var(--status-warn-bg);border-color:var(--status-warn-border);color:var(--amber-text);}

/* ==== Compose / Antworten-Overlay ==== */
.composewrap{background:var(--overlay);border-radius:16px;padding:26px;display:flex;justify-content:center;}
.compose{width:100%;max-width:860px;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 60px oklch(0.30 0.03 255/.28);overflow:hidden;}
.compose__bar{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--border);background:var(--tint);}
.compose__bar .t{font-size:13.5px;font-weight:700;}
.compose__x{width:28px;height:28px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.compose__grid{display:grid;grid-template-columns:1fr 250px;}
.compose__mail{padding:16px 18px;min-width:0;}
.cfield{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.cfield .k{color:var(--faint);width:52px;flex:none;font-weight:600;}
.cfield .v{color:var(--text);}
.cfield .from-pill{font-size:11px;font-weight:600;color:var(--muted);background:var(--tint);border:1px solid var(--border);border-radius:6px;padding:2px 8px;}
.ctools{display:flex;gap:4px;flex-wrap:wrap;padding:10px 0;}
.ctool{width:30px;height:30px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;}
.ctool svg{width:15px;height:15px;}
.ceditor{border:1px solid var(--border);border-radius:10px;padding:14px;font-size:13.5px;line-height:1.6;color:var(--text);min-height:180px;background:var(--card);}
.ceditor p{margin:0 0 10px;}
.ceditor .sig{color:var(--muted);border-top:1px solid var(--border);margin-top:14px;padding-top:10px;font-size:12.5px;}
.compose__send{display:flex;gap:9px;align-items:center;margin-top:14px;}
.kipanel{background:var(--tint);border-left:1px solid var(--border);padding:16px 15px;display:flex;flex-direction:column;gap:11px;}
.kipanel__h{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);display:flex;align-items:center;gap:6px;}
.kipanel__h svg{width:14px;height:14px;color:var(--accent);}
.kibtn{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:12.5px;font-weight:600;padding:10px 12px;border-radius:9px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;}
.kibtn:hover{border-color:var(--accent);}
.kibtn svg{width:15px;height:15px;color:var(--accent);flex:none;}
.kipanel__note{font-size:11px;color:var(--faint);line-height:1.5;}
.kidict{background:var(--card);border:1px solid var(--border);border-radius:9px;padding:10px 12px;font-size:12px;color:var(--muted);min-height:64px;line-height:1.5;}

@media (max-width:860px){
  .sidebar{display:none;} .topnav{display:flex;} .main{padding:18px 16px 50px;}
  .bento{grid-template-columns:1fr;} .card--w2,.card--w3{grid-column:span 1;}
  .crm{grid-template-columns:1fr;} .notewrap{grid-template-columns:1fr;}
  .crmlist{max-height:none;}
  .compose__grid{grid-template-columns:1fr;} .kipanel{border-left:none;border-top:1px solid var(--border);}
  .composewrap{padding:12px;}
}

/* ==== Phase-G Feinschliff: Menue-Ausrichtung, Mobile-Drawer, PWA-Safe-Area ==== */

/* Sidebar: Icon + Text zusammen links (nicht auseinandergezogen). Zaehler bleibt rechts. */
.nav-item{ justify-content:flex-start; }
.nav-item > span{ flex:1 1 auto; min-width:0; }
.nav-item .count{ flex:0 0 auto; margin-left:auto; }

/* PWA: Dynamic Island / Notch + Statusleiste freihalten (viewport-fit=cover ist gesetzt). */
.topnav{ padding-top:calc(12px + env(safe-area-inset-top)); }
.sidebar{ padding-top:calc(22px + env(safe-area-inset-top)); }
.main{ padding-top:max(26px, env(safe-area-inset-top)); }

/* Marken-Logo statt Text-Buchstabe (wie im Dashboard) */
.brand__logo{ width:34px; height:34px; object-fit:contain; flex:none; border-radius:8px; }
.topnav .brand__logo{ width:26px; height:26px; }

/* Mobile-Drawer: von RECHTS einschieben (Hamburger ist oben rechts, Bedienung rechte Hand). */
@keyframes drawerIn{ from{ transform:translateX(100%); } to{ transform:translateX(0); } }
@media (max-width:860px){
  .main{ padding-top:14px; }
  .app.nav-open .sidebar{
    display:flex; position:fixed; right:0; left:auto; top:0; z-index:40;
    width:min(84vw,290px); height:100dvh; overflow-y:auto;
    padding-top:calc(22px + env(safe-area-inset-top));
    animation:drawerIn .22s cubic-bezier(.32,.72,0,1);
    box-shadow:var(--shadow-drawer);
  }
  .app.nav-open .scrim{ display:block; }
}

/* Toggle-Schalter (Benachrichtigungs-Auswahl) */
.setrow{ display:flex; align-items:center; gap:14px; padding:14px 0; border-top:1px solid var(--border); }
.setrow:first-of-type{ border-top:none; }
.setrow__t{ flex:1; min-width:0; }
.setrow__t b{ font-size:13.5px; font-weight:600; }
.setrow__t span{ display:block; font-size:11.5px; color:var(--faint); margin-top:2px; }
.toggle{ position:relative; width:44px; height:26px; flex:none; cursor:pointer; }
.toggle input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.toggle__track{ position:absolute; inset:0; background:var(--track); border:1px solid var(--border); border-radius:999px; transition:background .15s,border-color .15s; }
.toggle__knob{ position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:var(--card); box-shadow:var(--shadow); transition:transform .16s ease; }
.toggle input:checked ~ .toggle__track{ background:var(--accent); border-color:var(--accent); }
.toggle input:checked ~ .toggle__knob{ transform:translateX(18px); }
.toggle input:focus-visible ~ .toggle__track{ outline:2px solid var(--accent); outline-offset:2px; }

/* ==== Posteingang: Datum, Verschieben-Auswahl, Toast ==== */
.mrow__when{ margin-left:auto; font-size:11px; color:var(--faint); white-space:nowrap; font-variant-numeric:tabular-nums; }
.movesel{ font:inherit; font-size:12px; font-weight:600; color:var(--text); background:var(--card); border:1px solid var(--border); border-radius:8px; padding:6px 8px; cursor:pointer; max-width:150px; }
.movesel:hover{ border-color:var(--accent); }
.toast{ position:fixed; left:50%; bottom:24px; transform:translateX(-50%); z-index:60; background:var(--sidebar); color:var(--white); font-size:13px; font-weight:600; padding:11px 18px; border-radius:10px; box-shadow:var(--shadow-drawer); max-width:90vw; }
.toast--bad{ background:var(--red); }

/* ==== Mail lesen (Overlay) ==== */
.mrow__subj, .mrow__from{ cursor:pointer; }
.mrow__subj:hover{ color:var(--accent-deep); }
.readwrap{ position:fixed; inset:0; z-index:70; background:var(--overlay); display:flex; align-items:center; justify-content:center; padding:24px; }
.readwrap[hidden]{ display:none; }
.readbox{ width:100%; max-width:720px; max-height:86vh; background:var(--card); border:1px solid var(--border); border-radius:14px; box-shadow:0 24px 60px oklch(0.30 0.03 255/.28); display:flex; flex-direction:column; overflow:hidden; }
.readbox__bar{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid var(--border); }
.readbox__subj{ font-size:15px; font-weight:700; line-height:1.35; overflow-wrap:anywhere; }
.readbox__meta{ font-size:12px; color:var(--faint); margin-top:4px; overflow-wrap:anywhere; }
.readbox__body{ margin:0; padding:18px; overflow:auto; flex:1; font-family:var(--font); font-size:13.5px; line-height:1.6; color:var(--text); white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:860px){ .readwrap{ padding:10px; } .readbox{ max-height:92vh; } }

/* ==== Posteingang: Filter-Fix + ganze Zeile klickbar + HTML-Mail-Frame ==== */
.mrow[hidden]{ display:none !important; }   /* .mrow{display:flex} ueberschrieb sonst [hidden] -> Filter wirkte nicht */
.mrow{ cursor:pointer; }
.mrow__actions{ cursor:default; }
.readbox__frame{ width:100%; flex:1; min-height:300px; border:0; background:#ffffff; border-radius:0 0 14px 14px; }
.readbox__actions{ display:flex; gap:8px; padding:12px 18px; border-top:1px solid var(--border); flex-wrap:wrap; align-items:center; background:var(--card); }
.readbox__imgnote{ font-size:11.5px; color:var(--faint); margin-left:auto; }

/* ==== Posteingang als 3-Spalten-Mailprogramm ==== */
.mailapp{ display:flex; height:calc(100dvh - 96px); border:1px solid var(--border); border-radius:14px; overflow:hidden; background:var(--card); box-shadow:var(--shadow); }
.mailrail{ width:212px; flex:none; border-right:1px solid var(--border); overflow-y:auto; padding:10px 8px; background:var(--tint); }
.mailrail__group{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); font-weight:700; padding:14px 10px 5px; }
.mailfolder{ display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:8px; font-size:13px; color:var(--text); text-decoration:none; cursor:pointer; }
.mailfolder svg{ width:15px; height:15px; flex:none; opacity:.8; }
.mailfolder:hover{ background:var(--card); }
.mailfolder.is-active{ background:var(--accent-bg); color:var(--accent-deep); font-weight:600; box-shadow:inset 3px 0 0 var(--accent); }

.maillist{ width:360px; flex:none; border-right:1px solid var(--border); overflow-y:auto; }
.maillist__note{ padding:24px 18px; color:var(--muted); font-size:13px; }
.mi{ display:flex; gap:11px; padding:12px 14px; border-bottom:1px solid var(--border); cursor:pointer; }
.mi:hover{ background:var(--tint); }
.mi.is-sel{ background:var(--accent-bg); }
.mi__av{ width:34px; height:34px; border-radius:9px; flex:none; display:flex; align-items:center; justify-content:center; color:var(--white); font-weight:700; font-size:12.5px; }
.mi__body{ min-width:0; flex:1; }
.mi__top{ display:flex; align-items:baseline; gap:8px; }
.mi__from{ font-size:13px; font-weight:500; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
.mi.is-unread .mi__from{ font-weight:700; }
.mi__when{ font-size:11px; color:var(--faint); flex:none; font-variant-numeric:tabular-nums; }
.mi__subj{ font-size:13px; color:var(--muted); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mi.is-unread .mi__subj{ color:var(--text); }
.mi__tag{ font-size:10.5px; color:var(--faint); margin-top:4px; }

.mailread{ flex:1; min-width:0; display:flex; flex-direction:column; }
.mailread__empty{ margin:auto; color:var(--faint); font-size:14px; display:flex; flex-direction:column; align-items:center; gap:14px; }
.mailread__empty[hidden]{ display:none; }  /* sonst liegt der Leerzustand ueber der geoeffneten Mail */
.mailread__empty-t{ margin:0; }
.mailread__full{ display:flex; flex-direction:column; height:100%; min-height:0; }
.mailread__full[hidden]{ display:none; }  /* sonst zeigt der leere Posteingang die Aktionsleiste */
.mailread__head{ display:flex; align-items:flex-start; gap:12px; padding:16px 18px 10px; border-bottom:1px solid var(--border); }
.mailread__back{ display:none; }
.mailread__subj{ font-size:16px; font-weight:700; line-height:1.3; overflow-wrap:anywhere; }
.mailread__meta{ font-size:12px; color:var(--faint); margin-top:4px; overflow-wrap:anywhere; }
.mailread__actions{ display:flex; gap:8px; padding:11px 18px; border-bottom:1px solid var(--border); flex-wrap:wrap; align-items:center; }
.mailread__kirec{ display:flex; align-items:center; gap:12px; padding:11px 18px; background:var(--accent-bg); border-bottom:1px solid var(--accent-border); font-size:13px; color:var(--text); }
.mailread__kirec[hidden]{ display:none; }
.mailread__kirec-btns{ margin-left:auto; display:flex; gap:8px; flex:none; }
.mailread__contact{ display:flex; align-items:center; gap:10px; padding:9px 18px; background:var(--card); border-bottom:1px solid var(--border); font-size:13px; color:var(--muted); }
.mailread__contact[hidden]{ display:none; }
.rd-contact__label{ flex:none; }
.rd-contact__name{ font-weight:600; color:var(--accent); text-decoration:none; }
.rd-contact__name:hover{ text-decoration:underline; }
.mailread__contact .btn--sm{ margin-left:auto; }
.mailread__contact .btn--sm + .btn--sm{ margin-left:8px; }
.mailread__frame{ flex:1; width:100%; border:0; background:#ffffff; }
.mailread__body{ flex:1; margin:0; padding:18px; overflow:auto; font-family:var(--font); font-size:13.5px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--text); }

@media (max-width:900px){
  .mailapp{ height:calc(100dvh - 74px); position:relative; }
  .mailrail{ width:146px; }
  .maillist{ width:auto; flex:1; }
  .mailread{ position:absolute; inset:0; background:var(--card); z-index:5; transform:translateX(100%); transition:transform .2s ease; }
  .mailread.is-open{ transform:translateX(0); }
  .mailread__back{ display:inline-block; background:none; border:none; color:var(--accent-deep); font:inherit; font-weight:600; cursor:pointer; padding:2px 6px 2px 0; }
}

/* ==== Posteingang v2: volle Fläche, Ordnerbaum, einklappbar, mobil ==== */
.main:has(.mailapp){ max-width:none; padding:0; }
.main__inner:has(.mailapp){ max-width:none; margin:0; }
.mailapp{ height:100dvh; }

.mailrail__top{ padding:2px 6px 10px; }
.mailrail__new{ width:100%; }
.mailfolder--all{ margin-bottom:2px; }
.mf-row{ display:flex; align-items:center; gap:2px; }
.mf-caret{ width:20px; height:28px; flex:none; background:none; border:none; color:var(--faint); cursor:pointer; font-size:11px; display:flex; align-items:center; justify-content:center; transition:transform .15s; }
.mf-caret.is-open{ transform:rotate(90deg); }
.mf-caret--none{ cursor:default; }
.mf-row .mailfolder{ flex:1; }
.mf-kids{ padding-left:13px; }

.maillistcol{ width:380px; flex:none; display:flex; flex-direction:column; border-right:1px solid var(--border); min-width:0; }
.maillist{ width:auto; flex:1; border-right:0; }
.maillist__head{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-bottom:1px solid var(--border); flex:none; }
.maillist__title{ font-size:13px; font-weight:700; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.iconbtn{ width:32px; height:32px; flex:none; border:1px solid var(--border); background:var(--card); color:var(--muted); border-radius:8px; cursor:pointer; font-size:15px; display:flex; align-items:center; justify-content:center; }
.iconbtn:hover{ border-color:var(--accent); color:var(--accent-deep); }

.mailapp.rail-hidden .mailrail{ display:none; }

@media (max-width:900px){
  .mailapp{ height:calc(100dvh - 56px - env(safe-area-inset-top)); }
  .maillistcol{ width:auto; flex:1; }
  .mailrail{ position:absolute; left:0; top:0; bottom:0; width:250px; z-index:8; box-shadow:var(--shadow-drawer); }
  .mailapp.rail-hidden .mailrail{ display:none; }
}

/* ==== Verfassen / Senden ==== */
.cwrap{ position:fixed; inset:0; z-index:88; background:var(--overlay); display:flex; align-items:center; justify-content:center; padding:24px; }
.cwrap[hidden]{ display:none; }
.cbox{ width:100%; max-width:640px; max-height:88vh; background:var(--card); border:1px solid var(--border); border-radius:14px; box-shadow:0 24px 60px oklch(0.30 0.03 255/.28); display:flex; flex-direction:column; overflow:hidden; }
.cbox__bar{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--border); background:var(--tint); }
.cbox__title{ font-size:14px; font-weight:700; }
.cbox__fields{ padding:4px 18px; }
.cfield__in{ flex:1; min-width:0; border:none; background:none; font:inherit; font-size:13px; color:var(--text); outline:none; padding:6px 0; }
select.cfield__in{ cursor:pointer; }
.cbox__body{ flex:1; min-height:200px; margin:0; border:none; border-top:1px solid var(--border); padding:14px 18px; font-family:var(--font); font-size:13.5px; line-height:1.55; color:var(--text); resize:none; outline:none; background:var(--card); }
.cbox__foot{ display:flex; align-items:center; gap:10px; padding:12px 18px; border-top:1px solid var(--border); }
.cbox__status{ font-size:11.5px; color:var(--faint); margin-left:auto; text-align:right; }
@media (max-width:900px){
  .cwrap{ padding:0; }
  /* Ganze Karte scrollt; Kopf/Fuss bleiben sichtbar (sticky), Statusleiste wird respektiert. */
  .cbox{ max-width:none; height:100dvh; max-height:100dvh; border-radius:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .cbox__bar{ position:sticky; top:0; z-index:3; padding-top:calc(14px + env(safe-area-inset-top)); }
  .cbox__body{ flex:none; min-height:40vh; }
  .cbox__body[contenteditable]{ overflow:visible; }
  .cbox__foot{ position:sticky; bottom:0; z-index:3; background:var(--card); padding-bottom:calc(12px + env(safe-area-inset-bottom)); }
}

/* ==== Quick Wins: iOS-Zoom, Neu im Kopf, Aktionsleiste einklappbar ==== */
/* iOS zoomt beim Fokus, wenn Feld < 16px -> alle Formularfelder auf 16px */
input, textarea, select, .cfield__in, .movesel { font-size:16px; }
/* Neu-Knopf im Listenkopf */
.maillist__head .maillist__title{ flex:1; }
.btn--sm{ padding:6px 11px; font-size:12.5px; }
/* Aktionsleiste im Lesebereich ein-/ausklappbar */
.mailread__full.actions-collapsed .mailread__actions{ display:none; }
.rd-collapse{ background:none; border:none; color:var(--faint); cursor:pointer; font-size:18px; line-height:1; padding:2px 6px; flex:none; align-self:center; }
.rd-collapse:hover{ color:var(--accent-deep); }

/* ==== Scroll-Chaining verhindern: jeder Bereich scrollt nur sich selbst ==== */
.maillist, .mailrail, .mailread__body, .mailread__frame, .mailread__full { overscroll-behavior: contain; }

/* ==== Eigene Dropdowns (statt nativer <select>) ==== */
.ddown{ position:relative; display:inline-block; }
.ddown--inline{ flex:1; }
.ddown__btn--plain{ background:none; border:none; color:var(--text); font:inherit; font-size:16px; cursor:pointer; text-align:left; padding:6px 0; width:100%; }
.ddown__menu{ position:absolute; z-index:90; top:calc(100% + 4px); left:0; min-width:220px; max-width:min(300px,82vw); max-height:340px; overflow-y:auto; overscroll-behavior:contain; background:var(--card); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow-drawer); padding:6px; }
.ddown__menu[hidden]{ display:none; }
.ddown__group{ font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); font-weight:700; padding:8px 8px 4px; }
.ddown__item{ display:block; width:100%; text-align:left; background:none; border:none; font:inherit; font-size:13px; color:var(--text); padding:8px 10px; border-radius:7px; cursor:pointer; white-space:nowrap; }
.ddown__item:hover{ background:var(--tint); }

/* ==== HTML-Editor im Verfassen ==== */
.cbox__toolbar{ display:flex; gap:4px; padding:8px 18px; border-top:1px solid var(--border); flex-wrap:wrap; }
.cbox__toolbar .ctool{ width:auto; min-width:30px; height:30px; padding:0 9px; }
.cbox__body[contenteditable]{ border-top:none; overflow-y:auto; }
.cbox__body[contenteditable]:focus{ outline:none; }
.cbox__body blockquote{ margin:0 0 0 8px; padding-left:10px; border-left:2px solid var(--border); color:var(--muted); }

/* ==== Anhänge im Lesebereich ==== */
.mailread__atts{ display:flex; gap:8px; flex-wrap:wrap; padding:10px 18px; border-bottom:1px solid var(--border); }
.att-chip{ display:inline-flex; align-items:center; gap:7px; text-decoration:none; background:var(--tint); border:1px solid var(--border); border-radius:9px; padding:6px 11px; font-size:12.5px; color:var(--text); max-width:280px; }
.att-chip:hover{ border-color:var(--accent); color:var(--accent-deep); }
.att-chip__name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.att-chip__sz{ color:var(--faint); font-size:11px; flex:none; }
.att-item{ display:inline-flex; align-items:stretch; }
.att-item .att-chip{ border-top-right-radius:0; border-bottom-right-radius:0; }
.att-file{ display:inline-flex; align-items:center; gap:5px; border:1px solid var(--border); border-left:0; border-radius:0 9px 9px 0; background:var(--card); color:var(--muted); font-size:12px; padding:0 10px; cursor:pointer; white-space:nowrap; font-family:inherit; }
.att-file:hover{ border-color:var(--accent); color:var(--accent); }
.att-file:disabled{ cursor:default; opacity:.85; }
.att-file.is-done{ color:var(--green-text); border-color:currentColor; max-width:200px; overflow:hidden; text-overflow:ellipsis; }
.att-beleg{ display:inline-flex; align-items:center; gap:5px; border:1px solid var(--border); border-left:0; border-radius:0 9px 9px 0; background:var(--card); color:var(--muted); font-size:12px; padding:0 10px; cursor:pointer; white-space:nowrap; font-family:inherit; }
.att-beleg:hover{ border-color:var(--accent); color:var(--accent); }
.att-beleg:disabled{ cursor:default; opacity:.85; }
.att-beleg.is-done{ color:var(--green-text); border-color:currentColor; }
.att-item .att-file:not(:last-child){ border-radius:0; }

/* ==== Suche im Listenkopf ==== */
.maillist__search{ flex:1; min-width:0; background:var(--tint); border:1px solid var(--border); border-radius:8px; padding:7px 11px; color:var(--text); outline:none; }
.maillist__search:focus{ border-color:var(--accent); background:var(--card); }
.maillist__sub{ padding:6px 14px; font-size:11.5px; color:var(--faint); border-bottom:1px solid var(--border); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:none; }

/* ==== Empfänger-Autocomplete (Lexware) ==== */
.cfield--ac{ position:relative; }
.ac{ position:absolute; top:100%; left:52px; right:0; z-index:95; background:var(--card); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow-drawer); max-height:280px; overflow-y:auto; overscroll-behavior:contain; margin-top:2px; }
.ac[hidden]{ display:none; }
.ac__item{ display:flex; flex-direction:column; gap:1px; width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:8px 12px; border-bottom:1px solid var(--border); }
.ac__item:last-child{ border-bottom:none; }
.ac__item:hover{ background:var(--tint); }
.ac__name{ font-size:13px; font-weight:600; color:var(--text); }
.ac__mail{ font-size:11.5px; color:var(--faint); }
.ac__loading{ flex-direction:row; align-items:center; gap:8px; color:var(--muted); font-size:13px; cursor:default; }

/* Anhang-Vorschau (Bild/PDF) als Overlay — Download nur auf Wunsch. */
.attprev-ov{ position:fixed; inset:0; z-index:90; background:var(--overlay); display:flex; align-items:center; justify-content:center; padding:20px; }
.attprev-ov[hidden]{ display:none; }
.attprev{ background:var(--card); border:1px solid var(--border); border-radius:14px; width:min(1000px,100%); max-height:92vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 12px 40px oklch(0.30 0.03 255/.35); }
.attprev__head{ display:flex; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid var(--border); }
.attprev__name{ flex:1; min-width:0; font-weight:600; font-size:14px; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.attprev__x{ border:0; background:transparent; color:var(--muted); font-size:18px; cursor:pointer; width:32px; height:32px; border-radius:8px; flex:none; }
.attprev__x:hover{ background:var(--bg); color:var(--text); }
.attprev__body{ flex:1; min-height:0; overflow:auto; display:flex; align-items:center; justify-content:center; background:var(--bg); }
.attprev__img{ max-width:100%; max-height:88vh; object-fit:contain; display:block; }
.attprev__frame{ width:100%; height:88vh; border:0; }

/* Kontaktzuweisung — offene Anreicherungs-Kandidaten */
.kz-rows{ display:flex; flex-direction:column; }
.kz-row{ display:flex; align-items:center; gap:12px; padding:12px 4px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.kz-row:last-child{ border-bottom:none; }
.kz-main{ flex:1; min-width:0; }
.kz-mail{ font-weight:600; font-size:14px; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kz-sub{ font-size:12.5px; color:var(--muted); }
.kz-act{ display:flex; gap:8px; flex:none; }

/* Signatur-Anreicherung: Kontaktdaten-Gruppen */
.sf-group{ padding:8px 0; border-bottom:1px solid var(--border); }
.sf-group:last-child{ border-bottom:none; }
.sf-ghead{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 4px 2px; flex-wrap:wrap; }
.sf-ghead b{ font-size:14px; color:var(--text); }
.sf-gact{ display:flex; gap:8px; flex:none; }
.sf-row{ padding:8px 4px 8px 14px; }
.sf-badge{ display:inline-block; min-width:64px; padding:1px 8px; margin-right:8px; border-radius:6px; background:var(--chip,var(--border)); color:var(--muted); font-size:11.5px; font-weight:600; text-align:center; vertical-align:middle; }
.sf-src{ display:inline-block; margin-left:6px; padding:0 6px; border-radius:5px; border:1px solid var(--border); color:var(--faint); font-size:10.5px; font-weight:600; vertical-align:middle; }

/* ==== CRM ==== */
.main:has(.crmapp){ max-width:none; padding:0; }
.main__inner:has(.crmapp){ max-width:none; margin:0; }
.crmapp{ display:flex; height:100dvh; border:1px solid var(--border); border-radius:14px; overflow:hidden; background:var(--card); box-shadow:var(--shadow); }
.crmlistcol{ width:380px; flex:none; display:flex; flex-direction:column; border-right:1px solid var(--border); min-width:0; }
.crmlist__head{ display:flex; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid var(--border); }
.crmfilters{ display:flex; gap:6px; flex-wrap:wrap; padding:10px 12px; border-bottom:1px solid var(--border); }
.crmlist{ flex:1; overflow-y:auto; overscroll-behavior:contain; }
.cc{ display:flex; align-items:center; gap:11px; padding:11px 14px; border-bottom:1px solid var(--border); cursor:pointer; }
.cc[hidden]{ display:none; }
.cc:hover{ background:var(--tint); }
.cc.is-sel{ background:var(--accent-bg); }
.cc__av{ width:34px; height:34px; border-radius:9px; flex:none; display:flex; align-items:center; justify-content:center; color:var(--white); font-weight:700; font-size:12px; }
.cc__body{ min-width:0; flex:1; }
.cc__name{ font-size:13.5px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cc__sub{ font-size:11.5px; color:var(--faint); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cc__dot{ width:9px; height:9px; border-radius:50%; flex:none; }
.cc__dot.is-on{ background:var(--green); }
.cc__dot.is-off{ background:transparent; border:1.5px solid var(--faint); }
.crmdetail{ flex:1; min-width:0; display:flex; flex-direction:column; overflow:hidden; }
.crmdetail__empty{ margin:auto; color:var(--faint); font-size:14px; }
.crmdetail__full{ display:flex; flex-direction:column; height:100%; min-height:0; }
.crmdetail__head{ display:flex; align-items:center; gap:12px; padding:16px 18px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.crmdetail__av{ width:46px; height:46px; border-radius:11px; flex:none; display:flex; align-items:center; justify-content:center; color:var(--white); font-weight:700; font-size:16px; }
.crmdetail__id{ min-width:0; flex:1 1 160px; }
.crmdetail__name{ font-size:18px; font-weight:700; overflow-wrap:break-word; line-height:1.25; }
.crmdetail__acts{ display:flex; gap:8px; flex:none; }
.crmdetail__roles{ margin-top:5px; display:flex; gap:6px; flex-wrap:wrap; }
.crmdetail__body{ flex:1; overflow-y:auto; overscroll-behavior:contain; padding:16px 18px; display:flex; flex-direction:column; gap:14px; }
@media (max-width:900px){
  .crmapp{ height:calc(100dvh - 56px - env(safe-area-inset-top)); position:relative; }
  .crmlistcol{ width:auto; flex:1; }
  .crmdetail{ position:absolute; inset:0; background:var(--card); z-index:5; transform:translateX(100%); transition:transform .2s ease; }
  .crmdetail.is-open{ transform:translateX(0); }
  /* Kontaktkopf: Name nicht von den Buttons quetschen lassen -> Buttons in eigene Zeile */
  .crmdetail__acts{ flex-basis:100%; order:3; flex-wrap:wrap; }
  .crmdetail__acts .btn{ flex:1 1 auto; justify-content:center; }
}

/* ==== CRM Feinschliff: Aktivitätsfilter + saubere Detailzeilen ==== */
.crmfilters{ padding-bottom:7px; border-bottom:none; }
.crmfilters--act{ padding-top:0; padding-bottom:10px; }
.fchip--sm{ padding:4px 9px; font-size:11px; }
.crmdetail__body .card{ padding:16px 18px; }
.crmdetail__body .row{ border-top:none; border-bottom:1px solid var(--border); padding:10px 0; }
.crmdetail__body .card > .row:last-child{ border-bottom:none; }
.crm-active-toggle[data-aktiv="0"]{ color:var(--faint); }

/* ==== CRM Detail-Reiter ==== */
.crmtabs{ display:flex; gap:2px; padding:0 18px; border-bottom:1px solid var(--border); overflow-x:auto; flex:none; }
.crmtab{ border:0; background:none; font:inherit; font-size:13.5px; font-weight:600; color:var(--muted); padding:12px 12px; cursor:pointer; border-bottom:2px solid transparent; white-space:nowrap; }
.crmtab:hover{ color:var(--text); }
.crmtab.is-on{ color:var(--accent); border-bottom-color:var(--accent); }
.crmpanel{ display:flex; flex-direction:column; gap:14px; }
.crmpanel[hidden]{ display:none; }

/* ==== CRM Dateien-Browser (Nextcloud) ==== */
.crmdetail__body .card.fb{ padding:0; }
.fb-bar{ display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.fb-crumbs{ flex:1; min-width:120px; font-size:13px; color:var(--muted); }
.fb-crumb{ cursor:pointer; color:var(--accent); }
.fb-crumb:hover{ text-decoration:underline; }
.fb-sep{ color:var(--faint); }
.fb-item{ display:flex; align-items:center; gap:11px; padding:10px 16px; border-bottom:1px solid var(--border); text-decoration:none; color:var(--text); cursor:pointer; }
.fb-item:last-child{ border-bottom:none; }
.fb-item:hover{ background:var(--tint); }
.fb-ic{ flex:none; font-size:15px; }
.fb-name{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13.5px; }
.fb-sz{ flex:none; color:var(--faint); font-size:11.5px; }
.fb-go{ flex:none; color:var(--faint); }

/* ── Aufgaben & Wiedervorlagen (CalDAV) ─────────────────────────────────── */
.tasks{ max-width:none; margin:0; }
.tasks__head{ display:flex; align-items:center; gap:12px; margin:4px 0 16px; }
.page__title{ font-size:22px; font-weight:700; margin:0; flex:1; }
.tasks__grid{ display:grid; grid-template-columns:1fr; gap:16px; align-items:start; }
@media (min-width:860px){ .tasks__grid{ grid-template-columns:1.35fr 1fr; } }
.tasks__col{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.tasks__hint{ font-size:12.5px; color:var(--muted); padding:0 4px; line-height:1.5; }
.tasks__new{ margin-bottom:0; }
.tk-form{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.tk-in{ flex:1; min-width:200px; font-size:16px; padding:9px 12px; border:1px solid var(--border); border-radius:9px; background:var(--card); color:var(--text); }
.tk-date{ font-size:15px; padding:8px 10px; border:1px solid var(--border); border-radius:9px; background:var(--card); color:var(--text); }
.tk-status{ margin-top:9px; font-size:13px; }
.tk-status.is-ok{ color:var(--accent); }
.tk-status.is-err{ color:var(--red-text); }
.af-sub{ font-size:13px; font-weight:600; color:var(--muted); margin:2px 0 4px; }
.af-hint{ font-size:12.5px; color:var(--faint); margin-top:6px; }
.af-hint.is-warn{ color:var(--amber-text); }
.af-subs{ display:flex; flex-wrap:wrap; gap:7px; margin:2px 0 4px; }
.af-sub-chip{ padding:5px 11px; border:1px solid var(--border); border-radius:8px; background:var(--card); color:var(--text); font-size:12.5px; cursor:pointer; }
.af-sub-chip:hover{ border-color:var(--accent); }
.af-sub-chip.is-on{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-deep); font-weight:600; }
.af-sub-chip.af-sub-new{ color:var(--muted); }
.af-newsub{ margin-top:6px; }
/* Vertragsgenerator (Projekt) */
.vgen label{ display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted); font-weight:600; }
.vgen .cf-in{ font-weight:400; }
.vg-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; margin:6px 0; }
.vg-full{ display:flex; flex-direction:column; gap:4px; margin:6px 0; font-size:12px; color:var(--muted); font-weight:600; }
.vg-sub{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--faint); margin:16px 0 2px; border-top:1px solid var(--border); padding-top:12px; }
.vg-sub small{ font-weight:400; text-transform:none; letter-spacing:0; }
.vg-mod{ border:1px solid var(--border); border-radius:8px; padding:8px 10px; margin:8px 0; }
.vg-modh{ flex-direction:row !important; align-items:center; gap:8px; cursor:pointer; }
.vg-modbody{ margin-top:6px; }
@media (max-width:640px){ .vg-grid{ grid-template-columns:1fr; } }
.tk-row{ display:flex; align-items:center; gap:10px; padding:11px 2px; border-bottom:1px solid var(--border); }
.tk-row:last-child{ border-bottom:none; }
.tk-check{ width:17px; height:17px; flex:none; cursor:pointer; accent-color:var(--accent); }
.tk-sum{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tk-row.is-done .tk-sum{ text-decoration:line-through; color:var(--faint); }
.tk-contact{ font-size:12.5px; color:var(--accent); text-decoration:none; flex:none; }
.tk-contact:hover{ text-decoration:underline; }
.tk-mail{ text-decoration:none; color:var(--muted); flex:none; }
.tk-due{ font-size:12px; font-weight:600; color:var(--muted); background:var(--tint); border-radius:7px; padding:2px 8px; flex:none; }
.tk-due.is-today{ color:var(--amber-text); }
.tk-due.is-over{ color:var(--red-text); }
.tk-del{ border:0; background:none; color:var(--faint); cursor:pointer; font-size:14px; flex:none; padding:2px 6px; border-radius:6px; }
.tk-del:hover{ color:var(--red-text); background:var(--tint); }

/* ── CRM Kontakt-Formular (Push nach Lexware) ───────────────────────────── */
/* Fixe Overlays sind aus dem Fluss — der Section-Abstand (.main__inner > *+*) darf sie
   NICHT nach unten schieben, sonst bleibt oben ein unbedeckter Streifen (inset:0 + margin). */
.crmform-ov, .readwrap, .cwrap, .qc-ov, .pin-ov, .tm-detail-ov{ margin:0 !important; }
.crmform-ov{ position:fixed; inset:0; background:var(--overlay); display:flex; align-items:center; justify-content:center; z-index:60; padding:16px; }
.crmform-ov[hidden]{ display:none; }
.crmform{ background:var(--card); border:1px solid var(--border); border-radius:14px; width:100%; max-width:440px; max-height:90vh; overflow:auto; box-shadow:var(--shadow); }
.crmform__head{ display:flex; align-items:center; justify-content:space-between; padding:15px 18px; border-bottom:1px solid var(--border); font-weight:700; }
.crmform__x{ border:0; background:none; color:var(--muted); font-size:16px; cursor:pointer; }
.crmform__body{ padding:16px 18px; display:flex; flex-direction:column; gap:10px; }
.cf-in{ font-size:16px; padding:9px 12px; border:1px solid var(--border); border-radius:9px; background:var(--bg); color:var(--text); width:100%; }
.cf-typ, .cf-roles{ display:flex; gap:18px; font-size:14px; color:var(--text); }
.cf-typ label, .cf-roles label{ display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.crmform__note{ font-size:12px; color:var(--muted); }
.crmform__foot{ display:flex; justify-content:flex-end; gap:10px; margin-top:4px; flex-wrap:wrap; }

/* ── Kundenordner-Zuordnung ─────────────────────────────────────────────── */
.fo-list{ max-height:44vh; overflow:auto; border:1px solid var(--border); border-radius:9px; }
.fo-item{ padding:9px 12px; border-bottom:1px solid var(--border); cursor:pointer; font-size:14px; }
.fo-item:last-child{ border-bottom:none; }
.fo-item:hover{ background:var(--tint); color:var(--accent); }
.fo-item--new{ color:var(--accent); font-weight:600; }
.fo-new .fo-item--new{ border:1px dashed var(--accent-border); border-radius:9px; margin-bottom:4px; }

/* ── Globales Quick-Capture (FAB + Sheet) ───────────────────────────────── */
.fab{ position:fixed; right:22px; bottom:calc(22px + env(safe-area-inset-bottom)); width:56px; height:56px; border-radius:50%; border:0;
  background:linear-gradient(145deg,var(--accent),var(--accent-deep)); color:var(--white); font-size:28px; line-height:1; cursor:pointer;
  box-shadow:0 6px 18px oklch(0.30 0.03 255/.28); z-index:50; display:flex; align-items:center; justify-content:center; transition:transform .15s;
  /* Eigene Compositing-Ebene -> bleibt in der iOS-PWA beim Scrollen wirklich fixiert (kein Mitwandern). */
  transform:translateZ(0); will-change:transform; }
.fab:hover{ transform:translateZ(0) translateY(-2px); }
.qc-ov{ position:fixed; inset:0; background:var(--overlay); z-index:70; display:flex; align-items:flex-end; justify-content:center; }
.qc-ov[hidden]{ display:none; }

/* KI-Bestätigung (Vorschau -> Freigabe). Bottom-Sheet auf Mobile, zentriert auf Desktop. */
.kiconf-ov{ position:fixed; inset:0; background:var(--overlay); z-index:78; display:flex; align-items:flex-end; justify-content:center; }
.kiconf-ov[hidden]{ display:none; }
.kiconf{ background:var(--card); width:100%; max-width:520px; max-height:90vh; overflow:auto; border-radius:16px 16px 0 0;
  box-shadow:0 -4px 24px oklch(0.30 0.03 255/.2); display:flex; flex-direction:column; }
@media (min-width:600px){ .kiconf-ov{ align-items:center; } .kiconf{ border-radius:16px; } }
.kiconf__head{ display:flex; align-items:center; justify-content:space-between; padding:15px 18px; border-bottom:1px solid var(--border); }
.kiconf__title{ font-weight:700; font-size:15px; color:var(--text); }
.kiconf__x{ border:0; background:transparent; color:var(--muted); font-size:18px; cursor:pointer; width:32px; height:32px; border-radius:8px; }
.kiconf__x:hover{ background:var(--bg); color:var(--text); }
.kiconf__body{ padding:16px 18px; display:flex; flex-direction:column; gap:12px; }
.kiconf__foot{ display:flex; gap:10px; justify-content:flex-end; padding:14px 18px calc(14px + env(safe-area-inset-bottom)); border-top:1px solid var(--border); }
.kc-row{ display:flex; flex-direction:column; gap:5px; }
.kc-k{ font-size:12px; color:var(--muted); font-weight:600; }
.kc-in{ width:100%; font:inherit; font-size:16px; padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--bg); color:var(--text); }
.kc-in:focus{ outline:none; border-color:var(--accent); }
.kc-ta{ resize:vertical; min-height:88px; }
.kc-2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.kc-note{ font-size:13px; color:var(--muted); }
.kc-check{ display:flex; align-items:center; gap:8px; font-size:14px; color:var(--text); cursor:pointer; }
.kc-check input{ width:18px; height:18px; accent-color:var(--accent); }

/* Globale „KI arbeitet"-Anzeige — blockiert Eingaben, nicht wegklickbar. */
.kiwait{ position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center; background:var(--overlay); backdrop-filter:blur(1px); }
.kiwait[hidden]{ display:none; }
.kiwait__box{ display:flex; align-items:center; gap:14px; background:var(--card); border:1px solid var(--border); border-radius:14px; padding:18px 22px; box-shadow:0 10px 30px oklch(0.30 0.03 255/.28); }
.kiwait__spin{ width:26px; height:26px; border-radius:50%; border:3px solid var(--border); border-top-color:var(--accent); animation:kiwaitspin .8s linear infinite; flex:none; }
.kiwait__txt{ font-size:15px; font-weight:600; color:var(--text); }
.kiwait__dots i{ opacity:.25; animation:kiwaitdot 1.2s infinite; }
.kiwait__dots i:nth-child(2){ animation-delay:.2s; }
.kiwait__dots i:nth-child(3){ animation-delay:.4s; }
@keyframes kiwaitspin{ to{ transform:rotate(360deg); } }
@keyframes kiwaitdot{ 0%,80%,100%{ opacity:.25; } 40%{ opacity:1; } }
.kc-warn{ font-size:14px; color:var(--amber-text); padding:10px 12px; border-radius:10px; border:1px solid var(--border); }
.qc-sheet{ background:var(--card); width:100%; max-width:520px; border-radius:16px 16px 0 0;
  padding:16px 18px calc(18px + env(safe-area-inset-bottom)); box-shadow:0 -4px 24px oklch(0.30 0.03 255/.2);
  display:flex; flex-direction:column; gap:12px; }
@media (min-width:600px){ .qc-ov{ align-items:center; } .qc-sheet{ border-radius:16px; } }
.qc-head{ display:flex; align-items:center; justify-content:space-between; }
.qc-types{ display:flex; gap:6px; }
.qc-type{ border:1px solid var(--border); background:var(--bg); color:var(--muted); border-radius:999px; padding:6px 14px; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.qc-type.is-on{ background:var(--accent-bg); border-color:var(--accent-border); color:var(--accent-deep); }
.qc-x{ border:0; background:none; color:var(--muted); font-size:16px; cursor:pointer; }
.qc-text{ font:inherit; font-size:16px; padding:11px 12px; border:1px solid var(--border); border-radius:10px; background:var(--bg); color:var(--text); resize:vertical; min-height:64px; }
.qc-kunde{ position:relative; }
.qc-in{ width:100%; font:inherit; font-size:16px; padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--bg); color:var(--text); }
.qc-ac{ position:absolute; left:0; right:0; top:calc(100% + 4px); background:var(--card); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow); z-index:5; max-height:240px; overflow:auto; }
.qc-ac-item{ padding:9px 12px; cursor:pointer; font-size:14px; border-bottom:1px solid var(--border); }
.qc-ac-item:last-child{ border-bottom:none; }
.qc-ac-item:hover{ background:var(--tint); }
.qc-ac-sub{ color:var(--faint); font-size:12px; }
.qc-daterow{ display:flex; align-items:center; gap:10px; }
.qc-daterow[hidden]{ display:none; }
.qc-lbl{ font-size:13px; color:var(--muted); flex:none; }
.qc-date{ width:auto; }
.qc-foot{ display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.qc-msg{ font-size:13px; color:var(--red-text); margin-right:auto; }
.qc-toast{ position:fixed; left:50%; bottom:calc(90px + env(safe-area-inset-bottom)); transform:translateX(-50%) translateY(10px);
  background:var(--sidebar); color:var(--white); padding:10px 18px; border-radius:999px; font-size:13.5px; font-weight:600; z-index:80;
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; }
.qc-toast.is-on{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ── CRM Kontaktdaten: Kanäle hinzufügen/löschen ────────────────────────── */
.chan-del{ border:0; background:none; color:var(--faint); cursor:pointer; font-size:12px; margin-left:8px; padding:0 4px; border-radius:5px; }
.chan-del:hover{ color:var(--red-text); background:var(--tint); }
.chan-add{ padding:12px 0 2px; }
.chan-kinds{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:9px; }
.chan-k{ border:1px solid var(--border); background:var(--bg); color:var(--muted); border-radius:999px; padding:4px 12px; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.chan-k.is-on{ background:var(--accent-bg); border-color:var(--accent-border); color:var(--accent-deep); }
.chan-addrow{ display:flex; gap:8px; }
.chan-addrow .chan-val{ flex:1; }

/* Cockpit: KPI-Kacheln als Links */
a.kpi{ text-decoration:none; color:inherit; display:block; }

/* ── Termine (Agenda) ───────────────────────────────────────────────────── */
.tm-day{ font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; padding:14px 0 6px; border-bottom:1px solid var(--border); margin-bottom:2px; }
.tm-day:first-child{ padding-top:2px; }
.tm-ev{ display:flex; align-items:center; gap:12px; padding:10px 2px; border-bottom:1px solid var(--border); }
.tm-ev:last-child{ border-bottom:none; }
.tm-time{ flex:none; width:56px; font-size:13px; font-weight:600; color:var(--accent); }
.tm-sum{ flex:1; min-width:0; font-size:14px; overflow:hidden; text-overflow:ellipsis; }
.tm-loc{ color:var(--faint); font-size:12px; }
.tm-del{ flex:none; }
.tm-form{ display:flex; flex-direction:column; gap:10px; }
.tm-times{ display:flex; align-items:center; gap:8px; }
.tm-times .cf-in{ flex:1; }
.tm-dash{ color:var(--faint); }

/* ── INREMA PIN-Löschbestätigung ────────────────────────────────────────── */
.btn--danger{ background:var(--red); color:var(--white); border-color:var(--red); }
.btn--danger:hover{ filter:brightness(1.05); }
.btn--danger:disabled{ opacity:.45; cursor:default; }
.pin-ov{ position:fixed; inset:0; background:var(--overlay); z-index:90; display:flex; align-items:center; justify-content:center; padding:16px; }
.pin-ov[hidden]{ display:none; }
.pin-box{ background:var(--card); border:1px solid var(--border); border-radius:16px; width:100%; max-width:340px; padding:22px 22px 18px; box-shadow:var(--shadow); text-align:center; }
.pin-title{ font-size:16px; font-weight:700; }
.pin-msg{ font-size:13.5px; color:var(--muted); margin-top:6px; }
.pin-code{ font-size:34px; font-weight:800; letter-spacing:.32em; color:var(--accent); margin:16px 0 4px; padding-left:.32em; font-variant-numeric:tabular-nums; }
.pin-hint{ font-size:12px; color:var(--faint); margin-bottom:14px; }
.pin-input{ width:150px; text-align:center; font-size:24px; letter-spacing:.3em; padding:9px 10px; border:1px solid var(--border); border-radius:10px; background:var(--bg); color:var(--text); font-variant-numeric:tabular-nums; }
.pin-foot{ display:flex; gap:10px; margin-top:18px; }
.pin-foot .btn{ flex:1; justify-content:center; }

/* ── Papierkorb ─────────────────────────────────────────────────────────── */
.tr-row{ display:flex; align-items:center; gap:12px; padding:11px 2px; border-bottom:1px solid var(--border); }
.tr-row:last-child{ border-bottom:none; }
.tr-ic{ flex:none; font-size:17px; }
.tr-body{ flex:1; min-width:0; display:flex; flex-direction:column; }
.tr-label{ font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tr-meta{ font-size:11.5px; color:var(--faint); margin-top:2px; }

/* Nav-Badge sauber ausblenden (display:inline-flex würde [hidden] überschreiben) */
.nav-item .count[hidden]{ display:none; }

/* ── Assistent-Chat (Claude) ────────────────────────────────────────────── */
.chat{ max-width:860px; margin:0 auto; display:flex; flex-direction:column; height:calc(100dvh - 150px); min-height:420px; }
.chat__head{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.chat__log{ flex:1; overflow-y:auto; overscroll-behavior:contain; display:flex; flex-direction:column; gap:12px; padding:4px 2px; }
.ch-msg{ display:flex; }
.ch-msg--me{ justify-content:flex-end; }
.ch-bubble{ max-width:82%; padding:11px 14px; border-radius:15px; font-size:14px; line-height:1.55; overflow-wrap:break-word; }
.ch-msg--me .ch-bubble{ background:var(--accent); color:var(--white); border-bottom-right-radius:5px; }
.ch-msg--ai .ch-bubble{ background:var(--card); border:1px solid var(--border); color:var(--text); border-bottom-left-radius:5px; }
.chat__bar{ display:flex; gap:10px; align-items:flex-end; margin-top:12px; padding-bottom:calc(env(safe-area-inset-bottom)); }
.chat__in{ flex:1; resize:none; font:inherit; font-size:16px; padding:11px 14px; border:1px solid var(--border); border-radius:12px; background:var(--card); color:var(--text); max-height:160px; }
.chat__in:focus{ border-color:var(--accent); outline:none; }
.ch-dots{ display:inline-flex; gap:4px; padding:2px 0; }
.ch-dots i{ width:7px; height:7px; border-radius:50%; background:var(--faint); animation:chd 1s infinite; }
.ch-dots i:nth-child(2){ animation-delay:.15s; } .ch-dots i:nth-child(3){ animation-delay:.3s; }
@keyframes chd{ 0%,60%,100%{ opacity:.3; } 30%{ opacity:1; } }
.tm-att{ color:var(--faint); font-size:12px; }
.tm-vid{ flex:none; text-decoration:none; font-size:15px; }

/* KI-Kommando im Quick-Capture */
.qc-result{ font-size:13.5px; line-height:1.5; color:var(--text); background:var(--tint); border:1px solid var(--border); border-radius:10px; padding:10px 12px; max-height:220px; overflow:auto; }
.qc-result[hidden]{ display:none; }
.qc-kunde[hidden]{ display:none; }

/* ── Sprachaufnahme im Quick-Capture ────────────────────────────────────── */
.qc-voice{ display:flex; align-items:center; gap:10px; }
.qc-voice[hidden]{ display:none; }
.qc-mic{ flex:none; width:40px; height:40px; border-radius:50%; border:1px solid var(--border); background:var(--card); color:var(--text); font-size:17px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.qc-mic:hover{ border-color:var(--accent); }
.qc-mic.is-rec{ background:var(--red); color:var(--white); border-color:var(--red); animation:qcpulse 1.2s infinite; }
@keyframes qcpulse{ 0%,100%{ box-shadow:0 0 0 0 var(--status-down-border); } 50%{ box-shadow:0 0 0 6px transparent; } }
.qc-wave{ flex:1; height:40px; min-width:0; }
.qc-vstatus{ flex:none; font-size:12px; color:var(--muted); }
.tk-sum{ cursor:pointer; }
.tk-hasnote{ flex:none; font-size:12px; opacity:.7; }

/* ── Seitenleiste einklappen (Desktop, Zustand gemerkt) ─────────────────── */
.nav-collapse{ position:absolute; top:16px; right:12px; width:24px; height:24px; border:0; border-radius:7px; background:var(--sidebar-2); color:var(--sidebar-text); cursor:pointer; font-size:15px; line-height:1; display:flex; align-items:center; justify-content:center; z-index:3; }
@media (max-width:900px){ .nav-collapse{ display:none; } }
@media (min-width:901px){
  html.nav-collapsed{ --sidebar-w:68px; }
  html.nav-collapsed .brand{ justify-content:center; padding:4px 0 18px; }
  html.nav-collapsed .brand__name, html.nav-collapsed .brand__sub{ display:none; }
  html.nav-collapsed .nav__label{ height:0; padding:0; margin:0; overflow:hidden; opacity:0; }
  html.nav-collapsed .nav-item{ justify-content:center; padding:10px 0; position:relative; }
  html.nav-collapsed .nav-item span:not(.count){ display:none; }
  html.nav-collapsed .nav-item .count{ position:absolute; top:3px; right:10px; margin:0; }
  html.nav-collapsed .sidebar__foot{ flex-direction:column; gap:8px; align-items:center; }
  html.nav-collapsed .sidebar__foot > div{ display:none; }
  html.nav-collapsed .nav-collapse{ transform:rotate(180deg); right:auto; left:50%; margin-left:-12px; }
}

/* Diktieren im Assistent-Chat */
.chat__mic{ flex:none; width:44px; height:44px; border-radius:50%; border:1px solid var(--border); background:var(--card); color:var(--text); font-size:18px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.chat__mic:hover{ border-color:var(--accent); }
.chat__mic.is-rec{ background:var(--red); color:var(--white); border-color:var(--red); animation:qcpulse 1.2s infinite; }
.chat__wave{ flex:1; height:44px; min-width:0; }

/* ── CRM Timeline + Aktivität protokollieren ────────────────────────────── */
.tl-log{ display:flex; flex-direction:column; gap:10px; }
.tl-log-types{ display:flex; gap:6px; flex-wrap:wrap; }
.tl-t{ border:1px solid var(--border); background:var(--bg); color:var(--muted); border-radius:999px; padding:5px 12px; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.tl-t.is-on{ background:var(--accent-bg); border-color:var(--accent-border); color:var(--accent-deep); }
.tl-log-row{ display:flex; gap:8px; }
.tl-log-in{ flex:1; }
.tl{ display:flex; flex-direction:column; }
.tl-item{ display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); }
.tl-item:last-child{ border-bottom:none; }
.tl-ic{ flex:none; width:30px; height:30px; border-radius:50%; background:var(--tint); display:flex; align-items:center; justify-content:center; font-size:14px; }
.tl-b{ min-width:0; flex:1; }
.tl-title{ font-size:14px; overflow-wrap:anywhere; }
.tl-title a{ color:var(--accent); text-decoration:none; }
.tl-meta{ font-size:12px; color:var(--faint); margin-top:2px; }

/* ── CRM Rechnungen (saubere Ausrichtung) ───────────────────────────────── */
.inv-row{ display:grid; grid-template-columns:1fr auto auto auto; align-items:center; gap:14px; padding:10px 2px; border-bottom:1px solid var(--border); text-decoration:none; color:var(--text); }
.inv-row:last-child{ border-bottom:none; }
.inv-row:hover{ background:var(--tint); }
.inv-num{ font-weight:600; font-size:13.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.inv-date{ font-size:12.5px; color:var(--faint); white-space:nowrap; }
.inv-amt{ font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
/* Datei-Drop-Zone */
.fb{ position:relative; }
.fb-drop{ position:absolute; inset:0; background:var(--accent-bg); border:2px dashed var(--accent); border-radius:14px; display:none; align-items:center; justify-content:center; font-weight:600; color:var(--accent-deep); z-index:2; pointer-events:none; }
.fb.is-drag .fb-drop{ display:flex; }
.tl-item.tl-link{ cursor:pointer; }
.tl-item.tl-link:hover{ background:var(--tint); }
.tl-del{ background:none; border:none; color:var(--faint); cursor:pointer; font-size:13px; flex:none; opacity:0; transition:opacity .15s; align-self:center; }
.tl-item:hover .tl-del{ opacity:1; }
.tl-del:hover{ color:var(--red-text); }

/* ==== Projekte (Kunde) ==== */
.pj-list{ display:flex; flex-direction:column; }
.pj-row{ display:flex; align-items:center; gap:10px; padding:9px 2px; border-bottom:1px solid var(--border); cursor:pointer; }
.pj-row:last-child{ border-bottom:none; }
.pj-row:hover{ background:var(--tint); }
.pj-name{ flex:1; min-width:0; font-weight:500; font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pj-cnt{ font-size:12px; color:var(--faint); flex:none; }
.pj-st{ font-size:11px; font-weight:600; padding:1px 8px; border-radius:var(--radius-pill); flex:none; }
.pj-done{ background:var(--status-ok-bg); color:var(--green-text); }
.pj-pause{ background:var(--status-warn-bg); color:var(--amber-text); }
.pj-del{ background:none; border:none; color:var(--faint); cursor:pointer; font-size:13px; flex:none; opacity:0; transition:opacity .15s; }
.pj-row:hover .pj-del{ opacity:1; }
.pj-del:hover{ color:var(--red-text); }
.pj-new{ display:flex; gap:8px; margin-top:10px; }
.pj-new .pj-in{ flex:1; }
.pj-detail-head{ margin-bottom:12px; }
.pj-item{ display:flex; align-items:center; gap:10px; padding:9px 2px; border-bottom:1px solid var(--border); text-decoration:none; color:var(--text); }
.pj-item:hover{ background:var(--tint); }
.pj-item.is-done .pj-item-t{ text-decoration:line-through; color:var(--faint); }
.pj-item-t{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pj-due{ font-size:12px; color:var(--muted); flex:none; }
.pj-active{ background:var(--accent-soft); color:var(--accent-deep); }

/* Projekte-Seite (global) + Detailseite */
.pl-row{ display:flex; align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid var(--border-soft); text-decoration:none; color:var(--text); }
.pl-row:last-child{ border-bottom:none; }
.pl-row:hover{ background:var(--tint); }
.pl-name{ flex:1; min-width:0; font:600 14.5px/1.3 var(--font); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pl-cnt{ font-size:12px; color:var(--faint); flex:none; }
.pl-last{ font-size:12px; color:var(--faint); flex:none; min-width:56px; text-align:right; }
.pj-back{ display:inline-block; font-size:13px; color:var(--accent); text-decoration:none; margin-bottom:4px; }
.pj-back:hover{ text-decoration:underline; }
.pj-tabn{ font-size:11px; color:var(--faint); font-weight:600; }
.pj-ovgrid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(320px,1fr)); gap:12px; }
.fb-row{ display:flex; align-items:center; gap:12px; padding:11px 4px; border-bottom:1px solid var(--border-soft); text-decoration:none; color:var(--text); }
.fb-row:last-child{ border-bottom:none; }
.fb-row:hover{ color:var(--accent); }
.fb-ic{ flex:none; }
.fb-name{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.fb-sz{ font-size:12px; color:var(--faint); flex:none; }
/* CRM-Kontakt-Übersicht: zweispaltig (Stammdaten links, Timeline rechts) */
.crmov{ display:grid; grid-template-columns:1fr; gap:14px; align-items:start; }
@media (min-width:1000px){ .crmov{ grid-template-columns:minmax(320px,1fr) minmax(340px,1.2fr); } }
.crmov__col{ display:flex; flex-direction:column; gap:14px; min-width:0; }
/* Kontaktperson hinzufügen */
.cp-add{ display:flex; flex-wrap:wrap; gap:8px; padding-top:12px; }
.cp-add .cf-in{ flex:1 1 45%; min-width:120px; }
.cp-add .cp-save{ flex:1 1 100%; }
.cp-edit,.cp-del{ border:0; background:none; color:var(--faint); cursor:pointer; font-size:12px; margin-left:6px; padding:0 4px; border-radius:5px; }
.cp-edit:hover{ color:var(--accent); background:var(--tint); }
.cp-del:hover{ color:var(--red-text); background:var(--tint); }
.cp-editrow{ display:flex; flex-wrap:wrap; gap:6px; width:100%; }
.cp-editrow .cf-in{ flex:1 1 30%; min-width:110px; }
.nc-firma-chip{ display:flex; align-items:center; gap:8px; padding:6px 8px; border:1px solid var(--border); border-radius:8px; background:var(--card); }
.nc-firma-chip #nc-firma-name{ font-weight:600; font-size:14px; color:var(--text); }

/* ── Termine: Ansichten (Liste/Woche/Monat) + Relevanz ──────────────────── */
.tm-views{ display:flex; gap:4px; }
.tm-v{ border:1px solid var(--border); background:var(--bg); color:var(--muted); border-radius:8px; padding:4px 11px; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.tm-v.is-on{ background:var(--accent-bg); border-color:var(--accent-border); color:var(--accent-deep); }
.tm-rel{ font-size:11px; font-weight:600; padding:1px 7px; border-radius:999px; white-space:nowrap; }
.tm-rel--me{ background:var(--accent-bg); color:var(--accent-deep); }
.tm-rel--tanja{ background:oklch(0.52 0.12 320/.12); color:oklch(0.48 0.14 320); }
.tm-rel--ext{ background:var(--status-warn-bg); color:var(--amber-text); }
.tm-ev{ border-left:3px solid transparent; padding-left:9px; }
.tm-ev.is-me{ border-left-color:var(--accent); }
.tm-ev.is-tanja{ border-left-color:oklch(0.55 0.13 320); }
.tm-ev.is-ext{ border-left-color:var(--amber); }
/* Woche */
.tm-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
@media (max-width:800px){ .tm-week{ grid-template-columns:repeat(2,1fr); } }
.tm-wd{ border:1px solid var(--border); border-radius:10px; padding:8px; min-height:90px; }
.tm-wd-h{ font-size:12px; font-weight:700; color:var(--muted); margin-bottom:6px; }
.tm-chip{ font-size:11.5px; padding:4px 7px; border-radius:7px; margin-bottom:4px; background:var(--tint); border-left:3px solid var(--accent); cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tm-chip.is-tanja{ border-left-color:oklch(0.55 0.13 320); } .tm-chip.is-ext{ border-left-color:var(--amber); }
/* Monat */
.tm-mhead{ font-size:16px; font-weight:700; margin-bottom:10px; }
.tm-month{ border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.tm-mrow{ display:grid; grid-template-columns:repeat(7,1fr); }
.tm-mcell{ min-height:96px; border-right:1px solid var(--border); border-top:1px solid var(--border); padding:4px; overflow:hidden; }
.tm-mrow--h .tm-mcell{ min-height:0; text-align:center; font-size:11px; font-weight:700; color:var(--muted); padding:6px 0; background:var(--tint); border-top:none; }
.tm-mcell--empty{ background:var(--tint); }
.tm-mcell.is-today{ background:var(--accent-bg); }
.tm-mnum{ font-size:12px; font-weight:600; color:var(--muted); margin-bottom:3px; }
.tm-mdot{ font-size:10.5px; padding:2px 5px; border-radius:5px; margin-bottom:2px; background:var(--tint); border-left:3px solid var(--accent); cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tm-mdot.is-tanja{ border-left-color:oklch(0.55 0.13 320); } .tm-mdot.is-ext{ border-left-color:var(--amber); }
.tm-more{ font-size:10px; color:var(--faint); }

/* ── Einstellungen ──────────────────────────────────────────────────────── */
.settings{ max-width:720px; display:flex; flex-direction:column; gap:16px; }
.set-field{ display:flex; flex-direction:column; gap:6px; padding:10px 0; border-bottom:1px solid var(--border); }
.set-field:last-child{ border-bottom:none; }
.set-lbl{ font-size:13px; font-weight:600; color:var(--muted); }
.settings__foot{ display:flex; align-items:center; gap:12px; }

/* ── Pipeline / Deals (Kanban) ─────────────────────────────── */
.pl-sum{ font-size:13px; font-weight:600; color:var(--muted); margin-right:auto; }
.pl-board{ display:flex; gap:12px; overflow-x:auto; padding-bottom:12px; align-items:flex-start; }
.pl-col{ flex:0 0 240px; background:var(--bg); border:1px solid var(--border); border-radius:12px; padding:10px; min-height:120px; transition:background .12s,border-color .12s; }
.pl-col.is-over{ background:var(--accent-bg); border-color:var(--accent-border); }
.pl-col-h{ font-size:13px; font-weight:700; color:var(--muted); display:flex; align-items:center; gap:6px; margin-bottom:9px; padding:0 2px; }
.pl-col-n{ background:var(--tint); color:var(--faint); font-size:12px; font-weight:600; border-radius:var(--radius-pill); padding:1px 8px; }
.pl-col-s{ margin-left:auto; color:var(--faint); font-weight:600; }
.pl-col-body{ display:flex; flex-direction:column; gap:8px; min-height:20px; }
.pl-card{ background:var(--card); border:1px solid var(--border); border-radius:10px; padding:9px 11px; cursor:grab; box-shadow:var(--shadow); transition:transform .08s,box-shadow .12s; }
.pl-card:hover{ box-shadow:var(--shadow-drawer); }
.pl-card.is-drag{ opacity:.5; }
.pl-card.is-won{ border-left:3px solid var(--green); }
.pl-card.is-lost{ border-left:3px solid var(--red); opacity:.72; }
.pl-card-t{ font-size:14px; font-weight:600; color:var(--text); }
.pl-card-c{ font-size:12px; color:var(--muted); margin-top:2px; }
.pl-card-v{ font-size:13px; font-weight:700; color:var(--accent-deep); margin-top:4px; }
.dl-row{ display:flex; align-items:center; gap:8px; }
.dl-stage{ font-size:11px; font-weight:600; padding:1px 8px; border-radius:var(--radius-pill); background:var(--tint); color:var(--muted); flex:none; }
.dl-gewonnen{ background:var(--green-text); color:var(--white); }
.dl-verloren{ background:var(--red); color:var(--white); }
.dl-v{ font-size:12px; font-weight:700; color:var(--accent-deep); margin-left:auto; flex:none; }
.cp-mail{ text-decoration:none; color:inherit; display:block; }
.cp-mail:hover{ background:var(--tint); }

/* ── Globale Suche ─────────────────────────────────────────── */
.gs{ display:flex; flex-direction:column; gap:8px; margin-bottom:16px; max-width:640px; }
.gs-in{ font-size:17px; padding:12px 14px; }
.gs-mails{ font-size:12.5px; color:var(--muted); display:flex; align-items:center; gap:7px; cursor:pointer; }
.gs-results{ display:flex; flex-direction:column; gap:16px; }
.gs-group{ background:var(--card); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.gs-group-h{ font-size:12px; font-weight:700; color:var(--muted); padding:9px 14px; border-bottom:1px solid var(--border); background:var(--bg); display:flex; align-items:center; gap:6px; }
.gs-n{ background:var(--tint); color:var(--faint); border-radius:var(--radius-pill); padding:0 8px; font-size:11px; }
.gs-item{ display:flex; flex-direction:column; gap:2px; padding:10px 14px; text-decoration:none; color:inherit; border-bottom:1px solid var(--border); }
.gs-item:last-child{ border-bottom:none; }
.gs-item:hover{ background:var(--tint); }
.gs-item-t{ font-size:14px; font-weight:600; color:var(--text); }
.gs-item-s{ font-size:12px; color:var(--muted); }
.att-archiv{ display:inline-flex; align-items:center; gap:5px; border:1px solid var(--border); border-left:0; border-radius:0 9px 9px 0; background:var(--card); color:var(--muted); font-size:12px; padding:0 10px; cursor:pointer; white-space:nowrap; font-family:inherit; }
.att-archiv:hover{ border-color:var(--accent); color:var(--accent); }
.att-archiv:disabled{ cursor:default; opacity:.85; }
.att-archiv.is-done{ color:var(--green-text); border-color:currentColor; }
.att-item .att-beleg{ border-radius:0; }

/* ── Aufgaben (einspaltig) + Termine (full-width Kalender) ──── */
.tasks__single{ display:flex; flex-direction:column; gap:16px; max-width:680px; }
.tm-count{ color:var(--faint); font-weight:400; font-size:14px; }
.tm-card{ width:100%; }
.tm-card .tm-mcell{ min-height:112px; }

/* ── User-Menü (Popover über dem angemeldeten Nutzer) ──────── */
.sidebar__foot{ position:relative; flex-wrap:wrap; }
.userbtn{ flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:8px; background:transparent; border:none; color:var(--sidebar-muted); font:inherit; font-size:11px; text-align:left; cursor:pointer; padding:6px 8px; border-radius:10px; }
.userbtn:hover{ background:var(--sidebar-2); }
.userbtn__id{ flex:1; min-width:0; line-height:1.3; }
.userbtn__id strong{ display:block; color:var(--sidebar-text); font-weight:600; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.userbtn__chev{ width:16px; height:16px; flex:none; transition:transform .15s; }
.userbtn[aria-expanded="true"] .userbtn__chev{ transform:rotate(180deg); }
.userbtn__dot{ position:relative; width:9px; height:9px; border-radius:50%; background:var(--amber); flex:none; }
.usermenu{ position:absolute; left:10px; right:10px; bottom:calc(100% + 6px); background:var(--sidebar); border:1px solid var(--sidebar-2); border-radius:12px; box-shadow:var(--shadow-drawer); padding:6px; z-index:40; display:flex; flex-direction:column; gap:2px; }
.usermenu[hidden]{ display:none; }
.usermenu__item{ display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:9px; color:var(--sidebar-text); text-decoration:none; font-size:13px; }
.usermenu__item svg{ width:18px; height:18px; flex:none; }
.usermenu__item:hover{ background:var(--sidebar-2); }
.usermenu__item.is-active{ background:var(--accent); color:var(--white); }
.usermenu__item .dotmark{ margin-left:auto; width:8px; height:8px; border-radius:50%; background:var(--amber); }
html.nav-collapsed .userbtn__id{ display:none; }
html.nav-collapsed .usermenu{ left:8px; right:auto; width:210px; }
html.nav-collapsed .sidebar__foot > .usermenu:not([hidden]){ display:flex; }

/* ── Termine mobil (alle Ansichten) ────────────────────────── */
/* Grid-Überlauf verhindern: Grid-Kinder dürfen schrumpfen */
.tm-wd, .tm-mcell{ min-width:0; }
.tm-week{ grid-template-columns:repeat(7,1fr); }
@media (min-width:1100px){ .tm-week{ gap:10px; } }

@media (max-width:760px){
  /* Kopf darf umbrechen, Buttons nicht abschneiden */
  .tasks__head{ flex-wrap:wrap; gap:8px 10px; }
  .tasks__head .page__title{ flex:1 1 100%; }
  .tm-views{ flex:1 1 auto; }
  .tm-views .tm-v{ flex:1; }
  #tm-open{ margin-left:auto; }

  /* Woche: Tage untereinander (volle Breite, nichts abgeschnitten) */
  .tm-week{ grid-template-columns:1fr; gap:10px; }
  .tm-wd{ min-height:0; }
  .tm-chip{ white-space:normal; }

  /* Liste: kompakter */
  .tm-ev{ gap:8px; }

  /* Monat: 7 Spalten bleiben, aber Termine als farbige Punkte statt Text */
  .tm-card .tm-mcell, .tm-mcell{ min-height:64px; padding:3px; }
  .tm-mnum{ font-size:11px; margin-bottom:2px; }
  .tm-mdot{ font-size:0; height:6px; padding:0; margin-bottom:2px; border-left:none; border-radius:3px; background:var(--accent); }
  .tm-mdot.is-tanja{ background:oklch(0.55 0.13 320); }
  .tm-mdot.is-ext{ background:var(--amber); }
  .tm-more{ font-size:9px; }
  .tm-mrow--h .tm-mcell{ font-size:10px; }
}

/* ── Verschieben-Menü: klappbare Postfach-Gruppen + Hierarchie ── */
.mvgrp{ border-bottom:1px solid var(--border); }
.mvgrp:last-child{ border-bottom:none; }
.mvgrp__h{ display:flex; align-items:center; justify-content:space-between; width:100%; background:none; border:none; font:inherit; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); font-weight:700; padding:9px 8px; cursor:pointer; }
.mvgrp__h:hover{ color:var(--accent-deep); }
.mvgrp__c{ transition:transform .15s; }
.mvgrp.is-open .mvgrp__c{ transform:rotate(180deg); }
.mvgrp__body[hidden]{ display:none; }
.mvitem{ padding-left:calc(12px + var(--d,0) * 16px); }
.mvitem::before{ content:""; }
.iconbtn.is-spin{ animation:spin .6s linear; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.cp-unread{ display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--accent); margin-right:6px; vertical-align:middle; }
.ctool--ki{ margin-left:auto; color:var(--accent-deep); font-weight:600; }
.ctool--ki:hover{ background:var(--accent-bg); }

/* Mail-Lesen: leere Anhang-Zeile nicht als Phantom-Linie zeigen; Bilder-Notiz als schlanke Bar */
.mailread__atts[hidden]{ display:none; }
.rd-imgnote{ margin-left:auto; display:inline-flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); white-space:nowrap; }
.rd-imgnote[hidden]{ display:none; }
.cp-link{ text-decoration:none; color:inherit; display:flex; cursor:pointer; }
.cp-link:hover{ background:var(--tint); }
.crm-phone-toggle.is-on{ background:var(--green-text); border-color:var(--green-text); color:var(--white); }
.crm-open{ color:var(--accent-deep); cursor:pointer; text-decoration:none; }
.crm-open:hover{ text-decoration:underline; }
.af-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.af-chip{ border:1px solid var(--border); background:var(--bg); color:var(--muted); border-radius:var(--radius-pill); padding:4px 10px; font:inherit; font-size:12px; cursor:pointer; }
.af-chip:hover{ border-color:var(--accent); color:var(--accent-deep); }

/* Zuordnen-Top-Button: grün, pulsiert dezent, wenn ein Kontakt erkannt wurde */
.rd-assign{ background:var(--green-text); border-color:var(--green-text); color:var(--white); animation:assignPulse 1.8s ease-in-out infinite; }
.rd-assign:hover{ filter:brightness(1.05); }
.rd-assign[hidden]{ display:none; }
@keyframes assignPulse{ 0%,100%{ box-shadow:0 0 0 0 oklch(0.62 0.15 150/.45); } 50%{ box-shadow:0 0 0 5px oklch(0.62 0.15 150/0); } }
.as-found{ background:var(--tint); border:1px solid var(--border); border-radius:9px; padding:4px 4px; margin-bottom:4px; }
/* Zuordnen-Button: zugeordnet = ruhiges Pastellgrün (kein Pulsieren) */
.rd-assign.is-linked{ animation:none; background:oklch(0.93 0.05 150); border-color:oklch(0.82 0.08 150); color:oklch(0.38 0.10 150); }
.rd-assign.is-linked:hover{ filter:brightness(0.98); }
.nc-roles{ display:flex; flex-wrap:wrap; gap:12px; font-size:13px; }
.nc-roles label{ display:inline-flex; align-items:center; gap:5px; cursor:pointer; }

/* KI-Empfehlung: mehrere Vorschläge mit „Ausführen" */
.mailread__kirec{ flex-wrap:wrap; }
.kirec-list{ flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.kirec-item{ display:flex; align-items:center; gap:10px; }
.kirec-t{ flex:1; min-width:0; font-size:13px; }
.kirec-n{ display:inline-flex; width:18px; height:18px; align-items:center; justify-content:center; background:var(--accent); color:var(--white); border-radius:50%; font-size:11px; }
.kirec-exec{ flex:none; }
.kirec-done{ flex:none; font-size:12px; font-weight:600; color:var(--green-text); }

/* ── Entry-Ansichten (Aufgaben/Notizen) ────────────────────── */
.seg{ display:inline-flex; border:1px solid var(--border); border-radius:9px; overflow:hidden; }
.seg-b{ background:var(--bg); border:none; color:var(--muted); font:inherit; font-size:12.5px; font-weight:600; padding:5px 12px; cursor:pointer; border-right:1px solid var(--border); }
.seg-b:last-child{ border-right:none; }
.seg-b.is-on{ background:var(--accent-bg); color:var(--accent-deep); }
.tk-areapick{ flex:none; width:auto; font-size:14px; padding:6px 10px; }
.area-chip{ font-size:10.5px; font-weight:700; padding:1px 7px; border-radius:var(--radius-pill); flex:none; }
.area-inrema{ background:var(--accent-bg); color:var(--accent-deep); }
.area-privat{ background:oklch(0.93 0.05 320); color:oklch(0.40 0.12 320); }
.entry-list{ display:flex; flex-direction:column; }
.entry-grp{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); padding:16px 2px 6px; display:flex; align-items:center; gap:8px; }
.entry-grp.is-over{ color:var(--red-text); }
.entry-grp.is-today{ color:var(--amber-text); }
.entry-grp-n{ background:var(--tint); color:var(--faint); border-radius:var(--radius-pill); padding:0 8px; font-size:11px; }
.tk-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.qc-lbl2{ display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted); }
@media (max-width:560px){ .tk-grid2{ grid-template-columns:1fr; } }

/* KI-Erfassung: Vorschau-Karten (mehrere Einträge aus einem Diktat) */
.cap-intro{ font-size:12px; color:var(--muted); margin:2px 0 8px; }
.cap-card{ background:var(--bg); border:1px solid var(--border); border-radius:10px; padding:8px 10px; margin-bottom:8px; }
.cap-head{ display:flex; align-items:center; gap:7px; font-size:14px; flex-wrap:wrap; }
.cap-head b{ flex:1; min-width:0; }
.cap-x{ background:none; border:none; color:var(--faint); cursor:pointer; font-size:14px; flex:none; }
.cap-x:hover{ color:var(--red-text); }
.cap-body{ font-size:12.5px; color:var(--muted); margin-top:4px; }
.cap-foot{ margin-top:6px; }
.cap-crm{ font-size:12px; }
.cap-crm--ok{ color:var(--accent-deep); }
.cap-crm--no{ color:var(--faint); }
.cap-pick{ font:inherit; font-size:12px; padding:3px 6px; border:1px solid var(--border); border-radius:7px; background:var(--card); color:var(--text); max-width:100%; }
.cap-saveall{ width:100%; margin-top:4px; }

/* Offenes Overlay sperrt den Hintergrund-Scroll (nur das Overlay scrollt) */
body:has(.crmform-ov:not([hidden])), body:has(.cwrap:not([hidden])), body:has(.qc-ov:not([hidden])){ overflow:hidden; }
.crmform{ max-height:88vh; overflow-y:auto; overscroll-behavior:contain; }
.nc-ki{ align-self:flex-start; color:var(--accent-deep); }
.nc-dupe{ display:flex; align-items:center; gap:10px; background:var(--amber-bg,oklch(0.95 0.06 85)); border:1px solid var(--amber); border-radius:9px; padding:8px 10px; font-size:12.5px; color:var(--amber-text); }
.nc-dupe[hidden]{ display:none; }
.nc-dupe span{ flex:1; min-width:0; }

/* Zuordnen-Overlay: keine Zeilen-Trennlinie im Fund-Kästchen */
.as-found .row{ border:none; padding:8px 10px; }
/* Anhang-Aktionen als kompakte Symbol-Buttons (mobil-tauglich), Anhänge umbrechen */
.mailread__atts{ flex-wrap:wrap; }
.att-item{ flex-wrap:wrap; }
.att-ico{ min-width:40px; padding:0 10px; font-size:15px; border-left:0; }
.att-ico.is-done{ color:var(--green-text); border-color:currentColor; }
.att-item--ics{ align-items:center; }
.att-chip--ics{ background:var(--accent-bg); border-color:var(--accent-border); }
.att-ics.is-done{ background:var(--green); border-color:var(--green); }
@media (max-width:760px){
  .att-item{ width:100%; }
  .att-chip{ flex:1; min-width:0; }
}

/* Mail→Aufgaben Vorschau */
.mt-card{ background:var(--bg); border:1px solid var(--border); border-radius:10px; padding:9px 10px; margin-bottom:9px; }
.mt-row{ display:flex; align-items:center; gap:8px; }
.mt-row + .mt-row{ margin-top:7px; }
.mt-title{ flex:1; }
.mt-due{ flex:1; }
.mt-ctx{ font-size:12px; color:var(--muted); margin:5px 0; }
.mt-content{ width:100%; margin:6px 0; font-size:13px; resize:vertical; }
.mt-area{ flex:none; width:auto; }
.mt-contact{ font-size:13px; color:var(--muted); margin-bottom:10px; }
.mt-contact .mt-ct-x{ background:none; border:none; color:var(--faint); cursor:pointer; font-size:13px; }
.mt-contact .mt-ct-x:hover{ color:var(--red-text); }
.mt-hint{ font-size:12px; color:var(--muted); margin:10px 2px 2px; line-height:1.4; }
.mt-x{ background:none; border:none; color:var(--faint); cursor:pointer; font-size:15px; flex:none; }
.mt-x:hover{ color:var(--red-text); }
.mi__prog{ display:inline-block; margin-left:8px; font-size:11px; font-weight:600; color:var(--accent-deep); background:var(--accent-bg); border-radius:var(--radius-pill); padding:0 7px; }
.mi.is-prog .mi__subj{ color:var(--muted); }

/* Mail→Aufgaben: Option „E-Mail danach erledigt" */
.mt-doneopt{ display:flex; align-items:center; gap:8px; margin:10px 2px 2px; font-size:13px; color:var(--muted); cursor:pointer; }
.mt-doneopt input{ width:16px; height:16px; flex:none; }

/* Aufgabe → zugehoerige E-Mail oeffnen */
.tk-maillink{ display:inline-flex; align-items:center; gap:6px; margin:2px 0 4px; font-size:13px; color:var(--accent); text-decoration:none; font-weight:500; }
.tk-maillink:hover{ text-decoration:underline; }

/* iOS zoomt beim Fokus auf Eingabefelder mit Schrift < 16px automatisch hinein.
   Auf dem Handy alle Formularfelder auf 16px -> kein Auto-Zoom. Pinch-Zoom (z. B. fuer
   E-Mail-Inhalte) bleibt erhalten, weil das viewport-meta kein maximum-scale setzt. */
@media (max-width:900px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
  textarea, select, .cf-in, .cfield__in, .tk-in, .qc-in, .aif-text, [contenteditable="true"]{
    font-size:16px;
  }
}

/* =====================================================================
   REDESIGN-BAUSTEINE (Termine/Aufgaben/Notizen) — kanonisch, in MANIFEST.md.
   „Bereich-Chip" ist der rote Faden: jedes Objekt gehoert zu Privat oder
   zu einem Kontext (Person/Firma/Kunde). Farbe je Kontext aus Hue (--h).
   ===================================================================== */
.rpage{ max-width:none; margin:0; display:flex; flex-direction:column; gap:12px; }
.rhead{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:2px; }
.rhead__title{ font-size:24px; font-weight:800; letter-spacing:-.01em; color:var(--text); margin:0; }
.rhead__title small{ font-size:16px; font-weight:600; color:var(--faint); margin-left:6px; }
.rhead__sub{ font-size:13px; color:var(--muted); margin-top:3px; }
.rhead__actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

/* Segmentschalter (Tabs) */
.rseg{ display:inline-flex; background:var(--tint); border-radius:9px; padding:3px; gap:2px; }
.rseg__b{ border:0; background:transparent; color:var(--muted); font:600 13px/1 var(--font); padding:5px 13px; border-radius:7px; cursor:pointer; }
.rseg__b.is-on{ background:var(--card); color:var(--text); box-shadow:var(--shadow); }

/* Filter-Chips */
.rchips{ display:flex; gap:8px; flex-wrap:wrap; }
.rchip{ background:var(--card); border:1px solid var(--border); color:var(--muted); padding:6px 13px; border-radius:999px; font:600 12.5px/1 var(--font); cursor:pointer; }
.rchip:hover{ background:var(--tint); }
.rchip.is-on{ background:var(--text); color:var(--card); border-color:var(--text); }

/* Bereich-Chip */
.bchip{ display:inline-flex; align-items:center; gap:6px; padding:3px 9px 3px 8px; border-radius:999px; white-space:nowrap;
  font:700 12px/1.35 var(--font);
  background:oklch(0.62 0.11 var(--h,260) / .15); color:oklch(0.45 0.12 var(--h,260)); border:1px solid oklch(0.62 0.11 var(--h,260) / .32); }
.bchip__dot{ width:7px; height:7px; border-radius:50%; background:oklch(0.60 0.12 var(--h,260)); flex:none; }
.bchip__av{ width:16px; height:16px; border-radius:50%; margin-left:-3px; background:oklch(0.60 0.12 var(--h,260)); color:var(--white);
  display:inline-flex; align-items:center; justify-content:center; font:800 9.5px/1 var(--font); flex:none; }
.bchip--privat{ background:oklch(0.56 0.015 260 / .16); color:oklch(0.42 0.015 260); border-color:oklch(0.56 0.015 260 / .32); }
.bchip--privat .bchip__dot{ background:oklch(0.56 0.015 260); }
:root:not([data-theme="light"]) .bchip{ color:oklch(0.82 0.09 var(--h,260)); }
:root:not([data-theme="light"]) .bchip--privat{ color:oklch(0.80 0.015 260); }
:root[data-theme="dark"] .bchip{ color:oklch(0.82 0.09 var(--h,260)); }
:root[data-theme="dark"] .bchip--privat{ color:oklch(0.80 0.015 260); }
@media (prefers-color-scheme:light){ :root:not([data-theme="dark"]) .bchip{ color:oklch(0.45 0.12 var(--h,260)); } :root:not([data-theme="dark"]) .bchip--privat{ color:oklch(0.42 0.015 260); } }

/* KI-Erfassungszeile (auf allen drei Seiten identisch) */
.capbar{ display:flex; align-items:center; gap:11px; background:var(--card); border:1px solid var(--border); border-radius:14px; padding:11px 12px; }
.capbar__mic{ width:34px; height:34px; border-radius:10px; background:var(--accent-soft); color:var(--accent-deep); border:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:16px; flex:none; }
.capbar__mic.is-rec{ background:var(--red); color:var(--white); animation:aifPulse 1s infinite; }
.capbar__in{ flex:1; min-width:0; border:0; outline:0; background:transparent; font:400 14px/1.4 var(--font); color:var(--text); }
.capbar__in::placeholder{ color:var(--faint); }
.capbar__lbl{ font:600 12px/1 var(--font); color:var(--faint); white-space:nowrap; }
.capbar__go{ background:var(--accent); color:var(--white); border:0; border-radius:9px; font:600 13px/1 var(--font); padding:9px 16px; cursor:pointer; flex:none; }
.capbar__go[disabled]{ opacity:.7; cursor:default; }
.capbar__in.is-bad::placeholder{ color:var(--red-text); }
@media (max-width:640px){ .capbar__lbl{ display:none; } }

/* Aufgaben-Verknüpfungen (im Detail-Fenster) */
.te-linkbox{ margin-top:2px; }
.te-link{ display:flex; align-items:center; gap:6px; padding:4px 0; }
.te-link a{ flex:1; min-width:0; display:flex; align-items:center; gap:6px; text-decoration:none; color:var(--text); font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.te-link a:hover{ color:var(--accent); }
.te-link-x{ background:none; border:0; color:var(--faint); cursor:pointer; font-size:12px; flex:none; }
.te-link-x:hover{ color:var(--red-text); }

/* Projekt-Detail: Kunde zuordnen */
.pj-assign{ display:flex; align-items:center; gap:10px; margin:2px 0 6px; }

/* Breites Zwei-Spalten-Bearbeitungsfenster (Notiz/Aufgabe) am Desktop */
.crmform--wide{ max-width:860px; }
.mform2{ display:grid; grid-template-columns:1.4fr 1fr; gap:18px; }
.mform2__main{ display:flex; flex-direction:column; gap:10px; }
.mform2__side{ display:flex; flex-direction:column; gap:10px; }
.mform2-text{ flex:1; min-height:240px; resize:vertical; }
@media (max-width:720px){ .mform2{ grid-template-columns:1fr; gap:12px; } .mform2-text{ min-height:120px; } }

/* Notizen (Redesign): Abschnitte + Karten-Raster */
.nz2-sec{ margin-top:4px; }
.nz2-sec-h{ font:800 12px/1 var(--font); letter-spacing:.04em; text-transform:uppercase; color:var(--faint);
  padding:14px 2px 10px; border-bottom:1px solid var(--border); margin-bottom:12px; }
.nz2-sec-n{ font-weight:600; margin-left:4px; }
.nz2-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(268px, 1fr)); gap:12px; }
.ncard{ background:var(--card); border:1px solid var(--border); border-radius:14px; padding:15px 16px; min-height:118px;
  display:flex; flex-direction:column; cursor:pointer; transition:box-shadow .15s, border-color .15s; }
.ncard:hover{ box-shadow:var(--shadow); border-color:var(--track); }
.ncard__head{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:9px; }
.ncard__date{ font-size:11px; color:var(--faint); flex:none; }
.ncard__text{ flex:1; font-size:14px; line-height:1.5; color:var(--text); overflow-wrap:break-word; }
.ncard__foot{ display:flex; align-items:center; gap:6px; margin-top:12px; padding-top:9px; border-top:1px solid var(--border-soft); font-size:11px; color:var(--faint); }
.ncard__del{ margin-left:auto; background:none; border:0; color:var(--faint); cursor:pointer; font-size:12px; opacity:0; transition:opacity .15s; }
.ncard:hover .ncard__del{ opacity:1; }
.ncard__del:hover{ color:var(--red-text); }

/* Aufgaben (Redesign): Statuskacheln + gruppierte Zeilen */
.tk-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.tk-tile{ background:var(--card); border:1px solid var(--border); border-radius:14px; padding:15px 17px; display:flex; align-items:center; gap:14px; }
.tk-tile-dot{ width:10px; height:10px; border-radius:50%; flex:none; }
.tk-tile-l{ font:700 11px/1 var(--font); letter-spacing:.06em; text-transform:uppercase; color:var(--faint); }
.tk-tile-v{ font:800 26px/1.1 var(--font); color:var(--text); margin-top:4px; }
.tk2-grp{ margin-top:2px; }
.tk2-grp-h{ display:flex; align-items:center; gap:8px; font:800 13px/1 var(--font); color:var(--text); padding:16px 2px 9px; }
.tk2-grp-dot{ width:9px; height:9px; border-radius:50%; flex:none; }
.tk2-grp-n{ font:600 12px/1 var(--font); color:var(--faint); }
.tk2-card{ background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.tk2-row{ display:flex; align-items:center; gap:13px; padding:13px 16px; border-bottom:1px solid var(--border-soft); cursor:pointer; }
.tk2-row:last-child{ border-bottom:none; }
.tk2-row:hover{ background:var(--tint); }
.tk2-check{ width:18px; height:18px; flex:none; cursor:pointer; accent-color:var(--accent); }
.tk2-title{ flex:1; min-width:0; font:500 14px/1.35 var(--font); color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tk2-row.is-done .tk2-title{ text-decoration:line-through; color:var(--faint); }
.tk2-wait{ font:700 11px/1 var(--font); color:var(--accent-deep); background:var(--accent-soft); border-radius:999px; padding:3px 9px; flex:none; white-space:nowrap; }
.tk2-due{ font:600 13px/1 var(--font); flex:none; min-width:56px; text-align:right; color:var(--faint); }
.tk2-due.is-over{ color:var(--red-text); }
.tk2-due.is-today{ color:var(--amber-text); }
@media (max-width:640px){ .tk-tiles{ grid-template-columns:1fr; } }

/* Termine (Redesign): Steuerzeile, Wochenstreifen, Agenda, Woche, Monat */
.tm2-ctrl{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.tm2-sys{ background:var(--card); border:1px solid var(--border); color:var(--muted); border-radius:999px; padding:6px 13px; font:600 12.5px/1 var(--font); cursor:pointer; }
.tm2-sys.is-on{ background:var(--accent-soft); color:var(--accent-deep); border-color:var(--accent); }
.tm2-strip{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
.tm2-scell{ background:var(--card); border:1px solid var(--border); border-radius:12px; padding:11px 8px 10px; text-align:center; cursor:pointer; transition:border-color .12s,box-shadow .12s; }
.tm2-scell:hover{ border-color:var(--accent); }
.tm2-scell.is-today{ background:var(--accent-soft); border-color:var(--accent); }
.tm2-scell.is-sel{ border-color:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.tm2-scell-wd{ font:700 11px/1 var(--font); color:var(--faint); }
.tm2-scell.is-today .tm2-scell-wd, .tm2-scell.is-today .tm2-scell-d{ color:var(--accent-deep); }
.tm2-scell-d{ font:800 20px/1.1 var(--font); color:var(--text); margin-top:3px; }
.tm2-scell-dots{ display:flex; gap:3px; justify-content:center; margin-top:7px; min-height:5px; }
.tm2-scell-dots span{ width:5px; height:5px; border-radius:50%; }
.tm2-day{ font:800 12px/1 var(--font); text-transform:uppercase; letter-spacing:.03em; color:var(--faint); padding:16px 2px 9px; }
.tm2-more{ display:block; width:100%; margin:16px 0 8px; text-align:center; }
.tm2-day.is-today{ color:var(--accent-deep); }
.tm2-card{ background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.tm2-ev{ display:flex; align-items:center; gap:14px; padding:13px 16px; border-bottom:1px solid var(--border-soft); position:relative; cursor:pointer; }
.tm2-ev:last-child{ border-bottom:none; }
.tm2-ev:hover{ background:var(--tint); }
.tm2-ev-bar{ position:absolute; left:0; top:10px; bottom:10px; width:3px; border-radius:2px; }
.tm2-time{ width:56px; flex:none; text-align:right; font:700 14px/1.2 var(--font); color:var(--accent-deep); }
.tm2-time.is-privat{ color:var(--muted); }
.tm2-sum{ flex:1; min-width:0; font:600 14px/1.3 var(--font); color:var(--text); }
.tm2-sum small{ font-weight:400; font-size:12px; color:var(--faint); margin-left:6px; }
.tm2-who{ font-weight:600; font-size:13px; color:var(--accent); text-decoration:none; }
.tm2-who:hover{ text-decoration:underline; }
.tm2-who--plain{ color:var(--muted); font-weight:500; }
/* Kundenzuordnung (Formular + Detail) */
.tm-cust{ position:relative; }
.tm-cust__chip{ display:flex; align-items:center; gap:8px; padding:6px 8px; border:1px solid var(--border); border-radius:8px; background:var(--card); }
.tm-cust__chip #tm-cust-name{ font-weight:600; font-size:14px; color:var(--text); }
.tm-cust__x{ margin-left:auto; border:none; background:none; color:var(--faint); cursor:pointer; font-size:14px; line-height:1; }
.tm-cust__x:hover{ color:var(--text); }
/* Als schwebendes Overlay über allem (position:fixed, Koordinaten per JS) — nicht in der Box scrollen. */
.tm-cust__drop,.td-cust-drop{ position:fixed; z-index:4000; background:var(--card); border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow); max-height:240px; overflow:auto; }
.tm-cust__opt{ display:block; width:100%; text-align:left; padding:8px 10px; border:none; background:none; color:var(--text); font-size:13.5px; cursor:pointer; }
.tm-cust__opt:hover{ background:var(--accent-soft); }
.tm-cust__cust{ margin-left:6px; padding:0 6px; border-radius:5px; background:var(--accent-soft); color:var(--accent); font-size:10.5px; font-weight:600; }
.td-cust{ margin-top:4px; }
.td-cust__cur{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.td-cust__box{ position:relative; margin-top:8px; }
.tm2-ev-r{ display:flex; align-items:center; gap:10px; flex:none; }
.tm2-att{ font:600 12px/1 var(--font); color:var(--faint); }
.tm2-del{ background:none; border:0; color:var(--faint); cursor:pointer; font-size:12px; opacity:0; }
.tm2-ev:hover .tm2-del{ opacity:1; }
.tm2-del:hover{ color:var(--red-text); }
.tm2-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; align-items:start; }
.tm2-wcol{ background:var(--tint); border:1px solid var(--border); border-radius:12px; padding:11px 9px 12px; min-height:160px; }
.tm2-wcol.is-today{ background:var(--accent-soft); border-color:var(--accent); }
.tm2-wcol-h{ display:flex; justify-content:space-between; font:700 12px/1 var(--font); color:var(--muted); margin-bottom:9px; }
.tm2-wcol.is-today .tm2-wcol-h{ color:var(--accent-deep); }
.tm2-mini{ background:var(--card); border:1px solid var(--border); border-radius:9px; padding:7px 8px 7px 10px; margin-bottom:6px; position:relative; cursor:pointer; }
.tm2-mini-bar{ position:absolute; left:0; top:6px; bottom:6px; width:3px; border-radius:2px; }
.tm2-mini-t{ font:800 12px/1 var(--font); color:var(--accent-deep); }
.tm2-mini-s{ font:400 12px/1.3 var(--font); color:var(--text); margin-top:2px; }
.tm2-wempty{ text-align:center; color:var(--faint); font-size:16px; padding:10px 0; }
.tm2-mhead{ display:flex; align-items:center; gap:10px; margin-bottom:4px; }
.tm2-mhead h2{ font:800 16px/1 var(--font); color:var(--text); margin:0; }
.tm2-mhead .sp{ flex:1; }
.tm2-nav{ width:28px; height:28px; border:1px solid var(--border); border-radius:8px; background:var(--card); cursor:pointer; color:var(--muted); font-size:14px; }
.tm2-month{ background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.tm2-mrow{ display:grid; grid-template-columns:repeat(7,1fr); }
.tm2-mrow--h{ border-bottom:1px solid var(--border); }
.tm2-mcell{ min-height:92px; padding:8px 9px; border-top:1px solid var(--border-soft); border-right:1px solid var(--border-soft); }
.tm2-mrow .tm2-mcell:nth-child(7){ border-right:none; }
.tm2-mcell--h{ min-height:0; border-top:none; border-right:none; font:700 11px/1 var(--font); color:var(--faint); padding:9px 10px; }
.tm2-mcell--out{ background:var(--tint); }
.tm2-mcell.is-today{ background:var(--accent-soft); }
.tm2-mnum{ font:700 12px/1 var(--font); color:var(--text); }
.tm2-mpill{ display:flex; align-items:center; gap:5px; font:400 11px/1.3 var(--font); color:var(--text); border-radius:5px; padding:2px 6px; margin-top:3px; cursor:pointer; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.tm2-mpill .dot{ width:6px; height:6px; border-radius:50%; flex:none; }
.tm2-mmore{ font:600 11px/1 var(--font); color:var(--muted); margin-top:3px; }
@media (max-width:760px){ .tm2-strip{ grid-template-columns:repeat(4,1fr); } .tm2-week{ grid-template-columns:1fr; } }

/* ==== AiFill — KI-/Diktat-Modus in Formularen (kanonisch, aifill.js) ==== */
.aif-btn{ display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:var(--radius-pill);
  border:1px solid var(--accent-border); background:var(--accent-bg); color:var(--accent-deep);
  font-size:12.5px; font-weight:600; cursor:pointer; }
.aif-btn:hover{ filter:brightness(.98); }
.aif-btn.is-on{ background:var(--accent); border-color:var(--accent); color:var(--white); }
.aif-panel{ background:var(--tint); border:1px solid var(--border); border-radius:10px; padding:9px; margin:0 0 10px;
  display:flex; flex-direction:column; gap:8px; }
.aif-text{ width:100%; border:1px solid var(--border); border-radius:8px; padding:8px 10px; font:inherit; font-size:14px;
  background:var(--card); color:var(--text); resize:vertical; }
.aif-row{ display:flex; align-items:center; gap:10px; }
.aif-status{ flex:1; font-size:12px; color:var(--muted); }
.aif-mic{ width:34px; height:34px; border-radius:50%; border:1px solid var(--border); background:var(--card);
  color:var(--text); cursor:pointer; font-size:15px; flex:none; }
.aif-mic.is-rec{ background:var(--red); color:var(--white); border-color:var(--red); animation:aifPulse 1s infinite; }
@keyframes aifPulse{ 0%,100%{ opacity:1; } 50%{ opacity:.55; } }
.aif-field-hl{ animation:aifHl 1.4s ease; }
@keyframes aifHl{ 0%{ background:var(--accent-bg); } 100%{ background:transparent; } }
.aif-go[disabled], .aif-go.is-busy{ opacity:.75; cursor:default; }
.aif-mic[disabled]{ opacity:.5; cursor:default; }
.aif-spin{ display:inline-block; width:13px; height:13px; vertical-align:-2px; border:2px solid currentColor;
  border-top-color:transparent; border-radius:50%; animation:aifSpin .7s linear infinite; }
@keyframes aifSpin{ to{ transform:rotate(360deg); } }

.tk-newhead{ display:flex; justify-content:flex-end; margin-bottom:8px; }

/* Termin-Detail-Overlay */
.td-classwrap{ margin-top:14px; padding-top:12px; border-top:1px solid var(--border); }
.td-classlbl{ font:600 12px/1 var(--font); color:var(--muted); margin-bottom:7px; }
.td-classlbl small{ font-weight:400; color:var(--faint); }
/* Frei/Gebucht-Umschalter im Detail */
.td-fb{ display:flex; align-items:center; gap:8px; margin:2px 0; flex-wrap:wrap; }
.td-fb__lbl{ font:600 12.5px/1 var(--font); color:var(--muted); }
.td-fb__b{ background:var(--card); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:5px 12px; font:600 12.5px/1 var(--font); cursor:pointer; }
.td-fb__b:hover{ border-color:var(--accent); }
.td-fb__b.is-on{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-deep); }
#tm-detail .td-facts{ margin-top:4px; }
#tm-detail textarea.cf-in{ resize:vertical; min-height:52px; }
.td-class{ display:flex; flex-wrap:wrap; gap:6px; }
.td-cat{ background:var(--card); border:1px solid var(--border); color:var(--muted); border-radius:999px; padding:5px 11px; font:600 12.5px/1 var(--font); cursor:pointer; }
.td-cat:hover{ background:var(--tint); }
.td-cat.is-on{ background:var(--accent); color:var(--white); border-color:var(--accent); }
.td-classhint{ font-size:11.5px; color:var(--faint); margin-top:7px; width:100%; }

/* Cockpit: Heute im Fokus */
.cp-t-row{ display:flex; align-items:center; gap:14px; padding:11px 4px; border-bottom:1px solid var(--border-soft); text-decoration:none; color:var(--text); }
.cp-t-row:last-child{ border-bottom:none; }
.cp-t-row:hover{ background:var(--tint); }
.cp-t-time{ width:58px; flex:none; text-align:right; font:700 13px/1.2 var(--font); color:var(--accent-deep); }
.cp-t-tt{ flex:1; min-width:0; font:500 14px/1.3 var(--font); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cp-t-badge{ font:700 11px/1 var(--font); border-radius:999px; padding:3px 9px; flex:none; }
.cp-t-badge.is-over{ background:var(--status-down-bg); color:var(--red-text); }
.cp-t-badge.is-today{ background:var(--status-warn-bg); color:var(--amber-text); }

/* Termin-Kategorien-Seite (Bulk-Klassifizierung) */
.kl-list-card{ background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.kl-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; border-bottom:1px solid var(--border-soft); }
.kl-row:last-child{ border-bottom:none; }
.kl-info{ min-width:0; flex:1; }
.kl-title{ font:600 14px/1.3 var(--font); color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kl-meta{ font-size:12px; color:var(--faint); margin-top:2px; }
.kl-cats{ display:flex; gap:5px; flex-wrap:wrap; flex:none; justify-content:flex-end; max-width:560px; }
.kl-catbtn{ background:var(--card); border:1px solid var(--border); color:var(--muted); border-radius:999px; padding:4px 9px; font:600 12px/1 var(--font); cursor:pointer; white-space:nowrap; }
.kl-catbtn:hover{ background:var(--tint); }
.kl-catbtn.is-on{ background:var(--accent); color:var(--white); border-color:var(--accent); }
@media (max-width:820px){ .kl-row{ flex-direction:column; align-items:flex-start; gap:8px; } .kl-cats{ justify-content:flex-start; max-width:none; } }
.td-facts{ display:flex; flex-direction:column; gap:2px; margin-bottom:6px; }
.td-row{ display:flex; gap:12px; padding:7px 2px; border-bottom:1px solid var(--border); font-size:14px; }
.td-row:last-child{ border-bottom:0; }
.td-k{ flex:none; width:100px; color:var(--muted); }
.td-v{ flex:1; color:var(--text); font-weight:500; }
.tm-ev, .tm-chip, .tm-mdot{ cursor:pointer; }

/* Einstellungen: Posteingang-Unterordner-Auswahl */
.set-folders{ display:flex; flex-direction:column; gap:12px; }
.set-fgrp-h{ font-size:12px; font-weight:600; color:var(--muted); margin-bottom:5px; }
.set-fitem{ display:flex; align-items:center; gap:8px; padding:5px 2px; font-size:13.5px; color:var(--text); cursor:pointer; }
.set-fitem input{ width:16px; height:16px; flex:none; }

/* ==== Tooltip (global, dezent) — aus title/data-tip, kanonisch in MANIFEST.md ==== */
.ui-tip{ position:fixed; z-index:9999; max-width:260px; padding:6px 9px; border-radius:8px;
  background:var(--sidebar); color:var(--sidebar-text); font-size:12px; line-height:1.35; font-weight:500;
  box-shadow:var(--shadow); pointer-events:none; white-space:normal; }
.ui-tip[hidden]{ display:none; }
