/* ============================================================
   BeDoE-Orga-App · Design-System (hell + dunkel, minimalistisch)
   ============================================================ */
@font-face{
  font-family:"tabler-icons";
  font-style:normal;font-weight:400;font-display:block;
  src:url("assets/tabler.woff2?f=2") format("woff2");
}
.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:400;
  font-variant:normal;text-transform:none;line-height:1;display:inline-block;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.ti-abc:before{content:"\f567"}.ti-activity:before{content:"\ed23"}.ti-adjustments-horizontal:before{content:"\ec38"}.ti-alert-circle:before{content:"\ea05"}.ti-alert-triangle:before{content:"\ea06"}.ti-arrow-back-up:before{content:"\eb77"}.ti-arrow-left:before{content:"\ea19"}.ti-arrow-right:before{content:"\ea1f"}.ti-arrow-up-right:before{content:"\ea24"}.ti-bandage:before{content:"\eb7a"}.ti-bell:before{content:"\ea35"}.ti-bell-ringing:before{content:"\ed07"}.ti-book:before{content:"\ea39"}.ti-book-2:before{content:"\efc5"}.ti-building-warehouse:before{content:"\ebe3"}.ti-bulb:before{content:"\ea51"}.ti-calculator:before{content:"\eb80"}.ti-calendar:before{content:"\ea53"}.ti-calendar-event:before{content:"\ea52"}.ti-calendar-off:before{content:"\ee1f"}.ti-calendar-plus:before{content:"\ebba"}.ti-calendar-star:before{content:"\f830"}.ti-calendar-stats:before{content:"\ee20"}.ti-calendar-user:before{content:"\fd1f"}.ti-camera:before{content:"\ea54"}.ti-camera-off:before{content:"\ecee"}.ti-camera-plus:before{content:"\ec3b"}.ti-car:before{content:"\ebbb"}.ti-certificate:before{content:"\ed76"}.ti-chart-bar:before{content:"\ea59"}.ti-check:before{content:"\ea5e"}.ti-checks:before{content:"\ebaa"}.ti-chevron-down:before{content:"\ea5f"}.ti-chevron-left:before{content:"\ea60"}.ti-chevron-right:before{content:"\ea61"}.ti-chevron-up:before{content:"\ea62"}.ti-circle-check:before{content:"\ea67"}.ti-circle-half-2:before{content:"\eff3"}.ti-circle-x:before{content:"\ea6a"}.ti-clipboard-check:before{content:"\ea6c"}.ti-clock:before{content:"\ea70"}.ti-clock-exclamation:before{content:"\f847"}.ti-clock-hour-4:before{content:"\f319"}.ti-cloud:before{content:"\ea76"}.ti-cloud-rain:before{content:"\ea72"}.ti-copy:before{content:"\ea7a"}.ti-database-export:before{content:"\ee6e"}.ti-device-floppy:before{content:"\eb62"}.ti-device-laptop:before{content:"\eb64"}.ti-device-mobile:before{content:"\ea8a"}.ti-door-enter:before{content:"\ef4c"}.ti-dots:before{content:"\ea95"}.ti-download:before{content:"\ea96"}.ti-drone:before{content:"\ed79"}.ti-edit:before{content:"\ea98"}.ti-external-link:before{content:"\ea99"}.ti-eye:before{content:"\ea9a"}.ti-file:before{content:"\eaa4"}.ti-file-check:before{content:"\ea9c"}.ti-file-off:before{content:"\ecf2"}.ti-flag:before{content:"\eaa6"}.ti-folder:before{content:"\eaad"}.ti-folder-plus:before{content:"\eaab"}.ti-gavel:before{content:"\ef90"}.ti-heart-rate-monitor:before{content:"\ef61"}.ti-home:before{content:"\eac1"}.ti-id:before{content:"\eac3"}.ti-key:before{content:"\eac7"}.ti-license:before{content:"\ebc0"}.ti-link:before{content:"\eade"}.ti-lock:before{content:"\eae2"}.ti-login-2:before{content:"\fc76"}.ti-logout:before{content:"\eba8"}.ti-logout-2:before{content:"\fa7e"}.ti-map-2:before{content:"\eae7"}.ti-map-pin:before{content:"\eae8"}.ti-mars:before{content:"\ec80"}.ti-medal:before{content:"\ec78"}.ti-message:before{content:"\eaef"}.ti-message-2:before{content:"\eaec"}.ti-message-circle:before{content:"\eaed"}.ti-messages:before{content:"\eb6c"}.ti-microphone:before{content:"\eaf0"}.ti-moon:before{content:"\eaf8"}.ti-notebook:before{content:"\eb96"}.ti-package:before{content:"\eaff"}.ti-packages:before{content:"\f2c9"}.ti-palette:before{content:"\eb01"}.ti-pencil:before{content:"\eb04"}.ti-photo:before{content:"\eb0a"}.ti-plane:before{content:"\eb6f"}.ti-plus:before{content:"\eb0b"}.ti-point:before{content:"\eb0c"}.ti-printer:before{content:"\eb0e"}.ti-radio:before{content:"\ef2d"}.ti-refresh:before{content:"\eb13"}.ti-rosette:before{content:"\f599"}.ti-run:before{content:"\ec82"}.ti-school:before{content:"\ecf7"}.ti-search:before{content:"\eb1c"}.ti-send:before{content:"\eb1e"}.ti-settings:before{content:"\eb20"}.ti-shield:before{content:"\eb24"}.ti-shield-bolt:before{content:"\f9c0"}.ti-shield-check:before{content:"\eb22"}.ti-shirt:before{content:"\ec0a"}.ti-star:before{content:"\eb2e"}.ti-stretching:before{content:"\f2db"}.ti-sun:before{content:"\eb30"}.ti-switch-horizontal:before{content:"\eb31"}.ti-table:before{content:"\eba1"}.ti-target:before{content:"\eb35"}.ti-tool:before{content:"\eb40"}.ti-trash:before{content:"\eb41"}.ti-upload:before{content:"\eb47"}.ti-urgent:before{content:"\eb48"}.ti-user:before{content:"\eb4d"}.ti-user-plus:before{content:"\eb4b"}.ti-users:before{content:"\ebf2"}.ti-venus:before{content:"\ec86"}.ti-video:before{content:"\ed22"}.ti-wind:before{content:"\ec34"}.ti-world:before{content:"\eb54"}.ti-x:before{content:"\eb55"}

/* ---------- Tokens ---------- */
:root{
  --accent:#42C0FB;            /* wird je Nutzer überschrieben */
  --accent-ink:#08243a;        /* lesbarer Text auf Akzentfläche */
  --bg:#EEF1F6; --bg-2:#E7ECF3;
  --surface:#FFFFFF; --surface-2:#F6F8FB; --info-tint:#F5ECE3;
  --text:#171F2B; --muted:#69748450; --muted-1:#697484;
  --border:#E4E9F0; --border-2:#EDF1F6; --upl-cell-bd:#000000; --upl-num-col:#171F2B;
  --upl-row-sep:#E9EDF3; --upl-we:rgba(99,116,140,.10); --upl-today:rgba(62,143,224,.15); --upl-band:#FAFBFD;
  --shadow:0 1px 2px rgba(20,30,48,.05),0 6px 20px rgba(20,30,48,.06);
  --shadow-lg:0 8px 30px rgba(20,30,48,.14);
  --r:18px; --r-sm:12px; --r-lg:26px;
  --green:#2FA86A; --amber:#E8A13A; --red:#E2604F; --blue:#3E8FE0; --violet:#8B6DEF;
  --safe-top:env(safe-area-inset-top,0px); --safe-bot:env(safe-area-inset-bottom,0px);
}
[data-theme="dark"]{
  --accent-ink:#08243a;
  --bg:#0C1320; --bg-2:#0A111C;
  --surface:#152033; --surface-2:#1B2840; --info-tint:#152033;
  --text:#ECF1F8; --muted-1:#93A1B5;
  --border:#243246; --border-2:#1E2B3D;
  --upl-num-col:#9FB0C6; --upl-row-sep:#222F43; --upl-we:rgba(150,170,200,.08); --upl-today:rgba(66,192,251,.15); --upl-band:rgba(255,255,255,.018);
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);
  --shadow-lg:0 10px 36px rgba(0,0,0,.5);
}
/* Sand – warmes Hell */
[data-theme="sand"]{
  --bg:#F2EDE3; --bg-2:#EAE3D5;
  --surface:#FFFDF8; --surface-2:#F6F0E5; --info-tint:#E7EEE9;
  --text:#2A2419; --muted:#7A706050; --muted-1:#7A7060;
  --border:#E4DBC9; --border-2:#EFE9DC;
  --upl-num-col:#2A2419; --upl-row-sep:#E8E0D0; --upl-we:rgba(120,108,90,.10); --upl-today:rgba(11,77,162,.12); --upl-band:#FBF8F1;
}
/* Duderstadt – Stadtfarben Blau/Rot (Akzent wird per JS auf Blau gesetzt) */
[data-theme="duderstadt"]{
  --bg:#ECF1F8; --bg-2:#E0E8F4;
  --surface:#FFFFFF; --surface-2:#F1F6FD; --info-tint:#FBE7E7;
  --text:#152339; --muted:#5C6B8650; --muted-1:#5C6B86;
  --border:#D6E1F0; --border-2:#E8EEF8;
  --red:#C8102E; --blue:#0B4DA2;
  --upl-num-col:#152339; --upl-row-sep:#E2EAF5; --upl-we:rgba(11,77,162,.06); --upl-today:rgba(11,77,162,.13); --upl-band:#F7FAFE;
}
/* Mitternacht – tiefes Marineblau (dunkel) */
[data-theme="mitternacht"]{
  --accent-ink:#08243a;
  --bg:#080C1A; --bg-2:#05080F;
  --surface:#121A33; --surface-2:#192448; --info-tint:#121A33;
  --text:#E9EEFB; --muted-1:#8B9AC4;
  --border:#23304F; --border-2:#1A2440;
  --upl-num-col:#9FB0D6; --upl-row-sep:#212E4C; --upl-we:rgba(150,170,220,.08); --upl-today:rgba(66,192,251,.16); --upl-band:rgba(255,255,255,.02);
  --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.42);
  --shadow-lg:0 10px 36px rgba(0,0,0,.55);
}
/* Schiefer – neutrales Graphit (dunkel) */
[data-theme="schiefer"]{
  --accent-ink:#08243a;
  --bg:#16171B; --bg-2:#101115;
  --surface:#1F2127; --surface-2:#282B33; --info-tint:#1F2127;
  --text:#ECEDF0; --muted-1:#9A9DA6;
  --border:#31343D; --border-2:#262931;
  --upl-num-col:#A9ACB5; --upl-row-sep:#2D303A; --upl-we:rgba(160,162,170,.07); --upl-today:rgba(66,192,251,.14); --upl-band:rgba(255,255,255,.02);
  --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.42);
  --shadow-lg:0 10px 36px rgba(0,0,0,.55);
}
/* Wald – ruhiges Salbeigrün (hell, Akzent Tannengrün) */
[data-theme="wald"]{
  --bg:#ECF2EC; --bg-2:#DFEBE0;
  --surface:#FFFFFF; --surface-2:#F1F7F1; --info-tint:#F7ECE1;
  --text:#1B2A20; --muted:#5E706450; --muted-1:#5E7064;
  --border:#D5E3D7; --border-2:#E7F0E8;
  --green:#2F8E58;
  --upl-num-col:#1B2A20; --upl-row-sep:#E2EDE3; --upl-we:rgba(47,125,84,.07); --upl-today:rgba(47,125,84,.13); --upl-band:#F6FBF6;
}
/* Ozean – frisches Petrol/Türkis (hell, Akzent Teal) */
[data-theme="ozean"]{
  --bg:#E9F3F4; --bg-2:#DAEBED;
  --surface:#FFFFFF; --surface-2:#EFF8F9; --info-tint:#FBEBE2;
  --text:#14272B; --muted:#56737A50; --muted-1:#56737A;
  --border:#CFE4E7; --border-2:#E4F0F1;
  --blue:#0E7C86;
  --upl-num-col:#14272B; --upl-row-sep:#DDEBED; --upl-we:rgba(14,124,134,.07); --upl-today:rgba(14,124,134,.13); --upl-band:#F4FBFB;
}
/* Lavendel – sanftes Flieder (hell, Akzent Violett) */
[data-theme="lavendel"]{
  --bg:#F0EEF8; --bg-2:#E6E2F3;
  --surface:#FFFFFF; --surface-2:#F5F2FC; --info-tint:#F4F0DF;
  --text:#221E33; --muted:#6A648050; --muted-1:#6A6480;
  --border:#DED9EE; --border-2:#ECE8F7;
  --violet:#6C5CB8;
  --upl-num-col:#221E33; --upl-row-sep:#E5E0F2; --upl-we:rgba(108,92,184,.07); --upl-today:rgba(108,92,184,.13); --upl-band:#F8F6FD;
}
/* Rosé – warmes Altrosa (hell, Akzent Beere) */
[data-theme="rose"]{
  --bg:#F7ECEC; --bg-2:#F1DEDF;
  --surface:#FFFFFF; --surface-2:#FCF1F1; --info-tint:#E8F2EA;
  --text:#2E1F22; --muted:#7C606650; --muted-1:#7C6066;
  --border:#EED7D9; --border-2:#F7E7E8;
  --red:#BC5A72;
  --upl-num-col:#2E1F22; --upl-row-sep:#F0DEE0; --upl-we:rgba(188,90,114,.07); --upl-today:rgba(188,90,114,.12); --upl-band:#FCF6F6;
}
/* Tann – tiefes Waldgrün (dunkel, Akzent Minze) */
[data-theme="tann"]{
  --accent-ink:#08243a;
  --bg:#0C1611; --bg-2:#08110D;
  --surface:#142219; --surface-2:#1B2E22; --info-tint:#142219;
  --text:#E7F1EA; --muted-1:#8FA899;
  --border:#243D2E; --border-2:#1B2E22;
  --green:#5FC58B;
  --upl-num-col:#9FC6AE; --upl-row-sep:#223A2C; --upl-we:rgba(150,200,170,.08); --upl-today:rgba(95,197,139,.16); --upl-band:rgba(255,255,255,.02);
  --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.42);
  --shadow-lg:0 10px 36px rgba(0,0,0,.55);
}
/* Wein – tiefes Burgund (dunkel, Akzent Rosé) */
[data-theme="wein"]{
  --accent-ink:#2a0e16;
  --bg:#1A0E13; --bg-2:#120A0E;
  --surface:#2A1820; --surface-2:#35202A; --info-tint:#2A1820;
  --text:#F4E7EC; --muted-1:#C29AA8;
  --border:#432934; --border-2:#341F28;
  --red:#E08098;
  --upl-num-col:#D6A8B6; --upl-row-sep:#3E2630; --upl-we:rgba(220,150,175,.08); --upl-today:rgba(224,128,152,.16); --upl-band:rgba(255,255,255,.02);
  --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.42);
  --shadow-lg:0 10px 36px rgba(0,0,0,.55);
}

/* Duderstadt – Wappen als dezentes Wasserzeichen hinter den Monatsrastern */
[data-theme="duderstadt"] .cal-month{ position:relative; z-index:0; }
[data-theme="duderstadt"] .cal-month::before{
  content:""; position:absolute; inset:-2px; z-index:-1; pointer-events:none;
  background:url("assets/wappen-duderstadt.png") no-repeat center 64% / auto 104%;
  opacity:.08;
  -webkit-mask-image:radial-gradient(ellipse 58% 56% at 50% 56%, #000 30%, transparent 80%);
  mask-image:radial-gradient(ellipse 58% 56% at 50% 56%, #000 30%, transparent 80%);
}

/* ---------- Basis ---------- */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;height:100%;}
body{
  background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;
}
#app{max-width:480px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;
  background:var(--bg);position:relative;z-index:0;}   /* z-index:0 = Stacking-Kontext für #bg-dyn */

/* Dynamischer Hintergrund: 2 Ebenen (Kreuzblende) hinter dem Inhalt, über dem App-Grund */
#bg-dyn{position:fixed;inset:0;z-index:-1;pointer-events:none;}
#bg-dyn .bgd{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;background-repeat:no-repeat;background-size:100% 100%;}

/* Pull-to-Refresh-Spinner (Dashboard) */
#ptr{position:fixed;top:calc(6px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:80;
  width:38px;height:38px;border-radius:50%;background:var(--surface);border:1px solid var(--border);
  box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;
  transition:opacity .15s ease;}
#ptr i{font-size:19px;color:var(--muted-1);}
#ptr.ready i{color:var(--accent);}
#ptr.spin i{color:var(--accent);animation:ptr-spin .8s linear infinite;}
@keyframes ptr-spin{to{transform:rotate(360deg);}}
.hidden{display:none!important;}
h1{font-size:24px;font-weight:750;letter-spacing:-.02em;margin:0;}
h2{font-size:17px;font-weight:700;letter-spacing:-.01em;margin:0;}
.muted{color:var(--muted-1);}
.row{display:flex;align-items:center;gap:10px;}
.sp{margin-left:auto;}
.scroll{flex:1;overflow:visible;padding:calc(14px + var(--safe-top)) 16px 110px;}

