:root{--bg: #dfe2e6;--panel: #ffffff;--ink: #1b1e23;--muted: #6b7280;--line: #c9ccd1;--line-strong: #9aa0a8;--head: #2f3640;--head-ink: #f4f6f8;--accent: #1f6feb;--accent-weak: #e7f0fe;--empty: #eeeeee;--weekend: #cfd3d8;--today: #fff7d6;--danger: #d92d20;--warn: #b54708;--ok: #067647;--row-h: 22px;--font: 12px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{display:flex;align-items:center;gap:8px;background:var(--head);color:var(--head-ink);padding:5px 10px;flex:0 0 auto;border-bottom:2px solid #1c2026}.topbar .brand{font-weight:700;letter-spacing:.3px;font-size:14px;margin-right:6px;white-space:nowrap}.topbar .brand small{font-weight:400;opacity:.7;font-size:11px}.topbar .spacer{flex:1}.nav{display:flex;gap:2px;flex-wrap:wrap}.nav button{background:transparent;color:#cdd3db;border:1px solid transparent;padding:4px 9px;border-radius:5px;cursor:pointer;font-size:12px}.nav button:hover{background:#3d4650;color:#fff}.nav button.active{background:var(--accent);color:#fff}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--panel);padding:5px 10px;border-bottom:1px solid var(--line);flex:0 0 auto}.toolbar .grp{display:flex;align-items:center;gap:4px}.toolbar .sep{width:1px;height:20px;background:var(--line);margin:0 3px}.toolbar .row-break{flex-basis:100%;height:0}button.btn{background:#f3f4f6;border:1px solid var(--line-strong);color:var(--ink);padding:4px 9px;border-radius:5px;cursor:pointer;font-size:12px;white-space:nowrap}button.btn:hover{background:#e9ebef}button.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.btn.primary:hover{background:#1a5fd0}button.btn:disabled{opacity:.45;cursor:default}button.btn.sm{padding:2px 6px;font-size:11px}.kwlabel{font-weight:700;font-size:13px}.kwlabel .rng{color:var(--muted);font-weight:400;margin-left:6px}input.txt,select.txt{border:1px solid var(--line-strong);border-radius:5px;padding:3px 7px;font-size:12px;background:#fff}input.search{min-width:200px}.board-wrap{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;background:var(--panel);position:relative}table.board{border-collapse:separate;border-spacing:0;width:max-content;zoom:var(--z, 1)}.board th,.board td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0}.board thead th{position:sticky;top:0;z-index:5;background:var(--head);color:var(--head-ink)}.board thead tr.kwrow th{top:0;height:20px}.board thead tr.dayrow th{top:20px;z-index:5}:root{--w-akt: 30px;--w-nr: 56px;--w-ag: 200px;--w-zeit: 176px}.col-meta{position:sticky;z-index:6;background:#f7f8fa}thead .col-meta{z-index:8!important;background:var(--head)}.c-akt{left:0;min-width:calc(var(--w-akt) / var(--z, 1));max-width:calc(var(--w-akt) / var(--z, 1))}.c-nr{left:calc(var(--w-akt) / var(--z, 1));min-width:calc(var(--w-nr) / var(--z, 1));max-width:calc(var(--w-nr) / var(--z, 1))}.c-ag{left:calc((var(--w-akt) + var(--w-nr)) / var(--z, 1));min-width:calc(var(--w-ag) / var(--z, 1));max-width:calc(var(--w-ag) / var(--z, 1))}.c-zeit{left:calc((var(--w-akt) + var(--w-nr) + var(--w-ag)) / var(--z, 1));min-width:calc(var(--w-zeit) / var(--z, 1));max-width:calc(var(--w-zeit) / var(--z, 1))}.col-meta .m{zoom:calc(1 / var(--z, 1))}.c-akt .m{text-align:center}.c-akt.metahead .m{text-align:center;color:#9aa0a8}.c-ag .ag-name{font-weight:600}.c-ag .ort2{color:var(--muted);font-size:10px;margin-top:1px}.c-zeit .zeit{font-size:10px;line-height:1.35}.c-zeit .z-plan{color:#14417a}.c-zeit .z-ist{color:var(--ok)}.c-zeit .z-sum{color:#555;font-size:9px}.c-zeit.zeit-click{cursor:pointer}.bs-row:hover .c-zeit.zeit-click{background:#eef4ff}.c-zeit.zeit-click .z-sum:after{content:" 📊"}.syncdot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.25);vertical-align:middle}.syncchip{background:transparent;border:none;cursor:pointer;padding:4px 6px;display:inline-flex;align-items:center}.statusbtn{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;line-height:1;padding:3px 9px;border:1px solid rgba(0,0,0,.12);border-radius:999px;cursor:pointer}.statusbtn .sdot{width:9px;height:9px;border-radius:50%;border:1px solid rgba(0,0,0,.25)}.statusbtn:hover{filter:brightness(.97);box-shadow:0 0 0 2px #1f6feb40}.aktbtn{width:15px;height:15px;border-radius:50%;border:1px solid rgba(0,0,0,.3);cursor:pointer;padding:0;vertical-align:middle}.aktbtn.on{background:#34c759}.aktbtn.plan{background:#fc0}.aktbtn.off{background:#ff3b30}.aktbtn:hover{filter:brightness(1.12);box-shadow:0 0 0 2px #1f6feb59}.nr-m{display:flex;align-items:center;gap:4px}.bs-grip{cursor:grab;color:var(--muted);font-size:13px;line-height:1;-webkit-user-select:none;user-select:none;padding:0 1px}.bs-grip:hover{color:var(--accent)}.bs-grip:active{cursor:grabbing}.bs-row.drop-before td{box-shadow:inset 0 3px 0 -1px var(--accent)}.bs-row.drop-after td{box-shadow:inset 0 -3px 0 -1px var(--accent)}.ampel-filter{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border:1px solid var(--border);border-radius:999px;background:#fff}.ampel-filter .afdot{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.3);padding:0;cursor:pointer}.ampel-filter .afdot.green{background:#34c759;cursor:default}.ampel-filter .afdot.yellow{background:#fc0}.ampel-filter .afdot.red{background:#ff3b30}.ampel-filter .afdot.off{background:transparent;opacity:.55}.ampel-filter button.afdot:hover{box-shadow:0 0 0 2px #1f6feb59}.bs-row.inactive .col-meta{background:#f0f0f2}.bs-row.inactive .metaCell .m{opacity:.5}.metahead{text-align:left;padding:3px 6px;font-size:11px;font-weight:600}.kwcell{text-align:center;font-weight:700;font-size:12px;border-left:2px solid #1c2026}.dayhead{text-align:center;padding:1px 2px;line-height:1.15;min-width:var(--day-w, 116px);max-width:var(--day-w, 116px);width:var(--day-w, 116px);overflow:hidden}.dayhead .wd{font-weight:700}.dayhead .dt{font-size:10px;opacity:.8}.dayhead.weekend{background:#4a525c}.dayhead.today{background:var(--accent)}.dayhead.holiday{background:#8a2438}.dayhead.bruecke{background:#5a6472;box-shadow:inset 0 -3px #98a2b3}.dayhead.hd-click{cursor:pointer}.dayhead.hd-click:hover{box-shadow:inset 0 0 0 2px #ffffff59}.dayhead .holname{font-size:8px;color:#ffd9df;line-height:1.05;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dayhead .holname.bruecke{color:#eef1f5;font-weight:700}.day-sep{border-left:2px solid #1c2026}tr.bs-row td{vertical-align:top}tr.bs-row:nth-child(2n) .col-meta{background:#eef0f3}.metaCell{padding:3px 6px;font-size:11px;overflow:hidden}.metaCell.c-ag{font-weight:600}.metaCell .ort2{color:var(--muted);font-size:10px}.metaCell .actnote{color:var(--warn);font-size:10px}.metaCell .stat{display:inline-block;font-size:9px;padding:0 4px;border-radius:3px;margin-top:1px}.stat.aktiv{background:#d6f5e3;color:var(--ok)}.stat.geplant{background:#e4ecfb;color:var(--accent)}.stat.abgeschlossen{background:#eceef1;color:var(--muted)}.stat.pausiert{background:#fdeecf;color:var(--warn)}.daycell{min-width:var(--day-w, 116px);max-width:var(--day-w, 116px);width:var(--day-w, 116px);overflow:hidden;background:var(--empty);vertical-align:top;padding:2px}.daycell.weekend{background:var(--weekend)}.daycell.today{background:var(--today)}.daycell.holiday{background:#f6dde2}.daycell.holiday.today{background:#ffe3cf}.daycell.bruecke{background-color:#c7ccd4;background-image:repeating-linear-gradient(45deg,rgba(74,84,100,.22) 0 6px,transparent 6px 12px)}.daycell.bruecke.today{background-color:#ffe3cf;background-image:none}.daycell.selcell{box-shadow:inset 0 0 0 2px var(--accent);background:#e4eefc}.daycell.pastehint{cursor:copy}.daycell:hover{outline:2px solid var(--accent);outline-offset:-2px;cursor:pointer}.daycell.dragover{outline:2px dashed var(--accent);background:var(--accent-weak)}.chip{display:flex;align-items:center;gap:3px;border-radius:3px;padding:1px 4px;margin:1px 0;font-size:11px;line-height:1.5;border:1px solid rgba(0,0,0,.18);cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden}.chip:hover{filter:brightness(.95)}.chip.conflict{box-shadow:0 0 0 2px var(--danger)}.chip.chip-drop{box-shadow:0 -3px 0 -1px var(--accent)}.chip.sel{outline:2px solid var(--accent);outline-offset:1px}.daycell.compact{padding:1px}.daycell.compact .chip{font-size:9px;padding:0 3px;margin:1px 0;line-height:1.35}.daycell.compact .chip .x{display:none}.chip .x{margin-left:auto;opacity:0;font-weight:700;cursor:pointer;padding:0 2px}.chip:hover .x{opacity:.8}.chip .k{opacity:.55;font-size:9px}.cell-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.addchip{color:var(--muted);font-size:11px;padding:1px 3px;opacity:0}.daycell:hover .addchip{opacity:1}.addtaet{color:#7a6f3f;background:#fffbe0;border:1px solid #e8dfad;border-radius:3px;font-size:10px;padding:0 4px;cursor:pointer;opacity:0;white-space:nowrap}.daycell:hover .addtaet{opacity:1}.addtaet:hover{background:#fff3c0}.taetigkeit-input{display:block;width:100%;box-sizing:border-box;resize:none;overflow:hidden;background:#ffc;border:1px solid rgba(0,0,0,.18);border-radius:3px;font-size:11px;line-height:1.25;padding:1px 4px;margin:1px 0;color:#111;font-weight:600;font-family:inherit;white-space:pre-wrap;word-break:break-word;min-height:18px}.taet-wrap{position:relative}.taetigkeit-input.has-grip{padding-right:14px}.taetigkeit-input.muted{background:transparent;border-color:transparent;color:#7a6f3f;font-weight:400}.taetigkeit-input.muted::placeholder{color:transparent}.daycell:hover .taetigkeit-input.muted::placeholder{color:#b3a874}.taetigkeit-input.muted:hover,.taetigkeit-input.muted:focus{background:#fffef0;border-color:#00000026}.taetigkeit-input.muted:focus::placeholder{color:#b3a874}.taet-wrap.muted .taet-grip{opacity:0}.daycell:hover .taet-wrap.muted .taet-grip{opacity:.4}.taet-grip{position:absolute;top:1px;right:2px;z-index:3;cursor:grab;font-size:11px;line-height:15px;color:#7a6f3f;padding:0 1px;opacity:.45;-webkit-user-select:none;user-select:none}.taet-grip:hover{opacity:1}.taet-grip:active{cursor:grabbing}.taetigkeit-input.fs-sm{font-size:10px}.taetigkeit-input.fs-xs{font-size:9px;letter-spacing:-.2px}.taetigkeit-input::placeholder{color:#9a8f5a;font-weight:400;font-style:italic}.taetigkeit-input:focus{outline:2px solid var(--accent);outline-offset:-1px;background:#fffde6}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181e59;z-index:50;display:flex;align-items:flex-start;justify-content:center}.popover{position:absolute;z-index:60;background:#fff;border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 12px 40px #00000047;width:340px}.modal{background:#fff;border-radius:10px;box-shadow:0 20px 60px #00000059;width:min(720px,94vw);max-height:90vh;overflow:auto;margin-top:4vh}.modal.wide{width:min(1000px,96vw)}.modal h3{margin:0;padding:12px 16px;border-bottom:1px solid var(--line);font-size:15px}.modal .body{padding:14px 16px}.modal .foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line)}.pop-head{padding:8px 10px;border-bottom:1px solid var(--line);font-weight:600;font-size:12px;display:flex;align-items:center;gap:6px}.pop-body{padding:8px 10px;max-height:340px;overflow:auto}.kindtabs{display:flex;gap:3px;padding:6px 10px 0;flex-wrap:wrap}.kindtabs button{font-size:11px;padding:2px 7px;border-radius:12px;border:1px solid var(--line-strong);background:#f3f4f6;cursor:pointer}.kindtabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.reslist{display:flex;flex-direction:column;gap:2px;margin-top:6px}.resitem{display:flex;align-items:center;gap:6px;padding:3px 5px;border-radius:4px;cursor:pointer}.resitem:hover{background:var(--accent-weak)}.swatch{width:13px;height:13px;border-radius:3px;border:1px solid rgba(0,0,0,.25);flex:0 0 auto}.page{flex:1 1 auto;overflow:auto;padding:14px 16px}.page h2{margin:0 0 10px;font-size:17px}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:0;overflow:hidden;margin-bottom:14px}table.grid{border-collapse:collapse;width:100%}table.grid th,table.grid td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:left;font-size:12px}table.grid th{background:#f3f4f6;position:sticky;top:0;font-weight:600}table.grid tr:hover td{background:#f8fafc}.formgrid{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;align-items:center}.formgrid label{color:var(--muted);font-size:12px}.formgrid input,.formgrid select,.formgrid textarea{width:100%}.inp{border:1px solid var(--line-strong);border-radius:5px;padding:4px 7px;font-size:12px}.rowflex{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pill{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px}.muted{color:var(--muted)}.right{text-align:right}.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0 4px;font-size:12px}.linkbtn.danger{color:var(--danger)}.legendbar{display:flex;flex-wrap:wrap;gap:4px 10px;padding:5px 10px;background:#fbfcfd;border-bottom:1px solid var(--line);font-size:11px;align-items:center}.legendbar .li{display:flex;align-items:center;gap:4px}.toast{position:fixed;bottom:16px;left:50%;transform:translate(-50%);background:#1b1e23;color:#fff;padding:8px 16px;border-radius:8px;z-index:100;box-shadow:0 8px 24px #0000004d;font-size:12px}.warnbar{background:#eef4ff;border-bottom:1px solid #c3d6f5;color:#1c3d6e;padding:4px 10px;font-size:11px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.warnbar .c{background:#d8e6fb;border-radius:10px;padding:1px 8px}.selbar{background:var(--accent-weak);border-bottom:1px solid #b8d0f7;color:#14417a;padding:5px 10px;font-size:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.confbar{background:#fff4ed;border-bottom:1px solid #f3c9ad;color:var(--warn);padding:4px 10px;font-size:11px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.confbar .c{background:#fde3d0;border-radius:10px;padding:1px 8px}.confbar .c.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.confbar .c.clickable:hover{background:#f9c9a8;text-decoration:underline}.absgrid td.abs{text-align:center;cursor:pointer;min-width:34px;font-weight:700;color:#222}.absgrid td.abs:hover{outline:2px solid var(--accent);outline-offset:-2px}.absgrid td.wend{background:var(--weekend)}.absgrid th.datehead{font-size:10px;text-align:center;padding:2px;min-width:34px}.print-view{display:none}.print-title{font-size:15px;font-weight:700;margin:0 0 6px}.print-view table.board{width:100%;table-layout:fixed}.print-view .daycell,.print-view .dayhead{min-width:0;max-width:none}.print-view .metaCell,.print-view .metahead{position:static}.print-view .chip.taet-bar{min-height:11px;border-color:#0000004d}.mobile-plan{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.m-toolbar{position:sticky;top:0;z-index:5;background:var(--panel);border-bottom:1px solid var(--line);padding:6px 8px;display:flex;flex-direction:column;gap:6px}.m-nav{display:flex;align-items:center;gap:8px}.m-nav .btn{font-size:17px;padding:6px 16px}.m-date{flex:1;text-align:center}.m-date.holiday{color:var(--danger)}.m-wd{font-weight:700;font-size:13px}.m-dt{font-size:12px;color:var(--muted)}.m-nav2{display:flex;gap:8px;align-items:center}.m-nav2 .inp{flex:1}.m-toolbar .inp{font-size:14px;padding:8px 9px}.m-list{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px;display:flex;flex-direction:column;gap:8px}.m-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px;box-shadow:0 1px 2px #0000000d}.m-card:active{background:#f5f7fa}.m-card-head{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:14px;margin-bottom:7px}.m-nr{background:#eef0f3;border-radius:4px;padding:0 5px;font-size:11px;color:var(--muted)}.m-chips{display:flex;flex-wrap:wrap;gap:5px}.m-chips .chip{font-size:13px;padding:3px 9px;border-radius:5px}.m-edit{margin-top:7px;font-size:11px;color:var(--accent)}@media (max-width: 640px){.topbar{padding:5px 8px;gap:6px;flex-wrap:wrap}.topbar .brand{font-size:13px}.topbar .brand small{display:none}.nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}.nav button{white-space:nowrap;padding:7px 11px}.popover{position:fixed!important;left:6px!important;right:6px!important;top:auto!important;bottom:6px!important;width:auto!important;max-height:82vh;overflow:auto}.pop-body{max-height:52vh}.kindtabs button,.resitem{padding:8px;font-size:13px}.swatch{width:16px;height:16px}.page{padding:10px}.card{overflow-x:auto}.formgrid{grid-template-columns:1fr;gap:2px 0}.formgrid label{margin-top:8px;color:var(--ink);font-weight:600}.modal{width:96vw;max-height:92vh;margin-top:2vh}.modal .foot{position:sticky;bottom:0;background:#fff}}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}@page{size:landscape;margin:8mm}.topbar,.toolbar,.legendbar,.confbar,.nav,.no-print,.overlay,.popover{display:none!important}.board-wrap{overflow:visible;height:auto}.app{height:auto}body{background:#fff}.daycell:hover{outline:none}table.board{font-size:10px}.chip{border:1px solid rgba(0,0,0,.35)!important;margin:1px 0;white-space:normal}.chip .x,.addchip{display:none!important}.taetigkeit-input{border:1px solid rgba(0,0,0,.35)!important}.board thead th{background:#2f3640!important;color:#f4f6f8!important}.col-meta,.metaCell,.metahead{background:#f2f3f5!important}.daycell.weekend{background:#cfd3d8!important}body.printing-selection .board-wrap{display:none!important}body.printing-selection .print-view{display:block!important}body.printing-selection .print-view .board thead th{position:static}body.printing-stats .board-wrap,body.printing-stats .warnbar,body.printing-stats .confbar,body.printing-stats .selbar{display:none!important}body.printing-stats .overlay{display:block!important;position:static!important;background:#fff!important;padding:0!important}body.printing-stats .overlay .stats-modal{position:static!important;box-shadow:none!important;max-height:none!important;height:auto!important;width:100%!important;max-width:100%!important;margin:0!important;border:0!important}body.printing-stats .stats-modal .body{max-height:none!important;overflow:visible!important}body.printing-stats .stats-modal .foot{display:none!important}body.printing-stats .stats-modal .grid{page-break-inside:auto}body.printing-stats .stats-modal tr{page-break-inside:avoid}}
