:root{--kb-primary:#2563eb;--kb-primary-dark:#1d4ed8;--kb-primary-light:#3b82f6;--kb-danger:#b91c1c;--kb-success:#0d9488;--kb-warning:#d97706;--kb-map-bg:#0a0e1a;--kb-surface-1:rgba(12, 16, 30, 0.94);--kb-surface-2:rgba(22, 27, 46, 0.97);--kb-surface-3:rgba(31, 37, 58, 0.98);--kb-chrome-soft:rgba(11, 16, 29, 0.62);--kb-chrome-strong:rgba(10, 15, 27, 0.84);--kb-border:rgba(255, 255, 255, 0.08);--kb-border-strong:rgba(255, 255, 255, 0.12);--kb-text-1:#f0f4ff;--kb-text-2:#c4cce0;--kb-text-3:#7a8aaa;--kb-radius-sm:8px;--kb-radius-md:12px;--kb-radius-lg:18px;--kb-radius-xl:22px;--kb-radius-pill:9999px;--kb-shadow-sm:0 2px 8px rgba(0, 0, 0, 0.12),0 4px 16px rgba(0, 0, 0, 0.08);--kb-shadow-md:0 4px 16px rgba(0, 0, 0, 0.16),0 8px 32px rgba(0, 0, 0, 0.12);--kb-shadow-lg:0 8px 32px rgba(0, 0, 0, 0.24),0 16px 64px rgba(0, 0, 0, 0.16);--kb-shadow-btn:0 2px 8px rgba(37, 99, 235, 0.25);--kb-shadow-fab:0 4px 16px rgba(0, 0, 0, 0.32),0 2px 6px rgba(0, 0, 0, 0.2);--kb-t-fast:0.15s cubic-bezier(0.4, 0, 0.2, 1);--kb-t-base:0.2s cubic-bezier(0.4, 0, 0.2, 1);--kb-t-slow:0.3s cubic-bezier(0.4, 0, 0.2, 1);--kb-t-sheet:0.32s cubic-bezier(0.32, 0.72, 0, 1);--kb-topbar-h:50px;--kb-panel-w:380px;--kb-dock-gap:6px;--kb-safe-bottom:env(safe-area-inset-bottom, 0px);--kb-safe-top:env(safe-area-inset-top, 0px)}.theme-einsatz{--kb-primary:#b91c1c;--kb-primary-dark:#991b1b}.theme-wellness{--kb-primary:#0d9488;--kb-primary-dark:#0f766e}.theme-speise{--kb-primary:#d97706;--kb-primary-dark:#b45309}.theme-workops{--kb-primary:#7c3aed;--kb-primary-dark:#6d28d9}.theme-bos{--kb-primary:#b91c1c;--kb-primary-dark:#991b1b}.kb-map-page *,.kb-map-page ::after,.kb-map-page ::before{margin:0;padding:0;box-sizing:border-box}.kb-map-page{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;-webkit-font-smoothing:antialiased;background:var(--kb-map-bg);color:var(--kb-text-1);touch-action:manipulation;-ms-touch-action:manipulation;overflow:hidden}.kb-app-shell{position:fixed;inset:0;overflow:hidden;isolation:isolate}.kb-map-canvas{position:absolute;inset:0;z-index:0;background:var(--kb-map-bg);touch-action:none}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.map-dock{position:absolute;right:10px;bottom:calc(var(--kb-safe-bottom) + 80px);z-index:400;display:flex;flex-direction:column;gap:var(--kb-dock-gap);pointer-events:none}.dock-group{display:flex;flex-direction:column;gap:1px;pointer-events:auto;background:var(--kb-surface-2);border:1px solid var(--kb-border);border-radius:14px;padding:3px;box-shadow:var(--kb-shadow-md);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.dock-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:11px;background:0 0;color:var(--kb-text-2);font-size:1rem;font-weight:700;cursor:pointer;transition:background var(--kb-t-fast),color var(--kb-t-fast);-webkit-tap-highlight-color:transparent}.dock-btn:focus-visible,.dock-btn:hover{background:rgba(255,255,255,.08);color:var(--kb-text-1)}.dock-btn:active{background:rgba(255,255,255,.13)}.dock-btn.active,.dock-toggle.active{background:var(--kb-primary);color:#fff}.dock-compass-needle{display:block;width:4px;height:16px;margin:auto;border-radius:2px;background:linear-gradient(to bottom,#ef4444 50%,var(--kb-text-3) 50%);transform-origin:center center;transition:transform .15s ease}.fab{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:var(--kb-radius-pill);background:var(--kb-primary);color:#fff;cursor:pointer;box-shadow:var(--kb-shadow-fab);transition:transform var(--kb-t-fast),background var(--kb-t-fast),box-shadow var(--kb-t-fast);-webkit-tap-highlight-color:transparent;pointer-events:auto}.fab:focus-visible,.fab:hover{transform:scale(1.06);box-shadow:0 6px 24px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.24)}.fab:active{transform:scale(.96)}.fab.fab--danger{background:var(--kb-danger)}.fab.fab--success{background:var(--kb-success)}.fab.fab--neutral{background:var(--kb-surface-2);color:var(--kb-text-1);border:1px solid var(--kb-border-strong)}.kb-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1200;border-radius:var(--kb-radius-xl) var(--kb-radius-xl) 0 0;background:var(--kb-surface-2);box-shadow:var(--kb-shadow-lg);will-change:transform;touch-action:none;transform:translateY(100%);overflow:hidden;--kb-snap-collapsed:11vh;--kb-snap-half:46vh;--kb-snap-full:92vh}.bs-handle,.kb-sheet-handle{display:block;width:44px;height:4px;margin:10px auto 4px;border-radius:2px;background:rgba(255,255,255,.18);flex-shrink:0;cursor:grab}.bs-scroll,.kb-sheet-scroll{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 0 calc(var(--kb-safe-bottom) + 16px)}.bs-backdrop{position:fixed;inset:0;z-index:1199;background:rgba(0,0,0,.32);opacity:0;pointer-events:none;transition:opacity .25s ease}.kb-toast{position:fixed;left:50%;bottom:calc(var(--kb-safe-bottom) + 80px);transform:translateX(-50%) translateY(12px);z-index:2000;max-width:calc(100vw - 32px);padding:10px 18px;border-radius:var(--kb-radius-pill);background:rgba(30,38,58,.96);color:var(--kb-text-1);font-size:.875rem;font-weight:600;line-height:1.4;box-shadow:var(--kb-shadow-md);pointer-events:none;opacity:0;transition:opacity var(--kb-t-base),transform var(--kb-t-base);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kb-toast--visible{opacity:1;transform:translateX(-50%) translateY(0)}.kb-toast--success{background:rgba(13,116,108,.96);color:#d1faf5}.kb-toast--error{background:rgba(153,27,27,.96);color:#fee2e2}.kb-toast--info{background:rgba(30,58,138,.96);color:#dbeafe}.panel-backdrop{position:fixed;inset:0;z-index:1050;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .28s ease}.panel-backdrop.visible{opacity:1;pointer-events:auto}@media (min-width:901px){.panel-backdrop{display:none}}@media (max-width:520px){.map-dock{right:6px}.dock-btn{width:34px;height:34px}.fab{width:40px;height:40px}}@media (min-width:901px){.map-dock{bottom:calc(var(--kb-safe-bottom) + 50px);right:16px}}@supports (padding-bottom:env(safe-area-inset-bottom)){.kb-sheet{padding-bottom:env(safe-area-inset-bottom)}.map-dock{bottom:calc(env(safe-area-inset-bottom) + 80px)}@media (min-width:901px){.map-dock{bottom:calc(env(safe-area-inset-bottom) + 50px)}}}