/* ---------- Karten ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--shadow);padding:16px;}
.card+.card{margin-top:12px;}
.section-title{font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;
  color:var(--muted-1);margin:22px 2px 10px;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  border:none;border-radius:14px;padding:13px 16px;font-size:15px;font-weight:650;
  cursor:pointer;font-family:inherit;transition:transform .1s,filter .15s,background .15s;}
.btn:active{transform:scale(.975);}
.btn-accent{background:var(--accent);color:var(--accent-ink);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 35%,transparent);}
.btn-ghost{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);}
.btn-soft{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);}
.btn i{font-size:18px;}
.iconbtn{background:none;border:none;color:var(--muted-1);font-size:22px;cursor:pointer;
  padding:6px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;}
.iconbtn:active{background:var(--surface-2);}

/* ---------- Avatare ---------- */
.av{border-radius:50%;object-fit:cover;background:var(--surface-2);
  box-shadow:0 0 0 2px var(--surface),0 0 0 4px color-mix(in srgb,var(--accent) 60%,transparent);}
.av-plain{border-radius:50%;object-fit:cover;background:var(--surface-2);}

/* ---------- Chips / Pills ---------- */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;
  padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted-1);
  border:none;font-family:inherit;cursor:default;}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none;}

/* ---------- Felder ---------- */
.field{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:12px;
  color:var(--text);padding:12px 13px;font-size:15px;font-family:inherit;margin-top:6px;}
.field:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent);}
label.lbl{font-size:13px;font-weight:600;color:var(--muted-1);display:block;margin-top:14px;}

/* ---------- Bottom-Navigation ---------- */
.tabbar{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));
  align-items:center;background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);
  border-top:1px solid var(--border);padding:8px 2px calc(8px + var(--safe-bot));z-index:20;}
.tabbar .tab{display:flex;flex-direction:column;align-items:center;gap:2px;border:none;
  background:none;color:var(--muted-1);font-weight:600;font-family:inherit;
  min-width:0;max-width:100%;cursor:pointer;padding:4px 0;}
.tabbar .tab i{font-size:21px;line-height:1;}
.tabbar .tab .tab-svg{width:23px;height:23px;display:block;}
.tabbar .tab .tlbl{display:block;width:100%;text-align:center;font-size:8.5px;letter-spacing:-.2px;
  white-space:nowrap;overflow:hidden;text-overflow:clip;}
.tabbar .tab.active{color:var(--accent);}
.tabbar .add{justify-self:center;}
.tabbar .add .fab{width:50px;height:50px;border-radius:50%;background:var(--accent);
  color:var(--accent-ink);display:flex;align-items:center;justify-content:center;border:none;
  cursor:pointer;box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 45%,transparent);
  transition:transform .1s;}
.tabbar .add .fab:active{transform:scale(.93);}
/* Plus per CSS gezeichnet -> garantiert mittig (unabhaengig von Font-Metriken) */
.fab-plus{position:relative;width:26px;height:26px;color:var(--accent-ink);}
.fab-plus::before,.fab-plus::after{content:"";position:absolute;top:50%;left:50%;
  background:currentColor;border-radius:2px;}
.fab-plus::before{width:25px;height:3.4px;transform:translate(-50%,-50%);}
.fab-plus::after{width:3.4px;height:25px;transform:translate(-50%,-50%);}

/* ---------- Sheet / Toast ---------- */
.sheet-bg{position:fixed;inset:0;background:rgba(8,12,20,.45);z-index:90;display:flex;
  align-items:flex-end;justify-content:center;animation:fade .2s;}
.sheet{background:var(--surface);width:100%;max-width:480px;max-height:88vh;overflow-y:auto;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  border-radius:24px 24px 0 0;padding:18px 18px calc(22px + var(--safe-bot));
  box-shadow:var(--shadow-lg);animation:slideup .26s cubic-bezier(.2,.8,.25,1);}
.sheet-bg{overscroll-behavior:contain;touch-action:none;}
.sheet-bg .sheet{touch-action:pan-y;}
.sheet-grip{width:38px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 12px;}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes slideup{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes cal-next{from{opacity:.4;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@keyframes cal-prev{from{opacity:.4;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}
.cal-slide-in-next{animation:cal-next .26s cubic-bezier(.22,.8,.3,1) both}
.cal-slide-in-prev{animation:cal-prev .26s cubic-bezier(.22,.8,.3,1) both}
/* Kalender-Schiene: fingergeführter Rail [Vor|aktuell|Folge] wie die Fotos */
.cal-rail-vp{overflow:hidden;margin-top:12px;}
.cal-rail{display:flex;width:300%;transform:translateX(-33.3333%);will-change:transform;touch-action:pan-y;}
.cal-rail-panel{width:33.3333%;flex:0 0 33.3333%;min-width:0;}
.toast{position:fixed;left:50%;bottom:calc(96px + var(--safe-bot));transform:translateX(-50%) translateY(10px);
  background:var(--text);color:var(--bg);padding:11px 18px;border-radius:999px;font-size:13.5px;
  font-weight:650;z-index:60;opacity:0;transition:.25s;box-shadow:var(--shadow-lg);pointer-events:none;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---------- Leerer Zustand ---------- */
.empty{text-align:center;color:var(--muted-1);padding:40px 16px;}
.empty i{font-size:40px;opacity:.5;display:block;margin-bottom:10px;}

/* ============================================================
   Startseite
   ============================================================ */
/* Dashboard-Kopf bis zum Nachrichtenstreifen fixiert (scrollt nicht aus dem Bild) */
.home-fixed{position:sticky;top:0;z-index:30;background:var(--bg);
  margin:calc(-14px - var(--safe-top)) -16px 10px;padding:calc(14px + var(--safe-top)) 16px 9px;
  box-shadow:0 6px 14px -10px rgba(0,0,0,.5);}
.home-head{display:flex;align-items:center;gap:8px;margin:4px 0 6px;position:relative;}
.home-head h1{line-height:1.1;}
.home-head > .row{flex:1;min-width:0;}
.list .ev-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid var(--border-2);cursor:pointer;}
.list .ev-row:first-child{border-top:none;}
.ev-row .ev-t{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ev-row .ev-s{color:var(--muted-1);font-size:12.5px;}
.next-einsatz{cursor:pointer;}
.next-einsatz .ne-t{font-weight:750;font-size:18px;letter-spacing:-.01em;margin:10px 0 2px;}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px;}
.tile{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--shadow);padding:15px;cursor:pointer;font-family:inherit;}
.tile:active{transform:scale(.98);}
.tile-ic{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;margin-bottom:10px;}
.tile-t{font-weight:700;font-size:15px;}
.tile-s{color:var(--muted-1);font-size:12.5px;}

/* ============================================================
   Login-Trommel
   ============================================================ */
#view-login{display:flex;flex-direction:column;min-height:100vh;}
.login-wrap{display:flex;flex-direction:column;flex:1;min-height:100vh;position:relative;
  padding:calc(16px + var(--safe-top)) 18px calc(20px + var(--safe-bot));
  background-color:color-mix(in srgb, var(--accent) 20%, var(--bg));
  transition:background-color .55s ease;}
.login-wrap::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(95% 55% at 50% -5%, color-mix(in srgb,var(--accent) 34%, transparent), transparent 72%),
    radial-gradient(85% 45% at 50% 105%, color-mix(in srgb,var(--accent) 16%, transparent), transparent 70%);}
.login-wrap>*{position:relative;z-index:1;}
.login-top{display:flex;align-items:center;justify-content:space-between;}
.login-brand{display:flex;align-items:center;gap:11px;}
.login-logo{width:42px;height:42px;border-radius:13px;overflow:hidden;
  box-shadow:0 4px 12px rgba(0,0,0,.15);}
.login-title{font-weight:800;font-size:18px;letter-spacing:-.02em;}
.login-sub{color:var(--muted-1);font-size:12px;}
.drum-stage{position:relative;flex:1;min-height:510px;perspective:1500px;margin:6px -18px;overflow:hidden;transition:min-height .28s ease,flex-basis .28s ease;}
.drum-track{position:absolute;inset:0;transform-style:preserve-3d;touch-action:pan-y;cursor:grab;transition:transform .28s ease;}
/* Passwort fokussiert → Trommel weicht einem großen runden Avatar (füllt die kompakte Fläche) */
.login-kbav{display:none;}
.login-wrap.kb .drum-stage{min-height:0;flex:0 0 34vh;}
.login-wrap.kb .drum-track{display:none;}
.login-wrap.kb .drum-dots{display:none;}
.login-wrap.kb .login-kbav{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;}
.login-wrap.kb .login-kbav>span{width:min(58vw,34vh)!important;height:min(58vw,34vh)!important;}
/* kompakt oben, damit die Tastatur unten Platz hat (kein Hochscrollen/Abschneiden) */
.login-wrap.kb{min-height:0;}
.login-wrap.kb .login-actions{margin-top:16px;}
.drum-track:active,.drum-track.dragging{cursor:grabbing;}
.drum-track{user-select:none;-webkit-user-select:none;}
.ucard,.uphoto{-webkit-user-drag:none;}
/* Karten werden per JS (applyDrum) positioniert: Nachbarn liegen versetzt
   & transparent HINTER der gewählten Karte – echtes Wählrad, 360°-Schleife. */
.ucard{position:absolute;top:50%;left:50%;width:80vw;max-width:333px;aspect-ratio:9/16;
  border-radius:26px;overflow:hidden;cursor:pointer;background:var(--surface-2);
  transform:translate(-50%,-50%);transform-origin:center center;
  will-change:transform,opacity;backface-visibility:hidden;
  box-shadow:0 16px 36px rgba(8,12,20,.32);}
.ucard.active{box-shadow:
  0 0 0 4px color-mix(in srgb,var(--accent) 92%,transparent),  /* klarer Farbring = harte Kante */
  0 0 0 6px rgba(8,12,20,.30),                                  /* dünne dunkle Trennlinie     */
  0 0 26px 10px rgba(8,12,20,.55),                              /* rundum-Schatten (auch seitlich) auf die hinteren Karten */
  0 18px 46px rgba(8,12,20,.55);}
.uphoto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.uveil{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.8) 100%);}
.umeta{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;color:#fff;}
.unm{font-size:19px;font-weight:800;letter-spacing:.2px;text-shadow:0 2px 10px rgba(0,0,0,.6);}
.urole{font-size:12px;opacity:.9;text-shadow:0 2px 10px rgba(0,0,0,.6);}
.ucheck{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;
  background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;
  font-size:17px;opacity:0;transform:scale(.6);transition:.25s;
  box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 50%,transparent);}
.ucard.active .ucheck{opacity:1;transform:scale(1);}
.drum-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;
  background:color-mix(in srgb,var(--surface) 80%,transparent);backdrop-filter:blur(8px);
  border:1px solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;
  font-size:21px;cursor:pointer;z-index:4;box-shadow:var(--shadow);}
.drum-arrow.left{left:10px;} .drum-arrow.right{right:10px;}
.drum-dots{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;max-width:300px;margin:6px auto 10px;}
.drum-dots span{width:6px;height:6px;border-radius:50%;background:var(--border);transition:.2s;}
.drum-dots span.on{background:var(--accent);width:18px;border-radius:3px;}
.login-hint{text-align:center;color:var(--muted-1);font-size:12.5px;margin-bottom:8px;}
.login-actions{margin-top:auto;}

/* ============================================================
   Kalender
   ============================================================ */
.seg{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:13px;padding:4px;margin:6px 0 12px;}
.seg-b{flex:1;border:none;background:none;font-family:inherit;font-size:13.5px;font-weight:650;
  color:var(--muted-1);padding:8px 4px;border-radius:9px;cursor:pointer;}
.seg-b.on{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow);}
.cal-title{font-size:16px;font-weight:750;letter-spacing:-.01em;min-width:120px;text-align:center;}
.cal-filters{display:flex;gap:7px;overflow-x:auto;padding:2px 0 4px;margin-bottom:8px;scrollbar-width:none;}
.cal-filters::-webkit-scrollbar{display:none;}
.fchip{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);
  background:var(--surface);color:var(--muted-1);font-family:inherit;font-size:12.5px;font-weight:600;
  padding:6px 12px;border-radius:999px;cursor:pointer;opacity:.6;transition:.15s;}
.fchip.on{opacity:1;color:var(--text);border-color:color-mix(in srgb,var(--c) 55%,var(--border));
  background:color-mix(in srgb,var(--c) 12%,var(--surface));}
.conf-note{display:flex;align-items:center;gap:7px;background:color-mix(in srgb,var(--amber) 14%,var(--surface));
  color:var(--amber);border:1px solid color-mix(in srgb,var(--amber) 35%,transparent);
  border-radius:12px;padding:9px 12px;font-size:12.5px;font-weight:600;margin-bottom:4px;}

/* Monatsraster */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.cal-grid.head{margin-bottom:5px;gap:5px;}
.cal-dow{text-align:center;font-size:11px;font-weight:700;color:var(--muted-1);padding:2px 0;}
.cal-dow.we{color:var(--accent);}
.cal-cell{position:relative;min-height:34px;min-width:0;overflow:hidden;border:none;border-right:.5px solid var(--border-2);
  background:transparent;border-radius:0;padding:4px 0;font-family:inherit;cursor:pointer;display:flex;flex-direction:column;
  align-items:center;gap:3px;transition:background .12s;}
.cal-cell:active{background:var(--surface-2);}
.cal-cell.out{opacity:.4;}
.cal-cell.we{background:color-mix(in srgb,var(--muted-1) 6%,var(--surface));}
.cal-n{font-size:13px;font-weight:600;color:var(--text);width:22px;height:22px;line-height:1;display:flex;align-items:center;justify-content:center;}
.cal-cell.today{box-shadow:inset 0 0 0 1.5px var(--muted-1);border-radius:9px;}
.cal-cell.today .cal-n{color:var(--text);font-weight:800;}
.cal-cell.sel:not(.today){background:color-mix(in srgb,var(--accent) 8%,var(--surface));}
.cal-cell.sel:not(.today) .cal-n{box-shadow:inset 0 0 0 1.5px var(--accent);border-radius:50%;color:var(--accent);font-weight:700;}
.cal-daylist{margin-top:10px;}
.cal-daylist-head{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:700;color:var(--text);margin-bottom:9px;}
.cal-daylist-fei{font-size:11px;font-weight:600;color:var(--amber);}
.cal-daylist-empty{font-size:12.5px;color:var(--muted-1);padding:14px 2px;text-align:center;}
/* Tages-Kopf (großer Tag + Wochentag) + Karten (Samsung-Stil) */
.cal-dl-head{display:flex;align-items:baseline;gap:8px;margin:2px 2px 10px;}
.cal-dl-n{font-size:26px;font-weight:800;color:var(--text);line-height:1;}
.cal-dl-wd{font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--muted-1);text-transform:uppercase;}
.cal-dl-add{margin-left:auto;align-self:center;}
.cal-dl-list{display:flex;flex-direction:column;gap:8px;}
.cal-daycard{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:13px;
  background:color-mix(in srgb,var(--bc) 16%,var(--surface));border:1px solid color-mix(in srgb,var(--bc) 22%,var(--border));}
.cal-daycard.tap{cursor:pointer;}
.cal-daycard.tap:active{filter:brightness(.96);}
.cal-daycard-ic{font-size:19px;color:var(--bc);flex:none;}
.cal-daycard-body{flex:1;min-width:0;}
.cal-daycard-t{font-size:15px;font-weight:700;color:var(--text);line-height:1.25;word-break:break-word;}
.cal-daycard-s{font-size:12.5px;color:var(--muted-1);margin-top:2px;}
.cal-daycard-del{flex:none;color:var(--muted-1);font-size:17px;padding:4px;}
.cal-daycard-del:active{color:var(--red);}
/* Einsatz-Tag-Schiene: smooth zwischen mehreren Einsätzen des Tages blättern */
.ek-rail-vp{overflow:hidden;}
.ek-rail{display:flex;align-items:flex-start;will-change:transform;touch-action:pan-y;}
.ek-rail-panel{flex:1 0 0;min-width:0;padding:0 3px;box-sizing:border-box;}
.ek-dots{display:flex;justify-content:center;gap:6px;padding:11px 0 2px;}
.ek-dot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:width .18s,background .18s;}
.ek-dot.on{background:var(--accent);width:18px;border-radius:4px;}
/* Monatsraster groß (Ziehgriff) */
.cal-cell.big{min-height:74px;justify-content:flex-start;gap:2px;}
.cal-evs{display:flex;flex-direction:column;gap:1px;width:100%;padding:0 3px;overflow:hidden;}
.cal-ev{font-size:9px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;}
.cal-evmore{font-size:8.5px;font-weight:700;color:var(--muted-1);text-align:left;}
/* Aufgeräumter Kalender-Kopf: Aktionen */
.cal-hdr-actions{display:flex;align-items:center;gap:7px;flex:none;}
.cal-hdr-icon,.cal-hdr-warn,.cal-hdr-filter{display:inline-flex;align-items:center;justify-content:center;height:34px;
  border:1px solid var(--border);background:var(--surface);border-radius:999px;cursor:pointer;font-family:inherit;}
.cal-hdr-icon{width:34px;color:var(--muted-1);}
.cal-hdr-icon i{font-size:17px;}
.cal-hdr-warn{gap:4px;padding:0 11px;font-size:13.5px;font-weight:700;color:var(--amber);
  border-color:color-mix(in srgb,var(--amber) 40%,var(--border));background:color-mix(in srgb,var(--amber) 13%,var(--surface));}
