/* eventdrop One – UI im eventdrop-CI
   Farben: Off-White #F9F9F9 · Gelb #FFD500 (Brand-Wechsel v1.3.50, Schrift auf Gelb immer schwarz) · Schwarz #111111 · Platin #333333 · Dark Grey #646464 · Grey #A7A7A7
   Schrift: Inter Tight (UI) · Space Grotesk (Labels/Zahlen) · lokal eingebunden (DSGVO) */

@font-face{font-family:'Inter Tight';font-weight:400;font-style:normal;font-display:swap;src:url('/fonts/inter-tight-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Inter Tight';font-weight:500;font-style:normal;font-display:swap;src:url('/fonts/inter-tight-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Inter Tight';font-weight:600;font-style:normal;font-display:swap;src:url('/fonts/inter-tight-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Inter Tight';font-weight:700;font-style:normal;font-display:swap;src:url('/fonts/inter-tight-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Inter Tight';font-weight:800;font-style:normal;font-display:swap;src:url('/fonts/inter-tight-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-weight:500;font-style:normal;font-display:swap;src:url('/fonts/space-grotesk-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-weight:700;font-style:normal;font-display:swap;src:url('/fonts/space-grotesk-latin-700-normal.woff2') format('woff2');}

:root{
  --bg:#F9F9F9; --card:#ffffff; --ink:#111111; --platin:#333333; --mid:#646464; --grey:#A7A7A7;
  --line:#e7e7e5; --accent:#FFD500; --accent-dark:#E3BD00; --accent-soft:#FFF8D6;
  --ok:#0E7A4D; --ok-soft:#E9F4EE; --red:#C10801; --red-soft:#FBEAE8;
  --radius:10px; --rbtn:6px;
  --label:'Space Grotesk',monospace; --ui:'Inter Tight',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{font-family:var(--ui);background:#ECECEA;color:var(--ink);display:flex;justify-content:center;}

#phone{width:100%;max-width:430px;height:100dvh;max-height:100dvh;background:var(--bg);
  display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 0 40px rgba(17,17,17,.14);}
@media(min-width:500px){ body{align-items:center;padding:16px 0;} #phone{height:calc(100dvh - 32px);border-radius:14px;} }

header{background:var(--bg);padding:16px 16px 12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);z-index:5;}
.wordmark{font-weight:800;font-size:17px;letter-spacing:-.02em;line-height:1;}
.wordmark i{font-style:normal;color:var(--accent);}
.logoimg{height:28px;display:block;}
header .htitle{flex:1;min-width:0;}
header .sub{font-family:var(--label);font-size:10px;color:var(--mid);margin-top:3px;text-transform:uppercase;letter-spacing:.08em;}
.bell{position:relative;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--card);
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);flex:none;}
#bellpop{position:fixed;z-index:80;width:380px;max-width:calc(100vw - 16px);max-height:min(68vh,540px);overflow-y:auto;
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 44px rgba(17,17,17,.16);
  padding:4px 14px 8px;display:none;}
#bellpop.show{display:block;}
.bp-head{font-size:14px;font-weight:800;letter-spacing:-.01em;padding:12px 2px 6px;}
.bp-row{padding:11px 2px;border-bottom:1px solid var(--line);gap:10px;cursor:pointer;}
.bp-row:last-child{border-bottom:none;}
.bp-row:hover{background:#FAFAF8;}
/* Textauswahl auf Bedienelementen aus (verhindert das macOS-„Nachschlagen"/Lexikon-Popup bei schnellen Klicks) */
button,.btn,.chip,.tgl,.tcheck,.segment,.seg,nav,.ppl,.kpi,.cbar,.mhead,.li,.dmtile,header,.bell,.calcell,.chev,.wact,.gchip,.kcard,.khead{
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}

/* Kanban-Board (Aufgaben) */
.kanban{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-items:start;}
@media(min-width:900px){ .kanban{grid-template-columns:repeat(4,1fr);} }
.kcol{background:#F1F0EE;border-radius:10px;padding:8px;min-height:120px;}
.kcol.over{outline:2px dashed var(--accent);outline-offset:-2px;}
.khead{font-family:var(--label);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--mid);padding:4px 4px 8px;}
.kcard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;cursor:pointer;}
.kcard:active{opacity:.8;}

/* Wichtig-Nachrichten im Chat */
.prioBtn{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:#fff;flex:none;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;cursor:pointer;color:var(--grey);}
.prioBtn.on{background:var(--accent);border-color:var(--accent);color:#111;}
.msg.prio{border-left:3px solid var(--accent);width:auto;min-width:90px;}
.priolbl{font-family:var(--label);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--accent);color:#111;border-radius:4px;padding:1px 6px;display:inline-block;margin-bottom:2px;}

/* Profilbild-Editor (zoomen & verschieben) */
.cropwrap{position:relative;width:min(420px,100%);aspect-ratio:1;margin:0 auto;border-radius:12px;overflow:hidden;background:#111;}
.cropwrap canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none;}
/* Kreis = eingeschriebener Kreis (closest-side) – exakt der Ausschnitt, der später als rundes Profilbild zu sehen ist; berührt alle vier Kanten */
.cropmask{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle closest-side at 50% 50%, transparent calc(100% - 1.5px), rgba(249,249,249,.72) 100%);}
/* Direktnachrichten als Kachel-Raster (viele Mitarbeiter nebeneinander) */
.dmgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
@media(min-width:700px){ .dmgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));} }
.dmtile{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 8px 12px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;text-align:center;}
.dmtile:hover{border-color:var(--grey);}
.dmtile .dmname{font-size:12.5px;font-weight:700;line-height:1.25;}
.dmun{position:absolute;top:7px;right:7px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;
  background:var(--accent);color:#111;font-family:var(--label);font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;line-height:1;}
.bellcount{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;
  background:var(--accent);color:#111;font-family:var(--label);font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;line-height:1;}
.userchip{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);
  padding:5px 12px 5px 5px;border-radius:999px;cursor:pointer;flex:none;}
.userchip .av{width:26px;height:26px;font-size:10px;}
.userchip span{font-size:12.5px;font-weight:600;}
.av{border-radius:50%;background:var(--platin);color:#fff;display:flex;align-items:center;justify-content:center;
  font-weight:700;flex:none;width:34px;height:34px;font-size:12px;font-family:var(--label);overflow:hidden;}
.av img{width:100%;height:100%;object-fit:cover;}
.av.ext{background:var(--mid);}
.av.me{background:var(--accent);color:#111;}

main{flex:1;overflow-y:auto;padding:16px 16px 92px;scroll-behavior:smooth;}
main::-webkit-scrollbar{display:none;}

h2.section{font-family:var(--label);font-size:11px;font-weight:700;color:var(--mid);text-transform:uppercase;
  letter-spacing:.1em;margin:20px 2px 8px;}
h2.section:first-child{margin-top:2px;}

.card{background:var(--card);border-radius:var(--radius);padding:14px;border:1px solid var(--line);margin-bottom:10px;}
.card.tap{cursor:pointer;}
.card.tap:active{background:#fafafa;}
.card.hl{border-left:3px solid var(--accent);}
.card.alert{border:1px solid var(--accent);background:#FFFBE6;}
.card.softline{border-style:dashed;text-align:center;cursor:pointer;}

.row{display:flex;align-items:center;gap:10px;}
.grow{flex:1;min-width:0;}
.muted{color:var(--mid);}
.small{font-size:12.5px;}
.xs{font-size:11px;}
.bold{font-weight:700;}
.num{font-family:var(--label);font-variant-numeric:tabular-nums;}
.mt4{margin-top:4px;} .mt8{margin-top:8px;} .mt12{margin-top:12px;}

.badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--label);font-size:10px;font-weight:700;
  padding:3px 8px;border-radius:4px;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;}
.b-ok{background:var(--ok-soft);color:var(--ok);}
.b-red{background:var(--red-soft);color:var(--red);}
.b-acc{background:var(--accent-soft);color:#111;}
.b-ink{background:#EDEDEB;color:var(--ink);}
.b-gray{background:#F0F0EE;color:var(--mid);}

.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 10px;}
.chips::-webkit-scrollbar{display:none;}
.chip{padding:7px 13px;border-radius:var(--rbtn);background:var(--card);border:1px solid var(--line);
  font-size:12.5px;font-weight:600;color:var(--mid);cursor:pointer;white-space:nowrap;}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink);}

.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  padding:13px;border:1px solid transparent;border-radius:var(--rbtn);font-size:14px;font-weight:700;cursor:pointer;
  font-family:var(--ui);}
.btn:active{opacity:.85;}
.btn-primary{background:var(--ink);color:#fff;}
.btn-accent{background:var(--accent);color:#111;}
.btn-ghost{background:var(--card);color:var(--ink);border-color:#cfcfcd;}
.btn-danger{background:var(--card);color:var(--red);border-color:#E8C2BE;}
.btn-sm{width:auto;padding:8px 14px;font-size:12.5px;}

.bar{height:6px;background:#E9E9E7;border-radius:99px;overflow:hidden;}
.bar>div{height:100%;border-radius:99px;background:var(--accent);}

.task{display:flex;gap:10px;align-items:flex-start;}
.tcheck{width:21px;height:21px;border-radius:4px;border:1.5px solid #c9c9c7;flex:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;margin-top:2px;background:#fff;font-size:12px;color:#fff;}
.tcheck.done{background:var(--ink);border-color:var(--ink);}
.task .tt{font-size:14px;font-weight:600;line-height:1.3;}
.task.done .tt{text-decoration:line-through;color:var(--grey);font-weight:500;}
.prio{width:3px;border-radius:3px;align-self:stretch;flex:none;}

.dayhead{display:flex;align-items:baseline;gap:8px;margin:16px 2px 8px;}
.dayhead .d{font-size:14px;font-weight:800;}
.evt{border-left:3px solid var(--ink);}
.crewavs{display:flex;}
.crewavs .av{width:26px;height:26px;font-size:9.5px;border:2px solid #fff;margin-left:-7px;}
.crewavs .av:first-child{margin-left:0;}

.clockcard{text-align:center;padding:24px 14px;}
.clocktime{font-family:var(--label);font-size:40px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.statgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 8px;text-align:center;}
.stat .v{font-family:var(--label);font-size:17px;font-weight:700;}
.stat .l{font-family:var(--label);font-size:9.5px;color:var(--mid);margin-top:3px;text-transform:uppercase;letter-spacing:.06em;}

.segment{display:flex;background:#E9E9E7;border-radius:var(--rbtn);padding:3px;margin-bottom:12px;}
.segment button{flex:1;border:none;background:transparent;padding:8px;border-radius:4px;
  font-size:13px;font-weight:600;color:var(--mid);cursor:pointer;font-family:var(--ui);}
.segment button.on{background:#fff;color:var(--ink);}

.li{display:flex;align-items:center;gap:12px;padding:14px;background:var(--card);border:1px solid var(--line);cursor:pointer;}
.li:first-child{border-radius:var(--radius) var(--radius) 0 0;}
.li:last-child{border-radius:0 0 var(--radius) var(--radius);}
.li:not(:last-child){border-bottom:none;}
.li:only-child{border-radius:var(--radius);}
.li .lt{font-size:14px;font-weight:600;}
.li .ls{font-size:11.5px;color:var(--mid);margin-top:2px;}
.chev{color:var(--grey);font-size:17px;flex:none;}
.marker{width:8px;height:8px;border-radius:2px;background:var(--platin);flex:none;}

nav{position:absolute;bottom:0;left:0;right:0;background:rgba(249,249,249,.95);
  backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;
  padding:6px 4px calc(8px + env(safe-area-inset-bottom));z-index:10;}
nav button{flex:1;border:none;background:none;display:flex;flex-direction:column;align-items:center;
  gap:3px;padding:6px 0 2px;cursor:pointer;color:var(--grey);font-family:var(--ui);min-width:0;}
nav button svg{width:21px;height:21px;flex:none;}
nav button span{font-size:9.5px;font-weight:600;white-space:nowrap;}
nav button.on{color:var(--ink);}
nav .navdot{position:relative;}
nav .navdot::after{content:"";position:absolute;top:2px;right:calc(50% - 14px);width:7px;height:7px;
  border-radius:50%;background:var(--accent);border:2px solid var(--bg);}

#fab{position:absolute;right:16px;bottom:84px;width:52px;height:52px;border-radius:12px;
  background:var(--ink);color:#fff;border:none;font-size:24px;cursor:pointer;z-index:9;
  box-shadow:0 8px 20px rgba(17,17,17,.28);display:none;align-items:center;justify-content:center;}

#overlay{position:absolute;inset:0;background:rgba(17,17,17,.45);z-index:20;opacity:0;pointer-events:none;transition:opacity .2s;}
#overlay.show{opacity:1;pointer-events:auto;}
#sheet{position:absolute;left:0;right:0;bottom:0;background:var(--card);z-index:21;
  border-radius:14px 14px 0 0;padding:10px 18px calc(20px + env(safe-area-inset-bottom));
  transform:translateY(105%);transition:transform .22s ease-out;max-height:88%;overflow-y:auto;}
#sheet.show{transform:translateY(0);}
.grab{width:36px;height:4px;background:#dcdcda;border-radius:99px;margin:0 auto 14px;}
.sheet-title{font-size:17px;font-weight:800;letter-spacing:-.01em;margin-bottom:12px;}

label.f{display:block;font-family:var(--label);font-size:10px;font-weight:700;color:var(--mid);margin:12px 0 5px;
  text-transform:uppercase;letter-spacing:.08em;}
input.f,select.f,textarea.f{width:100%;padding:11px 12px;border:1px solid #d6d6d4;
  border-radius:var(--rbtn);font-size:14px;font-family:var(--ui);background:#fff;color:var(--ink);}
input.f:focus,select.f:focus,textarea.f:focus{outline:2px solid var(--ink);border-color:transparent;}

.tgl{width:40px;height:23px;border-radius:99px;background:#cfcfcd;position:relative;cursor:pointer;transition:background .15s;flex:none;}
.tgl::after{content:"";position:absolute;top:2.5px;left:3px;width:18px;height:18px;border-radius:50%;
  background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.tgl.on{background:var(--ink);}
.tgl.on::after{left:19px;}
.tgl.lock{opacity:.4;cursor:not-allowed;}

#toast{position:absolute;left:14px;right:14px;bottom:92px;background:var(--ink);color:#fff;
  padding:12px 16px;border-radius:8px;font-size:13px;font-weight:600;z-index:30;
  transform:translateY(16px);opacity:0;transition:all .22s;pointer-events:none;text-align:center;}
#toast.show{transform:translateY(0);opacity:1;}

.subhead{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.backbtn{width:34px;height:34px;border-radius:var(--rbtn);background:var(--card);border:1px solid var(--line);
  cursor:pointer;font-size:16px;color:var(--ink);display:flex;align-items:center;justify-content:center;flex:none;}
.subhead .t{font-size:19px;font-weight:800;letter-spacing:-.02em;}

.empty{text-align:center;padding:30px 10px;color:var(--mid);font-size:13px;}

table.matrix{width:100%;border-collapse:collapse;font-size:12px;}
table.matrix th{font-family:var(--label);font-size:9px;text-transform:uppercase;color:var(--mid);padding:6px 3px;text-align:center;letter-spacing:.05em;}
table.matrix th:first-child{text-align:left;}
table.matrix td{padding:8px 3px;border-top:1px solid var(--line);text-align:center;}
table.matrix td:first-child{text-align:left;font-weight:600;font-size:12px;}
.dot-y{color:var(--ink);font-size:14px;}

.note{background:var(--card);border:1px dashed #cfcfcd;border-radius:var(--radius);padding:12px 14px;font-size:12px;color:var(--platin);margin-bottom:12px;line-height:1.5;}

.navbrand{display:none;}
@media(min-width:1000px){
  body{padding:0;align-items:stretch;}
  #phone{max-width:none;width:100%;height:100dvh;max-height:none;border-radius:0;box-shadow:none;
    display:grid;grid-template-columns:250px 1fr;grid-template-rows:auto 1fr;}
  header{grid-column:2;grid-row:1;padding:16px 36px;}
  header .logoimg{display:none;}
  main{grid-column:2;grid-row:2;padding:28px 44px 70px;}
  main>*{max-width:none;}
  nav{grid-column:1;grid-row:1/3;position:static;flex-direction:column;justify-content:flex-start;gap:2px;
    border-top:none;border-right:1px solid var(--line);padding:20px 14px;background:#fff;backdrop-filter:none;}
  .navbrand{display:block;padding:4px 10px 22px;}
  nav button{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:12px;padding:11px 14px;border-radius:var(--rbtn);width:100%;}
  nav button span{font-size:14px;}
  nav button:hover{background:#F4F4F2;}
  nav button.on{background:var(--ink);color:#fff;}
  nav .navdot::after{top:10px;left:32px;right:auto;border-color:#fff;}
  #fab{right:44px;bottom:44px;}
  /* Desktop: ALLE Sheets als großes, mittig zentriertes Fenster (Wunsch Patrick, v1.3.40) */
  #sheet{left:0;right:0;margin:0 auto;max-width:860px;width:calc(100vw - 64px);border-radius:14px;
    top:50%;bottom:auto;max-height:88vh;padding:18px 30px 26px;
    transform:translateY(calc(-50% + 30px));opacity:0;pointer-events:none;
    transition:transform .22s ease-out, opacity .18s ease-out;}
  #sheet.show{transform:translateY(-50%);opacity:1;pointer-events:auto;}
  #toast{left:0;right:0;margin:0 auto;max-width:560px;bottom:44px;}
  .chips{flex-wrap:wrap;}
  .calcell{aspect-ratio:auto;min-height:78px;}
}

.calwrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-bottom:10px;}
.calhead{display:grid;grid-template-columns:22px repeat(7,1fr);gap:4px;margin-bottom:6px;}
.calhead div{text-align:center;font-family:var(--label);font-size:9px;font-weight:700;color:var(--grey);text-transform:uppercase;}
.calgrid{display:grid;grid-template-columns:22px repeat(7,1fr);gap:4px;}
.calkw{display:flex;align-items:flex-start;justify-content:center;padding-top:4px;
  font-family:var(--label);font-size:9px;font-weight:700;color:var(--grey);}
.calcell{aspect-ratio:.92;background:#F4F4F2;border:1.5px solid transparent;border-radius:6px;display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font-size:12px;font-weight:600;font-family:var(--label);}
.calcell.off{visibility:hidden;}
.calcell.today{border-color:var(--accent);}
.calcell.sel{border-color:var(--accent);background:rgba(255,213,0,.06);}
.dots{display:flex;gap:2.5px;height:5px;}
.dots i{width:5px;height:5px;border-radius:1.5px;display:block;}
.legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);}
.legend span{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--mid);font-weight:600;}
.legend i{width:7px;height:7px;border-radius:2px;display:inline-block;}

.attach{display:inline-flex;align-items:center;gap:5px;background:#F4F4F2;border:1px solid var(--line);
  border-radius:4px;padding:5px 9px;font-size:11.5px;font-weight:600;margin:3px 4px 0 0;cursor:pointer;}

.pplrow{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;}
.pplrow::-webkit-scrollbar{display:none;}
.ppl{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--card);border:1.5px solid var(--line);
  border-radius:8px;padding:9px 11px 7px;cursor:pointer;min-width:66px;}
.ppl.on{border-color:var(--ink);}
.ppl .pn{font-size:10.5px;font-weight:700;color:var(--mid);white-space:nowrap;}
.ppl.on .pn{color:var(--ink);}
.pplbadge{font-family:var(--label);font-size:9px;font-weight:700;background:var(--accent);color:#111;border-radius:4px;padding:1.5px 7px;}
.pplzero{font-family:var(--label);font-size:9px;font-weight:700;color:var(--grey);padding:1.5px 0;}

.sens{background:#FFF7F3;border:1px solid #F3CDBB;border-radius:var(--radius);padding:10px 12px;
  font-size:11.5px;color:#8A2A00;margin-bottom:10px;line-height:1.5;}
.kv{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;}
.kv:last-of-type{border-bottom:none;}
.kv .k{color:var(--mid);flex:none;}
.kv .v{font-weight:600;text-align:right;word-break:break-word;}
.linkbtn{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--card);color:var(--ink);border:1px solid #cfcfcd;
  border-radius:var(--rbtn);padding:11px;font-weight:700;font-size:13px;text-decoration:none;flex:1;cursor:pointer;font-family:var(--ui);}
.warnbadge{display:block;margin-top:4px;font-size:10.5px;color:var(--red);font-weight:700;}

.msgs{display:flex;flex-direction:column;gap:8px;padding:4px 0 12px;}
.msg{max-width:82%;padding:9px 12px;border-radius:10px;font-size:13.5px;line-height:1.45;}
.msg.in{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:3px;}
.msg.out{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:3px;}
.msg.sys{align-self:center;background:#EDEDEB;color:var(--mid);font-size:11px;font-weight:600;padding:5px 12px;border-radius:99px;max-width:92%;text-align:center;}
.msg .who{font-size:10.5px;font-weight:800;margin-bottom:2px;color:var(--ink);}
.msg .when{font-family:var(--label);font-size:9px;opacity:.55;text-align:right;margin-top:3px;}
.chatbar{position:sticky;bottom:0;display:flex;gap:8px;padding:8px 0 2px;background:var(--bg);}
.chatbar input{flex:1;padding:11px 14px;border:1px solid #d6d6d4;border-radius:var(--rbtn);font-size:14px;font-family:var(--ui);background:#fff;}
.chatbar input:focus{outline:2px solid var(--ink);border-color:transparent;}
.chatbar button{width:44px;height:44px;border-radius:var(--rbtn);border:none;background:var(--ink);color:#fff;font-size:16px;cursor:pointer;flex:none;}
.unread{min-width:19px;height:19px;border-radius:4px;background:var(--accent);color:#111;font-family:var(--label);font-size:10px;
  font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;}

.reqcard{border:1px solid var(--ink);}
.reqcard.sos{border-color:var(--red);}
.jobmeta{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;}
.jobmeta span{font-size:11px;background:#F4F4F2;border:1px solid var(--line);border-radius:4px;padding:4px 8px;color:var(--platin);font-weight:600;}
.module{cursor:pointer;}
.module .mhead{display:flex;align-items:center;gap:11px;}
.module .mchev{margin-left:auto;color:var(--grey);font-size:15px;transition:.2s;}
.module.open .mchev{transform:rotate(90deg);}
.module .mbody{display:none;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);}
.module.open .mbody{display:block;}
.module .mbody p{font-size:13px;color:var(--platin);line-height:1.55;margin-bottom:8px;}
.module .mbody p b{color:var(--ink);}
.module .mtitle{font-size:14px;font-weight:700;}
.doc{display:flex;align-items:center;gap:10px;background:#F4F4F2;border:1px solid var(--line);
  border-radius:6px;padding:9px 11px;margin-bottom:7px;font-size:12.5px;font-weight:600;}
.doc .xs{margin-left:auto;font-weight:500;text-align:right;}
.rchips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px;}
.rchip{border:1.5px solid var(--line);background:#fff;border-radius:4px;padding:6px 11px;font-size:11.5px;
  font-weight:700;cursor:pointer;color:var(--mid);user-select:none;}
.rchip.sel{border-color:var(--ink);background:var(--ink);color:#fff;}
.fbentry{background:#F4F4F2;border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-bottom:7px;}
.fbentry p{font-size:12.5px;color:var(--mid);margin-top:5px;line-height:1.4;}
.reminder{background:var(--ink);color:#fff;border:none;}
.reminder b{font-size:13.5px;}
.reminder p{font-size:12px;opacity:.8;margin-top:2px;line-height:1.4;}
.lockednote{border-style:dashed;background:transparent;text-align:center;padding:16px;}
.trow{display:flex;align-items:center;gap:11px;padding:8px 2px;border-bottom:1px solid #f0f0ee;font-size:12.5px;}
.trow:last-child{border-bottom:none;}
.trow b{font-family:var(--label);}
.checkrow{display:flex;align-items:center;gap:10px;padding:8px 2px;font-size:13px;border-bottom:1px solid #f0f0ee;cursor:pointer;user-select:none;}
.checkrow:last-child{border-bottom:none;}
.checkrow .cbox{width:19px;height:19px;border-radius:4px;border:1.5px solid #c9c9c7;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;flex:none;}
.checkrow.done .cbox{background:var(--ink);border-color:var(--ink);}
.checkrow.done.strike{color:var(--grey);text-decoration:line-through;}
.warnbox{background:#FFF7F3;border:1px solid #F3CDBB;border-radius:8px;padding:10px 12px;font-size:12px;color:#8A2A00;line-height:1.5;display:flex;gap:9px;margin-top:10px;}
.okbox{background:var(--ok-soft);border:1px solid #BFDECC;border-radius:8px;padding:10px 12px;font-size:12px;color:#0B5C3B;line-height:1.5;display:flex;gap:9px;margin-top:10px;}
.teamrow{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid #f0f0ee;}
.teamrow:last-child{border-bottom:none;}
.teamrow b{font-size:13px;display:block;}
.teamrow .badge{margin-left:auto;flex:none;}

/* Login */
#login{position:absolute;inset:0;background:var(--bg);z-index:50;display:flex;flex-direction:column;justify-content:center;padding:32px 28px;}
#login .lw{max-width:360px;width:100%;margin:0 auto;}
#login h1{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.05;}
#login h1 i{font-style:normal;color:var(--accent);}
#login .sub{font-family:var(--label);font-size:11px;color:var(--mid);text-transform:uppercase;letter-spacing:.1em;margin-top:8px;}
.err{background:var(--red-soft);color:var(--red);border-radius:6px;padding:10px 12px;font-size:12.5px;font-weight:600;margin-top:12px;}

/* ===== Kalender: beschriftete Balken (Rentman-Stil) ===== */
.calgrid{gap:3px;}
.calcell{aspect-ratio:auto;min-height:66px;align-items:stretch;justify-content:flex-start;gap:2px;
  padding:3px 2px;background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden;}
.calcell .cday{font-family:var(--label);font-size:10px;font-weight:700;color:var(--mid);padding:0 2px 1px;}
.calcell.today{border:1.5px solid var(--accent);}
.calcell.today .cday{color:var(--ink);font-weight:800;}
.calcell.sel{border:1.5px solid var(--accent);background:rgba(255,213,0,.05);}
.calcell.sel .cday{color:var(--ink);font-weight:800;}
.cbar.tap{cursor:pointer;}
.cbar.tap:hover{filter:brightness(1.12);}
.cbar.more{cursor:pointer;}
.calperson{width:auto;min-width:170px;margin:0 0 0 auto;padding:7px 10px;font-size:12.5px;font-weight:600;
  border:1px solid var(--line);border-radius:999px;background:var(--card);}
.cbar{font-size:8.5px;font-weight:600;line-height:1.25;padding:1.5px 3px;border-radius:2.5px;
  white-space:nowrap;overflow:hidden;text-overflow:clip;text-align:left;flex:none;}
.cbar.more{background:transparent;color:var(--mid);font-family:var(--label);font-size:8px;}
@media(min-width:1000px){
  .calcell{min-height:96px;}
  .cbar{font-size:10.5px;padding:2.5px 5px;border-radius:3px;}
  .calcell .cday{font-size:11px;}
}
.calfchip{display:inline-flex;align-items:center;}

.cbtn{width:38px;height:38px;border-radius:6px;border:1px solid #cfcfcd;background:#fff;color:var(--ink);
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;text-decoration:none;}
.cbtn:active{opacity:.8;}

.mention{background:var(--accent);color:#111;font-weight:700;border-radius:4px;padding:0 4px;}
.msg.out .mention{color:#111;}

/* ===== Start-Dashboard (Kachel-Ansicht) ===== */
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px;}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;cursor:pointer;}
.kpi:active{background:#fafafa;}
.kpi .kn{font-family:var(--label);font-size:26px;font-weight:700;line-height:1;}
.kpi .kl{font-family:var(--label);font-size:9.5px;font-weight:700;color:var(--mid);text-transform:uppercase;letter-spacing:.06em;margin-top:6px;}
.kpi.hot{border-color:var(--accent);}
.kpi.hot .kn{color:var(--ink);}
.dash{display:grid;grid-template-columns:1fr;gap:12px;align-items:start;}
.dash .widget{margin-bottom:0;height:100%;}
.whead{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.wtitle{font-size:15px;font-weight:800;letter-spacing:-.01em;}
.wact{margin-left:auto;font-family:var(--label);font-size:10px;font-weight:700;color:var(--mid);
  text-transform:uppercase;letter-spacing:.06em;cursor:pointer;}
.wact:hover{color:var(--ink);}
.wrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #f0f0ee;}
.wrow:last-child{border-bottom:none;}
.wrow.tap{cursor:pointer;}
@media(min-width:700px){ .kpis{grid-template-columns:repeat(4,1fr);} }
@media(min-width:1000px){
  .kpis{grid-template-columns:repeat(8,1fr);}
  .dash{grid-template-columns:repeat(3,1fr);}
}
@media(min-width:1600px){ .dash{grid-template-columns:repeat(4,1fr);} }
/* Eigenes Raster (Start-Seite „Anpassen"): feste Spaltenzahl ab Tablet-Breite */
@media(min-width:700px){
  .dash.c1{grid-template-columns:1fr;}
  .dash.c2{grid-template-columns:repeat(2,1fr);}
  .dash.c3{grid-template-columns:repeat(3,1fr);}
  .dash.c4{grid-template-columns:repeat(4,1fr);}
}

/* ---------- Teilaufgaben-Editor (Zeilen mit Reihenfolge + Details) ---------- */
.ntp{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;background:var(--card);}
.ntp-ctl{display:flex;gap:16px;margin-top:7px;align-items:center;}
.ntp-b{font-family:var(--label);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mid);cursor:pointer;padding:2px 0;}
.ntp-b:active{color:var(--ink);}
.ntp-det{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line);}
.msg .msgimg{display:block;width:100%;max-height:360px;object-fit:contain;border-radius:10px;margin:2px 0 4px;cursor:pointer;background:rgba(255,255,255,.06);}
.msg.wide{max-width:88%;}
.msgpdf{display:flex;align-items:center;gap:9px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin:2px 0 4px;cursor:pointer;font-size:13px;font-weight:600;min-width:180px;}
.pdftag{font-family:var(--label);font-size:9.5px;font-weight:700;background:var(--accent);color:#111;border-radius:4px;padding:3px 6px;letter-spacing:.05em;flex:none;}

/* ---------- Vollbild-Viewer (Bilder & PDF in der App) ---------- */
.viewer{position:fixed;inset:0;background:rgba(17,17,17,.94);z-index:2000;display:flex;flex-direction:column;}
.viewer-top{display:flex;align-items:center;gap:10px;padding:12px 14px;color:#fff;flex:none;}
.viewer-name{flex:1;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.viewer-btn{font-family:var(--label);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:8px;padding:7px 10px;cursor:pointer;text-decoration:none;flex:none;}
.viewer>img{flex:1;min-height:0;width:100%;object-fit:contain;padding:0 8px 14px;box-sizing:border-box;}
.viewer>iframe{flex:1;min-height:0;width:100%;border:0;background:#fff;}

/* ---------- Chat: reine Datei-Nachricht ohne Blase + Löschen-Kreuz ---------- */
.msg.bare{background:transparent !important;border:none !important;padding:0;color:var(--ink);}
.msg.bare .when{color:var(--mid);opacity:1;}
.msg.bare .who{color:var(--mid);margin-bottom:3px;}
.msg.bare .msgimg{margin:0 0 2px;background:transparent;border:1px solid var(--line);}
.msg.bare .msgpdf{margin:0 0 2px;box-shadow:0 1px 4px rgba(17,17,17,.06);}
.msg{position:relative;}
.msgx{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;background:var(--card);color:var(--mid);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;cursor:pointer;
  opacity:0;transition:opacity .12s;z-index:2;}
.msg:hover .msgx, .msg:active .msgx{opacity:1;}
@media (hover: none){ .msgx{opacity:.55;} }

/* ---------- Breites Sheet (Desktop): Aufgabe in zwei Spalten ---------- */
.sheet-cols{display:grid;grid-template-columns:1fr;column-gap:36px;align-items:start;}
@media (min-width: 900px){
  #sheet.wide{max-width:1360px;width:calc(100vw - 64px);padding-left:36px;padding-right:36px;
    top:50%;bottom:auto;min-height:86vh;max-height:90vh;border-radius:14px;
    transform:translateY(calc(-50% + 30px));opacity:0;pointer-events:none;
    transition:transform .22s ease-out, opacity .18s ease-out;}
  #sheet.wide.show{transform:translateY(-50%);opacity:1;pointer-events:auto;}
  #sheet.wide .sheet-cols{grid-template-columns:1.05fr 1fr;}
  #sheet.wide .sheet-cols>div:last-child{border-left:1px solid var(--line);padding-left:36px;min-height:200px;}
}
/* Drag & Drop-Zonen: aktiver Zustand beim Darüberziehen */
[data-drop].dropping{outline:2px dashed var(--accent);outline-offset:4px;background:rgba(255,213,0,.06);}

/* ======================= NACHRICHTEN-BANNER + FOKUS (v1.3.49) ======================= */
/* Banner wie bei iOS: rutscht oben rein, egal wo man gerade ist. Tippen öffnet den Chat. */
#msgbanner{position:fixed;top:calc(10px + env(safe-area-inset-top));left:50%;
  transform:translate(-50%,-160%);width:calc(100vw - 20px);max-width:420px;z-index:120;
  opacity:0;pointer-events:none;transition:transform .38s cubic-bezier(.2,.9,.3,1),opacity .3s;}
#msgbanner.show{transform:translate(-50%,0);opacity:1;pointer-events:auto;}
.mbn{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);
  border-radius:16px;padding:11px 12px;box-shadow:0 14px 40px rgba(17,17,17,.22);cursor:pointer;user-select:none;-webkit-user-select:none;}
.mbn.prio{border-left:4px solid var(--accent);}
.mbn .mbn-body{flex:1;min-width:0;}
.mbn .mbn-ctx{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);font-family:var(--label);}
.mbn .mbn-name{font-size:13.5px;font-weight:800;letter-spacing:-.01em;margin-top:1px;}
.mbn .mbn-txt{font-size:12.5px;color:var(--mid);margin-top:1px;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.mbn .mbn-x{flex:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:var(--grey);font-size:16px;line-height:1;}
.mbn .mbn-x:hover{background:#F1F1EF;color:var(--ink);}
/* Fokus-Button (Mond in der Kopfzeile): gefüllt = aktiv */
#focusbtn.focuson{background:var(--ink);border-color:var(--ink);color:#fff;}
#focuspop{position:fixed;z-index:80;width:290px;max-width:calc(100vw - 16px);
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 44px rgba(17,17,17,.16);
  padding:4px 14px 10px;display:none;}
#focuspop.show{display:block;}

/* ======================= CHAT: ANTWORTEN, LESEBESTÄTIGUNG, AVATARE (v1.3.51) ======================= */
.mrow{display:flex;align-items:flex-end;gap:7px;align-self:flex-start;max-width:88%;}
.mrow .av{margin-bottom:2px;}
.mrow .msg{max-width:100%;}
/* Zitat der beantworteten Nachricht */
.mquote{border-left:3px solid var(--accent);background:rgba(17,17,17,.05);border-radius:6px;
  padding:5px 9px;margin:1px 0 6px;font-size:11.5px;line-height:1.4;color:var(--mid);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.mquote b{display:block;font-size:10px;color:var(--ink);margin-bottom:1px;}
.msg.out .mquote{background:rgba(255,255,255,.12);color:#d9d9d7;}
.msg.out .mquote b{color:#fff;}
/* Antworten-Knopf (wie der Zurückrufen-Knopf, nur links) */
.msgr{position:absolute;top:-7px;left:-7px;width:20px;height:20px;border-radius:50%;background:var(--card);color:var(--mid);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;
  opacity:0;transition:opacity .12s;z-index:2;}
.msg:hover .msgr, .msg:active .msgr{opacity:1;}
@media (hover: none){ .msgr{opacity:.55;} }
/* Trennstrich zwischen gelesenen und neuen Nachrichten */
.unreaddiv{display:flex;align-items:center;gap:10px;margin:6px 0;}
.unreaddiv::before,.unreaddiv::after{content:'';flex:1;height:2px;background:var(--accent);border-radius:2px;}
.unreaddiv span{font-family:var(--label);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  background:var(--accent);color:#111;border-radius:99px;padding:3px 10px;flex:none;}
/* Antwort-Vorschau über der Eingabezeile */
.replybar{position:sticky;bottom:62px;display:flex;align-items:center;gap:10px;background:var(--card);
  border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:8px 10px;margin-bottom:6px;}
/* Lesebestätigung: ✓ zugestellt · ✓✓ gelesen (gelb = von allen gelesen) */
.tick{font-size:10px;font-weight:800;margin-left:5px;letter-spacing:-.05em;opacity:.75;cursor:default;}
.tick.all{color:var(--accent);opacity:1;}
.msg.bare .tick{color:var(--mid);}

/* ======================= MÄNGEL-FOTOS + LIVE-FEED (v1.3.51) ======================= */
.defpics{display:flex;flex-wrap:wrap;gap:10px;}
.defpic{width:150px;}
.defpic img{width:150px;height:110px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;display:block;}
.defpic .defcap{width:100%;margin-top:4px;border:1px solid var(--line);border-radius:6px;padding:4px 7px;font-size:11px;font-family:var(--ui);background:#fff;}
.defpic .defcap:focus{outline:2px solid var(--ink);border-color:transparent;}
.tickrow{display:flex;align-items:flex-start;gap:10px;padding:7px 0 7px 2px;border-left:2px solid var(--line);margin-left:6px;padding-left:14px;position:relative;}
.tickrow .tickdot{position:absolute;left:-6px;top:11px;width:10px;height:10px;border-radius:50%;background:var(--card);border:2px solid var(--grey);}
.tickrow.cur{background:var(--accent-soft);border-left-color:var(--accent);border-radius:0 8px 8px 0;}
.tickrow.cur .tickdot{background:var(--accent);border-color:var(--ink);}
.tickrow.past{opacity:.5;}
.tickrow.past .tickdot{background:var(--grey);border-color:var(--grey);}

/* Tages-Popup im Kalender (v1.3.52) */
#daypop{position:fixed;z-index:80;width:240px;background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 14px 44px rgba(17,17,17,.16);padding:4px 12px 2px;display:none;}
#daypop.show{display:block;}

/* v1.3.52: EIN Häkchen (klickbar), WICHTIG-Label über der Blase */
.tick{cursor:pointer;font-size:11px;}
.mcol{display:flex;flex-direction:column;gap:3px;max-width:82%;}
.mcol.out{align-self:flex-end;align-items:flex-end;}
.mcol.in{align-items:flex-start;max-width:100%;}
.mcol .msg{max-width:100%;}
.mcol .priolbl{margin-bottom:0;}

/* ======================= LIVE: GO-Countdown (v1.3.55) ======================= */
.golay{position:fixed;inset:0;background:rgba(17,17,17,.96);z-index:3000;display:flex;align-items:center;justify-content:center;}
.gonum{color:var(--accent);font-family:var(--label);font-weight:800;font-size:clamp(90px,28vw,240px);letter-spacing:-.02em;text-align:center;line-height:1.05;}
.gonum.final{font-size:clamp(38px,9vw,110px);}
.gonum.pop{animation:gopop .9s cubic-bezier(.2,.9,.3,1);}
@keyframes gopop{0%{transform:scale(1.7);opacity:0;}35%{transform:scale(1);opacity:1;}100%{transform:scale(.96);opacity:1;}}

/* v1.3.63: Mehrtages-Auswahl im Kalender (Ziehen über Tage) */
.calcell.selrange{background:var(--accent-soft);border-color:var(--accent);}

/* v1.3.63: WICHTIG-Nachrichten – ganze Blase GELB #FFD500 mit schwarzer Schrift */
.msg.prio{background:var(--accent) !important;color:#111 !important;border:none;border-left:3px solid var(--ink);}
.msg.prio .who{color:#111;}
.msg.prio .when{color:#111;opacity:.6;}
.msg.prio .tick{color:#111;opacity:.75;}
.msg.prio .tick.all{color:#111;opacity:1;font-weight:800;}
.msg.prio .mquote{background:rgba(17,17,17,.08);color:#3a3a38;border-left-color:var(--ink);}
.msg.prio .mquote b{color:#111;}
.msg.prio .mention{background:var(--ink);color:var(--accent);}
.msg.prio a{color:#111;}

/* v1.3.66: Zeitplan-Zusatzinfos je Programmpunkt (Zuweisung / BRIEFING / Erinnerung) */
.tlmeta{font-size:12px;margin-top:3px;line-height:1.5;}
.tlmeta.big{font-size:14px;margin-top:5px;}
.tlbrief{margin-top:6px;background:var(--accent-soft);border:1px solid #EBDC9A;border-radius:10px;padding:8px 11px;font-size:12.5px;line-height:1.55;color:#111;white-space:pre-line;}
.tlbrief.big{font-size:15px;padding:12px 14px;margin-top:8px;border-radius:12px;}
.tlbrief .tlbl{display:inline-block;background:var(--accent);color:#111;font-size:9.5px;font-weight:800;letter-spacing:.08em;border-radius:5px;padding:2px 7px;margin-right:8px;vertical-align:2px;}
.tlbrief.big .tlbl{font-size:11px;padding:3px 9px;}
/* Große LIVE-Darstellung des Zeitplans (Wunsch Patrick: alles deutlich größer) */
.tickrow.big{padding:14px 8px 14px 18px;gap:14px;}
.tickrow.big .tickdot{top:20px;width:12px;height:12px;left:-7px;}
.tickrow.big .tltime{font-size:24px;min-width:84px;letter-spacing:.01em;}
.tickrow.big .tltitle{font-size:17px;font-weight:700;line-height:1.35;}
.tickrow.big .badge{font-size:11.5px;padding:4px 10px;vertical-align:3px;}
@media (max-width:640px){
  .tickrow.big .tltime{font-size:20px;min-width:66px;}
  .tickrow.big .tltitle{font-size:15.5px;}
}
