:root{--ww-blue-900: #1e394b;--ww-blue-800: #2b4f68;--ww-blue-700: #376484;--ww-blue-600: #43769a;--ww-blue-100: #e4edf3;--ww-blue-050: #f2f7fa;--ww-green-700: #4f7a34;--ww-green-600: #659a45;--ww-green-100: #e9f2e2;--ww-sand: #f6f4ef;--ink-900: #16212a;--ink-700: #38495a;--ink-500: #6b7c8c;--ink-300: #a8b5c0;--line: #dde5eb;--surface: #ffffff;--canvas: #f4f7f9;--danger: #b23b3b;--warn: #c08a2e;--ok: #3f8f5c;--radius: 10px;--radius-sm: 6px;--shadow-sm: 0 1px 2px rgba(22, 33, 42, .06), 0 1px 3px rgba(22, 33, 42, .08);--shadow-md: 0 4px 12px rgba(22, 33, 42, .1);--sidebar-w: 260px;--topbar-h: 60px;--font: "Inter", "Segoe UI", "Helvetica Neue", Arial, system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink-900);background:var(--canvas);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:linear-gradient(180deg,var(--ww-blue-800) 0%,var(--ww-blue-900) 100%);color:#dfe9f0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;transition:width .18s ease,flex-basis .18s ease}.sidebar.collapsed{--sidebar-w: 72px}.sidebar-brand{height:var(--topbar-h);display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.1);flex:0 0 auto}.sidebar-brand .brand-text{line-height:1.1;overflow:hidden;white-space:nowrap}.sidebar-brand .brand-name{font-weight:700;font-size:14px;letter-spacing:.02em;color:#fff}.sidebar-brand .brand-sub{font-size:11px;color:#9fb8c9}.sidebar-nav{flex:1 1 auto;overflow-y:auto;padding:12px 10px 20px}.nav-group{margin-bottom:18px}.nav-group-label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#7f9cb0;padding:0 10px 6px;white-space:nowrap}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:var(--radius-sm);color:#cfdde6;font-size:14px;cursor:pointer;white-space:nowrap;overflow:hidden}.nav-item:hover{background:#ffffff12;color:#fff}.nav-item.active{background:var(--ww-blue-700);color:#fff;font-weight:600}.nav-item.active .nav-icon{color:#b9e08f}.nav-icon{flex:0 0 20px;display:grid;place-items:center;color:#9fb8c9}.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-group-label,.sidebar.collapsed .brand-text,.sidebar.collapsed .sidebar-foot-text{display:none}.sidebar-foot{flex:0 0 auto;padding:12px 14px;border-top:1px solid rgba(255,255,255,.1);font-size:11.5px;color:#8fa9ba;display:flex;align-items:center;justify-content:space-between;gap:8px}.collapse-btn{background:#ffffff14;border:0;color:#cfdde6;width:28px;height:28px;border-radius:6px;cursor:pointer}.collapse-btn:hover{background:#ffffff29;color:#fff}.main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);flex:0 0 auto;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 22px;position:sticky;top:0;z-index:20}.topbar h1{font-size:16px;margin:0;font-weight:650}.topbar .crumb{font-size:12px;color:var(--ink-500)}.topbar-spacer{flex:1 1 auto}.searchbox{display:flex;align-items:center;gap:8px;background:var(--canvas);border:1px solid var(--line);border-radius:999px;padding:6px 14px;min-width:240px;color:var(--ink-500)}.searchbox input{border:0;background:transparent;outline:none;font-size:13px;width:100%;color:var(--ink-900)}.userchip{display:flex;align-items:center;gap:10px;cursor:pointer}.avatar{width:32px;height:32px;border-radius:50%;background:var(--ww-green-600);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}.userchip .u-name{font-size:13px;font-weight:600;line-height:1.15}.userchip .u-role{font-size:11px;color:var(--ink-500)}.content{flex:1 1 auto;padding:24px}.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px}.page-head h2{margin:0 0 4px;font-size:22px;font-weight:650}.page-head p{margin:0;color:var(--ink-500);font-size:13.5px;max-width:70ch}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:18px 20px}.card-head{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.card-head h3{margin:0;font-size:14px;font-weight:650}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3,.grid-2{grid-template-columns:1fr}}.stat .stat-label{font-size:12px;color:var(--ink-500)}.stat .stat-value{font-size:26px;font-weight:660;margin-top:4px;letter-spacing:-.01em}.stat .stat-hint{font-size:12px;color:var(--ink-500);margin-top:4px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--ww-blue-100);color:var(--ww-blue-800)}.badge.green{background:var(--ww-green-100);color:var(--ww-green-700)}.badge.sand{background:var(--ww-sand);color:#7a6438}.badge.grey{background:#eef2f5;color:var(--ink-700)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;background:var(--ww-blue-700);color:#fff}.btn:hover{background:var(--ww-blue-800)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--ww-blue-700);border-color:var(--line)}.btn.ghost:hover{background:var(--ww-blue-050)}.btn.green{background:var(--ww-green-600)}.btn.green:hover{background:var(--ww-green-700)}.btn.block{width:100%}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);font-weight:600;padding:10px 20px;border-bottom:1px solid var(--line)}.table td{padding:12px 20px;border-bottom:1px solid var(--line)}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--ww-blue-050)}.empty{padding:46px 20px;text-align:center;color:var(--ink-500)}.empty h4{margin:12px 0 6px;color:var(--ink-700);font-size:15px}.empty p{margin:0 auto;max-width:46ch;font-size:13.5px}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px;color:var(--ink-700)}.field input,.field select{width:100%;padding:10px 12px;font-size:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;outline:none;color:var(--ink-900)}.field input:focus,.field select:focus{border-color:var(--ww-blue-600);box-shadow:0 0 0 3px #37648424}.alert{border-radius:var(--radius-sm);padding:10px 12px;font-size:13px}.alert.error{background:#fdeceb;color:#8d2f2f}.alert.info{background:var(--ww-blue-050);color:var(--ww-blue-800);border:1px solid var(--ww-blue-100)}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}@media (max-width: 900px){.login-wrap{grid-template-columns:1fr}.login-visual{display:none}}.login-visual{position:relative;color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(160deg,#1e394beb,#376484db 55%,#659a45cc),radial-gradient(120% 90% at 80% 10%,rgba(255,255,255,.16),transparent 60%),var(--ww-blue-800)}.login-visual h2{font-size:30px;line-height:1.22;margin:0 0 12px;font-weight:650;letter-spacing:-.01em}.login-visual p{margin:0;color:#ffffffdb;font-size:15px;max-width:40ch}.login-visual .claims{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.login-visual .claim{font-size:12.5px;padding:6px 12px;border-radius:999px;background:#ffffff24;border:1px solid rgba(255,255,255,.2)}.login-visual .foot{font-size:12px;color:#ffffffb8}.login-panel{display:grid;place-items:center;padding:40px 24px;background:var(--surface)}.login-card{width:100%;max-width:372px}.login-card h1{font-size:22px;margin:22px 0 6px;font-weight:650}.login-card .sub{color:var(--ink-500);font-size:13.5px;margin:0 0 24px}.divider{display:flex;align-items:center;gap:12px;color:var(--ink-300);font-size:11.5px;margin:20px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.testnote{font-size:12px;color:var(--ink-500);margin-top:14px;text-align:center}.rollen{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rolle-btn{border:1px solid var(--line);background:#fff;border-radius:var(--radius-sm);padding:12px;text-align:left;cursor:pointer}.rolle-btn:hover{border-color:var(--ww-blue-600);background:var(--ww-blue-050)}.rolle-btn .t{font-size:13.5px;font-weight:650;display:block}.rolle-btn .s{font-size:11.5px;color:var(--ink-500);display:block;margin-top:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#16212a7a;display:grid;place-items:center;padding:24px}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:0 18px 48px #16212a47;width:100%;max-width:880px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}.modal.breit{max-width:1180px}.modal-head{padding:16px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;flex:0 0 auto}.modal-head h3{margin:0;font-size:16px;font-weight:650}.modal-head .sub{font-size:12.5px;color:var(--ink-500);margin-top:2px}.modal-body{padding:20px 22px;overflow-y:auto;flex:1 1 auto}.modal-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;flex:0 0 auto;background:var(--ww-blue-050)}.icon-btn{background:transparent;border:0;color:var(--ink-500);width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:18px;line-height:1}.icon-btn:hover{background:var(--canvas);color:var(--ink-900)}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.form-row-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px}.form-row-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 18px}@media (max-width: 720px){.form-row,.form-row-3,.form-row-4{grid-template-columns:1fr}}.field textarea{width:100%;padding:10px 12px;font-size:14px;font-family:inherit;min-height:74px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;outline:none;resize:vertical}.field textarea:focus{border-color:var(--ww-blue-600);box-shadow:0 0 0 3px #37648424}.section{border:1px solid var(--line);border-radius:var(--radius-sm);margin-top:16px;overflow:hidden}.section>header{background:var(--ww-blue-050);padding:10px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.section>header h4{margin:0;font-size:13px;font-weight:650}.section>header .count{font-size:12px;color:var(--ink-500)}.section .section-body{padding:12px 14px}.picklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}@media (max-width: 720px){.picklist{grid-template-columns:1fr}}.pick{display:flex;align-items:flex-start;gap:9px;padding:7px 9px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent}.pick:hover{background:var(--ww-blue-050)}.pick.on{background:var(--ww-blue-050);border-color:var(--ww-blue-100)}.pick input{margin-top:2px;accent-color:var(--ww-blue-700)}.pick .t{font-size:13.5px;font-weight:600;line-height:1.25}.pick .s{font-size:11.5px;color:var(--ink-500)}.pick .tag{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ww-green-700);background:var(--ww-green-100);padding:1px 6px;border-radius:4px;margin-left:6px}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{font-size:11.5px;padding:3px 9px;border-radius:999px;background:#eef2f5;color:var(--ink-700)}.chip.gruen{background:var(--ww-green-100);color:var(--ww-green-700)}.chip.holz{background:#f1e6d8;color:#7a5322}.chip.rot{background:#ffdad2;color:#ac1a1c}.chip.blau{background:var(--ww-blue-100);color:var(--ww-blue-800)}.chip.gelb{background:#ffe5b7;color:#944400}.filterleiste{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filterchip{border:1px solid var(--line);background:#fff;color:var(--ink-700);border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;font-weight:500}.filterchip.aktiv{background:var(--ww-blue-700);border-color:var(--ww-blue-700);color:#fff;font-weight:600}.filterleiste select,.filterleiste input{padding:7px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:13px;background:#fff;outline:none}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs button{border:0;background:transparent;padding:10px 14px;font-size:13.5px;font-weight:600;color:var(--ink-500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.aktiv{color:var(--ww-blue-700);border-bottom-color:var(--ww-blue-700)}.tabs button .n{font-weight:500;color:var(--ink-300);margin-left:5px}.schalter{display:flex;align-items:center;gap:12px;padding:9px 0}.schalter .txt{flex:1}.schalter .txt .t{font-size:14px;font-weight:600}.schalter .txt .s{font-size:12px;color:var(--ink-500)}.toggle{width:44px;height:25px;border-radius:999px;border:0;cursor:pointer;background:#cfd8de;position:relative;flex:0 0 44px;transition:background .15s}.toggle.an{background:var(--ww-green-600)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px #00000040}.toggle.an:after{transform:translate(19px)}.datenblock{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}@media (max-width: 720px){.datenblock{grid-template-columns:1fr}}.datenblock .dz{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px}.datenblock .dz .k{color:var(--ink-500)}.datenblock .dz .v{font-weight:600;text-align:right}.statuspill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}.statuspill.neu,.statuspill.offen,.statuspill.entwurf,.statuspill.geplant{background:#e8ecee;color:#3e4349}.statuspill.termin,.statuspill.versendet,.statuspill.in_arbeit,.statuspill.laufend,.statuspill.gestellt{background:#ffe5b7;color:#944400}.statuspill.besichtigt,.statuspill.angebot{background:#d4f0ff;color:#004e90}.statuspill.gewonnen,.statuspill.angenommen,.statuspill.erledigt,.statuspill.abgenommen,.statuspill.bezahlt,.statuspill.abgerechnet{background:#c9f5ce;color:#0a5722}.statuspill.verloren,.statuspill.abgelehnt,.statuspill.nicht_moeglich,.statuspill.storniert{background:#ffdad2;color:#ac1a1c}.statuspill.nicht_gefunden{background:#d4f0ff;color:#004e90}.ampel{display:inline-block;width:10px;height:10px;border-radius:50%}.balken{height:8px;background:var(--ww-blue-100);border-radius:999px;overflow:hidden}.balken>span{display:block;height:100%;background:var(--ww-green-600)}.banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-radius:var(--radius-sm);padding:11px 14px;font-size:13px;margin-bottom:16px}.banner.gesperrt{background:#fdecea;color:#8d2f2f;border:1px solid #f3c9c4}.banner.laeuft,.banner.warnung{background:#fef4e2;color:#8a5a12;border:1px solid #f0dcb4}.chronik{list-style:none;margin:0;padding:0}.chronik li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.chronik li:last-child{border-bottom:0}.chronik .punkt{flex:0 0 10px;height:10px;border-radius:50%;margin-top:5px;background:var(--ink-300)}.chronik .txt{flex:1;font-size:13.5px}.chronik .zeit{font-size:11.5px;color:var(--ink-500)}.lv-treffer{border:1px solid var(--line);border-radius:var(--radius-sm);max-height:320px;overflow-y:auto;background:#fff}.lv-zeile{display:grid;grid-template-columns:96px 1fr 60px 100px;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px;text-align:left;background:transparent;border-left:0;border-right:0;border-top:0;width:100%}.lv-zeile:hover{background:var(--ww-blue-050)}.lv-zeile .nr{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--ink-500)}.lv-zeile .t{font-weight:600}.lv-zeile .s{font-size:11.5px;color:var(--ink-500);font-weight:400}.lv-zeile .p{text-align:right;font-weight:600}.wochebox{overflow-x:auto}.woche{border-collapse:collapse;width:100%;min-width:900px;font-size:13px}.woche th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--ww-blue-050);border-right:1px solid var(--line)}.woche th.tag{text-align:center}.woche th.tag.heute{color:var(--ww-blue-700)}.woche th.tag .ft{display:block;font-size:10px;color:#ac1a1c;text-transform:none;letter-spacing:0}.woche td{padding:6px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;min-height:64px;height:72px}.woche td:last-child,.woche th:last-child{border-right:0}.woche td.kolonne{font-weight:600;width:190px;background:var(--ww-blue-050);vertical-align:middle}.woche td.kolonne span{display:block;font-weight:400;font-size:11.5px;color:var(--ink-500)}.woche td.ziel{background:var(--ww-blue-050);outline:2px dashed var(--ww-blue-600);outline-offset:-3px}.woche td.wochenende{background:#fafbfc}.einsatz-chip{display:block;border-radius:4px;padding:6px 8px;font-size:12.5px;line-height:1.3;cursor:grab;border-left:3px solid var(--ww-blue-700);background:var(--ww-blue-050);color:var(--ink-900);margin-bottom:4px;text-align:left;width:100%;border-top:0;border-right:0;border-bottom:0}.einsatz-chip.galabau{border-left-color:var(--ww-green-600);background:var(--ww-green-100)}.einsatz-chip.baumpflege{border-left-color:#8a6d3b;background:var(--ww-sand)}.einsatz-chip.ortstermin{border-left-color:var(--ww-blue-700);background:var(--ww-blue-100)}.einsatz-chip i{font-style:normal;display:block;color:var(--ink-500);font-size:11.5px}.einsatz-chip:active{cursor:grabbing}.zelle-add{border:0;background:transparent;color:var(--ink-300);cursor:pointer;font-size:15px;padding:0 4px;border-radius:4px}.woche td:hover .zelle-add{color:var(--ww-blue-700)}.postab{width:100%;border-collapse:collapse;font-size:13.5px}.postab th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);padding:8px 10px;border-bottom:1px solid var(--line)}.postab td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}.postab td.r,.postab th.r{text-align:right;white-space:nowrap}.postab input,.postab select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:5px;font-size:13px}.postab .lang{font-size:12px;color:var(--ink-500);margin-top:3px;white-space:pre-line}.postab tr.summe td{font-weight:700;border-top:2px solid var(--line-2, #c9d4dc)}.bp-zeile{display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:#fff}.bp-zeile:last-child{border-bottom:0}.bp-zeile:hover{background:var(--ww-blue-050)}.bp-zeile.markiert{background:#fff8dd}.bp-ampel{flex:0 0 5px}.bp-inhalt{flex:1 1 auto;padding:11px 16px;min-width:0;border:0;background:transparent;text-align:left;cursor:pointer}.bp-kopf{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bp-nr{font-weight:700;font-size:14px}.bp-art{font-size:12.5px;color:var(--ink-500)}.bp-massnahme{font-size:13px;color:#b42318;margin-top:3px}.bp-meta{font-size:11.5px;color:var(--ink-500);margin-top:3px}.bp-check{flex:0 0 42px;display:grid;place-items:center}.bp-check input{width:17px;height:17px;accent-color:var(--ww-blue-700)}.auswahlleiste{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff5c2;border:1px solid #E89C2C;border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:14px}.fotoleiste{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.fotokachel{position:relative;width:128px;height:128px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);background:var(--canvas)}.fotokachel img{width:100%;height:100%;object-fit:cover;display:block}.fotokachel .icon-btn{position:absolute;top:4px;right:4px;background:#16212ab8;color:#fff;width:24px;height:24px;border-radius:6px}.mobil{min-height:100vh;background:var(--canvas);display:flex;flex-direction:column}.mobil-kopf{background:linear-gradient(180deg,var(--ww-blue-800),var(--ww-blue-900));color:#fff;padding:14px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mobil-kopf .titel{font-size:17px;font-weight:650}.mobil-kopf .sub{font-size:12.5px;color:#a9c2d3}.mobil-tabs{display:flex;background:#fff;border-bottom:1px solid var(--line);overflow-x:auto}.mobil-tabs button{flex:1 0 auto;min-width:100px;border:0;background:transparent;cursor:pointer;padding:14px 16px;font-size:15px;font-weight:600;color:var(--ink-500);border-bottom:3px solid transparent}.mobil-tabs button.aktiv{color:var(--ww-blue-700);border-bottom-color:var(--ww-blue-700)}.mobil-inhalt{flex:1;padding:16px;max-width:900px;width:100%;margin:0 auto}.mobil-karte{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.mobil-karte h4{margin:0 0 4px;font-size:16px;font-weight:650}.mobil-karte .zeile{font-size:14px;color:var(--ink-700);margin-top:3px}.mobil-aktion{display:block;width:100%;text-align:left;cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:12px;font-size:16px;font-weight:600;box-shadow:var(--shadow-sm)}.mobil-aktion:hover{border-color:var(--ww-blue-600)}.mobil-aktion .hinweis{display:block;font-size:13px;font-weight:400;color:var(--ink-500);margin-top:4px}.btn.gross{padding:15px 22px;font-size:16px;border-radius:10px}.kolonnen-streifen{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.streifen{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;border-top:4px solid var(--ww-blue-700);box-shadow:var(--shadow-sm)}.streifen.galabau{border-top-color:var(--ww-green-600)}.streifen.baumpflege{border-top-color:#8a6d3b}.streifen.frei{border-top-color:var(--ink-300)}.streifen .k{font-weight:650;font-size:14px}.streifen .wo{font-size:15px;font-weight:600;margin-top:6px}.streifen .wo.leer{color:var(--ink-300);font-weight:500}.streifen .m{font-size:12px;color:var(--ink-500);margin-top:4px}.liste-klar{list-style:none;margin:0;padding:0}.liste-klar li{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}.liste-klar li:last-child{border-bottom:0}.liste-klar li .rest{flex:1;min-width:0}.liste-klar li .sub{font-size:11.5px;color:var(--ink-500)}.liste-klar a{color:inherit}.liste-klar a:hover{color:var(--ww-blue-700)}.druck{background:#e9eef2;min-height:100vh;padding:20px}.druck-leiste{max-width:820px;margin:0 auto 14px;display:flex;gap:10px;justify-content:flex-end}.blatt{background:#fff;max-width:820px;margin:0 auto;padding:48px 56px;color:#111;box-shadow:0 2px 14px #0000001f;font-size:13.5px;line-height:1.5}.briefkopf{display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid #376484;padding-bottom:14px;margin-bottom:28px}.briefkopf .firma{font-size:18px;font-weight:700;color:#376484}.klein{font-size:11.5px;color:#555}.anschrift{margin-bottom:28px;line-height:1.45}.druck-titel{font-size:18px;margin:0 0 12px}.drucktab{width:100%;border-collapse:collapse;margin:18px 0;font-size:12.5px}.drucktab th{text-align:left;border-bottom:1px solid #999;padding:6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#555}.drucktab td{padding:7px 6px;border-bottom:1px solid #e3e3e3;vertical-align:top}.drucktab .r{text-align:right;white-space:nowrap}.drucktab tfoot td{border-bottom:0;padding:4px 6px}.drucktab tfoot tr.gesamt td{font-weight:700;border-top:2px solid #333;padding-top:8px;font-size:14px}@media print{body{background:#fff}.druck{background:#fff;padding:0}.druck-leiste{display:none}.blatt{box-shadow:none;max-width:none;padding:0}@page{margin:18mm 16mm}}.vo{min-height:100vh;min-height:100dvh;background:var(--canvas);display:flex;flex-direction:column;-webkit-text-size-adjust:100%}.vo-kopf{background:linear-gradient(180deg,var(--ww-blue-800) 0%,var(--ww-blue-900) 100%);color:#fff;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));display:flex;align-items:center;gap:12px}.vo-oben{position:sticky;top:0;z-index:30}.vo-kopf .titel{font-size:16px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vo-kopf .sub{font-size:12.5px;color:#a9c2d3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vo-zurueck{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:10px;background:#ffffff1f;font-size:26px;line-height:1;color:#fff}.vo-reiter{display:flex;background:#fff;border-bottom:1px solid var(--line)}.vo-reiter button{flex:1;border:0;background:transparent;padding:13px 6px;font-size:14.5px;font-weight:600;color:var(--ink-500);border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}.vo-reiter button.aktiv{color:var(--ww-blue-700);border-bottom-color:var(--ww-blue-700)}.vo-meldung{margin:10px 14px 0;padding:10px 12px;border-radius:8px;font-size:14px;background:var(--ww-green-100);color:var(--ww-green-700)}.vo-meldung.error{background:#fdeceb;color:#8d2f2f}.vo-inhalt{flex:1;width:100%;max-width:860px;margin:0 auto;padding:12px 12px calc(96px + env(safe-area-inset-bottom))}.vo-hinweis{font-size:12.5px;color:var(--ink-500);margin:10px 4px 0}.vo-gruppe{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}.vo-gruppe>h3{margin:0;padding:11px 16px;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--ww-blue-800);background:var(--ww-blue-050);border-bottom:1px solid var(--line)}.vo-feld{display:flex;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);cursor:text}.vo-feld:last-child{border-bottom:0}.vo-feld.gesetzt{background:#f3fbf0}.vo-feld .txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.vo-feld .t{font-size:16px;font-weight:600}.vo-feld .s{font-size:12.5px;color:var(--ink-500)}.vo-feld .s.rot{color:#ac1a1c}.vo-feld .eingabe{flex:0 0 auto;display:flex;align-items:center;gap:8px;width:210px}.vo-feld .eingabe input{flex:1 1 auto;min-width:0;font-size:20px;padding:12px;text-align:right;border:1px solid var(--line);border-radius:10px;width:100%;font-variant-numeric:tabular-nums;min-height:50px}.vo-feld .eingabe input:focus{border-color:var(--ww-blue-600);box-shadow:0 0 0 3px #37648424;outline:none}.vo-feld .e{font-size:15px;color:var(--ink-700);flex:0 0 34px}.vo-wahl{display:flex;gap:6px;flex:0 0 auto}.vo-wahl button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px 14px;font-size:15px;font-weight:600;color:var(--ink-700);min-height:50px;cursor:pointer}.vo-wahl button.an{background:var(--ww-blue-700);border-color:var(--ww-blue-700);color:#fff}.vo-schalter{padding:4px 16px;border-bottom:1px solid var(--line)}.vo-schalter .schalter{padding:12px 0;border-bottom:1px solid var(--line)}.vo-schalter .schalter:last-child{border-bottom:0}.vo-schalter .schalter .txt .t{font-size:16px}.vo-schalter .toggle{transform:scale(1.25);transform-origin:right center}.vo-leiste{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 18px #16212a14;padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px}.vo-leiste .vo-summe{flex:1 1 auto;display:flex;flex-direction:column;line-height:1.15}.vo-leiste .vo-summe span{font-size:12.5px;color:var(--ink-500)}.vo-leiste .vo-summe strong{font-size:19px}.vo-leiste .btn.gross{padding:14px 26px;min-width:150px}.vo-leiste .btn.still{background:#dfe9f0;color:var(--ink-700)}.vo-leiste .btn.ghost{padding:13px 14px}.vo-baum-kopf{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border:0;background:transparent;padding:12px 16px;cursor:pointer;font:inherit;color:inherit}.vo-baum-kopf .nr{flex:0 0 auto;background:var(--ww-blue-100);color:var(--ww-blue-800);font-weight:700;padding:8px 10px;border-radius:8px;font-variant-numeric:tabular-nums}.vo-baum-kopf .txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.vo-baum-kopf .t{font-size:16px;font-weight:600}.vo-baum-kopf .s{font-size:12.5px;color:var(--ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vo-baum-kopf .p{font-weight:650;flex:0 0 auto}.vo-massnahmen input{font-size:16px!important;padding:12px!important}.vo-massnahmen .lv-treffer{max-height:50vh}.chip-btn{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);background:var(--ww-blue-050);color:var(--ww-blue-800);border-radius:999px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer}.chip-btn span{color:var(--ink-500);font-weight:500}.icon-btn.gross{width:40px;height:40px;font-size:22px}.vo .liste-klar li{font-size:14.5px;padding:10px 0}.vo .btn.block.gross{min-height:54px;font-size:16px}.vo-mikro{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:60px;border:2px solid var(--line);border-radius:12px;background:#fff;font-size:16px;font-weight:650;color:var(--ink-700);cursor:pointer}.vo-mikro .punkt{width:16px;height:16px;border-radius:50%;background:#c33}.vo-mikro.an{border-color:#c33;background:#fff3f2;color:#8d2f2f}.vo-mikro.an .punkt{animation:vo-puls 1s infinite}@keyframes vo-puls{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.55}}.vo-memo{width:100%;min-height:150px;margin-top:10px;font-size:17px;line-height:1.45;padding:12px;border:1px solid var(--line);border-radius:10px;font-family:inherit}.vo-memo:focus{border-color:var(--ww-blue-600);box-shadow:0 0 0 3px #37648424;outline:none}.vo-tipp{font-size:13.5px;color:var(--ink-700);background:var(--ww-blue-050);border:1px solid var(--ww-blue-100);border-radius:8px;padding:9px 12px}.vo-tipp code{font-size:12.5px}.vo-vorschlag{border-bottom:1px solid var(--line)}.vo-vorschlag:last-of-type{border-bottom:0}.vo-vorschlag.nehmen{background:#f3fbf0}.vo-vorschlag.offen{background:#fff8f0}.vo-vorschlag .kopf{display:flex;gap:10px;align-items:flex-start;padding:12px 14px 8px}.vo-vorschlag .haken{width:32px;height:32px;flex:0 0 32px;border-radius:8px;border:2px solid var(--ink-300);background:#fff;font-size:18px;font-weight:700;color:#fff;cursor:pointer;margin-top:4px}.vo-vorschlag .haken.an{background:var(--ww-green-600);border-color:var(--ww-green-600)}.vo-vorschlag .haken:disabled{opacity:.35;cursor:not-allowed}.vo-vorschlag .gesagt{font-size:13.5px;color:var(--ink-500);font-style:italic}.vo-vorschlag .pos{font-size:15px;margin-top:3px;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.vo-vorschlag .pos.rot{color:#ac1a1c;font-weight:600}.vo-vorschlag .s{font-size:12.5px;color:var(--ink-500)}.vo-vorschlag .ampel{width:10px;height:10px;border-radius:50%;flex:0 0 10px;align-self:center}.vo-vorschlag .ampel.hoch{background:var(--ok)}.vo-vorschlag .ampel.mittel{background:var(--warn)}.vo-vorschlag .ampel.niedrig{background:var(--danger)}.vo-vorschlag .eingabe{display:flex;align-items:center;gap:6px;flex:0 0 auto}.vo-vorschlag .eingabe input{width:100%;min-width:0;font-size:18px;padding:10px;text-align:right;border:1px solid var(--line);border-radius:8px;font-variant-numeric:tabular-nums}.vo-vorschlag .eingabe .e{font-size:14px;color:var(--ink-700);flex:0 0 30px}@media (max-width: 560px){.vo-vorschlag .kopf{flex-wrap:wrap}.vo-vorschlag .eingabe{width:100%!important;padding-left:42px}.vo-vorschlag .chips{padding-left:14px!important}.vo-inhalt{padding-left:8px;padding-right:8px}.vo-feld{flex-direction:column;align-items:stretch;gap:8px;padding:10px 14px}.vo-feld .eingabe,.vo-wahl{width:100%}.vo-wahl button{flex:1}.vo-leiste .btn.ghost{display:none}.vo-leiste .btn.gross{flex:1;min-width:0}.vo-reiter button{font-size:13.5px;padding:12px 4px}}.menu-btn{display:none}@media (max-width: 900px){.layout{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:70;width:280px;flex-basis:280px;transform:translate(-100%);transition:transform .2s ease}.sidebar.collapsed{--sidebar-w: 280px}.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-group-label,.sidebar.collapsed .brand-text,.sidebar.collapsed .sidebar-foot-text{display:initial}.sidebar.offen{transform:translate(0);box-shadow:0 0 40px #00000059}.sidebar .collapse-btn{display:none}.sidebar-schleier{position:fixed;top:0;right:0;bottom:0;left:0;z-index:69;background:#16212a73}.menu-btn{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;flex:0 0 auto}.topbar{padding:0 12px;gap:10px}.topbar .crumb{display:none}.topbar h1{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.userchip .u-name,.userchip .u-role{display:none}.content{padding:12px}.page-head{flex-wrap:wrap}.modal-backdrop{padding:0;place-items:stretch}.modal{max-width:none;max-height:none;height:100dvh;border-radius:0}.modal-body{padding:14px}.table th,.table td{padding:10px 12px}.card:has(>.table){overflow-x:auto}}.reiter{display:flex;gap:4px;border-bottom:1px solid var(--line)}.reiter button{border:0;background:transparent;padding:10px 16px;font-size:14px;font-weight:600;color:var(--ink-500);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.reiter button.aktiv{color:var(--ww-blue-700);border-bottom-color:var(--ww-blue-700)}.sw-kacheln{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (max-width: 1100px){.sw-kacheln{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.sw-kacheln{grid-template-columns:1fr}}.sw-kachel{border-radius:12px;padding:12px 16px;border:1px solid var(--line);background:#fff}.sw-kachel.gut{background:var(--ww-green-100);border-color:#cfe3bf}.sw-kachel.warn{background:#fdf8e4;border-color:#f0dfa0}.sw-kachel.schlecht{background:#fbeae6;border-color:#f1b3a9}.sw-kachel .t{font-size:12px;font-weight:600;color:var(--ink-500)}.sw-kachel .w{font-size:17px;font-weight:650;margin-top:2px}.sw-kachel .s{font-size:12.5px;color:var(--ink-700);margin-top:4px;line-height:1.45}.sw-code{background:var(--ww-blue-050);border:1px solid var(--ww-blue-100);border-radius:8px;padding:8px 10px;font-size:12.5px;overflow-x:auto;margin:0;white-space:pre}.offline-status{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--ink-700);cursor:pointer;white-space:nowrap}.offline-status .punkt{width:9px;height:9px;border-radius:50%;background:var(--ww-green-600)}.offline-status.aus{color:#ac1a1c;border-color:#f1b3a9}.offline-status.aus .punkt{background:#c33;animation:vo-puls 1.4s infinite}.offline-status .zahl{background:#f1e6d8;color:#7a5322;border-radius:999px;padding:1px 7px;font-size:11.5px}.offline-status .zahl.rot{background:#ffdad2;color:#ac1a1c}@media (max-width: 900px){.topbar .offline-status span:not(.punkt):not(.zahl){display:none}}