.cal-hdr-warn i{font-size:15px;}
.cal-hdr-filter{gap:6px;padding:0 13px;font-size:13.5px;font-weight:600;color:var(--text);}
.cal-hdr-filter.on{color:var(--accent);border-color:var(--accent);}
.cal-fdot{width:7px;height:7px;border-radius:50%;background:var(--muted-1);}
.cal-hdr-filter.on .cal-fdot{background:var(--accent);}
/* Inhalts-Kalender (Stärke/Einsatz/Fortbildung): höhere Zellen */
.cal-month-tall .cal-cell{min-height:58px;justify-content:flex-start;padding-top:5px;gap:2px;}
/* Stärkekalender: Stärkezahl + Marker */
.sk-num{font-size:17px;font-weight:750;line-height:1;margin-top:3px;}
.sk-num.high{color:var(--green);}
.sk-num.mid{color:var(--amber);}
.sk-num.low{color:var(--red);}
.sk-marks{display:flex;align-items:center;justify-content:center;gap:3px;height:12px;margin-top:1px;}
.sk-marks .sk-ez{width:6px;height:6px;border-radius:50%;background:var(--red);display:inline-block;}
/* Zeitraum-Auswahl */
.cal-cell.cal-rstart{border-color:var(--accent)!important;box-shadow:inset 0 0 0 2px var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--surface))!important;}
.cal-cell.cal-rstart .cal-n{color:var(--accent);font-weight:800;}
.cal-cell.cal-rbetween{background:color-mix(in srgb,var(--accent) 9%,var(--surface))!important;}

/* ============================================================
   Haupt-Kalender · Monatsansicht (Google/Samsung-Stil, mv-*)
   Termine als Chips, deren Höhe (--mv-h) beim Aufziehen mitwächst:
   klein = dünner Balken, groß = Titel-Chip. Nur der Haupt-Kalender.
   ============================================================ */
.mv-head{display:grid;grid-template-columns:repeat(7,1fr);column-gap:4px;padding:0 2px;margin-bottom:4px;}
.mv-dow{font-size:11px;font-weight:700;color:var(--muted-1);text-align:center;}
.mv-dow.we{color:color-mix(in srgb,var(--red) 70%,var(--muted-1));}
/* Helligkeit der Tageskacheln – abgesetzt vom (dunklen) Hintergrund */
.mv-month{--mv-tile:color-mix(in srgb,var(--surface) 80%,var(--text) 20%);display:flex;flex-direction:column;padding:0 2px;}
/* Wochen-Hülle: klappt im Klein-Zustand alle außer der gewählten Woche weich zusammen (grid 1fr↔0fr) */
.mv-wkwrap{display:grid;grid-template-rows:1fr;margin-bottom:4px;transition:grid-template-rows .34s cubic-bezier(.22,.8,.3,1),margin .34s ease,opacity .26s ease;}
.mv-wkwrap:last-child{margin-bottom:0;}
.mv-wkwrap>.mv-week{min-height:0;overflow:hidden;}
.mv-month.mv-small .mv-wkwrap:not(.sel){grid-template-rows:0fr;opacity:0;margin-bottom:0;}
.mv-week{position:relative;display:grid;grid-template-columns:repeat(7,1fr);column-gap:4px;}
/* Kachel = heller Tages-Hintergrund (füllt die ganze Zelle, alle gleich groß) */
.mv-tile{grid-row:1/-1;position:relative;min-width:0;border:none;padding:0;font-family:inherit;cursor:pointer;z-index:0;
  background:var(--mv-tile);border-radius:10px;}
.mv-tile:active{filter:brightness(1.08);}
.mv-tile.out{background:color-mix(in srgb,var(--mv-tile) 45%,transparent);}
.mv-tile.we{background:color-mix(in srgb,var(--mv-tile) 86%,var(--muted-1) 14%);}
.mv-tile.today{box-shadow:inset 0 0 0 1.6px var(--muted-1);}
.mv-tile.sel:not(.today){box-shadow:inset 0 0 0 1.6px var(--accent);}
.mv-tile.cal-rstart{box-shadow:inset 0 0 0 2px var(--accent);}
.mv-tile.cal-rbetween{background:color-mix(in srgb,var(--mv-tile) 80%,var(--accent) 20%);}
.mv-more{position:absolute;right:5px;bottom:3px;font-size:9px;font-weight:800;color:var(--muted-1);}
/* Tageszahl (eigene Ebene über Kachel + Band) */
.mv-daynum{grid-row:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;padding-top:4px;pointer-events:none;z-index:2;overflow:hidden;}
.mv-daynum.out{opacity:.4;}
.mv-n{font-size:13px;font-weight:600;color:var(--text);width:24px;height:21px;display:flex;align-items:center;justify-content:center;line-height:1;}
.mv-daynum.we .mv-n{color:var(--muted-1);}
.mv-daynum.so .mv-n{color:color-mix(in srgb,var(--red) 78%,var(--text));}
.mv-daynum.today .mv-n{font-weight:800;color:var(--text);}
.mv-fei{font-size:8px;line-height:1.05;color:var(--green);max-width:100%;padding:0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* Termin-Chips: Höhe = --mv-h (Balken ↔ Titel-Chip), Titel blendet mit --mv-topa ein */
.mv-chip{height:var(--mv-h,6px);margin:0 3px 2px;overflow:hidden;border-radius:4px;display:flex;align-items:center;cursor:pointer;z-index:3;
  background:color-mix(in srgb,var(--bc) var(--mv-chipmix,42%),var(--mv-tile,var(--surface)));transition:height .27s cubic-bezier(.22,.8,.3,1);}
.cal-vgrow.mv-dragging .mv-chip{transition:none;}
.mv-chip:active{filter:brightness(.92);}
.mv-chip.multi{background:color-mix(in srgb,var(--bc) calc(var(--mv-chipmix,42%) + 14%),var(--mv-tile,var(--surface)));justify-content:center;}
.mv-chip.cl{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-4px;}
.mv-chip.cr{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-4px;}
.mv-chip.fei{background:color-mix(in srgb,var(--green) 15%,var(--mv-tile,var(--surface)));}
/* Titel: schwarz im Hell-, weiß im Dunkelmodus (var --text folgt dem Theme); Chip trägt die Themengebiet-Farbe.
   Bewusst klein & schlank (nicht fett) → mehr Text passt in die Zelle. */
.mv-chip-t{font-size:9.5px;font-weight:600;line-height:1.15;padding:0 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  color:var(--text);
  opacity:var(--mv-topa,1);transition:opacity .2s ease;}
.cal-vgrow.mv-dragging .mv-chip-t{transition:none;}
.mv-chip.multi .mv-chip-t{font-weight:650;}
.mv-band{grid-row:1/-1;align-self:stretch;border-radius:10px;background:color-mix(in srgb,var(--bc) 14%,transparent);z-index:1;pointer-events:none;}

/* Jahresübersicht: 12 Mini-Monate */
.yv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 2px;}
.yv-month{border:none;font-family:inherit;cursor:pointer;text-align:left;padding:8px 7px 7px;border-radius:12px;
  background:color-mix(in srgb,var(--surface) 84%,var(--text) 16%);}
.yv-month:active{filter:brightness(1.08);}
.yv-title{font-size:11.5px;font-weight:800;color:var(--accent);margin-bottom:5px;}
.yv-days{display:grid;grid-template-columns:repeat(7,1fr);row-gap:3px;}
.yv-d{position:relative;font-size:8px;font-weight:600;color:var(--text);text-align:center;line-height:1.55;}
.yv-d.we{color:var(--muted-1);}
.yv-d.today{background:var(--accent);color:var(--accent-ink);border-radius:50%;font-weight:800;}
.yv-dot{position:absolute;left:50%;transform:translateX(-50%);bottom:-2px;width:3px;height:3px;border-radius:50%;display:block;}

/* Touch-Foto-Editor (Admin: Avatar-Kreis / Trommel-Raster) */
#ape-ov{position:fixed;inset:0;z-index:10060;background:rgba(5,8,14,.94);display:flex;flex-direction:column;
  padding:calc(14px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px));}
  /* z-index 10060: über Foto-Langdruck-Menü (10000) UND Dashboard-Foto-Sheet (10050) */
.ape-head{color:#fff;font-size:16px;font-weight:750;text-align:center;flex:none;}
.ape-hint{font-size:12px;font-weight:500;color:rgba(255,255,255,.55);margin-top:3px;}
.ape-stage{flex:1;display:flex;align-items:center;justify-content:center;touch-action:none;min-height:0;}
.ape-vp{position:relative;overflow:hidden;box-shadow:0 0 0 2000px rgba(5,8,14,.55);background:#111;
  border-radius:16px;border:2.5px solid rgba(255,255,255,.85);}   /* Größe kommt inline (Seitenverhältnis) */
.ape-vp.round{border-radius:50%;}
.ape-img{position:absolute;left:50%;top:50%;max-width:none;will-change:transform;pointer-events:none;user-select:none;-webkit-user-drag:none;}
.ape-btns{display:flex;gap:10px;flex:none;}
.ape-btns .btn{flex:1;}
.ape-btns .btn-ghost{color:#fff;border-color:rgba(255,255,255,.3);}

/* Offline-Hinweis */
#offline-chip{position:fixed;top:calc(8px + env(safe-area-inset-top,0px));left:50%;z-index:85;
  transform:translateX(-50%) translateY(-56px);display:flex;align-items:center;gap:6px;
  background:color-mix(in srgb,var(--amber) 18%,var(--surface));border:1px solid color-mix(in srgb,var(--amber) 45%,var(--border));
  color:var(--text);font-size:12px;font-weight:700;padding:6px 13px;border-radius:999px;box-shadow:var(--shadow-lg);
  pointer-events:none;transition:transform .35s cubic-bezier(.22,.8,.3,1);}
#offline-chip i{color:var(--amber);font-size:15px;}
#offline-chip.show{transform:translateX(-50%) translateY(0);}

.cal-range-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;
  background:color-mix(in srgb,var(--accent) 12%,var(--surface));
  border-radius:10px;margin-bottom:8px;font-size:13px;color:var(--text);}
.ek-cell-title{font-size:8.5px;font-weight:700;line-height:1.2;width:100%;text-align:center;
  padding:0 3px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;}
/* Einsatzkalender Stacked-Card Detail */
.ek-mc-front{border-radius:14px;padding:14px;background:var(--surface);
  box-shadow:0 2px 16px rgba(0,0,0,.1);margin-top:8px;}
[data-theme="dark"] .ek-mc-front{box-shadow:0 2px 16px rgba(0,0,0,.35);}
.ek-mc-back{display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:12px;
  background:var(--surface-2);cursor:pointer;opacity:.78;transition:opacity .12s;}
.ek-mc-back:active{opacity:1;}
.cal-dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;max-width:80%;}
.cal-dots i{width:6px;height:6px;border-radius:50%;display:block;}
/* ===== Protokoll-Eintrag: Anhang-Chips (Foto/Datei/Memo) ===== */
.memo-att-chip{display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);
  border:1px solid var(--border);border-radius:9px;padding:6px 10px;margin:0 8px 8px 0;font-size:12.5px;}
.memo-att-chip > .ti-x{cursor:pointer;color:var(--muted-1);font-size:15px;}
#memo-mic.recording{color:var(--red);box-shadow:inset 0 0 0 1.5px var(--red);}

