:root{--css-ver:"13.33"}
  :root{
    --ink:#15171e; --ink-2:#2c2f3a; --paper:#f2f2ef; --surface:#ffffff;
    --line:#e4e4df; --line-2:#eeeeea; --muted:#7c7f88; --muted-2:#a2a4ac;
    --accent:#ff5a3c; --danger:#c0392b; --fill:#15171e; --weekend:#f6f5f1; --holiday:#dcf1e4;
    --radius:14px; --radius-sm:9px; --shadow:0 1px 2px rgba(20,22,30,.04),0 8px 24px -12px rgba(20,22,30,.14);
    --sans:'IBM Plex Sans',system-ui,sans-serif; --display:'IBM Plex Sans',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
  }
  *{box-sizing:border-box}
  /* ===================== DARK MODE ===================== */
  body.theme-dark{
    --paper:#14161c; --surface:#1c1f28; --line:#2d313d; --line-2:#242832;
    --ink:#e9eaee; --ink-2:#c4c7d0; --muted:#9195a0; --muted-2:#71767f;
    --fill:#0f1116; --weekend:#191c23; --holiday:#183a2c;
    --danger:#e5695a;
    --shadow:0 1px 2px rgba(0,0,0,.35),0 10px 30px -12px rgba(0,0,0,.65);
    color-scheme:dark;
  }
  /* Scrollbar */
  body.theme-dark ::-webkit-scrollbar-thumb{background:#3a3f4b;border-color:var(--paper)}
  /* Eingabefelder / Fokus */
  body.theme-dark .field input:focus,body.theme-dark .field select:focus{background:var(--surface)}
  body.theme-dark .vorlauf-box input,body.theme-dark input,body.theme-dark select,body.theme-dark textarea{background:var(--surface);color:var(--ink)}
  body.theme-dark input::placeholder,body.theme-dark textarea::placeholder{color:var(--muted-2)}
  /* helle Datepicker-/Uhr-Icons sichtbar machen */
  body.theme-dark input[type=date]::-webkit-calendar-picker-indicator,body.theme-dark input[type=month]::-webkit-calendar-picker-indicator,body.theme-dark input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.4)}
  /* helle Status-/Tint-Farben abdunkeln */
  body.theme-dark .pm-st-doing{background:#3a2f1c}
  body.theme-dark .pm-st-open{background:#22262f}
  body.theme-dark .wt-sheet tr.wt-today>td{background:#3a3320}
  body.theme-dark .tabs.reorder button[data-view]{background:#ffffff14}
  body.theme-dark .tabs.reorder button.active{background:#ffffff22}
  body.theme-dark .pick .opt.sel .av{background:#e9eaee;color:#15171e}
  /* Messestand-Zeilen im Dark angleichen */
  body.theme-dark table.pm-table tbody tr[data-pm].pm-messe-a{background:#1a2636}
  body.theme-dark table.pm-table tbody tr[data-pm].pm-messe-b{background:#152030}
  body.theme-dark table.pm-table tbody tr[data-pm].pm-messe-a:hover,body.theme-dark table.pm-table tbody tr[data-pm].pm-messe-b:hover{background:#1f2d40}
  /* Zebra/Hover in PM-Liste */
  body.theme-dark table.pm-table tbody tr[data-pm]:nth-child(even){background:#1f232c}
  body.theme-dark table.pm-table tbody tr[data-pm]:hover{background:rgba(255,90,60,.14)}
  /* Ghost-/Überstand-Text im Plan etwas heller */
  body.theme-dark .pl-projtail,body.theme-dark .pm-glane .pm-gtail{color:var(--muted-2)}
  /* Plan: alternierende Zeilen, Label-Hintergründe, Hover, Monats-Kopf im Dark abdunkeln */
  body.theme-dark .pl-month--alt{background:#1b1e26}
  body.theme-dark .pl-row:nth-child(even){background:#1e222b}
  body.theme-dark .pl-row:nth-child(even) .pl-label{background:#232833}
  body.theme-dark .pl-row:hover{background:#262b36}
  body.theme-dark .pl-row:hover .pl-label{background:#262b36}
  /* Weitere helle Flächen im Dark abdunkeln */
  body.theme-dark .pl-monthband{background:#1b1e26}
  body.theme-dark .pm-gwe{background:#1e222b}
  body.theme-dark .pl-col-hl{background:rgba(255,255,255,.04)!important}
  body.theme-dark .pm-ghas{background:#3a2f1c}
  body.theme-dark .pm-srow.pm-over{background:#22262f}
  body.theme-dark .wt-table tr.wt-na{background:#20232b;color:var(--muted-2)}
  body.theme-dark .acl-editcol{background:#20232b}
  body.theme-dark .pm-chip.pm-messe{background:#1e2a4d;color:#a9beff}
  body.theme-dark .lg-add{background:#173226;color:#7fd6a0}
  body.theme-dark .lg-edit{background:#152142;color:#9db8f5}
  body.theme-dark .lg-del{background:#3a1d1d;color:#e59a92}
  body.theme-dark .cicard .avatar,body.theme-dark .rp-in{background:#1e3328;color:#7fd6a0}
  body.theme-dark .rem-item.soon,body.theme-dark .tuv-soon,body.theme-dark .depnote,body.theme-dark .wt-kmbtn.km-locked{background:#332a15;border-color:#4a3d20;color:#e0c07a}
  body.theme-dark .rem-item.over,body.theme-dark .tuv-over,body.theme-dark .del-warn{background:#3a1d1d;border-color:#5a2e2e;color:#e59a92}
  body.theme-dark .tuv-ok,body.theme-dark .countdown{background:#173226;border-color:#2a5a3f;color:#7fd6a0}
  html,body{margin:0;height:100%}
  body{font-family:var(--sans);background:var(--paper);color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}
  input,textarea,select,[contenteditable="true"],.selectable{-webkit-user-select:text;user-select:text}
  button{font-family:inherit;cursor:pointer}
  input,select{font-family:inherit;font-size:14px}
  ::-webkit-scrollbar{width:11px;height:11px}
  ::-webkit-scrollbar-thumb{background:#d3d3cd;border-radius:10px;border:3px solid var(--paper)}
  ::-webkit-scrollbar-track{background:transparent}

  .app{display:grid;grid-template-rows:auto 1fr;height:100vh;height:100dvh}
  header.topbar{display:flex;align-items:center;gap:16px;padding:0 20px;height:60px;background:var(--fill);color:#fff;position:relative;z-index:30}
  .tbar-actions{display:contents}
  #burgerBtn{display:none}
  .brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:700;letter-spacing:-.02em}
  .brand .logo-img{height:34px;display:block;background:none;padding:0;cursor:pointer}
  .brand .logo{font-size:20px}.brand .logo b{color:#fff}.brand .logo .amp{color:var(--accent);margin:0 1px}
  .brand .sub{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#9a9da8;font-family:var(--sans)}
  .topbar .spacer{flex:1}
  .search{display:flex;align-items:center;gap:8px;background:#22252f;border:1px solid #2f333e;border-radius:999px;padding:7px 14px;min-width:190px}
  .search input{background:none;border:none;outline:none;color:#fff;width:100%;font-size:13px}
  .search input::placeholder{color:#8a8d97}.search svg{flex:none;opacity:.7}
  .tbtn{background:#22252f;border:1px solid #2f333e;color:#e6e7ea;padding:8px 13px;border-radius:9px;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:7px;transition:.15s}
  .tbtn:hover{background:#2c303b}
  .tbtn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
  .tbtn.primary:hover{background:#ff6f56}
  .tbtn.ghost{background:transparent;border-color:#343845}

  .body{display:grid;grid-template-columns:1fr;min-height:0}
  aside{background:var(--surface);border-right:1px solid var(--line);overflow-y:auto;padding:16px 12px 40px}
  .side-h{font-family:var(--display);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:14px 8px 8px;display:flex;justify-content:space-between;align-items:center}
  .side-h button{background:none;border:none;color:var(--muted);font-size:12px;font-weight:600;padding:2px 4px;border-radius:6px}
  .side-h button:hover{background:var(--line-2);color:var(--ink)}
  .cust-toggle{font-family:var(--display)!important;font-size:11px!important;letter-spacing:.13em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}
  .cust-toggle span{font-size:9px;transition:transform .15s}
  .cust{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:.12s}
  .cust:hover{background:var(--line-2)}
  .cust.active{background:var(--fill);color:#fff}
  .cust .dot{width:12px;height:12px;border-radius:4px;flex:none;border:1px solid rgba(0,0,0,.15)}
  .cust .nm{flex:1;font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cust .ct{font-family:var(--mono);font-size:11px;color:var(--muted-2)}
  .cust.active .ct{color:#b9bcc6}

  main{overflow:hidden;padding:20px 24px 20px;min-width:0;display:flex;flex-direction:column}
  .tabs{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:3px;gap:2px;flex:none}
  .tabs-row{display:flex;align-items:center;margin-bottom:16px;gap:8px}
  .tabs button{background:none;border:none;padding:8px 16px;border-radius:8px;font-weight:500;font-size:13px;color:var(--muted);cursor:pointer}
  .tabs button[draggable="true"]{cursor:grab}
  .tabs button.nav-drag{opacity:.45;cursor:grabbing}
  .tabs.reorder{background:#ffcc80;border:2px solid #e65100;box-shadow:0 0 0 3px #e6510033}
  .tabs.reorder button[data-view]{opacity:1;outline:2px dashed #e65100;outline-offset:-2px;cursor:grab;touch-action:none;background:#fff8}
  .tabs.reorder button.active{background:#fff8;color:var(--ink)}
  .tabs.reorder ~ #navReorderLbl{background:#e65100;border-color:#e65100}
  .tabs.reorder ~ #navReorderLbl #navReorderChk{accent-color:#fff}
  body.nav-reorder .wt-subnav button[draggable="true"]{outline:2px dashed var(--accent);outline-offset:-2px;cursor:grab;touch-action:none}
  body.nav-reorder .wt-subnav button.nav-drag{opacity:.45;cursor:grabbing}
  .tabs button.active{background:var(--fill);color:#fff}
  #content{flex:1;min-height:0;overflow-y:auto}
  #content.plan-mode{overflow:hidden;display:flex;flex-direction:column}

  .view-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap;flex:none}
  .view-head h1{font-family:var(--display);font-size:21px;font-weight:600;letter-spacing:-.02em;margin:0;display:flex;align-items:center;gap:11px}
  .view-head h1 .cdot{width:14px;height:14px;border-radius:5px}
  .view-head .meta{color:var(--muted);font-size:13px;margin-top:2px}
  .qnav{display:flex;align-items:center;gap:6px}
  .qnav .qlabel{font-family:var(--display);font-weight:600;font-size:15px;min-width:150px;text-align:center}
  .qbtn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--ink-2)}
  .qbtn:hover{background:var(--paper)}
  .qtoday{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:0 12px;height:34px;font-size:13px;font-weight:500}
  .qtoday:hover{background:var(--paper)}
  .qjump{height:34px;border:1px solid var(--line);border-radius:9px;padding:0 8px;background:var(--surface);font-size:12px;font-family:var(--sans);color:var(--ink-2)}
  .qjump:hover{background:var(--paper)}

  /* ---------- PLAN grid ---------- */
  .plan-scroll{flex:1;min-height:0;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
  .plan{position:relative}
  .pl-head{position:sticky;top:0;z-index:20;background:var(--surface)}
  .pl-hrow{display:flex}
  .pl-corner{position:sticky;left:0;z-index:22;background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .pl-months{display:flex;height:30px;border-bottom:1px solid var(--line-2)}
  .pl-month{flex:none;position:absolute;top:0;bottom:0;background:var(--surface);font-family:var(--display);font-weight:600;font-size:12px;padding:0;display:flex;align-items:center;border-left:1px solid var(--line);color:var(--ink-2);white-space:nowrap}
  .pl-mlabel{position:sticky;left:calc(var(--labelw) + 10px);padding-right:14px;white-space:nowrap}
  .pl-monthband{position:absolute;top:0;bottom:0;background:#f6f6f2;pointer-events:none}
  .pl-month--alt{background:#f6f6f2}
  .pl-days{display:flex;height:44px;border-bottom:1px solid var(--line)}
  .pl-weeks{display:flex;height:24px;border-bottom:1px solid var(--line-2)}
  .pl-week{flex:none;position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;color:var(--muted);border-left:1px solid var(--line);white-space:nowrap;overflow:hidden;background:var(--surface)}
  .pl-day{flex:none;position:absolute;top:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;color:var(--muted);border-left:1px solid var(--line-2);line-height:1.35;padding-bottom:2px}
  .pl-day.we{background:var(--weekend)}
  .pl-day.hol{background:var(--holiday)}
  .pl-day.hol .wd{color:#5a8f6e}
  .pl-day .wd{display:block;font-size:10.5px;color:var(--muted-2);text-transform:uppercase}
  .pl-day.tod{background:var(--accent);color:#fff}
  .pl-day.tod .wd{color:#ffd9cf}

  .pl-secttl{position:sticky;left:0;z-index:15;background:var(--paper);font-family:var(--display);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line-2);height:26px;display:flex;align-items:center}
  .pl-secttl span{position:sticky;left:0;padding:0 12px}
  .pl-row{display:flex;position:relative;border-bottom:1px solid var(--line)}
  .pl-row:nth-child(even){background:#f2f4f8}
  .pl-row:nth-child(even) .pl-label{background:#eef1f6}
  .pl-row:hover{background:#faf9f6}
  .pl-row--gsep{border-top:2px solid var(--line)}
  .pl-label{position:sticky;left:0;z-index:12;background:var(--surface);width:var(--labelw);min-width:var(--labelw);border-right:1px solid var(--line);display:flex;align-items:center;gap:8px;padding:0 12px;font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pl-row:hover .pl-label{background:#faf9f6}
  .pl-label .pdot{width:9px;height:9px;border-radius:3px;flex:none}
  .pl-expand{flex:none;width:18px;height:18px;border:none;background:var(--line-2);color:var(--ink-2);border-radius:5px;font-size:10px;line-height:1;display:grid;place-items:center;padding:0;cursor:pointer}
  .pl-expand:hover{background:var(--fill);color:#fff}
  .pl-pname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pl-ovl{flex:none;margin-left:auto;background:var(--accent);color:#fff;font-family:var(--mono);font-size:10px;font-weight:600;min-width:16px;height:16px;padding:0 4px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}
  .pl-mix{cursor:pointer;font-weight:700;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.32) 0,rgba(255,255,255,.32) 4px,transparent 4px,transparent 8px)!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18),0 1px 2px rgba(0,0,0,.18)}
  .pl-mix:hover{filter:brightness(1.04)}
  .pl-lane{position:relative;flex:none;background-image:repeating-linear-gradient(90deg,var(--line) 0,var(--line) 1px,transparent 1px,transparent var(--dpp));touch-action:manipulation}
  .pl-weekend{position:absolute;top:0;bottom:0;background:var(--weekend);z-index:0}
  .pl-holiday{position:absolute;top:0;bottom:0;background:var(--holiday);z-index:0}
  /* Wochenend-/Feiertags-Schattierung als Flex-Spalten – gleiches Layout wie die Kopf-Tageszellen, damit sie exakt fluchten (auch bei Zoom) */
  .pl-colwrap{position:absolute;top:98px;height:calc(100% - 98px);z-index:0;pointer-events:none}
  .pl-daycol{flex:none;width:var(--dpp);border-left:1px solid transparent}
  .pl-daycol--we{background:var(--holiday)}
  .pl-daycol--msep{border-left-color:var(--line)}
  .pl-todayline{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);z-index:6;pointer-events:none}
  .pl-conflict{box-shadow:inset 0 0 0 2px #d64545, 0 1px 4px rgba(214,69,69,.35)!important;outline:none}
  .pl-truck{box-shadow:inset 3px 0 0 rgba(0,0,0,.35)}
  .tk-ic{width:12px;height:12px;vertical-align:-2px;margin-right:4px;flex:none}
  .pl-lane--truck{cursor:copy}
  .pl-lane--proj{cursor:copy}
  .pl-bar[data-drag]{cursor:grab}
  .pl-bar.dragging{opacity:.85;z-index:20;cursor:grabbing;box-shadow:0 4px 14px rgba(0,0,0,.3)}
  .pl-resize{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize;z-index:6}
  .pl-resize-l{left:0;border-radius:6px 0 0 6px}.pl-resize-r{right:0;border-radius:0 6px 6px 0}
  .pl-bar[data-drag]:hover .pl-resize{background:rgba(255,255,255,.5);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
  .pl-bar[data-drag]:hover .pl-resize::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:11px;border-left:2px dotted rgba(0,0,0,.35)}
  .pl-lane--veh{cursor:copy}
  .info-comment{margin-top:12px;font-size:13.5px;line-height:1.5;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:9px 11px;white-space:pre-wrap}
  .pl-warn{color:#d64545;font-size:13px;margin-left:5px;flex:none}
  .xls-qlist{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .xls-q{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--line);border-radius:9px;font-size:13px;cursor:pointer}
  .xls-q:hover{background:var(--paper)}
  .pl-bar{position:absolute;height:30px;border-radius:6px;display:flex;align-items:center;padding:0 9px;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;cursor:pointer;z-index:3;border:1px solid rgba(0,0,0,.08);touch-action:manipulation;user-select:none;-webkit-user-select:none;--nr:2px;-webkit-mask:radial-gradient(var(--nr) at 50% 0,#0000 96%,#000) repeat-x calc(-1*var(--dpp)/2) top/var(--dpp) 100%,radial-gradient(var(--nr) at 50% 100%,#0000 96%,#000) repeat-x calc(-1*var(--dpp)/2) bottom/var(--dpp) 100%;-webkit-mask-composite:source-in;mask:radial-gradient(var(--nr) at 50% 0,#0000 96%,#000) repeat-x calc(-1*var(--dpp)/2) top/var(--dpp) 100%,radial-gradient(var(--nr) at 50% 100%,#0000 96%,#000) repeat-x calc(-1*var(--dpp)/2) bottom/var(--dpp) 100%;mask-composite:intersect}
  .pl-projtail{position:absolute;top:6px;height:30px;display:flex;align-items:center;font-size:14px;font-weight:400;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:2;padding-left:7px}
  .pl-bar:hover{filter:brightness(1.05);z-index:5;box-shadow:0 3px 8px rgba(0,0,0,.22)}
  .pl-bar.clipL{border-top-left-radius:0;border-bottom-left-radius:0;padding-left:14px}
  .pl-bar.clipR{border-top-right-radius:0;border-bottom-right-radius:0;padding-right:14px}
  .pl-bar .cont{position:absolute;top:0;height:100%;display:flex;align-items:center;font-weight:800;font-size:14px;line-height:1;opacity:.95}
  .pl-bar .cont-l{left:3px}
  .pl-bar .cont-r{right:3px}
  #projTip{position:fixed;z-index:9999;max-width:290px;background:#1c1f27;color:#f0f1f4;border:1px solid #363a45;border-radius:10px;padding:9px 12px;font-size:12.5px;line-height:1.5;box-shadow:0 10px 30px rgba(0,0,0,.4);pointer-events:none;opacity:0;transition:opacity .12s;display:none}
  #projTip.on{opacity:1;display:block}
  #projTip .pt-name{font-weight:700;font-size:13.5px;margin-bottom:5px}
  #projTip .pt-row{color:#cfd2da}
  #projTip .pt-meta{margin-top:7px;padding-top:6px;border-top:1px solid #3a3d46;font-size:11px;color:#9aa0ad}
  .pl-entry{font-weight:600;border:1px solid rgba(0,0,0,.12);box-shadow:none}
  .pl-lane--person{cursor:pointer}
  .pl-lane--person:hover{background:rgba(255,90,60,.05)}
  .pcard.departed{opacity:.6;background:var(--paper);cursor:default}
  .pcard.departed:hover{transform:none;border-color:var(--line)}
  .pcard.departed .avatar{background:var(--muted-2)}
  .reactivate{margin-top:12px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:8px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
  .reactivate:hover{background:var(--fill);color:#fff;border-color:var(--ink)}
  .pl-row--departed .pl-label{color:var(--muted-2);font-style:italic}
  .depnote{margin-top:12px;font-size:12px;font-weight:600;color:#7a5a18;background:#f7ecd0;border:1px solid #ecdcae;border-radius:8px;padding:6px 10px}
  .del-warn{background:#fdf0ee;border:1px solid #f3cfc9;color:#8a3d34;border-radius:10px;padding:11px 13px;font-size:13px;margin-bottom:14px;line-height:1.5}
  .del-list{display:flex;flex-direction:column;gap:8px}
  .del-row{display:flex;align-items:center;gap:10px;justify-content:space-between}
  .del-proj{font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;min-width:120px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .del-sel{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);font-size:12.5px;flex:none;max-width:210px}
  .card.readonly{cursor:pointer;opacity:.9}
  .card.readonly:hover{opacity:1}
  .past-tag{position:absolute;top:11px;right:12px;font-size:10px;font-weight:600;color:var(--muted);background:var(--line-2);padding:3px 8px;border-radius:6px}
  .past-note{margin-top:14px;font-size:12px;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:8px 11px}
  .info-ignore{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:13px;color:var(--ink-2);cursor:pointer;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
  .info-ignore input{width:16px;height:16px;cursor:pointer}
  .opt-toggle{display:flex;align-items:center;gap:8px;margin:2px 0 10px;font-size:13px;color:var(--ink-2);cursor:pointer}
  .opt-toggle input{width:16px;height:16px;cursor:pointer}
  .wd-pick{display:flex;gap:6px;flex-wrap:wrap}
  .wd{padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13px;font-weight:600;cursor:pointer;color:var(--muted)}
  .wd.sel{background:var(--accent);color:#fff;border-color:var(--accent)}
  .wd-dot{position:absolute;top:2px;width:6px;height:6px;border-radius:50%;background:#3b57c4;z-index:8;pointer-events:none;box-shadow:0 0 0 1px #fff}
  .wd-dot.wd-half{background:linear-gradient(90deg,#3b57c4 50%,#c7d0ee 50%)}
  .ke-hd-wrap{display:flex;flex-wrap:wrap;gap:1px;justify-content:center;margin-top:2px;line-height:1}
  .ke-hd-dot{display:inline-block;width:5px;height:5px;border-radius:50%;cursor:default;box-shadow:0 0 0 1px rgba(255,255,255,.6)}
  .ke-hd-row2{display:flex;gap:1px;justify-content:center;width:100%;margin-top:1px}
  .cu-swatches{display:flex;flex-wrap:wrap;gap:5px;flex:1}
  .cu-sw{width:20px;height:20px;border-radius:5px;border:1px solid rgba(0,0,0,.15);cursor:pointer;padding:0}
  .cu-sw:hover{transform:scale(1.12)}
  .tr-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
  .tr-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:1px 6px;margin-right:6px}
  .tr-when{font-size:11px;color:var(--muted);margin-top:3px}
  .tr-act{display:flex;gap:6px;flex:none}
  .btn.sm.danger{color:#b3402f;border-color:#e9c3bc}
  .rem-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;margin-bottom:7px;cursor:pointer}
  .rem-item:hover{border-color:var(--ink)}
  .rem-item.soon{background:#fbf1d8;border-color:#ecdcae}
  .rem-item.over{background:#fdf0ee;border-color:#f3cfc9}
  .rem-tag{font-size:10px;font-weight:700;background:var(--fill);color:#fff;border-radius:5px;padding:1px 6px;margin-left:4px}
  .rem-date{font-size:12px;color:var(--muted);font-family:var(--mono);flex:none}
  .db-dot{position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:#9aa0aa;border:1.5px solid var(--surface)}
  .db-dot.db-local{background:#9aa0aa}
  .db-dot.db-ok{background:#2fa36b}
  .db-dot.db-sync{background:#e0a53c}
  .db-dot.db-err{background:#d64545}
  span#dbDot2{position:static;display:inline-block;width:11px;height:11px;border:none}
  body.ro-view .view-head .btn,body.ro-emp .view-head .btn:not(.tt-swbtn){display:none}
/* Der Stoppuhr-Knopf bleibt fuer alle sichtbar, die den Time Tracker nutzen duerfen. */
.ro-emp .view-head .tt-swbtn{display:inline-flex}
  body.ro-view .card .del,body.ro-view .hc-del,body.ro-emp .hc-del{display:none}
  body.ro-view #trashBtn{display:none}
  body.ro-view .m-foot .btn.primary,body.ro-view .m-foot .btn.danger,body.ro-view #infoDelBtn,body.ro-view #infoEditBtn{display:none!important}
  .acl-grp td{background:var(--paper);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
  .acl-table{border-collapse:collapse;font-size:13px;min-width:560px}
  .acl-table th,.acl-table td{border:1px solid var(--line-2);padding:5px 8px}
  .acl-table .acl-el{text-align:left;min-width:180px;font-weight:500;position:sticky;left:0;background:var(--surface);z-index:1}
  .acl-table th.acl-el{background:var(--paper)}
  .acl-role{background:var(--paper);text-align:center;font-size:12px;border-left:2px solid var(--line)}
  .acl-sub{background:var(--paper);text-align:center;font-size:13px;font-weight:400;color:var(--muted)}
  .acl-cb{text-align:center}
  .acl-cb input{width:16px;height:16px;cursor:pointer}
  .acl-editcol{background:#faf7f2}
  .acl-na{color:#c9c9c4}
  .acl-table .acl-cb:nth-child(even){border-left:2px solid var(--line)}
  .acl-table .acl-sub:nth-child(odd){border-left:2px solid var(--line)}
  body.vis-edit [data-vis]{outline:2px dashed #ff5a3c;outline-offset:1px;position:relative}
  .vis-eye{position:absolute;top:-9px;right:-9px;z-index:60;width:20px;height:20px;border-radius:50%;background:#ff5a3c;color:#fff;border:2px solid #fff;font-size:11px;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0}
  body.vis-edit .vis-eye{display:flex}
  .vispop{position:fixed;z-index:9999;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.2);padding:10px 12px;font-size:13px}
  .vispop label{display:flex;align-items:center;gap:7px;padding:4px 0;cursor:pointer}
  .cicard .avatar{background:#e8efe9;color:#2b6a45}
  .ci-qty{font-family:var(--mono);color:var(--muted)}
  .search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:60vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.16);z-index:80;padding:6px}
  .sr-grp{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 10px 4px;font-weight:700}
  .sr-item{padding:7px 10px;border-radius:8px;cursor:pointer;font-size:13px;display:flex;justify-content:space-between;gap:8px;align-items:center;color:var(--ink)}
  .sr-item:hover{background:var(--paper)}
  .sr-dt{color:var(--muted);font-family:var(--mono);font-size:11px;flex:none}
  .sr-empty{padding:12px;color:var(--muted);font-size:13px}
  .cust-up{font-weight:800;letter-spacing:.02em}
  .lg-table td{vertical-align:middle}
  .lg-ts{font-family:var(--mono);font-size:11.5px;color:var(--muted);white-space:nowrap}
  .lg-role{font-size:10.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.03em}
  .lg-badge{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:6px}
  .lg-add{background:#e3f2e7;color:#2b6a45}
  .lg-edit{background:#e7eefb;color:#2f5bd0}
  .lg-del{background:#fbe7e7;color:#c0392b}
  .lg-undone{opacity:.5;text-decoration:line-through}
  .wt-subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:0}
  .wt-subnav button{padding:8px 14px;border:none;background:transparent;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
  .wt-subnav button.active{color:var(--ink);border-bottom-color:var(--accent)}
  #wtYear,#wtPerson{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:var(--surface)}
  .wt-monthbar{display:flex;align-items:center;gap:12px;margin-bottom:10px}
  .wt-monthbar button:not(.btn){width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font-size:15px}
  .wt-mtitle{font-family:var(--display);font-weight:700;font-size:16px;min-width:150px}
  .wt-carry{font-size:12.5px;color:var(--muted)}
  .wt-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
  .wt-table{border-collapse:collapse;width:100%;font-size:12px;min-width:720px}
  .wt-sheet{width:auto;min-width:0}
  table.adm-table{width:auto !important;width:fit-content !important;min-width:0 !important;max-width:100%;table-layout:auto}
  table.adm-table th,table.adm-table td{padding:3px 10px;white-space:nowrap}
  table.adm-table td:last-child,table.adm-table th:last-child{white-space:nowrap}
  table.adm-table td.lg-label{white-space:normal;max-width:420px}
  /* Projektmanagement */
  .pm-table td,.pm-table th{vertical-align:middle}
  .pm-sub{font-size:11px;color:var(--muted);white-space:nowrap;margin-top:2px}
  .pm-in{border:1px solid var(--line);border-radius:6px;padding:4px 7px;font-size:12.5px;font-family:inherit;background:var(--surface);max-width:150px}
  .pm-in.pm-wide{min-width:200px;max-width:340px;width:100%}
  table.pm-table{width:100% !important;min-width:0 !important}
  table.pm-table th,table.pm-table td{padding:6px 14px}
  table.pm-table td:first-child,table.pm-table th:first-child{white-space:normal;max-width:240px}
  table.pm-table td.pm-k{white-space:nowrap}
  .pm-in[type=date]{max-width:124px}
  .pm-x{border:none;background:none;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;padding:0 0 0 5px}
  .pm-x:hover{color:var(--danger)}
  .pm-bar{height:7px;border-radius:4px;background:var(--line-2);overflow:hidden;min-width:90px;max-width:110px}
  .pm-bar span{display:block;height:100%;background:#3b57c4;border-radius:4px}
  .pm-badge{display:inline-block;min-width:18px;padding:1px 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;text-align:center}
  .pm-dl-orange{color:#b26a00;font-weight:700}
  .pm-dl-red{color:var(--danger);font-weight:700}
  .pm-chip{display:inline-block;padding:2px 8px;border-radius:9px;background:var(--line-2);font-size:11.5px;margin:1px 0}
  .pm-chip.pm-done{background:#dcf1e4;color:#1c6b3f;font-weight:600}
  .pm-chip.pm-messe{background:#e6ecff;color:#2a3f9e;font-weight:600}
  .pm-card{width:100%;max-width:1040px;min-width:0}
  .pm-days{display:flex;flex-wrap:wrap;gap:5px 7px;max-width:520px}
  .pm-day{display:inline-flex;align-items:center;gap:5px;background:var(--line-2);border-radius:7px;padding:2px 9px;font-size:11.5px;white-space:nowrap}
  .pm-day-d{color:var(--muted);font-family:var(--mono)}
  table.pm-table tbody tr td{padding-top:8px;padding-bottom:8px}
  table.pm-table tbody td{vertical-align:top}
  /* Löschzelle vertikal zentriert */
  table.pm-table tbody td.pm-actcell{vertical-align:middle}
  .pm-projdel{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:0;padding:6px;border-radius:7px}
  .pm-projdel svg{display:block}
  .pm-projdel:hover{background:rgba(192,57,43,.12)}
  /* Anklickbare Projektzeilen: Zebra + deutlicher Hover */
  table.pm-table tbody tr[data-pm]{cursor:pointer;transition:background .12s}
  table.pm-table tbody tr[data-pm]:nth-child(even){background:#f6f6f2}
  table.pm-table tbody tr[data-pm]:hover{background:rgba(255,90,60,.10)}
  table.pm-table tbody tr[data-pm]:hover td:first-child b{color:var(--accent)}
  /* Messestand-Projekte: leicht blau, innerhalb einer Folge alternierend */
  table.pm-table tbody tr[data-pm].pm-messe-a{background:#eaf2fc}
  table.pm-table tbody tr[data-pm].pm-messe-b{background:#dbe8f8}
  table.pm-table tbody tr[data-pm].pm-messe-a:hover,table.pm-table tbody tr[data-pm].pm-messe-b:hover{background:#cfe0f6}
  /* Zurück-Button „Projektliste" auffällig (gefüllt) mit klarem Hover */
  #pmBack{background:var(--fill);color:#fff;border:1px solid var(--ink);font-weight:700;padding:8px 15px;box-shadow:0 2px 7px rgba(0,0,0,.14);transition:background .12s,transform .12s,box-shadow .12s}
  #pmBack:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 13px rgba(255,90,60,.32)}
  /* „+ Neues Projekt" mit spürbarem Hover */
  #pmNew{transition:transform .12s,box-shadow .12s,background .12s}
  #pmNew:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.22)}
  .pm-card .wt-vhead{gap:24px;align-items:center;margin-bottom:16px}
  .pm-card .wt-vhead .wt-h{line-height:1.1;display:flex;align-items:center}
  .pm-card .wt-vhead .btn{align-self:center}
  .pm-head{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}
  .pm-k{color:var(--muted);font-weight:600;white-space:nowrap;width:1px;padding-right:18px}
  .pm-ov td{padding:4px 9px}
  .pm-k{padding-right:12px !important}
  .pm-check{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
  .pm-st-done{background:#dcf1e4}
  .pm-st-doing{background:#fff4e5}
  .pm-swrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
  .pm-shead{display:flex;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0}
  .pm-srow{display:flex;border-bottom:1px solid var(--line-2);min-height:34px}
  .pm-slabel{width:190px;min-width:190px;padding:6px 10px;font-size:12px;font-weight:600;border-right:1px solid var(--line);background:var(--surface);position:sticky;left:0;z-index:2}
  .pm-slane{position:relative;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 63px,var(--line-2) 63px,var(--line-2) 64px)}
  .pm-sh{display:inline-block;font-size:10.5px;color:var(--muted);font-family:var(--mono);padding:5px 0 5px 4px;border-left:1px solid var(--line-2)}
  .pm-sbar{position:absolute;top:5px;height:24px;border-radius:5px;background:#3b57c4;color:#fff;font-size:11px;font-weight:600;padding:0 6px;display:flex;align-items:center;gap:5px;overflow:hidden;white-space:nowrap;cursor:pointer}
  .pm-sp{background:rgba(255,255,255,.25);border-radius:7px;padding:0 4px;font-size:10px}
  /* Produktionsplan: Tagesraster */
  .pm-gwrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;max-width:100%}
  .pm-ghead-m,.pm-ghead-d,.pm-grow{display:flex;min-height:30px}
  .pm-ghead-m{border-bottom:1px solid var(--line-2);background:var(--paper);position:sticky;top:0;z-index:3}
  .pm-ghead-d{border-bottom:1px solid var(--line);background:var(--paper)}
  .pm-glabel{width:170px;min-width:170px;padding:5px 10px;font-size:12px;border-right:1px solid var(--line);background:var(--surface);position:sticky;left:0;z-index:2;display:flex;align-items:center;gap:6px}
  .pm-ghl{font-weight:600;color:var(--muted);font-size:11px}
  .pm-glane{position:relative;flex:none;white-space:nowrap}
  .pm-gmonth{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--ink-2);border-right:1px solid var(--line-2);text-transform:capitalize}
  .pm-gday{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:30px;border-right:1px solid var(--line-2);cursor:pointer;position:relative;padding:2px 0}
  .pm-gday:hover{background:#eef2ff}
  .pm-gdn{font-size:11px;font-weight:600;line-height:1.1}
  .pm-gwd{font-size:9px;color:var(--muted)}
  .pm-gwe{background:#f2f4f8}
  .pm-ghas{background:#ffe8c7;box-shadow:inset 0 -3px 0 var(--accent)}
  .pm-gdot{position:absolute;bottom:3px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px #fff}
  .pm-grow{border-bottom:1px solid var(--line-2)}
  .pm-glane .pm-gbar{position:absolute;top:4px;height:28px;border-radius:6px;color:#fff;font-size:11px;font-weight:600;padding:0 7px;display:flex;align-items:center;gap:5px;overflow:hidden;white-space:nowrap;z-index:2;--nr:2px;-webkit-mask:radial-gradient(var(--nr) at 50% 0,#0000 96%,#000) repeat-x calc(-1*var(--pmdw)/2) top/var(--pmdw) 100%,radial-gradient(var(--nr) at 50% 100%,#0000 96%,#000) repeat-x calc(-1*var(--pmdw)/2) bottom/var(--pmdw) 100%;-webkit-mask-composite:source-in;mask:radial-gradient(var(--nr) at 50% 0,#0000 96%,#000) repeat-x calc(-1*var(--pmdw)/2) top/var(--pmdw) 100%,radial-gradient(var(--nr) at 50% 100%,#0000 96%,#000) repeat-x calc(-1*var(--pmdw)/2) bottom/var(--pmdw) 100%;mask-composite:intersect}
  .pm-glane .pm-gtail{position:absolute;top:4px;height:22px;display:flex;align-items:center;padding-left:7px;font-size:11px;font-weight:400;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:1}
  .pm-gbar.pm-drag{cursor:grab}
  .pm-gbar.pm-dragging{cursor:grabbing;opacity:.85;box-shadow:0 4px 12px rgba(0,0,0,.25);z-index:5}
  .pm-gbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pm-gbar-auto{opacity:.95;border:1px dashed rgba(255,255,255,.55)}
  .pm-gbar-done{opacity:.5;text-decoration:line-through}
  .pm-grow-auto .pm-glabel{color:var(--muted);font-style:italic}
  .pm-gsub .pm-glabel{font-weight:700;font-style:normal;color:var(--muted);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase}
  .pm-gsub{border-top:1px solid var(--line)}
  .pm-rz{position:absolute;top:0;width:9px;height:100%;cursor:ew-resize;z-index:2}
  .pm-rz-l{left:0} .pm-rz-r{right:0}
  .pm-gbar.pm-drag:hover .pm-rz{background:rgba(255,255,255,.35)}
  .pm-sbar.pm-tdrag{cursor:grab}
  .pm-sbar.pm-tdrag:hover .pm-rz{background:rgba(255,255,255,.35)}
  .pm-srow.pm-over{background:#f7f8fa}
  .pm-overbar{position:absolute;left:0;top:5px;height:28px;border-radius:6px;color:#fff;font-size:11px;font-weight:600;padding:0 8px;display:flex;align-items:center;gap:5px;white-space:nowrap;opacity:.9;right:6px;width:auto}
  .pm-overd{font-weight:400;opacity:.85}
  .pm-nosel{user-select:none;-webkit-user-select:none}
  .pm-gdotc{width:9px;height:9px;border-radius:50%;flex:none}
  .pm-color{width:34px;height:26px;border:1px solid var(--line);border-radius:6px;padding:0;background:none;cursor:pointer}
  .pm-slane.pm-q{background-image:repeating-linear-gradient(90deg,transparent 0,transparent 15px,var(--line-2) 15px,var(--line-2) 16px)}
  .wt-sheet th,.wt-sheet td{padding-left:5px;padding-right:5px}
  .wt-sheet .wt-time{width:70px}
  .wt-table th{background:var(--paper);border-bottom:1px solid var(--line);padding:5px 4px;text-align:left;font-size:10.5px;color:var(--muted);position:sticky;top:0}
  .wt-table td{border-bottom:1px solid var(--line-2);padding:1px 3px;white-space:nowrap}
  .wt-table tr.wt-we{background:var(--weekend)}
  .wt-table tr.wt-hol{background:var(--holiday)}
  .wt-table tr.wt-na{background:#f2f2f0;color:var(--muted-2)}
  .wt-io{font-size:11.5px;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:5px 8px;margin-bottom:9px}
  .wt-d{font-weight:600}.wt-wd{color:var(--muted);font-weight:400}
  .wt-fh{color:#2b6a45;font-size:11.5px}
  .wt-in{width:46px;border:1px solid transparent;border-radius:6px;padding:3px 4px;font-family:var(--mono);font-size:11.5px;background:transparent}
  .wt-in:hover{border-color:var(--line)}.wt-in:focus{outline:none;border-color:var(--accent);background:var(--surface)}
  .wt-code{width:auto;min-width:76px;text-transform:none;font-size:11px}.wt-note{width:104px;font-family:var(--sans)}
  .wt-time{width:80px;font-family:var(--mono);text-align:center;padding:3px 2px}
  .wt-kmbtn{font:inherit;font-size:11px;padding:2px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);cursor:pointer;white-space:nowrap}
  .wt-kmbtn:hover{background:var(--paper)}.wt-kmadd{color:var(--muted)}
  .wt-kmbtn.km-locked{border-color:#c9a24b;background:#fbf3df}
  .km-row{display:flex;align-items:center;gap:6px;margin-bottom:7px;font-size:13px;flex-wrap:wrap}
  .km-cust{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:12px;max-width:130px;background:var(--surface)}
  .presence-bar{display:flex;align-items:center;gap:-4px}
  .lang-sel{background:#22252f;border:1px solid #2f333e;color:#e6e7ea;padding:7px 8px;border-radius:9px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
  .lang-sel:hover{background:#2a2e39}
  .pres-chip{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;font-family:var(--sans);border:2px solid var(--surface);margin-left:-6px;box-shadow:0 1px 2px rgba(0,0,0,.15);cursor:default}
  .pres-chip:first-child{margin-left:0}
  body.gated .app{display:none}
  .overlay.gate{background:var(--paper)}
  .overlay.gate .close,.overlay.gate [data-close]{display:none}
  .log-del,.pm-projdel{border:none;background:none;color:#c0392b;cursor:pointer;font-size:13px;opacity:.6}.log-del:hover,.pm-projdel:hover{opacity:1}
  .pm-secthead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 6px;padding-bottom:4px;border-bottom:2px solid var(--line)}
  .pm-secthead:first-child{margin-top:2px}
  .pm-secthead span{font-family:var(--display);font-weight:700;font-size:15px;color:var(--ink)}
  table.pm-mtasks{margin-bottom:2px}
  .tt-bar{margin:4px 0 14px;font-size:14px}
  .tt-bar select{padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:14px}
  .tt-table .tt-in{width:100%;border:1px solid var(--line);border-radius:5px;padding:2px 5px;font-size:12px;font-family:inherit;background:var(--surface)}
  .tt-table{width:auto;min-width:0}
  .whoami{font-size:12.5px;color:var(--muted);font-weight:600;margin:0 6px;white-space:nowrap}
  .pres-photo{background-size:cover;background-position:center;color:transparent;text-indent:-9999px}
  .tt-sum th,.tt-sum td{padding:2px 6px;white-space:nowrap}
  .tt-sum td:first-child,.tt-sum th:first-child{padding-left:6px}
  .tt-table .tt-notes{min-width:80px}
  .tt-table td{padding:1px 3px}
  .tt-table th{padding:3px 4px;font-size:10px}
  .tt-table input[type=date]{max-width:132px}
  .tt-table .tt-dur select{padding:2px 3px;font-size:12px}
  .tt-num{text-align:right;font-family:var(--mono)}
  .tt-del{border:none;background:none;color:#c0392b;cursor:pointer;font-size:14px;opacity:.6}.tt-del:hover{opacity:1}
  .tt-proj-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}
  .tt-proj-row .tt-pname{flex:1;padding:6px 9px;border:1px solid var(--line);border-radius:8px;font-size:13px}
  .tt-tot td{border-top:2px solid var(--line);background:var(--surface-2,rgba(0,0,0,.03))}
  .tt-favname{font-weight:600;font-size:13px}
  .tt-fav-row td{padding:3px 5px}
  .tt-fav-tiles{display:flex;flex-wrap:wrap;gap:8px}
  .tt-tile{padding:9px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font-size:13px;font-family:inherit;transition:.12s;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tt-tile:hover{border-color:var(--accent)}
  .tt-tile.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
  .tt-dur{display:inline-flex;align-items:center;gap:2px}
  .tt-dur select{padding:5px 4px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:var(--surface)}
  .tt-durc{opacity:.6}
  .tt-duru{font-size:11px;color:var(--muted);margin-left:4px}
  .tt-subh{font-weight:700;font-size:13.5px;margin:18px 0 7px;padding-top:14px;border-top:1px solid var(--line)}
  .info-cost{margin-top:14px;padding:11px 13px;background:var(--surface-2,rgba(0,0,0,.03));border-radius:10px;border:1px solid var(--line)}
  .info-cost-h{font-size:15px}
  .info-cost-b{font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.5}
  #diBody input,#accBody .di-in{padding:3px 7px;border:1px solid var(--line);border-radius:6px;font-size:12.5px;width:100%;background:var(--surface)}
  #diBody td{padding:2px 4px}
  #diBody .di-in[data-k="rate"]{max-width:96px}
  .tt-dur{display:inline-flex;align-items:center;gap:2px}
  .tt-dur select{padding:5px 4px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:var(--surface)}
  .tt-durc{font-weight:700;opacity:.6}
  .tt-duru{margin-left:3px;opacity:.6;font-size:12px}
  .km-row input[type=text],.km-row .km-from,.km-row .km-to{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:13px}
  .km-from{width:80px}.km-to{flex:1}.km-km{width:70px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;text-align:right}
  .km-arr{color:var(--muted)}.km-ret{display:flex;align-items:center;gap:4px;color:var(--muted);white-space:nowrap}.km-unit{color:var(--muted);font-size:12px}
  .km-del{border:none;background:none;color:#c0392b;cursor:pointer;font-size:14px}.km-lock{font-size:13px}
  .xls-qlist{display:flex;flex-direction:column;gap:8px}.xls-q{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
  .wt-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;max-width:720px}
  @media(max-width:640px){.wt-summary{grid-template-columns:1fr}}
  .wt-sum-col{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface)}
  .wt-sum-h{font-family:var(--display);font-weight:700;font-size:13px;margin-bottom:8px}
  .wt-sum-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;font-size:13px;border-bottom:1px solid var(--line-2)}
  .wt-sum-row:last-child{border-bottom:none}
  .wt-sum-row span{color:var(--muted)}
  .wt-sum-row b{font-family:var(--mono);font-weight:600}
  .wt-diff{margin-top:8px;font-size:12px;font-family:var(--mono)}
  .wt-diff.ok{color:#2b6a45}
  .wt-diff.bad{color:#c0392b;font-weight:600}
  .wt-num{font-family:var(--mono);text-align:right}
  .wt-neg{color:#c0392b}.wt-pos{color:#2b6a45}.wt-saldo{font-weight:700}
  .wt-table tfoot td{border-top:2px solid var(--line);padding:7px 6px;font-weight:600;background:var(--paper)}
  .wt-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
  .wt-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--surface)}
  .wt-h{font-family:var(--display);font-weight:700;font-size:14px;margin-bottom:12px}
  .wt-frow{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;font-size:13px}
  .wt-frow label{color:var(--muted)}
  .wt-frow input{width:120px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-family:var(--mono)}
  .wt-set-wds{display:flex;flex-direction:column;gap:7px}
  .wt-set-wd{display:flex;justify-content:space-between;align-items:center}
  .wt-set-wd label{font-size:13px;color:var(--muted)}
  .wt-soll{width:80px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:13px}
  .wt-codes{width:100%;border-collapse:collapse;font-size:13px}
  .wt-codes td{padding:4px 6px;border-bottom:1px solid var(--line-2)}
  .wt-holtable td{padding:5px 8px}
  .wt-mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
  .wt-mcard{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:13.5px}
  .wt-mcard.on{border-color:var(--accent);background:var(--paper)}
  .wt-mcard .av{width:26px;height:26px;font-size:11px}
  .wt-mcard input{width:16px;height:16px}
  .wt-mgrid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
  .wt-mcard2{border:1px solid var(--line);border-radius:11px;padding:10px 12px}
  .wt-mcard2.on{border-color:var(--accent)}
  .wt-mcard2.wt-gone{opacity:.62}
  .wt-vhead{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .wt-namebtn{display:flex;align-items:center;gap:9px;background:none;border:none;cursor:pointer;padding:0;flex:1;text-align:left;font-size:13.5px;font-weight:600;color:var(--ink)}
  .wt-namebtn:hover .an{text-decoration:underline}
  .wt-editicon{background:none;border:1px solid var(--line);border-radius:7px;width:26px;height:26px;cursor:pointer;color:var(--muted);flex:none}
  .wt-editicon:hover{border-color:var(--ink);color:var(--ink)}
  .wt-gonetag{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--muted-2);border:1px solid var(--line);border-radius:5px;padding:0 5px}
  .wt-mhead{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:13.5px;font-weight:600}
  .wt-mhead .av{width:26px;height:26px;font-size:11px}
  .wt-mhead input{width:16px;height:16px}
  .wt-vbody{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-2)}
  .wt-vbody .wt-frow{margin-bottom:7px}
  .wt-vbody .wt-frow input{width:110px}
  .wt-vsollh{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:8px 0 6px}
  .wt-vsollrow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
  .wt-vsollrow .wt-set-wd{flex-direction:column;align-items:stretch;gap:2px}
  .wt-vsollrow label{font-size:10px;text-align:center}
  .wt-vsoll{width:100%;text-align:center;padding:4px 2px;border:1px solid var(--line);border-radius:6px;font-family:var(--mono);font-size:11px}
  .ccard .avatar{color:transparent}
  .opt-warn{color:#d64545;font-size:12px;margin-right:2px;flex:none}
  .pcard .st.mono{font-family:var(--mono);font-size:12px}
  .tuv{margin-top:10px;font-size:12px;font-weight:600;border-radius:8px;padding:5px 10px;display:inline-block}
  .tuv-ok{color:#2b6a45;background:#e3f2e8;border:1px solid #c8e6d3}
  .tuv-soon{color:#7a5a18;background:#f7ecd0;border:1px solid #ecdcae}
  .tuv-over{color:#8a3d34;background:#fdf0ee;border:1px solid #f3cfc9}
  .vdims{margin-top:8px;font-size:12px;color:var(--muted);font-family:var(--mono)}
  .po-table td{padding:4px 6px;vertical-align:middle}
  .po-table .pm-in{width:100%;min-width:0}
  .po-table .po-dim{max-width:64px;text-align:center}
  .po-table .po-num{max-width:90px}
  .po-qm{font-weight:600;white-space:nowrap;color:var(--ink-2)}
  .ang-list{display:flex;flex-direction:column;gap:6px}
  .ang-item{display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
  .ang-ic{font-size:10px;font-weight:700;color:#fff;background:#c0392b;padding:2px 5px;border-radius:4px;letter-spacing:.03em;flex:none}
  .ang-name{flex:1;font-weight:500;color:var(--accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ang-name:hover{text-decoration:underline}
  .veh-imgs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .veh-img{display:flex;flex-direction:column;gap:6px}
  .vi-lbl{font-size:12px;font-weight:600;color:var(--ink-2)}
  .vi-prev{height:110px;border:1px dashed var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--paper)}
  .vi-prev.has{border-style:solid}
  .vi-prev img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
  .vi-empty{font-size:12px;color:var(--muted-2)}
  .vi-preview-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;min-height:40px}
  .ci-file-th{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--paper);cursor:pointer;flex-shrink:0}
  .ci-file-th img{width:100%;height:100%;object-fit:cover;display:block}
  .ci-file-pdf{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--accent);font-size:10px}
  .ci-file-del{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;font-size:12px;cursor:pointer;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}
  .vi-actions{display:flex;gap:6px}
  .btn.sm{padding:5px 10px;font-size:12px;cursor:pointer}
  .asgn-phases{display:flex;flex-direction:column;gap:6px;margin-top:6px}
  .asgn-phases .ph-lbl{font-size:11px;font-weight:600;color:var(--muted);margin-bottom:2px}
  .countdown{display:inline-block;margin-top:9px;font-size:12px;font-weight:600;color:#2b6a45;background:#e3f2e8;border:1px solid #c8e6d3;border-radius:8px;padding:4px 10px}
  .pl-bar.pl-phasebar{opacity:.85;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.28) 0 5px,transparent 5px 10px)}
  .asg-sec{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 0 8px}
  .asg-sec span{font-weight:400;text-transform:none;letter-spacing:0}
  .asg-projlist{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto;margin-bottom:16px}
  .asg-proj{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer}
  .asg-proj:hover{border-color:var(--ink);background:var(--paper)}
  .asg-dot{width:10px;height:10px;border-radius:3px;flex:none}
  .asg-pn{font-weight:600;font-size:13.5px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .asg-pd{font-family:var(--mono);font-size:11px;color:var(--muted);flex:none}
  .asg-types{display:flex;flex-wrap:wrap;gap:8px}
  .asg-type{padding:9px 14px;border:none;border-radius:9px;font-weight:600;font-size:13px;cursor:pointer}
  .asg-type:hover{filter:brightness(.95)}
  .range-trigger{width:100%;text-align:left;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:13px;font-family:var(--mono);cursor:pointer;color:var(--ink)}
  .range-trigger:hover{border-color:var(--ink)}
  .rangepop{position:fixed;z-index:9999;display:none;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 44px rgba(0,0,0,.22);padding:12px;width:270px}
  .rangepop.on{display:block}
  .rp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .rp-head span{font-family:var(--display);font-weight:600;font-size:14px}
  .rp-nav{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font-size:16px}
  .rp-nav:hover{background:var(--paper)}
  .rp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
  .rp-wd{font-size:10px;color:var(--muted);text-align:center;padding:4px 0;font-weight:600}
  .rp-day{border:none;background:transparent;border-radius:7px;padding:7px 0;font-size:12.5px;cursor:pointer;color:var(--ink)}
  .rp-day:hover{background:var(--line-2)}
  .rp-empty{visibility:hidden}
  .rp-in{background:#e3f2e8}
  .rp-start,.rp-end{background:var(--accent)!important;color:#fff!important;font-weight:700}
  .rp-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:8px}
  .rp-foot #rpRange{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
  .rp-done{padding:7px 14px}
  .hotel-search{display:flex;gap:12px;align-items:flex-end;margin-bottom:18px;flex-wrap:wrap}
  .hs-field{display:flex;flex-direction:column;gap:5px}
  .hs-field label{font-size:12px;font-weight:600;color:var(--ink-2)}
  .hs-field input{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:200px}
  .hs-field input:focus{outline:none;border-color:var(--ink)}
  .hotel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
  .hotel-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
  .hc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
  .hc-name{font-family:var(--display);font-size:16px;font-weight:600}
  .hc-loc{color:var(--muted);font-size:12.5px;margin-top:2px}
  .hc-del{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--muted);flex:none}
  .hc-del:hover{color:var(--danger);border-color:var(--danger)}
  .hc-addr{font-size:12px;color:var(--muted);margin-top:6px}
  .hc-stars{display:flex;gap:3px;margin:11px 0}
  .hc-note{width:100%;resize:vertical;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:13px;background:var(--paper);color:var(--ink)}
  .hc-note:focus{outline:none;border-color:var(--accent);background:var(--surface)}
  .star{font-size:20px;color:#d9d9d3;cursor:pointer;line-height:1;transition:.1s}
  .star:hover{transform:scale(1.15)}
  .star.on{color:#f5b301}
  .hc-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
  .hc-stat{background:var(--paper);border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;font-size:11.5px;color:var(--muted)}
  .hc-num{display:block;font-family:var(--display);font-size:15px;font-weight:700;color:var(--ink)}
  .hc-when-h{font-family:var(--display);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line-2);padding-top:9px;margin-bottom:5px}
  .hc-bookings{display:flex;flex-direction:column;gap:4px;max-height:140px;overflow-y:auto}
  .hb-row{display:flex;justify-content:space-between;gap:10px;font-size:12px}
  .hb-proj{font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .hb-when{color:var(--muted);font-family:var(--mono);font-size:11px;white-space:nowrap;flex:none}
  #printArea{display:none}
  @media print{
    @page{size:A4 landscape;margin:7mm}
    body.printing .app,body.printing .overlay,#toast{display:none!important}
    body.printing #printArea{display:block!important}
    body.printing{background:#fff!important}
    .print-quarter{page-break-after:always;break-after:page}
    .print-quarter:last-child{page-break-after:auto;break-after:auto}
    .print-quarter h2{font-size:12px;margin:0 0 4px;font-family:'IBM Plex Sans',Arial,sans-serif}
    .print-quarter table{width:100%!important;table-layout:fixed;border-collapse:collapse;font-family:Arial;font-size:6.5px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .print-quarter td{padding:0!important;border:0.4px solid #ccc;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.15;height:9px}
    .print-quarter td:first-child{width:118px!important;font-size:7px;padding:0 3px!important;text-align:left}
    .print-quarter col.pcol-lbl{width:118px}
    /* Nicht-Druck: normale Ansicht bleibt unberührt */
  }
  .pl-dep{opacity:.9;cursor:default;pointer-events:none}
  .pl-empty{padding:60px 20px;text-align:center;color:var(--muted)}

  /* ---------- Project cards ---------- */
  .month-sep{display:flex;align-items:center;gap:12px;margin:20px 0 12px}
  .month-sep span{font-family:var(--mono);font-size:12px;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}
  .month-sep .rule{flex:1;height:1px;background:var(--line)}
  .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
  .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px 14px 18px;position:relative;overflow:hidden;transition:.15s;box-shadow:var(--shadow)}
  .card:hover{transform:translateY(-2px);border-color:#d6d6d0}
  .card .stripe{position:absolute;left:0;top:0;bottom:0;width:5px}
  .card .c-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
  .card h3{margin:0;font-size:15px;font-weight:600;line-height:1.3;letter-spacing:-.01em}
  .badge{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:6px;white-space:nowrap;flex:none;border:1px solid rgba(0,0,0,.08)}
  .card .row{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;margin-top:8px}
  .card .row .mono{font-family:var(--mono);font-size:12px;color:var(--ink-2)}
  .dur{font-family:var(--mono);font-size:11px;background:var(--line-2);color:var(--ink-2);padding:1px 7px;border-radius:5px;margin-left:2px}
  .people{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px;align-items:center}
  .docstats{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
  .docstat{font-size:11px;padding:2px 8px;border-radius:20px;white-space:nowrap;font-weight:500}
  .docstat.ok{background:#e4f5ea;color:#1f7a44}
  .docstat.no{background:#fdecec;color:#c0392b}
  body.theme-dark .docstat.ok{background:#153726;color:#5fcf8a}
  body.theme-dark .docstat.no{background:#3a1d1d;color:#e8888a}
  .follow-banner{display:flex;align-items:flex-start;gap:12px;background:#fffbe6;border:2px solid #f6c90e;border-radius:12px;padding:14px 16px;margin-bottom:16px;position:relative}
  .follow-banner-icon{font-size:22px;flex-shrink:0;line-height:1.2}
  .follow-banner-body{flex:1;font-size:13.5px;line-height:1.5;color:var(--ink)}
  .follow-banner-body b{display:block;margin-bottom:6px;font-size:14px}
  .nyn-banner-item{margin:2px 0}
  .follow-banner-x{position:absolute;top:8px;right:10px;background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted);line-height:1;padding:2px 6px}
  .follow-banner-x:hover{color:var(--ink)}
  body.theme-dark .follow-banner{background:#2a2600;border-color:#9a7e00}
  .nyn-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--paper)}
  .nyn-meta{font-size:11px;color:var(--muted);margin-bottom:6px}
  .nyn-actions{display:flex;gap:6px;margin-top:6px}
  .cal-btn{display:inline-flex;align-items:center;gap:5px;text-decoration:none}
  .card-cal{position:absolute;top:10px;right:38px;display:flex;gap:4px;z-index:2}
  .card-cal-btn{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:4px 7px;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;text-decoration:none;font-size:11px;line-height:1}
  .card-cal-btn:hover{background:var(--line);color:var(--ink)}
  .pdoc-card{margin-top:0!important;padding:12px 14px}
  .nyn-input,.nyn-text,.pdoc-comment{max-width:none!important;width:100%;min-height:38px}
  @media(max-width:820px){.pdoc-grid{grid-template-columns:1fr}}
  .photo-drop{border:2px dashed var(--line);border-radius:12px;padding:22px;text-align:center;color:var(--muted);cursor:pointer;background:var(--paper);transition:.15s}
  .photo-drop:hover,.photo-drop.drag{border-color:var(--accent);background:var(--surface);color:var(--ink-2)}
  .photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:10px}
  .photo-th{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;cursor:pointer;background:var(--paper);border:1px solid var(--line)}
  .photo-th img{width:100%;height:100%;object-fit:cover;display:block}
  .photo-cbwrap{position:absolute;top:6px;left:6px;background:#fff9;border-radius:5px;padding:2px 4px;display:flex}
  .photo-cb{width:17px;height:17px;cursor:pointer}
  .photo-del{position:absolute;top:6px;right:6px;width:24px;height:24px;border:none;border-radius:6px;background:#0008;color:#fff;font-size:15px;cursor:pointer;line-height:1}
  .photo-opt{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin-bottom:8px;cursor:pointer}
  .photo-badge{position:absolute;bottom:6px;right:6px;background:#000a;color:#fff;font-size:10px;padding:1px 5px;border-radius:5px;line-height:1.5}
  .pdo-prog{position:fixed;inset:0;background:#0007;z-index:210;display:none;align-items:center;justify-content:center}
  .pdo-prog .pp-box{background:var(--surface);border-radius:14px;padding:22px 26px;min-width:min(340px,86vw);box-shadow:0 22px 60px #0009}
  .pp-label{font-weight:600;margin-bottom:12px;color:var(--ink)}
  .pp-bar{height:10px;background:var(--line);border-radius:6px;overflow:hidden}
  .pp-fill{height:100%;width:0;background:var(--accent);transition:width .2s}
  .pp-count{margin-top:8px;font-size:12px;color:var(--muted);text-align:right}
  .pdo-lb{position:fixed;inset:0;background:#000d;z-index:200;display:none;align-items:center;justify-content:center}
  .pdo-lb .lb-img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:6px;box-shadow:0 10px 60px #000}
  .pdo-lb .lb-x{position:absolute;top:18px;right:22px;width:42px;height:42px;border:none;border-radius:10px;background:#fff2;color:#fff;font-size:24px;cursor:pointer}
  .pdo-lb .lb-prev,.pdo-lb .lb-next{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:64px;border:none;border-radius:10px;background:#fff2;color:#fff;font-size:34px;cursor:pointer}
  .pdo-lb .lb-prev{left:18px}.pdo-lb .lb-next{right:18px}
  .pdo-lb .lb-dl{position:absolute;bottom:22px;left:50%;transform:translateX(-50%)}
  .chip{display:inline-flex;align-items:center;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:3px 9px 3px 4px;font-size:12px;font-weight:500}
  .chip .av{width:19px;height:19px;border-radius:50%;background:var(--fill);color:#fff;font-size:10px;font-weight:600;display:grid;place-items:center;font-family:var(--display)}
  .chip.empty{color:var(--muted-2);border-style:dashed;padding:3px 10px}
  .card .actions{position:absolute;top:11px;right:11px;display:flex;gap:4px;opacity:0;transition:.15s}
  .card:hover .actions{opacity:1}
  .iconbtn{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--muted)}
  .iconbtn:hover{color:var(--ink);border-color:var(--muted-2)}
  .iconbtn.del:hover{color:var(--danger);border-color:var(--danger)}
  .addpeople{background:none;border:1px dashed var(--muted-2);color:var(--muted);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:500}
  .addpeople:hover{color:var(--ink);border-color:var(--ink)}
  .empty-state{text-align:center;color:var(--muted);padding:70px 20px}
  .empty-state .big{font-family:var(--display);font-size:17px;color:var(--ink-2);margin-bottom:6px}

  /* ---------- People cards ---------- */
  .pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:13px}
  .pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);cursor:pointer;transition:.15s}
  .pcard:hover{transform:translateY(-2px);border-color:#d6d6d0}
  .pcard.active{outline:2px solid var(--ink);outline-offset:-1px}
  .pcard .ph{display:flex;align-items:center;gap:11px}
  .pcard .avatar{width:38px;height:38px;border-radius:11px;background:var(--fill);color:#fff;font-family:var(--display);font-weight:600;font-size:15px;display:grid;place-items:center}
  .pcard .nm{font-weight:600;font-size:14px}.pcard .st{color:var(--muted);font-size:12px}
  .pcard .next{margin-top:12px;font-size:12px;color:var(--muted);border-top:1px solid var(--line-2);padding-top:10px}
  .pcard .next b{color:var(--ink-2);font-weight:600}

  /* ---------- Modal ---------- */
  .overlay{position:fixed;inset:0;background:rgba(20,22,30,.42);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:500;padding:20px}
  .overlay.on{display:flex}
  .modal{background:var(--surface);border-radius:18px;width:100%;max-width:660px;max-height:92vh;overflow-y:auto;box-shadow:0 30px 80px -20px rgba(0,0,0,.4)}
  .modal .m-head{padding:20px 24px 0;display:flex;justify-content:space-between;align-items:center}
  .modal h2{font-family:var(--display);font-size:19px;font-weight:600;margin:0}
  .modal .m-body{padding:18px 24px 8px}
  .modal .m-foot{padding:14px 24px 22px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;position:sticky;bottom:0;background:var(--surface)}
  .field{margin-bottom:15px}
  .field label{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
  .field input,.field select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);outline:none;transition:.12s}
  .field input:focus,.field select:focus{border-color:var(--ink);background:#fff}
  .field input[type=checkbox],.field input[type=radio]{width:auto;flex:none;padding:0;margin:0}
  .field label.cbx{display:inline-flex;align-items:center;gap:8px;cursor:pointer;width:fit-content;margin-bottom:0;font-weight:500;color:var(--ink)}
  .frow{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
  .phase-h{font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:0;color:var(--ink);margin:10px 0 9px}
  .range-info{margin:-8px 0 15px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:7px 11px}
  .range-info .rl{color:var(--muted);font-weight:600;margin-right:6px}
  .range-edit{margin:-6px 0 15px;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:8px 11px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .range-edit .rl{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  .range-edit input[type=date]{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:12.5px}
  .range-edit .sep{color:var(--muted-2)}
  .range-edit .rdur{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-2);background:var(--line-2);padding:2px 8px;border-radius:6px}
  .frow2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .btn{padding:10px 18px;border-radius:10px;font-weight:600;font-size:13px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
  .btn:hover{background:var(--paper)}
  .btn.primary{background:var(--fill);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#000}
  .btn.danger{color:var(--danger);border-color:transparent}.btn.danger:hover{background:#fdecea}
  .close{width:32px;height:32px;border-radius:9px;border:none;background:var(--paper);display:grid;place-items:center;color:var(--muted)}
  .close:hover{background:var(--line-2);color:var(--ink)}
  .pick{display:flex;flex-wrap:wrap;gap:7px}
  .pick .opt{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 6px;font-size:12.5px;font-weight:500;cursor:pointer;user-select:none;transition:.12s;background:var(--paper)}
  .pick .opt:hover{border-color:var(--muted-2)}
  .pick .opt.sel{background:var(--fill);color:#fff;border-color:var(--ink)}
  .pick .opt .av{width:20px;height:20px;border-radius:50%;background:var(--ink-2);color:#fff;font-size:10px;font-weight:600;display:grid;place-items:center;font-family:var(--display)}
  .pick .opt.sel .av{background:#fff;color:var(--ink)}
  .hint{font-size:11.5px;color:var(--muted);margin-top:5px}
  .vorlauf-box{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:12px 14px;margin-bottom:15px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .vorlauf-box label{margin:0;font-size:12.5px;font-weight:600;color:var(--ink-2)}
  .vorlauf-box input{width:64px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff}
  .vorlauf-box .sm{background:none;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;color:var(--ink-2)}
  .vorlauf-box .sm:hover{background:var(--line-2)}
  .asgn{margin-top:4px}
  .asgn-row{padding:9px 0;border-bottom:1px solid var(--line-2);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .asgn-name{display:flex;align-items:center;gap:8px;min-width:170px;flex:1}
  .asgn-row .av{width:24px;height:24px;border-radius:50%;background:var(--fill);color:#fff;font-size:10px;font-weight:600;display:grid;place-items:center;font-family:var(--display);flex:none}
  .asgn-row .an{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tag-ind{font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#7a5b1e;background:#fbeecb;padding:2px 6px;border-radius:5px}
  .asgn-dates{display:flex;align-items:center;gap:6px}
  .asgn-dates .dl{font-size:11px;color:var(--muted);font-weight:600}
  .asgn-row input[type=date]{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:11.5px;width:130px}
  .asgn-row .x{border:none;background:none;color:var(--muted-2);font-size:15px;padding:2px 6px;border-radius:6px;margin-left:auto}
  .asgn-row .x:hover{color:var(--danger);background:#fdecea}
  .asgn-empty{color:var(--muted-2);font-size:12.5px;padding:10px 0}

  .cm-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2)}
  .cm-item input[type=color]{width:34px;height:30px;border-radius:7px;border:1px solid var(--line);padding:2px;cursor:pointer}
  .cm-item input[type=text]{flex:1;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
  .cm-item .del{border:none;background:none;color:var(--muted-2);font-size:18px;padding:2px 6px;border-radius:6px}
  .cm-item .del:hover{color:var(--danger);background:#fdecea}

  .toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--fill);color:#fff;padding:11px 20px;border-radius:11px;font-size:13px;font-weight:500;opacity:0;transition:.25s;z-index:80;box-shadow:var(--shadow);white-space:nowrap}
  .toast a{color:#ffd;font-weight:700;text-decoration:underline}
  /* info modal */
  .info-cust{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;background:var(--paper);border:1px solid var(--line);padding:5px 12px;border-radius:999px;margin-bottom:12px}
  .info-cust .cdot{width:12px;height:12px;border-radius:4px}
  .info-line{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:13.5px;margin-bottom:9px}
  .info-line svg{color:var(--muted)}
  .info-line .mono{font-family:var(--mono);font-size:13px}
  .info-teamh{font-family:var(--display);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px;display:flex;align-items:center;gap:8px}
  .info-teamh span{background:var(--fill);color:#fff;font-family:var(--sans);font-size:11px;padding:1px 8px;border-radius:999px;letter-spacing:0}
  .info-crewh{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:10px 0 5px}
  .info-sub{font-size:12.5px;color:var(--muted);font-family:var(--mono);margin-top:2px}
  .info-crewh .cr-range{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted-2);font-family:var(--mono);margin-left:6px}
  .info-team{display:flex;flex-direction:column;gap:2px}
  .info-person{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-2)}
  .info-person .av{width:26px;height:26px;border-radius:50%;background:var(--fill);color:#fff;font-size:11px;font-weight:600;display:grid;place-items:center;font-family:var(--display);flex:none}
  .info-person .ipn{flex:1;font-size:13px;font-weight:500}
  .info-person .ipd{font-family:var(--mono);font-size:12px;color:var(--muted)}
  .info-empty{color:var(--muted-2);font-size:13px;padding:6px 0}
  .toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
  .menubtn{display:none;width:38px;height:38px;place-items:center;background:#22252f;border:1px solid #2f333e;border-radius:9px;color:#fff}
  @media(max-width:820px){
    .body{grid-template-columns:1fr}
    aside{display:none}
    aside.open{display:block;position:fixed;inset:60px 0 0 0;z-index:25;width:250px;box-shadow:var(--shadow)}
    .menubtn{display:grid}
    .frow,.frow2{grid-template-columns:1fr}
    main{padding:14px}.search{min-width:110px}
    .asgn-row{flex-wrap:wrap}
  }
/* ===== Login-Seite (Stil analog material.pdo-agency.com) ===== */
.login-screen{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#14161a;z-index:400;padding:20px}
.login-screen.on{display:flex}
.login-card{width:100%;max-width:360px;background:#1c1f26;border:1px solid #2a2e37;border-radius:16px;padding:34px 30px 30px;box-shadow:0 24px 60px rgba(0,0,0,.45);display:flex;flex-direction:column;align-items:stretch}
.login-logo{height:40px;object-fit:contain;align-self:center;margin-bottom:6px}
.login-sub{text-align:center;color:#9aa2b1;font-size:14px;letter-spacing:.02em;margin-bottom:26px}
.login-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.login-field label{font-size:12.5px;font-weight:600;color:#c7cdd8}
.login-field input{width:100%;padding:12px 14px;border:1px solid #333844;border-radius:10px;background:#12141a;color:#f0f2f6;font-size:14px;outline:none;transition:.12s}
.login-field input:focus{border-color:#5b7cff;background:#151822}
.login-stay{display:flex;align-items:center;gap:8px;color:#9aa2b1;font-size:12.5px;margin-bottom:14px;cursor:pointer}
.login-stay input{width:auto}
.login-err{color:#ff6b6b;font-size:13px;min-height:18px;margin-bottom:6px}
.login-btn{width:100%;padding:12px 16px;border:none;border-radius:10px;background:#e8552d;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:.12s}
.login-btn:hover{background:#d64a24}

/* ===== Keine Datenbankverbindung ===== */
#noDbScreen{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#14161a;z-index:500}
#noDbScreen.on{display:flex}
#noDbScreen .ndb{color:#f0f2f6;font-size:22px;font-weight:600;text-align:center;padding:24px}
#noDbScreen .ndb small{display:block;margin-top:14px;font-size:13px;font-weight:400;color:#9aa2b1}
#noDbScreen button{margin-top:20px;padding:9px 18px;border:1px solid #333844;border-radius:9px;background:#1c1f26;color:#e8eaf0;cursor:pointer;font-size:13px}

/* ===== Handy-Optimierung: Zeitplan + Stundenliste ===== */
/* Stundenliste: Tagesspalte bleibt beim seitlichen Scrollen stehen */
.wt-sheet th:first-child,.wt-sheet td:first-child{position:sticky;left:0;background:var(--surface);z-index:3;border-right:1px solid var(--line)}
.wt-sheet thead th:first-child{z-index:4}
.wt-sheet tr.wt-we td:first-child{background:var(--weekend)}
.wt-sheet tfoot td:first-child{background:var(--paper)}

@media(max-width:640px){
  /* Zeitplan: kompaktere Beschriftungen */
  .pl-pname{font-size:11.5px}
  .pl-corner .btn{padding:4px 8px;font-size:11px}
  /* Stundenliste: kompakter, aber tippbar */
  .wt-sheet th,.wt-sheet td{padding:5px 4px;font-size:12px}
  .wt-sheet .wt-time{width:58px}
  .wt-sheet input,.wt-sheet select{font-size:16px}  /* verhindert Auto-Zoom beim Antippen (iPhone) */
  .wt-summary{grid-template-columns:1fr 1fr}
  main{padding:10px}
  .wt-card{padding:14px 12px}
}
@media(pointer:coarse){
  /* größere Greifflächen für Ziehen am Touchscreen */
  .pl-resize{width:16px}
  .pm-rz{width:14px}
  .btn.sm{padding:7px 12px;min-height:34px}
  .tbtn{min-width:38px;min-height:38px}
}

/* ===== Handy-Optimierung: PM, Time Tracker, Navigation ===== */
@media(max-width:640px){
  /* Projekt-Tabs: seitlich wischen statt umbrechen */
  .wt-subnav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .wt-subnav::-webkit-scrollbar{display:none}
  .wt-subnav button{white-space:nowrap;flex:none}
  /* Hauptnavigation ebenfalls wischbar */
  .tabs{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{white-space:nowrap;flex:none}
  /* Produktionsplan: schmalere haftende Spalte */
  .pm-glabel{width:120px;min-width:120px;font-size:11px}
  .pm-slabel{width:120px;min-width:120px;font-size:11px}
  .pm-card{padding:14px 12px}
  table.pm-table th,table.pm-table td{padding:6px 8px;font-size:12.5px}
  .pm-days{max-width:none}
  /* Time Tracker & Verwaltungstabellen kompakt */
  .wt-table th,.wt-table td{font-size:12.5px}
  .tt-bar{flex-wrap:wrap}
  /* Topbar: Burger-Menü statt vieler Buttons */
  header.topbar{padding:8px 10px;gap:10px}
  .brand .sub{display:none}
  header.topbar .search{flex:1 1 120px;min-width:0}
  #burgerBtn{display:inline-flex}
  .tbar-actions{position:absolute;top:calc(100% + 4px);right:8px;left:8px;background:var(--fill);border:1px solid #2f333e;border-radius:12px;padding:10px;display:none;flex-wrap:wrap;gap:8px;box-shadow:0 22px 55px -12px rgba(0,0,0,.65);z-index:60}
  .tbar-actions.open{display:flex}
  .tbar-actions .whoami{flex:1 1 100%;order:-1;padding:2px 4px 6px;color:#e6e7ea}
  .tbar-actions .tbtn{font-size:13px;padding:9px 12px;gap:7px}
  .tbar-actions .tbtn svg{width:15px;height:15px}
  .tbar-actions .lang-sel{font-size:13px}
  /* Überschriften & breite Tabellen */
  h1{font-size:24px;line-height:1.15}
  .wt-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* Dialoge fast vollbreit */
  .modal{max-width:calc(100vw - 16px)}
}

/* ===== Plan-Layout (Verwaltung) + Leerzeilen ===== */
.pl-spacer{pointer-events:none;height:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line-2)}
.pl-spacer .pl-label,.pl-spacer .pl-lane{background:var(--paper)}
  .pl-spacer-txt{font-family:var(--display);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);white-space:nowrap;padding:0 12px}
.plm-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px}
.plm-person{background:#e7edff;color:#2c47a8}
.plm-spacer{background:#eceef1;color:#555}
.plm-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid var(--line);vertical-align:-2px;margin-right:6px}
.plm-up,.plm-dn{padding:4px 9px;min-width:32px}

/* Install-Button in der Login-Karte */
.login-install{margin-top:14px;width:100%;padding:11px 16px;border:1px solid #3a3f4b;border-radius:10px;background:transparent;color:#e8eaf0;font-size:14px;font-weight:600;cursor:pointer}
.login-install:hover{background:#242833}


/* Tagesansicht: Blöcke pro Tag (Wochen-Feinplanung) */
.pm-dayblock{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}
.pm-daytitle{font-weight:700;font-size:14px;margin-bottom:8px;text-transform:capitalize}

/* Produktionsplan: Zeitraum-Auswahl (von/bis) */
.pm-rangebar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:12px}
.pm-rangebar .pm-in{min-width:150px}

/* Tooltip-Schalter im Kopf */
#tipBtn.tip-on{color:var(--accent)}
#tipBtn{opacity:.85}

/* Stundenliste: heutiger Tag hervorgehoben */
.wt-sheet tr.wt-today>td{background:#fff3d6}
.wt-sheet tr.wt-today>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.wt-sheet tr.wt-today .wt-d{font-weight:700}

/* Automatisch berechnete Pause */
.wt-sheet input.wt-auto{background:var(--paper);color:var(--muted);font-style:italic}

/* Stoppuhr-Knopf im Time Tracker */
.tt-swbtn{font-size:15px;font-weight:700;padding:12px 20px;border-radius:12px}
@media(max-width:640px){ .tt-swbtn{width:100%;margin-top:10px} }

/* Erfasste Zeit von heute in der Schnellerfassung */
.tt-today-sum{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:20px;background:var(--paper);border:1px solid var(--line);font-size:11.5px;font-weight:600;color:var(--muted)}

.tt-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Stundenliste: abwechselnde Spaltenfarben zur besseren Lesbarkeit */
.wt-sheet th.cg1,.wt-sheet td.cg1{background:rgba(0,0,0,.028)}
.wt-sheet th.cgc,.wt-sheet td.cgc{background:rgba(43,106,69,.07)}
.wt-sheet tr.wt-we td.cg1,.wt-sheet tr.wt-hol td.cg1{background:rgba(0,0,0,.05)}
.wt-sheet tr.wt-we td.cgc,.wt-sheet tr.wt-hol td.cgc{background:rgba(43,106,69,.11)}
.wt-sheet tr.wt-today>td.cg1{background:#fbe9c4}
.wt-sheet tr.wt-today>td.cgc{background:#f6e4be}

/* Arbeitszeiten: Kopfbereich bleibt beim Scrollen sichtbar */
#content .view-head.wt-stick{position:sticky;top:0;z-index:24;background:var(--paper);padding-top:6px;margin-bottom:0}
#content .wt-subnav.wt-stick{position:sticky;top:var(--wt-t1,58px);z-index:23;background:var(--paper);margin-bottom:0}
#content .wt-monthbar.wt-stick{position:sticky;top:var(--wt-t2,100px);z-index:22;background:var(--paper);padding:8px 0;border-bottom:1px solid var(--line)}
@media(max-width:640px){
  #content .wt-subnav.wt-stick{top:var(--wt-t1m,52px)}
  #content .wt-monthbar.wt-stick{top:var(--wt-t2m,92px)}
}

/* Feiertage: Spalten sauber ausrichten */
.wt-holtable{width:100%;table-layout:fixed}
.wt-holtable th:nth-child(1),.wt-holtable td:nth-child(1){width:26%}
.wt-holtable th:nth-child(2),.wt-holtable td:nth-child(2){width:48%}
.wt-holtable th:nth-child(3),.wt-holtable td:nth-child(3){width:26%;text-align:left;white-space:nowrap}

/* Schmale Tabellen: nicht auf die Mindestbreite der Stundenliste zwingen */
.wt-table.wt-holtable,.wt-table.km-places,.wt-table.adm-table{min-width:0;width:100%}
.km-places th:nth-child(1),.km-places td:nth-child(1){width:auto}
.km-places th:nth-child(2),.km-places td:nth-child(2){width:120px;text-align:right;white-space:nowrap}
.km-places th:nth-child(3),.km-places td:nth-child(3){width:48px;text-align:center}

/* Sterne-Bewertung im Hotel-Dialog */
.ho-stars{display:flex;align-items:center;gap:3px;font-size:24px;line-height:1;padding:4px 0}
.ho-stars span{color:var(--line-2);cursor:pointer;transition:color .1s}
.ho-stars span.on{color:#e8a33d}
.ho-stars button{margin-left:8px;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:6px;width:24px;height:24px;font-size:13px;cursor:pointer}

/* Plan: deutlichere Trennlinie beim Monatswechsel */
.pl-monthsep{position:absolute;top:0;bottom:0;width:2px;background:var(--muted-2);opacity:.55;pointer-events:none}

/* Termin-Dialog: Hinweis zu Urlaub/Zeitausgleich unter dem Zeitraum */
.t-info{margin-top:6px;font-size:12px;line-height:1.5;color:var(--muted)}
.t-info b{color:var(--ink);font-weight:600}
.t-info .neg{color:#c0392b}


/* ===== Plan: Kontrastreich-Ansicht ===== */
.qcx{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;cursor:pointer;padding:0 6px;white-space:nowrap}
.qcx input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.plan.contrast{--weekend:#dcdad2;--holiday:#a9dfbf;--line:#9a9a94;--line-2:#b4b4ae;--cx-line:#000}
body.theme-dark .plan.contrast{--weekend:#2c303b;--holiday:#1f6a4b;--line:#5b6070;--line-2:#454a58;--cx-line:#fff}
.plan.contrast .pl-cxgrid{position:absolute;top:98px;height:calc(100% - 98px);z-index:9;pointer-events:none;background-image:repeating-linear-gradient(90deg,var(--cx-line) 0,var(--cx-line) 1px,transparent 1px,transparent var(--dpp));box-shadow:inset -1px 0 0 var(--cx-line)}
.plan.contrast .pl-day,.plan.contrast .pl-week{border-left:1px solid var(--cx-line)}
.plan.contrast .pl-day{font-size:14px;font-weight:700;color:var(--ink)}
.plan.contrast .pl-day .wd{font-size:11.5px;font-weight:700;color:var(--ink-2)}
.plan.contrast .pl-day.tod{color:#fff}
.plan.contrast .pl-day.tod .wd{color:#fff}
.plan.contrast .pl-row{border-bottom:1px solid var(--cx-line)}
.plan.contrast .pl-month,.plan.contrast .pl-months,.plan.contrast .pl-weeks,.plan.contrast .pl-days{border-color:var(--cx-line)}
.plan.contrast .pl-month--alt{background:#e4e2da}
body.theme-dark .plan.contrast .pl-month--alt{background:#262a35}
.plan.contrast .pl-bar{filter:saturate(1.7) contrast(1.08) brightness(.93);border:1px solid rgba(0,0,0,.7);font-weight:700}
.plan.contrast .pl-bar:hover{filter:saturate(1.8) contrast(1.1) brightness(.98)}
.plan.contrast .pl-todayline{width:3px}
.plan.contrast .pl-monthsep{opacity:1;background:var(--cx-line);width:2px}