/* ===== „Mein Tag" – Tagesüberblick (Mein Bereich) ===== */
.mt-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:13px 14px;margin:0 14px 4px;box-shadow:var(--shadow);}
.mt-date{font-size:12px;color:var(--muted-1);font-weight:600;margin-bottom:9px;}
.mt-hero{background:color-mix(in srgb,var(--c) 13%,var(--surface-2));border:1px solid color-mix(in srgb,var(--c) 28%,var(--border));border-radius:12px;padding:11px 12px;}
.mt-hero-row{display:flex;align-items:center;gap:10px;}
.mt-hero-ic{width:34px;height:34px;border-radius:10px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;}
.mt-hero-t{font-weight:750;font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mt-hero-s{font-size:12px;color:var(--muted-1);}
.mt-chips{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap;}
.mt-chip{font-size:11px;font-weight:650;padding:4px 9px;border-radius:8px;background:var(--surface);border:1px solid var(--border);color:var(--text);}
.mt-chip.g{color:var(--green);}
.mt-sec{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--muted-1);text-transform:uppercase;margin:14px 2px 7px;}
.mt-item{display:flex;align-items:center;gap:11px;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--muted-1);border-radius:11px;padding:9px 11px;margin-bottom:7px;}
.mt-tm{font-size:12px;font-weight:700;width:48px;flex:none;text-align:center;}
.mt-it{font-size:13.5px;font-weight:650;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mt-is{font-size:11.5px;color:var(--muted-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mt-chev{color:var(--muted-1);font-size:15px;flex:none;}

/* ===== Wochenplan – konsolidierte Wochenansicht ===== */
.wp2-kw{font-size:14px;font-weight:800;color:var(--text);padding:2px 6px 10px;}
.wp2-list{padding:0 4px;}
.wp2-day{display:flex;align-items:stretch;gap:11px;padding:11px 6px;border-bottom:1px solid var(--border);cursor:pointer;}
.wp2-day:active{background:var(--surface-2);}
.wp2-day.we{opacity:.66;}
.wp2-dcol{width:34px;flex:none;text-align:center;align-self:center;}
.wp2-wd{font-size:11px;font-weight:700;color:var(--muted-1);}
.wp2-wd.tod{color:var(--accent);}
.wp2-dn{font-size:16px;font-weight:800;color:var(--text);width:26px;height:26px;line-height:26px;margin:1px auto 0;}
.wp2-dn.tod{background:var(--accent);color:var(--accent-ink);border-radius:8px;}
.wp2-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;justify-content:center;}
.wp2-pill{align-self:flex-start;max-width:100%;box-sizing:border-box;font-size:12.5px;font-weight:600;padding:4px 9px;border-radius:8px;
  background:color-mix(in srgb,var(--c) 14%,var(--surface-2));color:var(--c);border-left:2.5px solid var(--c);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wp2-pill b{font-weight:800;}
.wp2-frei{font-size:12.5px;color:var(--muted-1);align-self:center;}
.wp2-hrs{flex:none;align-self:center;text-align:right;font-weight:800;font-size:14px;color:var(--text);min-width:42px;}
.wp2-tot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 14px;
  background:var(--surface-2);border:1px solid var(--border);border-radius:12px;font-size:13px;color:var(--muted-1);}
.wp2-tot b{font-size:16px;color:var(--text);}
.wp2-soll{font-size:12px;font-weight:600;color:var(--muted-1);}

/* ===== Einsatz-Briefing („Startklar") ===== */
.bf-open{display:flex;align-items:center;gap:9px;width:100%;margin-bottom:14px;padding:13px 14px;border:none;border-radius:13px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--ec),color-mix(in srgb,var(--ec) 70%,#000));box-shadow:0 8px 20px color-mix(in srgb,var(--ec) 40%,transparent);}
.bf-open i{font-size:18px;}
.bf-wrap{padding-bottom:26px;}
.bf-hero{position:relative;padding:46px 16px 18px;color:#fff;background:linear-gradient(135deg,var(--ec),color-mix(in srgb,var(--ec) 60%,#000));overflow:hidden;}
.bf-hero::after{content:"";position:absolute;right:-50px;top:-50px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.08);}
.bf-back{position:absolute;top:12px;left:10px;width:36px;height:36px;border-radius:10px;border:none;background:rgba(255,255,255,.18);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;}
.bf-tags{display:flex;gap:7px;margin-bottom:9px;position:relative;z-index:1;}
.bf-bd{font-size:10px;font-weight:800;letter-spacing:.05em;padding:5px 10px;border-radius:999px;background:rgba(0,0,0,.22);}
.bf-bd.gl{background:rgba(255,255,255,.22);}
.bf-eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;opacity:.82;margin-bottom:3px;position:relative;z-index:1;}
.bf-htitle{font-size:20px;font-weight:850;line-height:1.16;text-shadow:0 2px 10px rgba(0,0,0,.25);position:relative;z-index:1;}
.bf-hsub{font-size:12.5px;opacity:.92;margin-top:6px;position:relative;z-index:1;}
.bf-body{padding:15px;}
.bf-tl{display:flex;align-items:flex-start;justify-content:space-between;position:relative;margin-bottom:4px;}
.bf-tl::before{content:"";position:absolute;left:26px;right:26px;top:7px;height:2px;background:var(--border);}
.bf-stp{position:relative;z-index:2;text-align:center;flex:1;}
.bf-dot{width:14px;height:14px;border-radius:50%;background:var(--surface-1);border:3px solid var(--muted-1);margin:0 auto 6px;}
.bf-tt{font-size:13px;font-weight:850;color:var(--text);font-variant-numeric:tabular-nums;}
.bf-kk{font-size:8.5px;font-weight:700;letter-spacing:.02em;color:var(--muted-1);text-transform:uppercase;margin-top:1px;}
.bf-crew{margin:18px 0 8px;}
.bf-crew+.bf-crew{margin-top:14px;}
.bf-crewhd{font-size:11.5px;font-weight:800;letter-spacing:.06em;color:var(--muted-1);text-transform:uppercase;margin-bottom:9px;text-align:center;}
.bf-crewhd b{color:var(--ec);}
.bf-bandsub{font-weight:600;color:var(--muted-1);text-transform:none;letter-spacing:0;}
.bf-stage-empty{align-self:center;margin:auto;font-size:11.5px;font-weight:600;color:#fff;text-transform:none;letter-spacing:0;text-shadow:0 1px 4px rgba(0,0,0,.6);padding:0 18px;text-align:center;}
.bf-bandmat{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:9px;}
/* „Dicke Linie um alle ziehen": Team als ein gerahmtes Mannschaftsbild, groß & im Fokus */
.bf-stage{display:flex;justify-content:center;align-items:flex-end;aspect-ratio:4/3;min-height:150px;padding:0 8px 0;border:4px solid var(--ec);border-radius:18px;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,color-mix(in srgb,var(--ec) 9%,var(--surface-2)) 0%,color-mix(in srgb,var(--ec) 27%,var(--surface-2)) 100%);box-shadow:0 12px 28px color-mix(in srgb,var(--ec) 26%,transparent),inset 0 1px 0 rgba(255,255,255,.07);}
.bf-fig{width:auto;align-self:flex-end;filter:drop-shadow(0 7px 9px rgba(0,0,0,.34));}
.bf-fig:first-child{margin-left:0;}
.bf-fig.lead{filter:drop-shadow(0 11px 14px rgba(0,0,0,.48));}
.bf-names{text-align:center;font-size:12px;font-weight:600;color:var(--text);margin-top:9px;line-height:1.45;}
/* Lagekarte + Wetter */
.bf-geo{margin:4px 0 2px;}
.bf-map{height:172px;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);}
.bf-map-off{min-height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:16px;border:1px dashed var(--border);background:var(--surface-2);color:var(--muted-1);font-size:12.5px;text-align:center;padding:12px;}
.bf-map-off>i{font-size:22px;}
.bf-adr{display:flex;align-items:center;gap:8px;margin-top:9px;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:3px 5px 3px 11px;}
.bf-adr-ic{color:var(--accent);font-size:17px;flex:none;}
.bf-adr-in{flex:1;min-width:0;border:none;background:transparent;color:var(--text);font-size:13px;font-family:inherit;padding:7px 0;outline:none;}
.bf-adr-in::placeholder{color:var(--muted-1);}
.bf-adr-btn{flex:none;width:34px;height:34px;border-radius:9px;border:none;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:17px;cursor:pointer;}
.bf-maprow{display:flex;align-items:center;gap:8px;margin:9px 2px 0;}
.bf-coord{flex:1;font-size:12px;color:var(--muted-1);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bf-maplink{flex:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:9px;padding:5px 10px;font-size:12px;font-weight:650;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;}
.bf-anfahrt{display:flex;align-items:center;gap:7px;margin-top:9px;font-size:12.5px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 11px;}
.bf-anfahrt i{color:var(--accent);font-size:16px;flex:none;}
.bf-anfahrt b{font-weight:750;}
.bf-anf-est{color:var(--muted-1);font-weight:500;}
.bf-sun{display:flex;justify-content:space-around;gap:10px;margin-top:9px;padding:9px 11px;border-radius:11px;background:color-mix(in srgb,var(--amber) 12%,var(--surface-2));border:1px solid color-mix(in srgb,var(--amber) 30%,var(--border));font-size:12.5px;color:var(--text);}
.bf-sun b{font-weight:800;font-variant-numeric:tabular-nums;}
.bf-wx{margin-top:11px;}
.bf-wxload{font-size:12.5px;color:var(--muted-1);padding:8px 2px;}
.bf-amp{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:12px;background:color-mix(in srgb,var(--ac) 13%,var(--surface-2));border:1px solid color-mix(in srgb,var(--ac) 38%,var(--border));color:var(--text);font-size:12.5px;margin-bottom:9px;}
.bf-amp i{color:var(--ac);font-size:19px;flex:none;}
.bf-wxgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;}
.bf-wxc{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);}
.bf-wxc i{font-size:17px;color:var(--accent);}
.bf-wxc b{font-size:14px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;}
.bf-wxc small{font-size:9.5px;font-weight:600;letter-spacing:.02em;color:var(--muted-1);text-transform:uppercase;}
.bf-verort{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1.5px dashed color-mix(in srgb,var(--ec,var(--accent)) 50%,var(--border));background:color-mix(in srgb,var(--ec,var(--accent)) 7%,var(--surface-2));border-radius:14px;padding:13px 14px;cursor:pointer;font-family:inherit;color:var(--text);}
.bf-verort-ic{width:38px;height:38px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ec,var(--accent)) 20%,transparent);color:var(--ec,var(--accent));font-size:20px;}
.bf-verort-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.bf-verort-tx b{font-size:14px;}
.bf-verort-tx small{font-size:12px;color:var(--muted-1);line-height:1.3;}
.bf-verort>.ti-chevron-right{color:var(--muted-1);flex:none;}
.bf-pinmap{height:300px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);}
.bf-pincoord{margin-top:8px;font-size:12.5px;color:var(--muted-1);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:5px;}
.bf-pin span{display:block;width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--ec,var(--accent));border:2px solid #fff;box-shadow:0 2px 5px rgba(0,0,0,.4);}
/* Karte: antippbar → Vollbild */
.bf-mapbox{position:relative;cursor:pointer;isolation:isolate;}
.bf-mapbox .bf-map{pointer-events:none;}
.bf-mapexpand{position:absolute;right:9px;top:9px;z-index:600;display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;background:color-mix(in srgb,var(--surface) 86%,transparent);color:var(--text);border:1px solid var(--border);font-size:12px;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.22);backdrop-filter:blur(3px);}
.bf-mapexpand i{font-size:15px;color:var(--accent);}
.bf-mapfull{position:fixed;inset:0;z-index:4000;background:var(--surface);display:flex;flex-direction:column;}
.bf-mapfull-bar{display:flex;align-items:center;gap:10px;padding:12px 12px;padding-top:max(12px,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);}
.bf-mapfull-x,.bf-mapfull-ext{flex:none;width:40px;height:40px;border-radius:11px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;text-decoration:none;}
.bf-mapfull-t{flex:1;min-width:0;font-size:15px;font-weight:750;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bf-mapfull-map{flex:1;min-height:0;}
/* Live-Züge (eingebettetes geOps-Portal) */
.lz-frame{flex:1;min-height:0;width:100%;border:0;background:#fff;}
.lz-hint{flex:none;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;padding-bottom:max(9px,env(safe-area-inset-bottom));background:var(--surface-2);border-top:1px solid var(--border);font-size:12.5px;color:var(--muted-1);}
.lz-hint a{display:inline-flex;align-items:center;gap:5px;color:var(--accent);font-weight:700;text-decoration:none;}
/* Notizen & Memos */
.bf-memos{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;}
.bf-memo{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:9px 11px;}
.bf-memo-hd{display:flex;align-items:center;gap:6px;margin-bottom:5px;}
.bf-memo-nm{font-size:11.5px;font-weight:700;color:var(--text);}
.bf-memo-vis{font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:1px 6px;border-radius:6px;background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green);}
.bf-memo-vis.priv{background:color-mix(in srgb,var(--violet) 18%,transparent);color:var(--violet);}
.bf-memo-dt{flex:1;text-align:right;font-size:11px;color:var(--muted-1);}
.bf-memo-del{font-size:14px;color:var(--red);cursor:pointer;padding:2px 3px;}
.bf-memo-tx{font-size:13px;line-height:1.5;color:var(--text);white-space:pre-wrap;}
.bf-memo-empty{font-size:12.5px;color:var(--muted-1);padding:4px 2px 10px;}
.bf-memo-actions{display:flex;gap:8px;}
.bf-memo-add{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 8px;border-radius:11px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:12.5px;font-weight:650;font-family:inherit;cursor:pointer;}
.bf-memo-add i{font-size:16px;color:var(--accent);}
/* Einsätze: Schnellzugriff Einsatzbesprechung */
.bsp-quickwrap{margin:2px 0 16px;}
.bsp-quick-h{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-1);margin:2px 2px 9px;}
.bsp-quick-h i{font-size:15px;color:var(--accent);}
.bsp-quick{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid var(--border);border-left:4px solid var(--ec);background:color-mix(in srgb,var(--ec) 7%,var(--surface));border-radius:13px;padding:11px 13px;margin-bottom:8px;cursor:pointer;font-family:inherit;color:var(--text);}
.bsp-q-cd{flex:none;min-width:50px;text-align:center;font-size:12px;font-weight:850;letter-spacing:.02em;color:var(--ec);background:color-mix(in srgb,var(--ec) 14%,transparent);border-radius:9px;padding:7px 8px;font-variant-numeric:tabular-nums;}
.bsp-q-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.bsp-q-tx b{font-size:14px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bsp-q-tx small{font-size:11.5px;color:var(--muted-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bsp-q-go{flex:none;color:var(--muted-1);font-size:18px;}
/* Crew als überlappende Porträt-Karten (Alternative zu freigestellt) */
.bf-card{width:84px;height:150px;flex:none;margin-left:-46px;border-radius:14px;background-size:cover;background-position:center 20%;border:3px solid var(--surface-1);box-shadow:0 7px 16px rgba(0,0,0,.34);}
.bf-card:first-child{margin-left:0;}
.bf-card.lead{width:96px;height:168px;box-shadow:0 10px 24px rgba(0,0,0,.45);}
/* Material mit echten Fotos */
.bf-leaf{gap:8px;}
.bf-mph{display:flex;flex-direction:column;align-items:center;gap:4px;width:62px;}
.bf-mimg{width:58px;height:58px;border-radius:10px;background-size:cover;background-position:center;border:2px solid var(--border);background-color:var(--surface-2);}
.bf-mlbl{font-size:9.5px;font-weight:600;color:var(--text);text-align:center;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62px;}
.bf-info{font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:10px 12px;margin-top:12px;}
.bf-info i{color:var(--muted-1);}
.bf-sec{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--muted-1);text-transform:uppercase;margin:18px 2px 10px;}
.bf-tree{margin-left:6px;border-left:2px solid var(--border);}
.bf-tn{position:relative;padding-left:16px;}
.bf-tn::before{content:"";position:absolute;left:0;top:18px;width:12px;height:2px;background:var(--border);}
.bf-tc{display:flex;align-items:center;gap:9px;padding:7px 0;}
.bf-ic{width:28px;height:28px;border-radius:9px;background:color-mix(in srgb,var(--c) 15%,var(--surface-2));color:var(--c);display:flex;align-items:center;justify-content:center;font-size:15px;flex:none;}
.bf-tnm{font-size:12.5px;font-weight:750;color:var(--text);}
.bf-ct{margin-left:auto;font-size:10.5px;color:var(--muted-1);font-weight:700;}
.bf-leaf{display:flex;flex-wrap:wrap;gap:5px;padding:0 0 7px 37px;}
.bf-pm{font-size:11px;font-weight:600;padding:3px 9px;border-radius:7px;background:color-mix(in srgb,var(--c) 12%,var(--surface-2));color:var(--c);}
.bf-note{font-size:13px;line-height:1.5;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:11px 12px;white-space:pre-wrap;}
.bf-laws{display:flex;flex-wrap:wrap;gap:6px;}
.bf-law{font-size:11.5px;font-weight:650;padding:5px 10px;border-radius:8px;background:color-mix(in srgb,var(--violet) 13%,var(--surface-2));color:var(--violet);cursor:pointer;}
.bf-cta{display:flex;gap:9px;margin-top:18px;}
.bf-b{flex:1;text-align:center;font-size:13.5px;font-weight:800;padding:13px;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;border:none;cursor:pointer;font-family:inherit;}
.bf-b.p{background:var(--ec,var(--accent));color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--ec,var(--accent)) 38%,transparent);}
.bf-b.g{background:var(--surface-2);border:1px solid var(--border);color:var(--text);}

/* ===== Termin-Erinnerungen – Banner (Startseite) ===== */
.rem-banner{display:flex;flex-direction:column;gap:8px;margin:0 0 14px;}
.rem-item{display:flex;align-items:center;gap:11px;background:color-mix(in srgb,var(--c) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 30%,var(--border));border-left:3px solid var(--c);border-radius:13px;padding:11px 12px;cursor:pointer;}
.rem-item:active{filter:brightness(.98);}
.rem-ic{font-size:19px;color:var(--c);flex:none;}
.rem-tx{flex:1;min-width:0;}
.rem-lbl{font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--c);}
.rem-t{font-size:13px;font-weight:650;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
.rem-x{font-size:16px;color:var(--muted-1);flex:none;padding:3px;cursor:pointer;}

/* ===== Behördenportal – einklappbare Kategorien ===== */
.beh-acc{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;padding:11px 13px;box-shadow:var(--shadow);}
.beh-acc-h{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;}
.beh-acc .list{margin-top:8px;}

/* ===== News-Ticker (Startseite, unter Avatar / über Suche) ===== */
.newsticker{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:13px;height:38px;padding:0 6px 0 0;margin:0 0 12px;overflow:hidden;cursor:pointer;transition:filter .12s;}
.newsticker:active{filter:brightness(.97);}
.newsticker .nt-ico{flex:none;width:34px;display:flex;align-items:center;justify-content:center;color:var(--muted-1);font-size:17px;}
.newsticker.has-eil .nt-ico{color:var(--red);}
.nt-vp{flex:1;min-width:0;overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.nt-track{display:inline-flex;align-items:center;gap:16px;white-space:nowrap;will-change:transform;animation:ntmarquee 90s linear infinite;}
.newsticker:active .nt-track{animation-play-state:paused;}
.nt-it{font-size:13px;color:var(--text);font-weight:550;}
.nt-it .nt-src{color:var(--blue);font-weight:700;}
.nt-eil{background:var(--red);color:#fff;font-size:9.5px;font-weight:800;letter-spacing:.03em;padding:2px 6px;border-radius:6px;display:inline-block;line-height:1.3;}
.nt-sep{color:var(--muted-1);opacity:.45;}
.nt-more{color:var(--muted-1);flex:none;font-size:16px;margin-left:2px;}
@keyframes ntmarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){ .nt-track{animation-duration:120s;} }
/* Allgemeiner Kalender (kompakt): Zahl oben anheften, Platz für gestapelte Striche darunter */
.cal-month:not(.cal-month-tall) .cal-cell:not(.big){justify-content:flex-start;padding-top:6px;min-height:54px;}
/* Eintägige Termine: je Termin ein farbiger, abgerundeter Strich (gestapelt, am Zellenboden) */
.cal-lines{margin-top:auto;width:100%;padding:0 6px 1px;display:flex;flex-direction:column;gap:2px;align-items:stretch;}
.cal-lines i{height:3px;border-radius:2px;display:block;}
.cal-lines b{font-size:8px;font-weight:700;color:var(--muted-1);line-height:1;text-align:center;margin-top:1px;}
.cal-more{font-size:9px;font-weight:700;color:var(--muted-1);line-height:1;}
/* Feiertag-Label in Tageszelle */
.cal-feiertag{font-size:7.5px;font-weight:700;color:var(--amber);text-transform:uppercase;
  letter-spacing:.02em;line-height:1;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* Mini-Avatare in Tageszelle */
.cal-mini-avs{display:flex;gap:1px;align-items:center;margin-top:auto;}
.cal-mini-av{width:13px;height:13px;border-radius:50%;object-fit:cover;border:1px solid var(--surface);}
.cal-mini-more{font-size:8px;font-weight:700;color:var(--muted-1);}
/* Feiertag in Wochenansicht */
.wk-feiertag{font-size:11px;font-weight:600;color:var(--amber);margin-left:8px;}
/* Feiertag in Agenda */
.agenda-feiertag{font-size:11px;font-weight:600;color:var(--amber);margin-left:8px;vertical-align:middle;}

/* Wochenliste */
.wk-day{margin-bottom:9px;}
.wk-head{font-size:13.5px;color:var(--text);margin-bottom:5px;display:flex;align-items:center;gap:8px;cursor:pointer;}
.wk-head b{font-weight:750;}
.wk-day.today .wk-head{color:var(--accent);}
.wk-empty{color:var(--muted-1);font-size:12.5px;padding:1px 2px 5px;border-bottom:1px solid var(--border-2);}
.wk-evs{display:flex;flex-direction:column;gap:4px;}
/* Farbig hervorgehobene Terminzeile (Woche + Agenda) */
.ev-row.ev-colored{border-top:none;padding:7px 11px;border-radius:10px;cursor:pointer;gap:8px;display:flex;align-items:center;}
.ev-row.ev-colored>div{flex:1;min-width:0;}
.ev-row.ev-colored:first-child{border-top:none;}
.ev-row.ev-colored .ev-s{font-size:12px;margin-top:1px;}
.ev-row.ev-colored .pill{flex:none;align-self:center;}
/* Bearbeitungsprotokoll */
.ev-audit{font-size:10.5px;color:var(--muted-1);margin-top:2px;display:flex;align-items:center;gap:4px;}

/* Wochenplan – tippbare Terminblöcke */
.wp-block{position:absolute;left:2px;right:2px;z-index:2;cursor:pointer;overflow:hidden;
  padding:2px 4px;border-radius:5px;
  background:color-mix(in srgb,var(--c) 18%,var(--surface));
  border:1px solid color-mix(in srgb,var(--c) 32%,var(--border));
  border-left:3px solid var(--c);transition:filter .1s;}
.wp-block:active{filter:brightness(.94);}
.wp-block-t{font-size:9.5px;font-weight:700;color:var(--c);line-height:1.15;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;}
.wp-block-s{font-size:8.5px;color:var(--muted-1);margin-top:1px;white-space:nowrap;}
/* Ganztägige Abwesenheiten – schmale Chips oberhalb der Dienstzeit */
.wp-allday{min-width:0;cursor:pointer;border-radius:0 5px 5px 0;padding:3px 5px;
  background:color-mix(in srgb,var(--c) 16%,var(--surface));
  border-left:3px solid var(--c);transition:filter .1s;}
.wp-allday:active{filter:brightness(.94);}
.wp-allday span{display:block;font-size:9.5px;font-weight:700;color:var(--c);line-height:1.1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Agenda */
.agenda-day{margin-bottom:13px;}
.agenda-h{font-size:13px;font-weight:750;color:var(--text);margin:0 2px 7px;
  text-transform:uppercase;letter-spacing:.03em;}

/* ============================================================
   Eintragen-Formulare
   ============================================================ */
.add-choice{display:flex;align-items:center;gap:13px;width:100%;background:var(--surface-2);
  border:1px solid var(--border);border-radius:14px;padding:13px 14px;margin-bottom:9px;cursor:pointer;
  font-family:inherit;text-align:left;}
.add-choice:active{transform:scale(.99);}
.add-ic{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;
  font-size:21px;flex:none;}
.add-l{font-size:15px;font-weight:650;color:var(--text);}
.add-go{margin-left:auto;color:var(--muted-1);font-size:18px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.teiln{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px;}
.tchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);
  color:var(--muted-1);font-family:inherit;font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:999px;
  cursor:pointer;opacity:.7;transition:.15s;}
.tchip.on{opacity:1;color:var(--text);border-color:color-mix(in srgb,var(--c) 55%,var(--border));
  background:color-mix(in srgb,var(--c) 14%,var(--surface));}

/* Avatar-Picker (Teilnehmer-Auswahl im Formular) */
/* Trupp-Aufteilung im Einsatz-Formular */
.trupp-block{margin-bottom:4px;}
.trupp-block.multi{border:1px solid var(--border);border-left:4px solid var(--tc);border-radius:12px;
  padding:12px 12px 2px;margin-bottom:12px;background:color-mix(in srgb,var(--tc) 5%,var(--surface));}
.trupp-hd{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.trupp-dot{width:11px;height:11px;border-radius:50%;flex:none;}
.trupp-num{font-weight:800;font-size:14px;flex:1;}
.trupp-del{background:none;border:none;color:var(--muted-1);cursor:pointer;padding:2px 4px;font-size:17px;line-height:1;}
.trupp-row2{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:2px;}
.trupp-row2 .field{flex:1;min-width:130px;margin-bottom:8px;}
.av-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.av-chip{display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 6px 8px;
  border-radius:14px;border:2.5px solid transparent;background:var(--surface-2);
  font-family:inherit;cursor:pointer;min-width:60px;opacity:.65;transition:.15s;}
.av-chip.on{opacity:1;border-color:var(--c,var(--accent));
  background:color-mix(in srgb,var(--c,var(--accent)) 13%,var(--surface));}
.av-pick{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--surface-3);display:block;}
.av-chip span{font-size:10.5px;font-weight:600;color:var(--muted-1);line-height:1.2;
  text-align:center;max-width:60px;word-break:break-word;}
.av-chip.on span{color:var(--fg);}

/* Einsatz-Farbtyp Chips */
.ecol-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:20px;
  font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;
  border:1.5px solid var(--border);background:var(--surface);color:var(--muted-1);transition:all .12s;}
.ecol-chip.on{border-color:var(--accent);background:var(--accent)1a;color:var(--text);}
.ecol-dot{width:10px;height:10px;border-radius:50%;flex:none;}
.ecol-dot-def{background:var(--red);opacity:.6;}

/* Fortbildungs-Detail Sheet */
.det-rows{display:flex;flex-direction:column;gap:0;border-radius:14px;overflow:hidden;border:1px solid var(--border);}
.det-row{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--surface);border-bottom:1px solid var(--border);}
.det-row:last-child{border-bottom:none;}
.det-ic{font-size:17px;color:var(--muted-1);margin-top:1px;flex:none;width:18px;text-align:center;}
.det-lbl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-1);margin-bottom:2px;}
.det-val{font-size:14.5px;color:var(--fg);}

/* Fortbildungs-Kategorie Event-Karte */
.fb-ev-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:13px 14px;cursor:pointer;transition:.12s;}
.fb-ev-card:active{opacity:.75;}
.fb-ev-title{font-weight:700;font-size:15px;margin-bottom:6px;color:var(--fg);}
.fb-ev-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted-1);font-size:12.5px;}
.fb-ev-meta i{margin-right:3px;font-size:13px;vertical-align:-1px;}
.fb-ev-parts{display:flex;gap:3px;margin-top:9px;flex-wrap:wrap;}

/* Fortbildung: Ampel-Dot auf Karte */
.fb-ampel-dot{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.3);}
/* Fälligkeiten-Box */
.fb-fällig-box{background:color-mix(in srgb,var(--amber) 8%,var(--surface));
  border:1px solid color-mix(in srgb,var(--amber) 30%,transparent);
  border-radius:14px;padding:14px;margin-bottom:4px;}
.fb-fällig-ok{background:color-mix(in srgb,var(--green) 8%,var(--surface));
  border:1px solid color-mix(in srgb,var(--green) 30%,transparent);
  border-radius:14px;padding:14px;margin-bottom:4px;
  display:flex;align-items:center;gap:10px;}
.fb-fällig-head{font-size:11px;font-weight:800;color:var(--amber);text-transform:uppercase;
  letter-spacing:.5px;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.fb-fällig-row{padding:8px 0;border-bottom:1px solid var(--border-2);}
.fb-fällig-row:last-child{border-bottom:none;padding-bottom:0;}
/* Fortschrittsbalken */
.fb-prog-track{height:5px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin-top:6px;}
.fb-prog-fill{height:100%;border-radius:999px;transition:width .4s;}
/* Soll-Block in Kategorie-Detail */
.fb-soll-block{background:var(--surface-2);border-radius:12px;padding:14px;margin:12px 14px 4px;}

/* ============================================================
   Mein Bereich · Profil-Dashboard (angelehnt an UI-Referenzen)
   ============================================================ */
.profile-hero{position:relative;border-radius:22px;overflow:hidden;height:200px;margin-top:4px;
  box-shadow:var(--shadow);}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 18%;transform:scale(1.04);}
.hero-veil{position:absolute;inset:0;background:
  linear-gradient(180deg, color-mix(in srgb,var(--pc) 30%,transparent) 0%, transparent 30%, rgba(8,12,20,.35) 60%, rgba(8,12,20,.88) 100%);}
.hero-set{position:absolute;top:10px;right:8px;color:#fff;z-index:2;}
.hero-content{position:absolute;left:0;right:0;bottom:0;padding:16px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;z-index:1;}
.hero-content .av{box-shadow:0 0 0 3px rgba(255,255,255,.85),0 0 0 6px color-mix(in srgb,var(--pc) 70%,transparent) !important;margin-bottom:8px;}
.hero-name{font-size:24px;font-weight:800;color:#fff;letter-spacing:-.02em;text-shadow:0 2px 12px rgba(0,0,0,.5);}
.hero-role{font-size:13px;color:rgba(255,255,255,.92);display:flex;align-items:center;gap:7px;text-shadow:0 2px 10px rgba(0,0,0,.5);}

/* Ring-Gauges */
.ring-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.ring-tile{display:flex;flex-direction:column;align-items:center;gap:6px;}
.ring{width:84px;height:84px;}
.ring-bg{fill:none;stroke:var(--border);stroke-width:8;}
.ring-fg{fill:none;stroke-width:8;stroke-linecap:round;transform:rotate(-90deg);transform-origin:44px 44px;
  transition:stroke-dashoffset .7s cubic-bezier(.2,.8,.25,1);}
.ring-v{fill:var(--text);font-size:24px;font-weight:800;text-anchor:middle;font-family:inherit;}
.ring-label{font-size:12px;font-weight:650;color:var(--muted-1);}

/* Balkendiagramm */
.bars{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;height:130px;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;}
.bar-v{font-size:12px;font-weight:700;color:var(--text);}
.bar-track{width:100%;max-width:34px;flex:1;display:flex;align-items:flex-end;background:var(--surface-2);
  border-radius:8px;overflow:hidden;}
.bar-fill{width:100%;background:var(--accent);border-radius:8px;min-height:4px;
  transition:height .6s cubic-bezier(.2,.8,.25,1);}
.bar-l{font-size:11px;color:var(--muted-1);font-weight:600;}

/* ============================================================
   UAS · Flugwetter
   ============================================================ */
.wx-load{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted-1);
  font-size:13.5px;padding:20px 0;}
.spin{display:inline-block;animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.lnk{color:var(--accent);font-weight:650;cursor:pointer;text-decoration:none;font-size:12.5px;}
.wx-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px;}
.wx-top b{font-size:15px;}
/* UAS-Karte (Leaflet) */
.wx-map-wrap{position:relative;margin-bottom:12px;}
#wx-map{position:relative;height:210px;width:100%;border-radius:14px;z-index:0;background:var(--surface-2);}
.wx-map-expand{position:absolute;top:8px;right:8px;z-index:1;display:flex;align-items:center;gap:6px;
  padding:7px 11px;border:none;border-radius:10px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;
  background:rgba(8,12,20,.72);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.35);backdrop-filter:blur(2px);}
.wx-map-expand i{font-size:14px;}
.wx-map-expand:active{background:rgba(8,12,20,.85);}
.leaflet-container{font:inherit;border-radius:14px;background:var(--surface-2);}
.wx-map-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;}
.wx-rad-group{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:2px;gap:2px;}
.wx-rad{border:none;background:transparent;color:var(--muted-1);font-size:12px;font-weight:700;padding:6px 9px;border-radius:8px;cursor:pointer;}
.wx-rad.on{background:var(--accent);color:var(--accent-ink);}
.wx-mybtn{display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:12px;font-weight:700;padding:7px 11px;border-radius:10px;cursor:pointer;}
.wx-mybtn i{color:var(--accent);font-size:14px;}
.wx-maphint{font-size:11px;color:var(--muted-1);text-align:center;margin-top:6px;}
.wx-map-off{height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;
  background:var(--surface-2);border:1px dashed var(--border);border-radius:14px;color:var(--muted-1);padding:0 16px;}
.wx-map-off i{font-size:28px;color:var(--muted-1);}
.wx-pin{background:none;border:none;}
.wx-pin span{display:block;width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:var(--accent);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);margin:3px;}
/* UAS: Koordinaten-senden-Button + Entfernungsanzeige */
.uas-coord-btn{display:flex;align-items:center;gap:10px;width:100%;margin-bottom:14px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 86%,#000),var(--accent));
  color:var(--accent-ink);border:none;border-radius:16px;padding:15px 16px;
  font-size:15px;font-weight:750;cursor:pointer;box-shadow:var(--shadow);font-family:inherit;}
.uas-coord-btn>span{flex:1;text-align:left;}
.uas-coord-btn>i{font-size:20px;flex:none;}
.uas-coord-btn:active{filter:brightness(.95);}
.coord-dist{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;
  color:var(--green);background:color-mix(in srgb,var(--green) 12%,var(--surface-2));border-radius:10px;padding:9px 12px;}
.coord-dist.over{color:var(--red);background:color-mix(in srgb,var(--red) 12%,var(--surface-2));}
.coord-dist i{font-size:16px;}
.ampel{display:flex;align-items:center;gap:12px;background:color-mix(in srgb,var(--ac) 12%,var(--surface));
  border:1px solid color-mix(in srgb,var(--ac) 40%,transparent);border-radius:14px;padding:12px 14px;margin-bottom:14px;}
.ampel>i{font-size:30px;color:var(--ac);flex:none;}
.ampel-t{font-size:15px;font-weight:750;color:var(--ac);}
.ampel-s{font-size:12.5px;color:var(--muted-1);margin-top:1px;}
.wx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.wx-cell{background:var(--surface-2);border-radius:13px;padding:12px 6px;text-align:center;}
.wx-cell>i{font-size:20px;color:var(--accent);}
.wx-v{font-size:16px;font-weight:750;margin-top:5px;letter-spacing:-.01em;}
.wx-l{font-size:11px;color:var(--muted-1);margin-top:1px;}
.wx-note{font-size:11px;color:var(--muted-1);text-align:center;margin-top:12px;line-height:1.5;}
.wx-zones{margin-top:14px;border-top:1px solid var(--border);padding-top:12px;}
.wx-zones-head{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:650;color:var(--text-2);margin-bottom:8px;}
.wx-zones-head i{font-size:16px;color:var(--amber);}
.wx-zones-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;}
.wx-ztag{font-size:11px;padding:3px 8px;border-radius:8px;background:var(--surface-2);color:var(--muted-1);border:1px solid var(--border);}
.wx-zones-note{font-size:12px;color:var(--muted-1);margin:2px 0 9px;line-height:1.45;}
.wx-zones-btns{display:flex;flex-direction:column;gap:7px;}
.wx-zones-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 0;border-radius:11px;background:color-mix(in srgb,var(--amber) 15%,var(--surface-2));color:var(--amber);font-size:13px;font-weight:650;text-decoration:none;border:1px solid color-mix(in srgb,var(--amber) 30%,transparent);}
.wx-zones-btn.ghost{background:var(--surface-2);color:var(--text);border-color:var(--border);}

/* UAS – Quartal-Selector */
.uas-q-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;}
.uas-sel{flex:1;margin:0;}

/* UAS – Piloten-Fortschritt */
.uas-pilot-grid{display:flex;flex-direction:column;gap:14px;padding:14px 16px;}
.uas-pilot-card{display:flex;align-items:center;gap:14px;}
.uas-pilot-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;}
.uas-pilot-name{font-size:14px;font-weight:700;line-height:1.2;}
.uas-prog-track{height:10px;background:var(--surface-2);border-radius:5px;overflow:hidden;
  border:1px solid var(--border);}
.uas-prog-fill{height:100%;border-radius:5px;transition:width .4s ease;}
.uas-prog-meta{font-size:12px;color:var(--muted-1);line-height:1.3;}

/* ============================================================
   Schießfortbildung – Status-Karten
   ============================================================ */
.schuss-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px;}
.schuss-card{background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left;width:100%;}
.schuss-card-inner{border-radius:14px;padding:12px 13px;display:flex;flex-direction:column;gap:5px;
  border:1px solid var(--border);transition:opacity .15s;}
.schuss-card:active .schuss-card-inner{opacity:.75;}
.schuss-card-lbl{font-size:13px;font-weight:700;color:var(--text);line-height:1.25;}
.schuss-card-st{font-size:12px;font-weight:650;display:flex;align-items:center;gap:4px;}
.schuss-ref-val{font-size:11px;color:var(--muted-1);}

/* Schuss-Rechner im Sheet */
.schuss-calc-row{display:flex;align-items:flex-end;gap:8px;margin-bottom:4px;}
.schuss-calc-cell{flex:1;min-width:0;display:flex;flex-direction:column;}
.schuss-calc-op{font-size:22px;font-weight:700;color:var(--muted-1);padding-bottom:10px;flex:none;}
.schuss-ref-box{background:var(--surface-2);font-weight:700;font-size:17px;
  text-align:center;display:flex;align-items:center;justify-content:center;}
.schuss-hint{font-size:12.5px;font-weight:600;min-height:18px;margin-top:4px;}

/* Toggle */
.toggle-row{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer;user-select:none;}
.toggle-ic{width:46px;height:26px;border-radius:13px;position:relative;flex:none;transition:background .2s;}
.toggle-ic::after{content:'';position:absolute;width:20px;height:20px;border-radius:50%;
  top:3px;background:#fff;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.3);}
.t-on{background:var(--green);}
.t-on::after{transform:translateX(22px);}
.t-off{background:var(--muted-1);}
.t-off::after{transform:translateX(3px);}

/* DSA – Deutsches Sportabzeichen */
.dsa-gender-row{display:flex;gap:10px;margin-bottom:12px;}
.dsa-gender-btn{flex:1;padding:10px 0;border-radius:12px;border:2px solid var(--muted-1);
  background:var(--surface-2);color:var(--text-2);font-size:14px;font-weight:600;
  display:flex;align-items:center;justify-content:center;gap:6px;transition:all .18s;}
.dsa-gender-btn.dsa-g-on{border-color:var(--accent);background:var(--accent-tint);color:var(--accent);}
.dsa-disc-row{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:10px;margin-bottom:10px;}
.dsa-disc-lbl{font-size:13px;font-weight:700;color:var(--text-2);}
.dsa-disc-fields{display:flex;gap:8px;}
.dsa-sport-in{flex:1;min-width:0;}
.dsa-wert-sel{width:100px;flex:none;}
.dsa-total{text-align:center;font-size:32px;font-weight:800;padding:10px 0 4px;
  background:var(--surface-2);border-radius:14px;margin:12px 0;}

/* ============================================================
   Monatskalender – Wochenraster mit Balken für mehrtägige Events
   ============================================================ */
.cal-week-head{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:5px;padding:0 1px;}
.cal-month{border:.5px solid var(--border-2);border-radius:12px;overflow:hidden;background:var(--surface);}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:.5px solid var(--border-2);}
.cal-week:last-child{border-bottom:none;}
/* Mehrtägiger Balken */
.cal-mbar{
  height:15px;min-width:0;
  background:color-mix(in srgb,var(--bc) 20%,var(--surface));
  color:var(--bc);
  font-size:9px;font-weight:660;
  padding:0 5px;margin:0 1px 1.5px;
  display:flex;align-items:center;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  cursor:pointer;border-radius:3px;
  transition:filter .12s;
}
.cal-mbar:active{filter:brightness(.85);}
.cal-mbar.ms{border-radius:4px 0 0 4px;border-left:2.5px solid var(--bc);}
.cal-mbar.me{border-radius:0 4px 4px 0;}
.cal-mbar.ms.me{border-radius:4px;}
/* Kompakt-Modus: dünnes, durchgehendes Ribbon ohne Titel (wie Einsatzkalender) */
.cal-mbar.mini{height:6px;padding:0;margin:0 0 2px;border-radius:0;
  background:var(--bc);color:transparent;border-left:none;}
.cal-mbar.mini.ms{border-radius:3px 0 0 3px;margin-left:3px;border-left:none;}
.cal-mbar.mini.me{border-radius:0 3px 3px 0;margin-right:3px;}
.cal-mbar.mini.ms.me{border-radius:3px;}

/* ============================================================
   Konflikte – Detail-Sheet
   ============================================================ */
.conf-pair{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;
  padding:10px 12px;margin-bottom:10px;}
.conf-vs{font-size:12px;font-weight:650;color:var(--amber);
  display:flex;align-items:center;gap:5px;padding:4px 0;margin:0 4px;}

/* ============================================================
   Zeitauswahl (Auswahlrad = native <select>)
   ============================================================ */
.time-pick{display:flex;align-items:center;gap:6px;margin-top:6px;}
.time-sel{width:auto;flex:1;text-align:center;padding:10px 6px;
  appearance:none;-webkit-appearance:none;cursor:pointer;}
.time-sep{font-size:18px;font-weight:700;color:var(--muted-1);flex:none;}
/* Zeit-Rad: tippbare Pille */
.time-pill{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;width:100%;margin-top:6px;
  background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:11px 12px;
  font-size:16px;font-weight:800;color:var(--text);cursor:pointer;transition:filter .1s,border-color .1s;}
.time-pill i{color:var(--muted-1);font-size:16px;font-weight:400;}
.time-pill:active{filter:brightness(.97);}
.time-pill:focus-visible{outline:none;border-color:var(--accent);}
/* Zeit-Rad: Wähl-Overlay */
.tw-ov{position:fixed;inset:0;z-index:200;background:rgba(8,12,20,.5);display:flex;align-items:flex-end;justify-content:center;
  animation:tw-fade .18s ease;}
@keyframes tw-fade{from{opacity:0}to{opacity:1}}
.tw-card{background:var(--surface);width:100%;max-width:480px;border-radius:22px 22px 0 0;
  padding:16px 18px calc(18px + var(--safe-bot));box-shadow:var(--shadow-lg);animation:tw-up .22s cubic-bezier(.2,.8,.25,1);}
@keyframes tw-up{from{transform:translateY(18px)}to{transform:translateY(0)}}
.tw-head{font-weight:800;font-size:17px;text-align:center;margin-bottom:6px;}
.tw-wheels{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;height:220px;}
.tw-band{position:absolute;left:50%;transform:translateX(-50%);width:184px;top:88px;height:44px;
  border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);pointer-events:none;}
.tw-col{height:220px;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;width:78px;text-align:center;}
.tw-col::-webkit-scrollbar{display:none;}
.tw-pad{height:88px;flex:none;}
.tw-item{height:44px;line-height:44px;font-size:23px;font-weight:600;color:var(--muted-1);
  scroll-snap-align:center;cursor:pointer;transition:color .12s,transform .12s,opacity .12s;opacity:.5;}
.tw-item.sel{color:var(--text);font-weight:800;transform:scale(1.12);opacity:1;}
.tw-colon{font-size:24px;font-weight:800;color:var(--text);flex:none;}
.tw-actions{display:flex;gap:10px;margin-top:14px;}
.tw-actions .btn{flex:1;justify-content:center;}
.tw-ok{background:var(--accent);color:var(--accent-ink);border:none;}

/* ============================================================
   Dashboard – Start-Screen
   ============================================================ */
.dash-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--shadow);overflow:hidden;cursor:pointer;margin-top:12px;
  transition:transform .1s,box-shadow .1s;}
.dash-section:active{transform:scale(.985);box-shadow:var(--shadow-lg);}
.dash-hero .dash-ph{height:200px;}
.dash-ph{height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;position:relative;}
.dash-ph-badge{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);
  white-space:nowrap;font-size:12px;font-weight:650;
  padding:5px 12px;border-radius:999px;backdrop-filter:blur(6px);}
.dash-avs{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;max-width:180px;}
/* Info-Panel unter dem Bild: komplementärer Ton je Hell-Theme (--info-tint), Dunkel-Themes neutral (--surface) */
.dash-info{padding:12px 14px;background:var(--info-tint, var(--surface));}
.dash-title{font-size:14px;font-weight:750;letter-spacing:.01em;}
.dash-sub{font-size:12.5px;color:var(--muted-1);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dash-row{display:grid;grid-template-columns:3fr 5fr;gap:12px;margin-top:12px;}
.dash-row .dash-section{margin-top:0;}
/* Haupt-Dashboard: alle Foto-Karten einheitlich groß im 16:9-Format, Beschreibung darunter */
.home-cards .dash-ph{aspect-ratio:16/9;height:auto;}
.home-cards .dash-hero .dash-ph{aspect-ratio:16/9;height:auto;}
.home-cards .dash-row{grid-template-columns:1fr;}
/* Mein Bereich + Stärkekalender nebeneinander im 9:16-Hochformat */
.home-cards .dash-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;}
.home-cards .dash-row2 .dash-section{margin-top:0;}
.home-cards .dash-row2 .dash-ph{aspect-ratio:9/16;height:auto;}

/* Belehrungen (Infothek) */
.bel-block{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 15px;box-shadow:var(--shadow);margin-bottom:12px;}
.bel-block.bel-muted{background:var(--surface-2);box-shadow:none;}
.bel-title{font-weight:800;font-size:14px;color:var(--accent);margin-bottom:8px;}
.bel-muted .bel-title{color:var(--muted-1);font-size:12.5px;}
.bel-body{font-size:14.5px;line-height:1.62;color:var(--fg);}
.bel-muted .bel-body{font-size:12.5px;line-height:1.55;color:var(--muted-1);}
.bel-note{font-size:11px;color:var(--muted-1);line-height:1.5;margin-top:4px;padding:0 2px;}

/* Polizeiberichte (Infothek) */
.pol-list{display:flex;flex-direction:column;gap:10px;}
.pol-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 13px;cursor:pointer;box-shadow:var(--shadow);}
.pol-item:active{opacity:.8;}
.pol-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.pol-item-ago{font-size:11.5px;color:var(--muted-1);flex:none;}
.pol-item-title{font-weight:700;font-size:14.5px;line-height:1.3;color:var(--fg);}
.pol-item-teaser{font-size:12.5px;color:var(--muted-1);margin-top:4px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.pol-item-src{font-size:11px;color:var(--accent);margin-top:8px;display:flex;align-items:center;gap:4px;}

/* Länder der Welt (Infothek → Nachschlagewerke) */
.land-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.02em;padding:1px 6px;border-radius:999px;vertical-align:middle;margin-left:5px;line-height:1.5;}
.land-badge.eu{background:rgba(37,99,235,.14);color:var(--blue);}
.land-badge.sg{background:rgba(22,163,74,.16);color:#16a34a;}
.land-badge.no{background:var(--surface-2);color:var(--muted-1);}
.land-hero{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:15px 16px;box-shadow:var(--shadow);margin-bottom:12px;}
.land-flag{font-size:52px;line-height:1;flex:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.18));}
.land-name{font-weight:800;font-size:21px;line-height:1.15;color:var(--text);}
.land-off{font-size:12.5px;color:var(--muted-1);margin-top:2px;line-height:1.35;}
.land-badges{margin-top:8px;}
.land-badges .land-badge{margin-left:0;margin-right:6px;}
.land-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:4px 15px 10px;box-shadow:var(--shadow);}
.land-sec{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:14px 0 4px;}
.land-sec:first-child{margin-top:8px;}
.land-row{display:flex;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border);}
.land-row:last-child{border-bottom:none;}
.land-k{flex:0 0 40%;max-width:132px;font-size:12.5px;color:var(--muted-1);}
.land-v{flex:1;min-width:0;font-size:14px;color:var(--text);font-weight:600;word-break:break-word;}
.land-note{font-size:12px;color:var(--muted-1);line-height:1.5;margin:8px 0 2px;padding:8px 10px;background:var(--surface-2);border-radius:10px;}
/* Lagekarte (SVG-Locator, aus Natural-Earth-Grenzen selbst gerendert) */
.land-mapwrap{margin-bottom:12px;}
.land-map{width:100%;height:auto;max-height:260px;display:block;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;}
.land-map path{vector-effect:non-scaling-stroke;}
.land-map .lm-ctx path{fill:var(--muted-1);fill-opacity:.22;stroke:var(--surface);stroke-width:.6;stroke-opacity:.7;}
.land-map .lm-hl{fill:var(--accent);fill-opacity:.16;}
.land-map .lm-t{fill:var(--accent);fill-opacity:.95;stroke:#fff;stroke-opacity:.6;stroke-width:1;}
.land-map .lm-halo{fill:#fff;}
.land-map .lm-cap{fill:#e11d48;}
.land-map .lm-ring{fill:none;stroke:#e11d48;stroke-width:1.6;stroke-opacity:.85;}
.land-mapbox{position:relative;}
.land-mapmode{position:absolute;top:8px;right:8px;display:flex;gap:2px;background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid var(--border);border-radius:9px;padding:2px;backdrop-filter:blur(3px);}
.land-mapmode button{border:none;background:none;font-family:inherit;font-size:11px;font-weight:700;color:var(--muted-1);padding:4px 9px;border-radius:7px;cursor:pointer;line-height:1.3;}
.land-mapmode button.on{background:var(--accent);color:#fff;}
.land-mapcap{font-size:11.5px;color:var(--muted-1);text-align:center;margin-top:6px;}
.land-mapdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e11d48;vertical-align:middle;box-shadow:0 0 0 2px var(--surface-2);}

/* ============================================================
   Schnappschüsse (Pinnwand) – Jahr/Monat, Jahres-Chips, Alben
   ============================================================ */
.snp-seg{display:flex;gap:6px;background:var(--surface-2);border-radius:12px;padding:4px;margin-bottom:14px;}
.snp-seg button{flex:1;border:none;background:none;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--muted-1);padding:8px 6px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.12s;}
.snp-seg button.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow);}
.snp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.snp-chips button{border:1.5px solid var(--border);background:var(--surface);color:var(--muted-1);font-family:inherit;font-size:12.5px;font-weight:700;padding:5px 13px;border-radius:20px;cursor:pointer;transition:.12s;}
.snp-chips button.on{border-color:var(--accent);background:var(--accent)1a;color:var(--fg);}
.snp-year{margin-bottom:4px;}
.snp-year-h{display:flex;align-items:center;gap:10px;padding:12px 4px;cursor:pointer;border-bottom:1px solid var(--border);}
.snp-month-h{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-1);margin:14px 2px 8px;}
.snp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.snp-thumb{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;cursor:pointer;background:var(--surface-2);}
.snp-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.snp-thumb-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.62) 0%,transparent 55%);pointer-events:none;}
.snp-thumb-cap{position:absolute;bottom:6px;left:7px;right:7px;}
.snp-thumb-t{font-size:11px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;margin-bottom:2px;}
.snp-thumb-m{display:flex;align-items:center;gap:4px;}
.snp-thumb-av{width:15px;height:15px;border-radius:50%;background-size:cover;flex:none;border:1px solid rgba(255,255,255,.4);}
.snp-thumb-m span{font-size:10px;color:rgba(255,255,255,.78);}
.snp-thumb-edit{position:absolute;top:7px;right:7px;width:30px;height:30px;border-radius:50%;border:none;background:rgba(0,0,0,.45);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.snp-thumb-edit i{font-size:14px;}
.snp-album-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.snp-album{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;cursor:pointer;box-shadow:var(--shadow);}
.snp-album-cover{position:relative;aspect-ratio:4/3;background-size:cover;background-position:center;background-color:var(--surface-2);display:flex;align-items:center;justify-content:center;}
.snp-album-info{padding:9px 11px;}
.snp-album-name{font-weight:750;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.snp-album-cnt{font-size:11.5px;color:var(--muted-1);margin-top:1px;}
.snp-album-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;}
/* Vollbild-Viewer (dreht im Querformat mit; object-fit:contain nutzt die volle Fläche) */
.snp-fs{position:fixed;inset:0;z-index:10000;background:#000;display:flex;align-items:center;justify-content:center;touch-action:none;overflow:hidden;}
/* Bild-Schiene: Vorgänger · Aktuell · Nachfolger — folgt dem Finger 1:1 (wie die Login-Trommel) */
.snp-fs-track{position:absolute;top:0;bottom:0;left:0;width:300vw;display:flex;will-change:transform;}
.snp-fs-slide{width:100vw;height:100%;flex:none;display:flex;align-items:center;justify-content:center;}
.snp-fs-img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .25s;user-select:none;-webkit-user-drag:none;}
.snp-fs-img.rot90{max-width:100dvh;max-height:100dvw;}
.snp-fs-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:calc(10px + env(safe-area-inset-top)) 12px 12px;background:linear-gradient(rgba(0,0,0,.55),transparent);transition:opacity .2s;}
.snp-fs-count{color:#fff;font-size:13px;font-weight:700;letter-spacing:.04em;}
.snp-fs-btn{width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:18px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);flex:none;}
.snp-fs-cap{position:absolute;left:0;right:0;bottom:0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));
  background:linear-gradient(transparent,rgba(0,0,0,.74));color:#fff;transition:opacity .2s;}
.snp-fs-min .snp-fs-top,.snp-fs-min .snp-fs-cap{opacity:0;pointer-events:none;}
.snp-fs-cap-t{font-weight:800;font-size:16.5px;}
.snp-fs-cap-d{font-size:12.5px;opacity:.85;margin-top:3px;line-height:1.45;}
.snp-fs-cap-m{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:9px;font-size:12px;opacity:.92;}
.snp-fs-cap-av{width:22px;height:22px;border-radius:50%;background-size:cover;flex:none;border:1px solid rgba(255,255,255,.4);}
.snp-fs-actions{display:flex;gap:8px;margin-top:11px;}
.snp-fs-act{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border-radius:999px;border:none;
  background:rgba(255,255,255,.14);color:#fff;font-size:12.5px;font-weight:700;cursor:pointer;backdrop-filter:blur(6px);font-family:inherit;}

/* ============================================================
   Boot-Splash: Duderstadt-Wappen rotiert & löst sich auf → Login-Trommel
   ============================================================ */
#boot-splash{position:fixed;inset:0;z-index:20000;background:#0C1320;
  display:flex;align-items:center;justify-content:center;pointer-events:none;
  perspective:1500px;}
#boot-splash .boot-wappen{width:min(64vw,270px);max-height:72vh;object-fit:contain;
  border-radius:10px;filter:drop-shadow(0 12px 44px rgba(0,0,0,.55));
  transform:rotateY(0deg) scale(.9);opacity:0;transform-style:preserve-3d;backface-visibility:visible;-webkit-user-drag:none;}
#boot-splash.boot-go .boot-wappen{animation:bootWappen 1.6s cubic-bezier(.42,0,.25,1) forwards;}
#boot-splash.boot-go{animation:bootFade .55s ease 1.05s forwards;}
/* 360°-Drehung um die senkrechte Längsachse (3D), danach transparent auflösen */
@keyframes bootWappen{
  0%{transform:rotateY(0deg) scale(.9);opacity:0;}
  18%{opacity:1;}
  74%{transform:rotateY(360deg) scale(1.04);opacity:1;}
  100%{transform:rotateY(360deg) scale(1.16);opacity:0;}
}
@keyframes bootFade{to{opacity:0;}}
@media (prefers-reduced-motion:reduce){
  #boot-splash .boot-wappen{transform:none;}
  #boot-splash.boot-go .boot-wappen{animation:bootFade .5s ease .5s forwards;}
}

/* ============================================================
   Profil – Ring-Kacheln anklickbar
   ============================================================ */
.ring-tile:active{transform:scale(.95);}
.ring-tile .ring-label{font-size:12px;font-weight:650;color:var(--muted-1);}

/* ============================================================
   Teamchat
   ============================================================ */
.chat-overlay{position:fixed;inset:0;z-index:80;transform:translateX(100%);transition:transform .28s cubic-bezier(.2,.8,.25,1);will-change:transform;}
.chat-overlay.chat-in{transform:translateX(0);}
/* Wisch-Navigation: neuen Screen von links/rechts hereingleiten (Infothek rein / zurück) */
#view-app{overflow-x:clip;}   /* clip statt hidden: klippt den Wisch-Slide, ohne sticky (Tab-/Kopfleiste) zu brechen */
@keyframes navInLeft{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@keyframes navInRight{from{transform:translateX(100%)}to{transform:translateX(0)}}
#view.nav-in-left{animation:navInLeft .28s cubic-bezier(.22,.8,.3,1)}
#view.nav-in-right{animation:navInRight .28s cubic-bezier(.22,.8,.3,1)}
.chat-panel{display:flex;flex-direction:column;height:100%;max-width:480px;margin:0 auto;
  background:var(--bg);}

/* Header */
.chat-header{display:flex;align-items:center;gap:10px;padding:calc(14px + var(--safe-top)) 14px 12px;
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--border);flex:none;}
.chat-back{flex:none;}
.chat-header-av-row{display:flex;gap:-4px;flex:none;}
.chat-hav{width:30px;height:30px;border-radius:50%;object-fit:cover;
  margin-left:-6px;border:2px solid var(--bg);background:var(--surface-2);}
.chat-hav:first-child{margin-left:0;}
.chat-hdr-tap{display:flex;align-items:center;gap:10px;flex:1;min-width:0;cursor:pointer;}
.chat-header-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0;}
.chat-header-title{font-size:16px;font-weight:750;color:var(--text);}
.chat-header-sub{font-size:11.5px;color:var(--muted-1);}

/* Nachrichten */
.chat-messages{flex:1;overflow-y:auto;padding:12px 12px 8px;display:flex;flex-direction:column;gap:4px;}
.chat-loading,.chat-empty{text-align:center;color:var(--muted-1);font-size:13.5px;
  margin:auto;display:flex;flex-direction:column;align-items:center;gap:10px;}
.chat-empty i{font-size:38px;opacity:.4;}

/* Chat-Übersicht (Liste aller Unterhaltungen) */
.chat-list{flex:1;overflow-y:auto;padding:6px 0 16px;}
.chat-list-item{display:flex;align-items:center;gap:12px;padding:11px 16px;cursor:pointer;
  transition:background .12s;}
.chat-list-item:active{background:var(--surface-2);}
.cli-av{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;
  border:2px solid var(--border);background:var(--surface-2);}
.cli-glyph{display:flex;align-items:center;justify-content:center;}
.cli-glyph i{font-size:22px;}
.cli-mid{flex:1;min-width:0;border-bottom:1px solid var(--border-2);padding-bottom:11px;
  margin-top:-11px;padding-top:11px;}
.chat-list-item:last-child .cli-mid{border-bottom:none;}
.cli-top{display:flex;align-items:baseline;gap:8px;}
.cli-name{font-size:15.5px;font-weight:700;color:var(--text);flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cli-time{font-size:11.5px;color:var(--muted-1);flex:none;}
.cli-time-unread{color:var(--accent);font-weight:700;}
.cli-bot{display:flex;align-items:center;gap:8px;margin-top:2px;}
.cli-preview{font-size:13px;color:var(--muted-1);flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cli-unread{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;
  background:var(--accent);color:#fff;font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;}

/* Auswahl-Zeile in Chat-Sheets (Person/Gruppe) */
.chat-pick-row{display:flex;align-items:center;gap:12px;padding:9px 4px;border-radius:10px;}
.chat-pick-row .cli-av{width:40px;height:40px;}

/* Zeitraum-Kalender im Anlegen/Bearbeiten-Formular */
.fcal{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;
  padding:8px 10px 10px;margin-bottom:2px;}
.fcal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.fcal-title{font-weight:700;font-size:14.5px;}
.fcal-grid{display:grid;grid-template-columns:repeat(7,1fr);}
.fcal-wds{margin-bottom:2px;}
.fcal-wd{text-align:center;font-size:10.5px;font-weight:700;color:var(--muted-1);padding:2px 0;}
.fcal-cell{height:38px;display:flex;align-items:center;justify-content:center;font-size:13.5px;
  cursor:pointer;user-select:none;color:var(--text);border-radius:9px;}
.fcal-blank{cursor:default;}
.fcal-cell.fcal-in{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-radius:0;}
.fcal-cell.fcal-start,.fcal-cell.fcal-end{background:var(--accent);color:var(--accent-ink);font-weight:700;}
.fcal-cell.fcal-start{border-radius:9px 0 0 9px;}
.fcal-cell.fcal-end{border-radius:0 9px 9px 0;}
.fcal-cell.fcal-start.fcal-end{border-radius:9px;}
.fcal-cell.fcal-today:not(.fcal-in):not(.fcal-start):not(.fcal-end){box-shadow:inset 0 0 0 1.5px var(--accent);}
.fcal-sel{margin-top:9px;font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  border-top:1px solid var(--border-2);padding-top:9px;}
.fcal-sel .muted{font-size:12px;}

/* Gruppen-Symbolbild & Farbprofil (Anlegen/Bearbeiten) */
.grp-img-ph{width:84px;height:84px;border-radius:50%;background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;font-size:30px;border:1px solid var(--border);}
.grp-img-edit{position:absolute;right:-2px;bottom:-2px;width:28px;height:28px;border-radius:50%;
  background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;
  border:2.5px solid var(--surface);font-size:14px;}
/* Bildausschnitt-Dialog (Gruppensymbol) */
.crop-ov{position:fixed;inset:0;z-index:5000;background:rgba(0,0,0,.82);display:flex;align-items:center;justify-content:center;padding:20px;}
.crop-card{background:var(--surface);border-radius:18px;padding:18px;max-width:340px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.5);}
.crop-ttl{font-weight:700;font-size:16px;text-align:center;margin-bottom:3px;color:var(--text);}
.crop-hint{font-size:12px;color:var(--muted-1);text-align:center;margin-bottom:14px;}
.crop-vp{position:relative;margin:0 auto;overflow:hidden;border-radius:14px;background:#000;touch-action:none;cursor:grab;max-width:100%;}
.crop-vp:active{cursor:grabbing;}
.crop-img{position:absolute;left:0;top:0;transform-origin:top left;will-change:transform;user-select:none;-webkit-user-drag:none;}
.crop-mask{position:absolute;inset:0;pointer-events:none;box-shadow:0 0 0 999px rgba(0,0,0,.5);border-radius:50%;}
.crop-zoom{width:100%;margin:16px 0 6px;accent-color:var(--accent);}
.crop-btns{display:flex;gap:8px;margin-top:8px;}
.crop-btns .btn{flex:1;}
.grp-img-src{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:12.5px;font-weight:650;font-family:inherit;cursor:pointer;text-decoration:none;}
.grp-img-src i{font-size:15px;color:var(--accent);}
.grp-color-row{display:flex;flex-wrap:wrap;gap:11px;margin-bottom:16px;padding:0 2px;}
.grp-color{width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;padding:0;
  outline:2px solid transparent;outline-offset:2px;transition:transform .1s,outline-color .1s;}
.grp-color.sel{outline-color:var(--text);transform:scale(1.1);}

/* Datums-Trenner */
.chat-daysep{text-align:center;margin:10px 0 6px;flex:none;}
.chat-daysep span{font-size:11.5px;font-weight:650;color:var(--muted-1);
  background:var(--surface-2);border:1px solid var(--border);
  border-radius:999px;padding:3px 12px;}

/* Nachrichten-Zeilen */
.chat-msg{display:flex;align-items:flex-end;gap:7px;max-width:88%;flex:none;}
.chat-mine{align-self:flex-end;flex-direction:row-reverse;}
.chat-av{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none;
  align-self:flex-end;}

/* Bubble-Wrap (für Swipe-Animation + Reply-Icon) */
.chat-bubble-wrap{position:relative;display:flex;align-items:center;max-width:100%;}
.chat-reply-ico{position:absolute;font-size:18px;color:var(--accent);opacity:0;
  transition:opacity .15s;pointer-events:none;}
.chat-msg:not(.chat-mine) .chat-reply-ico{left:-28px;}
.chat-mine .chat-reply-ico{right:-28px;}
.chat-bubble{background:var(--surface);border:1px solid var(--border);
  border-radius:18px 18px 18px 4px;padding:8px 11px;
  box-shadow:var(--shadow);max-width:100%;
  transition:transform .18s cubic-bezier(.2,.8,.25,1);}
.chat-mine .chat-bubble{border-radius:18px 18px 4px 18px;}
.chat-sender{font-size:11.5px;font-weight:700;margin-bottom:3px;}
.chat-text{font-size:14.5px;line-height:1.45;color:var(--text);white-space:pre-wrap;word-break:break-word;}
.chat-img{max-width:220px;max-height:260px;border-radius:12px;display:block;
  object-fit:cover;cursor:pointer;margin-bottom:4px;}
.chat-audio{width:220px;max-width:100%;display:block;margin-bottom:4px;}
/* Standort-Nachricht */
.chat-loc{display:block;width:226px;max-width:100%;border-radius:12px;overflow:hidden;
  background:var(--surface-2);border:1px solid var(--border);text-decoration:none;margin-bottom:4px;}
.chat-loc-map{position:relative;height:120px;background:var(--bg-2);}
.chat-loc-map img{width:100%;height:100%;object-fit:cover;display:block;}
.chat-loc-map.noimg::after{content:"\eae8";font-family:"tabler-icons";position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--muted-1);}
.chat-loc-pin{position:absolute;width:14px;height:14px;border-radius:50% 50% 50% 0;
  background:var(--red);border:2px solid #fff;transform:translate(-50%,-100%) rotate(-45deg);
  box-shadow:0 1px 4px rgba(0,0,0,.5);}
.chat-loc-info{display:flex;align-items:center;gap:8px;padding:8px 10px;}
.chat-loc-info>i{color:var(--accent);font-size:18px;flex:none;}
.chat-loc-name{font-size:13.5px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chat-loc-co{font-size:11.5px;color:var(--muted-1);}
.chat-loc-ext{color:var(--muted-1)!important;font-size:15px!important;}

/* Formular-Unterschrift: Feld auf dem letzten Schritt */
.ff-sig-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  min-height:96px;border:2px dashed var(--border);border-radius:14px;background:var(--surface-2);
  cursor:pointer;padding:14px;text-align:center;transition:border-color .15s;}
.ff-sig-box:active{border-color:var(--accent);}
.ff-sig-box.signed{border-style:solid;background:var(--surface);position:relative;}
.ff-sig-hint{font-size:11.5px;color:var(--muted-1);display:flex;align-items:center;gap:5px;}
.ff-sig-prev{max-width:100%;max-height:120px;object-fit:contain;}
/* Dunkelmodus: dunkle Unterschrift-Tinte in der Vorschau hell darstellen */
[data-theme="dark"] .ff-sig-prev,
[data-theme="mitternacht"] .ff-sig-prev,
[data-theme="schiefer"] .ff-sig-prev,
[data-theme="tann"] .ff-sig-prev,
[data-theme="wein"] .ff-sig-prev{filter:brightness(0) invert(1);}
/* Dunkelmodus: native Autofill-Vorschlagsliste (<datalist>) hell rendern,
   damit sie lesbar bleibt (sonst dunkle Schrift auf dunklem Popup).
   Das Eingabefeld selbst behaelt durch .field seine dunkle Optik. */
[data-theme="dark"] input[data-af],
[data-theme="mitternacht"] input[data-af],
[data-theme="schiefer"] input[data-af],
[data-theme="tann"] input[data-af],
[data-theme="wein"] input[data-af]{color-scheme:light;}
.ff-sig-re{position:absolute;top:8px;right:10px;font-size:12px;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:4px;}
/* Vollbild-Unterschrift-Pad */
.sig-ov{position:fixed;inset:0;z-index:10000;background:#fff;}
#sig-cv{position:absolute;inset:0;width:100%;height:100%;touch-action:none;background:#fff;}
.sig-top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;
  padding:calc(8px + var(--safe-top)) 16px 8px;}
.sig-ttl{font-weight:800;font-size:16px;color:#0b1b2e;}
.sig-tbtn{background:none;border:none;font-size:14px;font-weight:700;color:#2563EB;cursor:pointer;padding:6px 4px;font-family:inherit;}
.sig-save{position:absolute;left:16px;right:16px;bottom:calc(16px + var(--safe-bot));z-index:2;
  background:#2563EB;color:#fff;border:none;border-radius:14px;padding:15px;font-size:15px;font-weight:750;
  cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;}
.sig-guide{position:absolute;inset:0;z-index:1;pointer-events:none;transition:opacity .2s;}
.sig-guide-line{position:absolute;left:34%;top:16%;bottom:17%;border-left:2px dashed #cfd5de;}
.sig-guide-x{position:absolute;left:34%;bottom:14%;transform:translate(-50%,50%);font-size:28px;color:#aeb6c2;}
.sig-guide-t{position:absolute;left:64%;top:50%;transform:translate(-50%,-50%) rotate(-90deg);white-space:nowrap;
  text-align:center;color:#9aa3b0;font-size:14px;font-weight:700;line-height:1.6;}
.sig-guide-t span{font-size:11px;font-weight:500;}
.chat-meta{font-size:10.5px;color:var(--muted-1);text-align:right;margin-top:4px;}

/* Zitat-Block (Antwort auf Nachricht) */
.chat-quote{border-left:3px solid var(--accent);background:rgba(0,0,0,.07);
  border-radius:6px;padding:5px 9px;margin-bottom:6px;}
.chat-quote-name{font-size:11px;font-weight:700;display:block;margin-bottom:2px;}
.chat-quote-text{font-size:12.5px;color:var(--muted-1);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* Reply-Leiste über Eingabe */
.chat-reply-bar{display:flex;align-items:center;gap:8px;
  padding:7px 12px 5px;border-top:1px solid var(--border);
  background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));flex:none;}
.chat-reply-preview{flex:1;min-width:0;font-size:13px;
  display:flex;flex-direction:column;gap:2px;}
.chat-reply-name{font-weight:700;font-size:11.5px;}
.chat-reply-txt{color:var(--muted-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* @ Mention Picker */
.chat-mention-picker{flex-direction:column;gap:2px;
  padding:6px 8px;border-top:1px solid var(--border);
  background:var(--surface);max-height:180px;overflow-y:auto;flex:none;}
.chat-mention-item{display:flex;align-items:center;gap:10px;width:100%;
  background:none;border:none;border-radius:10px;padding:7px 8px;
  cursor:pointer;font-family:inherit;text-align:left;}
.chat-mention-item:hover,.chat-mention-item:focus{background:var(--surface-2);}

/* Eingabeleiste */
.chat-bar{display:flex;align-items:flex-end;gap:6px;
  padding:8px 10px calc(10px + var(--safe-bot));
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--border);flex:none;}
.chat-icon-btn{width:38px;height:38px;flex:none;border-radius:50%;font-size:20px;
  color:var(--muted-1);}
.chat-input-wrap{flex:1;min-width:0;background:var(--surface-2);
  border:1px solid var(--border);border-radius:20px;position:relative;
  padding:6px 12px;display:flex;flex-direction:column;gap:6px;}
/* Sprachaufnahme: deutlich sichtbare Leiste mit Timer + Lautstärke-Linien */
.chat-recbar{position:absolute;inset:0;display:flex;align-items:center;gap:9px;padding:0 14px;border-radius:20px;z-index:4;
  background:color-mix(in srgb,#ef4444 14%,var(--surface-2));border:1px solid color-mix(in srgb,#ef4444 45%,var(--border));}
.chat-rec-dot{width:11px;height:11px;border-radius:50%;background:#ef4444;flex:none;animation:rec-pulse 1s infinite;}
@keyframes rec-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.65)}}
.chat-rec-time{font-size:13px;font-weight:800;color:#ef4444;font-variant-numeric:tabular-nums;flex:none;min-width:34px;}
.chat-rec-wave{flex:1;min-width:0;height:26px;}
.chat-rec-hint{font-size:11px;font-weight:600;color:var(--muted-1);flex:none;}
.chat-pending{display:flex;align-items:center;gap:8px;padding-bottom:4px;
  border-bottom:1px solid var(--border);}
.chat-input{width:100%;background:none;border:none;outline:none;
  color:var(--text);font-size:15px;font-family:inherit;resize:none;
  line-height:1.45;max-height:120px;overflow-y:auto;}
.chat-send-btn{width:40px;height:40px;border-radius:50%;background:var(--accent);
  color:var(--accent-ink);border:none;display:flex;align-items:center;
  justify-content:center;font-size:19px;cursor:pointer;flex:none;
  box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent);
  transition:transform .1s;}
.chat-send-btn:active{transform:scale(.92);}
.chat-mic.recording{color:var(--red);animation:pulse-mic .7s ease infinite alternate;}
@keyframes pulse-mic{from{opacity:1}to{opacity:.4}}

/* Teamchat-Button im Dashboard-Header */
/* Runde, dezent getönte Kopf-Icons (Suche · Stechuhr · Glocke · Chat) */
.home-icons{display:flex;align-items:center;gap:8px;flex:none;}
.hbtn{width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;flex:none;
  display:flex;align-items:center;justify-content:center;font-size:19px;position:relative;
  background:color-mix(in srgb,var(--c) 16%,var(--surface));color:var(--c);
  -webkit-tap-highlight-color:transparent;transition:filter .12s;}
.hbtn:active{filter:brightness(.93);}
/* Schlanke Statuszeile (Tag · Stärke · Einsätze) */
.home-status{display:flex;align-items:center;gap:7px;background:var(--surface);
  border:1px solid var(--border-2);border-radius:13px;padding:9px 12px;margin:0 0 12px;
  cursor:pointer;font-size:13px;overflow:hidden;}
.home-status:active{background:var(--surface-2);}
.home-status .hs-ic{font-size:15px;color:var(--muted-1);flex:none;}
.hs-date{font-weight:650;color:var(--text);white-space:nowrap;}
.hs-dot{color:var(--muted-1);}
.hs-n{font-weight:800;color:var(--green);} .hs-n.mid{color:var(--amber);} .hs-n.low{color:var(--red);}
.hs-tot{color:var(--muted-1);}
.home-status .today-pill{flex:none;}
.hs-chev{margin-left:auto;color:var(--muted-1);font-size:16px;flex:none;}

.chat-open-btn{
  width:46px;height:46px;border-radius:14px;
  border:none;cursor:pointer;flex:none;
  display:flex;align-items:center;justify-content:center;
  font-size:23px;color:#fff;
  box-shadow:0 3px 10px rgba(0,0,0,.3);
  position:relative;
}
.chat-badge{
  position:absolute;top:-5px;right:-5px;
  min-width:18px;height:18px;padding:0 4px;
  background:var(--red);color:#fff;
  border-radius:9px;font-size:10.5px;font-weight:700;
  display:none;align-items:center;justify-content:center;
  border:2px solid var(--bg);line-height:1;white-space:nowrap;
}

/* Qualifikations-Chips (unter Profil-Hero) */
.qual-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;
  color:var(--muted-1);background:var(--surface);border:1px solid var(--border);
  border-radius:999px;padding:4px 11px;}

/* ============================================================
   Einsatz-Bereich
   ============================================================ */

/* Crew-Fotostreifen */
/* Geteilte Einsatz-Darstellung (mehrere Trupps) */
.trupp-lanes{display:flex;flex-direction:column;gap:8px;padding:10px 10px 2px;}
.trupp-lane{border:1px solid var(--border);border-left:4px solid var(--tc);border-radius:10px;
  background:color-mix(in srgb,var(--tc) 6%,var(--surface-2));padding:8px;}
.trupp-lane-hd{display:flex;align-items:center;gap:7px;margin-bottom:7px;}
.tl-dot{width:9px;height:9px;border-radius:50%;flex:none;}
.trupp-lane-ruf{font-weight:800;font-size:13.5px;color:var(--tc);flex:none;}
.trupp-lane-zug{font-size:12px;color:var(--muted-1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.trupp-lane-cnt{margin-left:auto;font-size:12px;font-weight:800;color:var(--tc);flex:none;}
.tl-mat{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px;}
.tl-chip{font-size:11px;font-weight:600;color:var(--muted-1);background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:3px 7px;}
.einsatz-crew{display:flex;gap:4px;width:100%;border-radius:14px 14px 0 0;overflow:hidden;justify-content:center;}
.einsatz-crew>div{flex:1;min-width:0;}
/* offener Platz (Silhouette = ausgegrauter Cutout) – Einsatzkarten/-detail */
.einsatz-crew-sil{position:relative;overflow:hidden;border-radius:14px;
  border:2px dashed color-mix(in srgb,var(--muted-1) 38%,transparent);background:var(--surface-2);}
.einsatz-crew-sil img{width:100%;height:100%;object-fit:contain;object-position:center bottom;opacity:.92;}
/* offener Platz (Silhouette) – Einsatzbesprechung */
.bf-fig.bf-sil{align-self:flex-end;filter:drop-shadow(0 7px 9px rgba(0,0,0,.22));opacity:.9;cursor:pointer;}
.bf-card.bf-sil{cursor:pointer;background-size:cover;background-position:center top;border-style:dashed;opacity:.9;}

/* Einsatz-Karte (Aktuelle Einsätze) */
.einsatz-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--shadow);overflow:hidden;cursor:pointer;transition:transform .1s;}
.einsatz-card:active{transform:scale(.985);}
.einsatz-card-body{padding:14px;}
.einsatz-card-title{font-weight:750;font-size:16px;letter-spacing:-.01em;color:var(--text);margin-bottom:12px;}

/* Schlüsselinfos (Ort + Zeit) prominent */
.einsatz-key-info{display:flex;flex-direction:column;gap:7px;}
.einsatz-key-item{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--text);}
.einsatz-key-item i{font-size:17px;color:var(--red);flex:none;width:18px;text-align:center;}

.einsatz-card-footer{font-size:12px;color:var(--muted-1);margin-top:10px;padding-top:10px;
  border-top:1px solid var(--border-2);}

/* Einsatztagebuch-Karte */
.einsatz-log-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--shadow);padding:14px;cursor:pointer;transition:transform .1s;}
.einsatz-log-card:active{transform:scale(.985);}
.einsatz-meta{display:flex;flex-wrap:wrap;gap:5px 14px;color:var(--muted-1);font-size:12.5px;margin-top:7px;}
.einsatz-meta i{margin-right:3px;font-size:13px;vertical-align:-1px;}

/* ============================================================
   Einheit – Org-Chart
   ============================================================ */
.page-head{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;
  border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;
  background:var(--bg);}
.page-head h2{margin:0;font-size:18px;font-weight:700;}
.back-btn{width:36px;height:36px;border-radius:10px;background:var(--surface-2);
  border:none;display:flex;align-items:center;justify-content:center;
  font-size:18px;color:var(--text);cursor:pointer;flex:none;}
.page-body{padding:12px 14px 32px;}

.eq-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px;}
.eq-row-2{grid-template-columns:repeat(2,1fr);}
.eq-card{background:var(--surface);border-radius:14px;overflow:hidden;
  box-shadow:var(--shadow);}
/* Mitarbeiter-Fotos im 9:16-Format — die Personen-Karten (720×1280) erscheinen komplett ohne Beschnitt */
.eq-photo{aspect-ratio:9/16;height:auto;background-size:cover;background-position:center top;}
.eq-info{padding:8px 10px 10px;}
.eq-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.eq-role{font-size:11px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.eq-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;}
.eq-badge{font-size:15px;}

/* ============================================================
   Material – Geräteübersicht
   ============================================================ */
.mat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px;}
.mat-grid-2{grid-template-columns:repeat(2,1fr);}
.mat-item{background:var(--surface);border-radius:12px;overflow:hidden;
  box-shadow:var(--shadow);cursor:pointer;transition:opacity .15s;}
.mat-item:active{opacity:.75;}
.mat-bk-row{display:flex;align-items:center;gap:10px;padding:10px 12px;
  border-bottom:1px solid var(--border);}
.mat-bk-row:last-child{border-bottom:none;}
.mat-photo{position:relative;aspect-ratio:4/3;width:100%;}
.mat-photo-lg{aspect-ratio:4/3;}
.mat-img{position:absolute;inset:0;background-size:cover;background-position:center;}
.mat-img-r{left:50%;}
.mat-img-divider{position:absolute;left:50%;top:6px;bottom:6px;width:2px;
  background:rgba(255,255,255,.35);transform:translateX(-50%);border-radius:1px;}
.mat-lbl{padding:6px 8px 8px;font-size:12px;font-weight:600;line-height:1.3;
  text-align:center;color:var(--text);overflow-wrap:break-word;word-break:break-word;hyphens:auto;}
/* Material gesperrt: dicker roter Strich übers Foto */
.mat-item.mat-unavail .mat-photo{opacity:.5;filter:grayscale(.45);}
.mat-strike{position:absolute;inset:0;pointer-events:none;z-index:2;}
.mat-strike::before{content:"";position:absolute;top:50%;left:-8%;width:116%;height:7px;
  background:var(--red);transform:translateY(-50%) rotate(-16deg);border-radius:4px;
  box-shadow:0 0 0 2px rgba(255,255,255,.7);}
.mat-badge{display:inline-block;font-size:9px;font-weight:800;text-transform:uppercase;
  letter-spacing:.4px;color:#fff;background:var(--red);border-radius:5px;padding:1px 5px;vertical-align:middle;}
.mat-status{display:flex;align-items:center;gap:10px;border-radius:12px;padding:10px 12px;}
.mat-status>i{font-size:22px;flex:none;}
.mat-status-off{background:color-mix(in srgb,var(--red) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--red) 35%,transparent);}
.mat-status-off>i{color:var(--red);}
.mat-status-on{background:color-mix(in srgb,var(--green) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--green) 30%,transparent);}
.mat-status-on>i{color:var(--green);}

/* ============================================================
   Urlaubsplaner
   ============================================================ */
.up-head-row{display:flex;align-items:center;padding:8px 10px;
  border-bottom:1px solid var(--border);background:var(--surface-2);}
.up-row{display:flex;align-items:center;padding:8px 10px;
  border-bottom:1px solid var(--border);}
.up-row:last-child{border-bottom:none;}
.up-who{display:flex;align-items:center;gap:6px;width:80px;flex:none;}
.up-who-hd{width:80px;flex:none;}
.up-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.up-months{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;flex:1;}
.up-mhead{text-align:center;font-size:10px;font-weight:700;color:var(--muted-1);}
.up-cell{height:18px;border-radius:3px;background:var(--surface-2);}
.up-cell-on{background:var(--green);opacity:.8;}
.up-days{width:26px;text-align:right;font-size:12px;font-weight:600;
  color:var(--muted-1);flex:none;}
.up-days-hd{width:26px;text-align:right;font-size:10px;font-weight:700;
  color:var(--muted-1);flex:none;}

/* ============================================================
   Material-Picker im Einsatz-Formular
   ============================================================ */
.mpick-cat{font-size:10px;font-weight:700;color:var(--muted-1);text-transform:uppercase;
  letter-spacing:.5px;margin:10px 0 4px;}
.mpick-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:2px;}
.mpick-item{position:relative;width:62px;padding:0;background:var(--surface-2);
  border:2px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;
  transition:background .15s;}
.mpick-item.on{background:color-mix(in srgb,var(--accent) 15%,var(--surface-2));}
.mpick-img{width:62px;height:62px;background-size:cover;background-position:center;}
.mpick-lbl{font-size:9px;font-weight:600;text-align:center;padding:2px 2px 4px;
  line-height:1.2;color:var(--text);}
.mpick-chk{display:none;position:absolute;top:3px;right:3px;width:16px;height:16px;
  border-radius:50%;background:var(--accent);color:#fff;font-size:10px;
  align-items:center;justify-content:center;}
.mpick-item.on .mpick-chk{display:flex;}
/* gesperrtes Material im Picker: nicht wählbar */
.mpick-item.mpick-off{opacity:.5;filter:grayscale(.4);cursor:not-allowed;}
.mpick-strike{position:absolute;inset:0;pointer-events:none;}
.mpick-strike::before{content:"";position:absolute;top:50%;left:-6%;width:112%;height:4px;
  background:var(--red);transform:translateY(-50%) rotate(-18deg);border-radius:2px;
  box-shadow:0 0 0 1.5px rgba(255,255,255,.7);}

/* Material-Thumbnails im Einsatz-Detail-Sheet */
.mat-thumb-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.mat-thumb{width:58px;background:var(--surface-2);border:2px solid var(--border);
  border-radius:8px;overflow:hidden;}
.mat-thumb-img{width:58px;height:58px;background-size:cover;background-position:center;}
.mat-thumb-lbl{font-size:8px;font-weight:600;text-align:center;padding:2px 2px 3px;
  line-height:1.2;color:var(--text);}

/* ============================================================
   Stärkekalender
   ============================================================ */
.sk-bar{display:flex;align-items:center;gap:3px;width:100%;padding:0 3px;box-sizing:border-box;
  border-radius:4px;height:18px;overflow:hidden;margin-top:1px;}
.sk-bar-dot{width:14px;height:14px;border-radius:50%;flex:none;background-size:cover;background-position:center top;}
.sk-bar-lbl{font-size:9px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;line-height:1;}
.sk-more{font-size:9px;font-weight:700;color:var(--muted-1);padding:0 3px;}
/* Verfügbarkeitszahl (absolut, oben rechts) */
.sk-avail{position:absolute;top:4px;right:5px;font-size:9px;font-weight:800;line-height:1;
  color:var(--green);}
.sk-avail.mid{color:var(--amber);}
.sk-avail.low{color:var(--red);}
/* Einsatz-Indikator-Streifen (absolut, unten) */
.sk-ez-ind{position:absolute;bottom:0;left:6px;right:6px;height:3px;
  background:var(--amber);border-radius:2px 2px 12px 12px;opacity:.85;}

/* Portrait-Streifen Tagesansicht (5:16) */
.sk-strips{display:flex;gap:5px;overflow-x:auto;padding:8px 0 4px;scrollbar-width:none;}
.sk-strips::-webkit-scrollbar{display:none;}
.sk-strip{flex:none;width:52px;border-radius:10px;overflow:hidden;position:relative;cursor:default;}
.sk-strip-photo{width:52px;height:166px;background-size:cover;background-position:center top;}
.sk-strip-foot{padding:4px 3px 5px;text-align:center;background:var(--surface-2);}
.sk-strip-name{font-size:9px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;}
.sk-strip-status{font-size:8px;font-weight:600;margin-top:1px;line-height:1;}
.sk-status-head{font-size:11px;font-weight:700;color:var(--muted-1);text-transform:uppercase;
  letter-spacing:.5px;margin:14px 0 6px;padding:0 2px;}
/* Dashboard: Heute-Block */
.today-block{background:var(--surface);border:1px solid var(--border-2);border-radius:14px;
  padding:12px 14px;margin-bottom:14px;cursor:pointer;transition:background .12s;}
.today-block:active{background:var(--surface-2);}
.today-block-label{font-size:10px;font-weight:800;color:var(--muted-1);
  letter-spacing:.6px;text-transform:uppercase;margin-bottom:7px;}
.today-stat-n{font-size:22px;font-weight:800;color:var(--green);}
.today-stat-n.mid{color:var(--amber);}
.today-stat-n.low{color:var(--red);}
.today-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;
  padding:4px 9px;border-radius:999px;white-space:nowrap;}
.today-pill-red{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);}
.today-pill-blue{background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue);}
/* Einheitlicher Tagesblick – Stärke-Banner im Sheet */
.today-ov-staerke{display:flex;align-items:center;gap:10px;
  background:var(--surface-2);border-radius:12px;padding:12px 14px;
  margin-bottom:4px;cursor:pointer;transition:background .12s;}
.today-ov-staerke:active{background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));}
/* Personalstärke-Banner im Einsatzkalender-Sheet */
.ek-staerke-banner{background:var(--surface-2);border-radius:10px;padding:10px 12px;
  margin-bottom:14px;display:flex;gap:14px;align-items:center;}

/* ============================================================
   Fortbildungskalender – Dienstplan Wochenansicht
   ============================================================ */
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;align-items:start;}
.dp-head{text-align:center;font-size:10px;font-weight:700;color:var(--muted-1);
  padding:5px 0 4px;border-bottom:2px solid var(--border);}
.dp-head.we{color:var(--accent);}
.dp-head.today{color:var(--accent);border-color:var(--accent);}
.dp-col{display:flex;flex-direction:column;gap:4px;min-height:40px;padding-top:4px;}
.dp-ev{border-radius:8px;padding:5px 6px;font-size:10px;line-height:1.3;
  border-left:3px solid var(--bc,var(--accent));
  background:color-mix(in srgb,var(--bc,var(--accent)) 14%,var(--surface));cursor:pointer;}
.dp-ev-t{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dp-ev-s{color:var(--text-2);font-size:9px;margin-top:1px;}
.dp-empty{color:var(--muted-1);font-size:11px;text-align:center;padding:10px 0;}

/* ============================================================
   Privater Kalender (Mein Bereich)
   ============================================================ */
.priv-cal-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.priv-cal-head h3{flex:1;margin:0;font-size:15px;font-weight:750;}

/* Kompakter Mini-Kalender im Profil-Screen */
.cal-mini .cal-cell{height:58px;}

/* Event-Titel in Listenkarten: 2 Zeilen erlaubt, Silbentrennung für Deutsche Komposita */
.list .ev-t{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;hyphens:auto;}

/* ============================================================
   Chat – Sound-Toggle (Glocke mit/ohne Durchstreichung)
   ============================================================ */
.chat-snd{position:relative;display:inline-flex;align-items:center;justify-content:center;}
.chat-snd-off::after{
  content:'';
  position:absolute;
  width:150%;height:2px;
  background:currentColor;
  border-radius:1px;
  transform:rotate(-45deg);
  opacity:.9;
}

/* ============================================================
   Chat – Foto-Lightbox
   ============================================================ */
.chat-photo-ov{
  position:fixed;inset:0;z-index:9999;
  background:rgba(0,0,0,.92);
  display:flex;align-items:center;justify-content:center;
  animation:fadeIn .18s ease;
}
.chat-photo-fs{
  max-width:100%;max-height:100%;
  object-fit:contain;
  border-radius:4px;
  touch-action:none;              /* Zoom & Verschieben werden selbst behandelt */
  transform-origin:center center;
  will-change:transform;
  cursor:grab;
  -webkit-user-drag:none;user-select:none;
}
.chat-photo-fs.zoomed{cursor:grab;}
.chat-photo-close{
  position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.18);border:none;
  color:#fff;font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.chat-photo-close:active{background:rgba(255,255,255,.32);}
.chat-photo-save{
  position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:7px;
  padding:10px 18px;border-radius:999px;border:none;cursor:pointer;
  background:rgba(255,255,255,.18);color:#fff;font-size:14px;font-weight:600;font-family:inherit;
}
.chat-photo-save:active{background:rgba(255,255,255,.34);}
.chat-photo-del{
  /* über den Speichern-Button gestapelt (überlappt nicht) */
  position:absolute;bottom:calc(max(24px,env(safe-area-inset-bottom)) + 54px);left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:7px;
  padding:10px 18px;border-radius:999px;border:none;cursor:pointer;
  background:rgba(225,29,72,.92);color:#fff;font-size:14px;font-weight:600;font-family:inherit;
}
.chat-photo-del:active{background:rgba(190,18,60,.95);}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
/* Team-Foto-Bühne: iOS-Bildmenü beim Langdruck unterdrücken → unser eigenes Menü greift */
.bf-stage,.bf-stage *{-webkit-touch-callout:none;}
