:root{
  --bg:#08111f;--panel:rgba(8,17,31,.86);--panel2:rgba(15,28,48,.82);--line:rgba(255,255,255,.10);
  --text:#f8fbff;--muted:#9eb0c7;--accent:#31d7a5;--accent2:#48a6ff;--warn:#ffbd4a;--danger:#ff6174;
  --shadow:0 18px 60px rgba(0,0,0,.34);--radius:24px;--sheetH:43vh;
  color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,system-ui,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}
button,input{font:inherit}button{color:inherit}button:disabled{opacity:.42;pointer-events:none}.hidden{display:none!important}.glass{background:linear-gradient(180deg,rgba(16,29,49,.88),rgba(7,16,29,.86));backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%);border:1px solid var(--line);box-shadow:var(--shadow)}
.safe-top{padding-top:max(12px,env(safe-area-inset-top))}.safe-bottom{padding-bottom:max(12px,env(safe-area-inset-bottom))}
#map{position:absolute;inset:0;background:#0d1c2a}.leaflet-control-zoom{border:none!important;box-shadow:var(--shadow)!important}.leaflet-control-zoom a{background:rgba(9,20,35,.88)!important;color:#fff!important;border-color:rgba(255,255,255,.08)!important}.leaflet-control-attribution{background:rgba(7,16,29,.75)!important;color:#c9d6e7!important;font-size:9px!important;max-width:68vw}.leaflet-control-attribution a{color:#dce8f6!important}
.hud-top{position:absolute;z-index:500;left:14px;right:14px;top:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand-chip{height:48px;border-radius:16px;padding:6px 10px 6px 7px;display:flex;align-items:center;gap:9px;pointer-events:auto}.brand-mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-size:11px;font-weight:900;letter-spacing:-.4px;background:linear-gradient(135deg,var(--accent),#5fe2ff);color:#04231d;box-shadow:0 6px 20px rgba(49,215,165,.25)}.brand-copy{display:grid;line-height:1}.brand-copy strong{font-size:15px;letter-spacing:-.35px}.brand-copy span{font-size:8px;letter-spacing:1.5px;color:var(--accent);margin-top:3px}.top-actions{display:flex;gap:8px;pointer-events:auto}.round-btn,.mini-round{border:1px solid var(--line);display:grid;place-items:center;background:rgba(8,17,31,.86);box-shadow:var(--shadow)}.round-btn{width:45px;height:45px;border-radius:15px;font-size:21px}.round-btn:active,.mini-round:active{transform:scale(.94)}.mini-round{width:35px;height:35px;border-radius:12px;font-size:18px}
.search-wrap{position:absolute;z-index:490;left:14px;right:14px;top:max(72px,calc(env(safe-area-inset-top) + 62px));height:48px;border-radius:17px;display:flex;align-items:center;padding:0 7px 0 13px;gap:8px}.search-icon{font-size:24px;color:#b4c4d8;transform:rotate(-10deg)}.search-wrap input{min-width:0;flex:1;background:transparent;border:0;outline:0;color:#fff;font-size:15px}.search-wrap input::placeholder{color:#8497af}.search-go{border:0;border-radius:12px;background:rgba(255,255,255,.10);padding:8px 12px;font-weight:750}
.nav-banner{position:absolute;z-index:530;left:14px;right:14px;top:max(72px,calc(env(safe-area-inset-top) + 62px));min-height:72px;border-radius:22px;display:grid;grid-template-columns:48px 1fr 38px;align-items:center;padding:10px 11px;gap:10px;border-color:rgba(49,215,165,.28)}.nav-arrow{font-size:42px;line-height:1;text-align:center;color:var(--accent);font-weight:900}.nav-copy{min-width:0;display:grid;gap:2px}.nav-copy strong{font-size:23px;letter-spacing:-.7px}.nav-copy span{font-size:14px;color:#dce8f7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.popover{position:absolute;z-index:700;top:max(70px,calc(env(safe-area-inset-top) + 58px));right:14px;width:270px;border-radius:20px;padding:12px}.popover-title{font-size:11px;color:var(--muted);letter-spacing:1.2px;font-weight:800;padding:4px 6px 9px}.layer-option{width:100%;display:grid;grid-template-columns:44px 1fr 22px;align-items:center;gap:10px;border:0;background:transparent;padding:8px 6px;border-radius:14px;text-align:left}.layer-option:active{background:rgba(255,255,255,.07)}.layer-option span:nth-child(2){display:grid}.layer-option b{font-size:14px}.layer-option small{font-size:11px;color:var(--muted);margin-top:2px}.layer-option i{font-style:normal;color:var(--accent);font-weight:900}.layer-thumb{width:44px;height:35px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background-size:cover}.layer-thumb.satellite{background:linear-gradient(135deg,#45653e,#745a3a 45%,#4d6b75 70%,#263d33)}.layer-thumb.street{background:linear-gradient(135deg,#d5d6d4 0 44%,#fff 45% 54%,#b4c8ae 55%)}
.recenter{position:absolute;z-index:480;right:16px;bottom:calc(var(--sheetH) + 18px);width:48px;height:48px;border-radius:17px;border:1px solid var(--line);font-size:21px;color:var(--accent);transition:bottom .25s ease}
.bottom-sheet{position:absolute;z-index:520;left:8px;right:8px;bottom:8px;max-height:58vh;overflow:auto;border-radius:30px;padding:9px 16px 13px;overscroll-behavior:contain;border-color:rgba(255,255,255,.12);scrollbar-width:none}.bottom-sheet::-webkit-scrollbar{display:none}.sheet-grabber{width:44px;height:5px;border-radius:999px;background:rgba(255,255,255,.20);margin:0 auto 11px}.sheet-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.eyebrow{display:block;color:var(--accent);font-weight:900;font-size:9px;letter-spacing:1.55px;margin-bottom:4px}.sheet-title-row h1,.drawer h2,.distribution-head h2{margin:0;font-size:23px;letter-spacing:-.65px}.step-badge{background:rgba(49,215,165,.10);border:1px solid rgba(49,215,165,.24);color:var(--accent);font-size:11px;font-weight:800;padding:6px 9px;border-radius:999px}.quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0}.quick-stats div,.live-grid div{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07);border-radius:15px;padding:9px 10px;display:grid;gap:2px}.quick-stats span,.live-grid span{font-size:10px;color:var(--muted)}.quick-stats b,.live-grid b{font-size:15px;letter-spacing:-.25px}.workflow{display:grid;gap:8px}.workflow-card{width:100%;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045);border-radius:18px;min-height:58px;display:grid;grid-template-columns:34px 1fr 20px;align-items:center;gap:10px;padding:8px 10px;text-align:left}.workflow-card.active-step{border-color:rgba(72,166,255,.28);background:linear-gradient(135deg,rgba(72,166,255,.10),rgba(255,255,255,.035))}.workflow-card.done-step .step-icon{background:rgba(49,215,165,.16);color:var(--accent);border-color:rgba(49,215,165,.35)}.workflow-card.premium{border-color:rgba(49,215,165,.25);background:linear-gradient(135deg,rgba(49,215,165,.10),rgba(72,166,255,.06))}.step-icon{width:30px;height:30px;border-radius:10px;border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;font-weight:850;font-size:12px;background:rgba(255,255,255,.06)}.step-copy{display:grid;gap:2px}.step-copy b{font-size:14px}.step-copy small{font-size:11px;color:var(--muted)}.chev{font-size:27px;color:#7590ad;text-align:right}.draw-tools{display:flex;gap:6px;overflow-x:auto;padding:1px 0 4px;scrollbar-width:none}.pill-btn{white-space:nowrap;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.05);border-radius:999px;padding:8px 11px;font-size:11px;font-weight:750}.pill-btn.accent{background:rgba(49,215,165,.12);color:var(--accent);border-color:rgba(49,215,165,.25)}
.plan-ready{margin-top:11px;border-top:1px solid rgba(255,255,255,.07);padding-top:11px}.route-summary{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:11px;margin-bottom:10px}.summary-ring{position:relative;width:54px;height:54px}.summary-ring svg{width:54px;height:54px;transform:rotate(-90deg)}.ring-bg,.ring-fg{fill:none;stroke-width:4}.ring-bg{stroke:rgba(255,255,255,.08)}.ring-fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .3s ease}.summary-ring span{position:absolute;inset:0;display:grid;place-items:center;font-size:10px;font-weight:900}.route-summary>div:nth-child(2){display:grid}.route-summary b{font-size:18px}.route-summary small{font-size:11px;color:var(--muted);margin-top:2px}.start-distribution{width:100%;height:53px;border:0;border-radius:17px;background:linear-gradient(135deg,var(--accent),#38c9ef);color:#03241d;font-weight:900;font-size:15px;box-shadow:0 12px 30px rgba(49,215,165,.20)}
.advanced{margin-top:10px}.advanced summary{cursor:pointer;color:var(--muted);font-size:11px;padding:7px 2px;list-style:none}.advanced summary::-webkit-details-marker{display:none}.settings-grid{display:grid;gap:8px;padding-top:4px}.toggle-row,.field-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.035);border-radius:15px;padding:9px 10px}.toggle-row>span,.field-row>span{display:grid}.toggle-row b,.field-row b{font-size:12px}.toggle-row small,.field-row small{font-size:10px;color:var(--muted);margin-top:2px}.toggle-row input{display:none}.toggle-row i{width:38px;height:22px;border-radius:999px;background:#2d3d50;position:relative;flex:none}.toggle-row i:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s}.toggle-row input:checked+i{background:var(--accent)}.toggle-row input:checked+i:after{left:19px}.field-row input{width:82px;border:0;border-radius:10px;padding:7px 8px;background:rgba(255,255,255,.08);color:#fff;text-align:right;outline:0}.field-row input[readonly]{cursor:default;color:var(--accent);font-weight:900;background:rgba(49,215,165,.08)}.advanced-actions{display:flex;justify-content:space-between;padding:9px 1px 0}.text-btn{border:0;background:transparent;color:#b6c7d9;font-size:11px;padding:5px}.text-btn.danger{color:#ff8593}
.distribution-head{display:flex;justify-content:space-between;align-items:center}.pause-btn{width:47px;height:47px;border-radius:15px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.06);font-size:20px;font-weight:850}.live-progress{margin:14px 0 12px}.progress-top{display:flex;justify-content:space-between;color:#bccadc;font-size:11px;margin-bottom:6px}.progress-track{height:8px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}.progress-track div{height:100%;width:0;background:linear-gradient(90deg,var(--accent),#5ee2ff);border-radius:99px;transition:width .35s}.live-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.flyer-counter{display:grid;grid-template-columns:46px 1fr 70px 52px;gap:7px;align-items:stretch;margin:12px 0}.flyer-counter button{border-radius:15px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.055);font-weight:850}.counter-plus{background:linear-gradient(135deg,var(--accent),#38c9ef)!important;color:#03241d!important;border:0!important}.counter-main{min-height:65px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);border-radius:16px;display:flex;align-items:baseline;justify-content:center;gap:6px;padding:8px}.counter-main span{font-size:9px;color:var(--muted);font-weight:800;letter-spacing:1px}.counter-main strong{font-size:31px;letter-spacing:-1.5px}.counter-main small{font-size:10px;color:var(--muted)}.plus-ten{font-size:11px}.live-actions,.drawer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn{min-height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.09);font-weight:800;font-size:12px;padding:10px}.btn.subtle{background:rgba(255,255,255,.055)}.btn.primary{background:linear-gradient(135deg,var(--accent),#3fd8e7);color:#06241e;border:0}.btn.finish{background:rgba(49,215,165,.12);color:var(--accent);border-color:rgba(49,215,165,.25)}
.drawer{position:absolute;z-index:800;top:max(12px,env(safe-area-inset-top));left:10px;right:10px;max-height:78vh;overflow:auto;border-radius:28px;padding:16px}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between}.project-list{display:grid;gap:8px;margin:15px 0}.project-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px 12px;border-radius:16px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.04)}.project-item.active{border-color:rgba(49,215,165,.28);background:rgba(49,215,165,.07)}.project-item>button:first-child{border:0;background:transparent;text-align:left;padding:0;display:grid;gap:2px}.project-item b{font-size:13px}.project-item small{font-size:10px;color:var(--muted)}.project-delete{width:30px;height:30px;border:0;border-radius:10px;background:rgba(255,97,116,.09);color:#ff8290}.file-label{display:grid;place-items:center}.file-label input{display:none}
.loading-overlay,.modal{position:absolute;z-index:1200;inset:0;display:grid;place-items:center;background:rgba(2,8,16,.55);padding:24px}.loader-card,.modal-card{width:min(330px,100%);border-radius:26px;padding:22px;text-align:center}.loader-card{display:grid;place-items:center;gap:9px}.loader-card strong{font-size:17px}.loader-card span{font-size:12px;color:var(--muted)}.spinner{width:34px;height:34px;border:3px solid rgba(255,255,255,.09);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-card h2{margin:9px 0 6px;font-size:22px}.modal-card p{color:var(--muted);font-size:13px;line-height:1.45}.modal-icon{width:52px;height:52px;border-radius:17px;margin:auto;display:grid;place-items:center;background:rgba(49,215,165,.12);color:var(--accent);font-size:24px;font-weight:900}
.toast{position:absolute;z-index:1500;left:50%;top:max(135px,calc(env(safe-area-inset-top) + 126px));transform:translate(-50%,-8px);max-width:86vw;background:rgba(3,10,18,.94);border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:10px 13px;font-size:12px;color:#eaf3ff;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;white-space:normal;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
.vertex-dot{width:16px;height:16px;border-radius:50%;background:var(--accent2);border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.35)}.start-pin{width:29px;height:29px;border-radius:10px 10px 10px 3px;background:var(--warn);border:3px solid #fff;transform:rotate(-45deg);box-shadow:0 5px 16px rgba(0,0,0,.38)}.user-arrow{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#0f7aff;border:4px solid #fff;box-shadow:0 4px 18px rgba(0,80,200,.45);transition:transform .18s linear}.user-arrow:before{content:"";width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:13px solid #fff;transform:translateY(-1px)}.route-number{min-width:24px;height:24px;padding:0 6px;border-radius:8px;background:#0b1b2c;color:#fff;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;font-size:9px;font-weight:900;box-shadow:0 3px 10px rgba(0,0,0,.3)}
@media (min-width:760px){.bottom-sheet{left:18px;right:auto;width:410px;bottom:18px;max-height:calc(100vh - 36px)}.recenter{left:446px;right:auto;bottom:25px}.search-wrap{left:18px;width:410px;right:auto}.nav-banner{left:18px;width:410px;right:auto}.hud-top{left:18px;right:18px}.drawer{left:18px;right:auto;width:390px}}

/* V2.1 – wischbares Kartenmenü */
.bottom-sheet{transition:transform .28s cubic-bezier(.22,.8,.22,1),max-height .28s ease;will-change:transform;overflow:auto}
.bottom-sheet.sheet-dragging{transition:none;overflow:hidden}
.bottom-sheet.sheet-collapsed{transform:translateY(calc(100% - 42px));overflow:hidden}
.sheet-grabber{height:24px;width:86px;margin:-2px auto 3px;display:grid;place-items:center;touch-action:none;cursor:grab;position:relative}
.sheet-grabber span{width:48px;height:5px;border-radius:999px;background:rgba(255,255,255,.26);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.sheet-grabber:active{cursor:grabbing}
.bottom-sheet.sheet-collapsed .sheet-grabber span{background:rgba(49,215,165,.72)}

.loading-progress{width:100%;height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:4px}
.loading-progress>div{height:100%;width:8%;border-radius:99px;background:linear-gradient(90deg,var(--accent),#5ee2ff);transition:width .35s ease}
.loading-cancel{border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.055);border-radius:12px;padding:8px 14px;color:#d9e5f2;font-size:11px;font-weight:800;margin-top:4px}
@media (min-width:760px){.bottom-sheet.sheet-collapsed{transform:translateY(calc(100% - 48px))}}

/* IvoFlyer 3.0 release hardening */
:root{--map-bottom-offset:56px}
.leaflet-bottom.leaflet-right{bottom:var(--map-bottom-offset)!important;transition:bottom .22s ease}
.connection-status{display:flex!important;align-items:center;gap:5px!important;color:var(--accent)!important;letter-spacing:.85px!important}
.connection-status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px rgba(49,215,165,.65)}
.connection-status.offline{color:var(--warn)!important}.connection-status.offline i{background:var(--warn);box-shadow:0 0 10px rgba(255,189,74,.55)}
.version-note{margin-top:12px;text-align:center;color:#6f839c;font-size:9px;letter-spacing:.35px}
.gps-notice{margin:9px 0 2px;padding:8px 10px;border-radius:12px;background:rgba(255,189,74,.09);border:1px solid rgba(255,189,74,.18);color:#ffd889;font-size:10px;line-height:1.35}
.live-actions-three{grid-template-columns:1.35fr .72fr 1fr}.btn.complete{background:rgba(72,166,255,.12);border-color:rgba(72,166,255,.28);color:#8fc8ff}
.fatal{position:absolute;z-index:2000;inset:0;display:grid;place-items:center;padding:24px;background:#07101d}.fatal-card{width:min(360px,100%);border-radius:28px;padding:24px;text-align:center}.fatal-card h2{margin:12px 0 8px}.fatal-card p{color:var(--muted);font-size:13px;line-height:1.5}.fatal-icon{margin:auto;width:50px;height:50px;border-radius:17px;display:grid;place-items:center;background:rgba(255,97,116,.12);color:var(--danger);font-size:26px;font-weight:900}
.bottom-sheet.sheet-collapsed{transform:translateY(calc(100% - 46px))}
@media (orientation:landscape) and (max-height:620px){
  .bottom-sheet{left:8px;right:auto;width:min(400px,48vw);max-height:calc(100vh - 16px)}
  .search-wrap,.nav-banner{left:14px;right:auto;width:min(420px,52vw)}
  .recenter{right:14px;bottom:64px}
  .live-grid{gap:5px}.flyer-counter{margin:8px 0}.quick-stats{margin:9px 0}.workflow-card{min-height:52px}
}
@media (max-width:390px){.live-actions-three{grid-template-columns:1fr 1fr}.live-actions-three .btn.finish{grid-column:1/-1}.flyer-counter{grid-template-columns:42px 1fr 62px 48px}.counter-main strong{font-size:28px}}
.recenter{bottom:calc(var(--map-bottom-offset) + 8px)}

/* IvoFlyer 3.1 – kompakte Kartenquellen */
.leaflet-control-attribution{display:none!important}
.map-credits-wrap{position:absolute;z-index:820;left:12px;bottom:calc(var(--map-bottom-offset) + 10px);transition:bottom .22s ease;pointer-events:none}
.map-credits-btn{pointer-events:auto;display:flex;align-items:center;gap:6px;height:30px;padding:0 9px;border:1px solid rgba(255,255,255,.11);border-radius:999px;color:rgba(235,245,255,.84);font:750 9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,sans-serif;letter-spacing:.15px;box-shadow:0 6px 18px rgba(0,0,0,.24);background:rgba(7,16,29,.70);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.map-credits-btn:active{transform:scale(.97)}
.map-credits-btn[aria-expanded="true"]{background:rgba(11,28,43,.94);color:#fff}
.map-credits-panel{pointer-events:auto;position:absolute;left:0;bottom:40px;width:min(315px,calc(100vw - 24px));padding:12px 13px;border-radius:17px;border:1px solid rgba(255,255,255,.11);background:rgba(6,15,27,.94);box-shadow:0 14px 36px rgba(0,0,0,.36);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);color:#d5e2f1}
.map-credits-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:#fff;font-size:12px}
.map-credits-head button{width:28px;height:28px;border:0;border-radius:9px;background:rgba(255,255,255,.07);color:#fff;font-size:19px;line-height:1}
.map-credits-panel p{margin:6px 0;font-size:10px;line-height:1.4;color:#b9c8da}
.map-credits-panel a{color:#8fc8ff;text-decoration:none}
@media (orientation:landscape) and (max-height:620px){.map-credits-wrap{left:auto;right:14px}}

/* IvoFlyer 3.2 – Flyer-Potenzial */
.potential-card{margin:10px 0 9px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border-radius:17px;border:1px solid rgba(49,215,165,.20);background:linear-gradient(135deg,rgba(49,215,165,.10),rgba(72,166,255,.06))}
.potential-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(49,215,165,.13);color:var(--accent);font-size:24px;border:1px solid rgba(49,215,165,.20)}
.potential-copy{min-width:0;display:grid;gap:2px}.potential-copy .eyebrow{margin:0}.potential-copy strong{font-size:19px;letter-spacing:-.45px}.potential-copy small{font-size:10px;color:#d7e4f2;line-height:1.25}.potential-copy em{font-style:normal;font-size:9px;color:var(--muted);line-height:1.25;margin-top:2px}
.potential-use{border:1px solid rgba(49,215,165,.28);background:rgba(49,215,165,.12);color:var(--accent);border-radius:12px;padding:9px 10px;font-size:10px;font-weight:900;white-space:nowrap}.potential-use:active{transform:scale(.96)}
@media (max-width:390px){.potential-card{grid-template-columns:38px minmax(0,1fr)}.potential-icon{width:38px;height:38px}.potential-use{grid-column:1/-1;width:100%}}


/* IvoFlyer 3.4 – Smooth UX */
:root{--ease-premium:cubic-bezier(.22,.82,.22,1);--ease-soft:cubic-bezier(.2,.7,.2,1)}
button,.workflow-card,.smart-action,.project-item,.layer-option,.pill-btn,.potential-use{transition:transform .16s var(--ease-soft),background-color .22s ease,border-color .22s ease,opacity .22s ease,box-shadow .22s ease}
button:active,.workflow-card:active,.smart-action:active,.pill-btn:active,.potential-use:active{transform:scale(.975)}
.bottom-sheet{height:min(44vh,430px);max-height:min(78vh,720px);overflow:auto;transition:height .42s var(--ease-premium),border-radius .35s ease,background .35s ease;will-change:height;transform:none!important}
.bottom-sheet.sheet-dragging{transition:none;overflow:hidden}
.bottom-sheet[data-snap="peek"]{overflow:hidden;border-radius:24px}
.bottom-sheet[data-snap="full"]{border-radius:28px}
.sheet-grabber{width:100%;height:30px;margin:-4px auto 1px;background:transparent!important;display:grid;place-items:center;touch-action:none;cursor:grab;position:relative}
.sheet-grabber span{display:block;width:48px;height:5px;border-radius:999px;background:rgba(255,255,255,.25);box-shadow:0 1px 0 rgba(255,255,255,.08);transition:width .2s ease,background .2s ease}
.sheet-grabber:active{cursor:grabbing}.sheet-grabber:after{position:absolute;top:18px;font-size:8px;font-weight:900;letter-spacing:.9px;color:rgba(255,255,255,.52);opacity:0;transition:opacity .2s ease}
.bottom-sheet[data-snap="peek"] .sheet-grabber span{width:58px;background:rgba(49,215,165,.72)}

.bottom-sheet[data-snap="full"] .sheet-grabber span{background:rgba(72,166,255,.62)}
.smart-flow{margin:11px 0 9px}.smart-action{width:100%;min-height:64px;border:1px solid rgba(49,215,165,.30);border-radius:20px;padding:9px 11px;display:grid;grid-template-columns:40px minmax(0,1fr) 22px;align-items:center;gap:10px;text-align:left;background:linear-gradient(135deg,rgba(49,215,165,.16),rgba(72,166,255,.10));box-shadow:0 10px 28px rgba(0,0,0,.14)}
.smart-action.ready{border-color:rgba(49,215,165,.42);background:linear-gradient(135deg,rgba(49,215,165,.26),rgba(56,201,239,.14));box-shadow:0 12px 30px rgba(49,215,165,.10)}
.smart-action.busy{border-color:rgba(72,166,255,.34);background:linear-gradient(135deg,rgba(72,166,255,.17),rgba(49,215,165,.08))}
.smart-action-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.09);font-size:20px;font-weight:900}.smart-action-copy{min-width:0;display:grid;gap:2px}.smart-action-copy b{font-size:15px;letter-spacing:-.25px}.smart-action-copy small{font-size:10.5px;color:#c7d5e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smart-action-chevron{font-size:28px;color:var(--accent);line-height:1}.smart-hint{padding:6px 4px 0;color:#8499b1;font-size:9.5px;line-height:1.35}
.workflow-secondary{grid-template-columns:repeat(3,1fr);gap:6px}.workflow-secondary .workflow-card{min-height:54px;grid-template-columns:26px 1fr;padding:7px;border-radius:15px;gap:7px}.workflow-secondary .step-icon{width:26px;height:26px;border-radius:9px}.workflow-secondary .step-copy b{font-size:10.5px}.workflow-secondary .step-copy small,.workflow-secondary .chev{display:none}.workflow-secondary .workflow-card.active-step{border-color:rgba(72,166,255,.34);box-shadow:inset 0 0 0 1px rgba(72,166,255,.05)}
.draw-tools{animation:softIn .22s var(--ease-soft)}
.map-mode-hint{position:absolute;z-index:510;left:50%;bottom:calc(var(--map-bottom-offset) + 12px);transform:translateX(-50%);height:36px;max-width:calc(100vw - 110px);padding:0 12px;border-radius:999px;display:flex;align-items:center;gap:7px;color:#eef7ff;white-space:nowrap;transition:bottom .26s var(--ease-soft),opacity .2s ease}.map-mode-hint span{color:var(--accent);font-size:16px}.map-mode-hint b{font-size:10.5px;overflow:hidden;text-overflow:ellipsis}
.popover:not(.hidden){animation:popoverIn .2s var(--ease-premium)}.drawer:not(.hidden){animation:drawerIn .3s var(--ease-premium)}.modal:not(.hidden) .modal-card,.loading-overlay:not(.hidden) .loader-card{animation:cardIn .28s var(--ease-premium)}
.drawer-backdrop{position:absolute;z-index:790;inset:0;background:rgba(1,6,12,.38);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.drawer-backdrop:not(.hidden){animation:fadeIn .2s ease}.drawer{box-shadow:0 28px 80px rgba(0,0,0,.48)}
.toast{transition:opacity .24s ease,transform .32s var(--ease-premium)}
.search-wrap:focus-within{border-color:rgba(72,166,255,.32);box-shadow:0 16px 48px rgba(0,0,0,.28),0 0 0 3px rgba(72,166,255,.07)}
.start-distribution,.btn.primary,.counter-plus{transition:transform .16s var(--ease-soft),filter .2s ease,box-shadow .25s ease}.start-distribution:active,.btn.primary:active,.counter-plus:active{transform:scale(.98);filter:brightness(.96)}
.quick-stats div,.live-grid div,.potential-card,.route-summary{transition:background-color .25s ease,border-color .25s ease,transform .25s var(--ease-soft)}
@keyframes softIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}@keyframes popoverIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}@keyframes drawerIn{from{opacity:0;transform:translateY(-12px) scale(.985)}to{opacity:1;transform:none}}@keyframes cardIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@media (max-width:390px){.workflow-secondary .workflow-card{grid-template-columns:24px 1fr}.workflow-secondary .step-copy b{font-size:9.8px}.smart-action-copy small{font-size:10px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.bottom-sheet{scroll-behavior:smooth}.smart-flow{position:relative;z-index:3}.bottom-sheet[data-snap="full"] .smart-flow{position:sticky;top:-2px;padding:4px 0 7px;background:linear-gradient(180deg,rgba(8,17,31,.96) 72%,rgba(8,17,31,0));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
#planningView:not(.hidden),#distributionView:not(.hidden){animation:viewIn .28s var(--ease-premium)}
@keyframes viewIn{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}
.workflow-secondary{opacity:.88}.bottom-sheet[data-snap="full"] .workflow-secondary{opacity:1}
/* IvoFlyer 3.5 – Fahrzeugmarker jederzeit verschiebbar */
.start-pin{cursor:grab;touch-action:none;filter:drop-shadow(0 5px 10px rgba(0,0,0,.35));transition:transform .18s ease,filter .18s ease}
.leaflet-marker-draggable .start-pin{cursor:grab}
.leaflet-marker-draggable:active .start-pin,.leaflet-drag-target .start-pin{cursor:grabbing;transform:rotate(-45deg) scale(1.12) translateY(-2px);filter:drop-shadow(0 8px 15px rgba(0,0,0,.45))}


/* IvoFlyer 3.6 – klare Kartenlegende für dynamisches Rest-Routing */
.route-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:7px 1px 2px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.02em}
.route-legend span{display:inline-flex;align-items:center;gap:5px}
.legend-dot{width:14px;height:4px;border-radius:999px;display:inline-block;box-shadow:0 0 0 1px rgba(255,255,255,.05)}
.legend-dot.route-blue{background:#48a6ff}.legend-dot.route-green{background:#31d7a5}.legend-dot.route-red{background:#ff4055}


/* IvoFlyer 4.1 – deutlich leichter bedienbares Bottom-Sheet */
.sheet-grabber{
  position:sticky;top:-9px;z-index:25;width:calc(100% + 32px);height:52px;
  margin:-9px -16px 0;background:linear-gradient(180deg,rgba(8,17,31,.98) 0%,rgba(8,17,31,.88) 72%,rgba(8,17,31,0) 100%)!important;
  touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;
}
.sheet-grabber span{width:62px;height:6px;box-shadow:0 0 0 10px rgba(255,255,255,.001),0 1px 0 rgba(255,255,255,.10)}
.sheet-grabber:after{top:30px!important}
.bottom-sheet[data-snap="peek"] .sheet-grabber{position:absolute;left:0;right:0;top:0;margin:0;width:100%;height:48px;background:transparent!important}
.bottom-sheet[data-snap="peek"] .sheet-grabber:after{top:28px!important}
.sheet-is-dragging,.sheet-is-dragging body{overscroll-behavior:none;touch-action:none}
.bottom-sheet.sheet-dragging{cursor:grabbing}
@media (max-width:430px){.sheet-grabber{height:56px}.sheet-grabber span{width:68px}}

/* IvoFlyer 4.2 – App-Store-poliertes iOS Bottom Sheet */
.bottom-sheet{
  left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));
  border-radius:30px;
  background:linear-gradient(180deg,rgba(17,31,51,.94),rgba(7,16,29,.93));
  -webkit-backdrop-filter:blur(28px) saturate(150%);backdrop-filter:blur(28px) saturate(150%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 24px 70px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.035);
}
.sheet-grabber,.bottom-sheet[data-snap="peek"] .sheet-grabber{
  position:sticky;top:-9px;z-index:30;
  width:calc(100% + 32px);height:50px;margin:-9px -16px 0;
  display:grid;place-items:start center;padding-top:10px;
  background:linear-gradient(180deg,rgba(12,24,41,.985) 0%,rgba(12,24,41,.93) 60%,rgba(12,24,41,0) 100%)!important;
  touch-action:none;user-select:none;-webkit-user-select:none;
}
.bottom-sheet[data-snap="peek"] .sheet-grabber{
  position:absolute;left:0;right:0;top:0;width:100%;height:48px;margin:0;padding-top:10px;
  background:linear-gradient(180deg,rgba(13,26,44,.98),rgba(8,18,32,.96))!important;
}
.sheet-grabber span,.bottom-sheet[data-snap="peek"] .sheet-grabber span,.bottom-sheet[data-snap="full"] .sheet-grabber span{
  width:42px;height:5px;border-radius:999px;background:rgba(235,242,250,.34);
  box-shadow:0 1px 0 rgba(255,255,255,.08);transition:width .2s ease,background .2s ease;
}
.sheet-grabber:after,.bottom-sheet[data-snap="peek"] .sheet-grabber:after,.bottom-sheet.sheet-collapsed .sheet-grabber:after{content:none!important;display:none!important;opacity:0!important}
.bottom-sheet[data-snap="peek"]{border-radius:24px;box-shadow:0 18px 48px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.04)}
.bottom-sheet[data-snap="peek"] #planningView,.bottom-sheet[data-snap="peek"] #distributionView{opacity:0;pointer-events:none}
.round-btn,.mini-round,.search-go,.workflow-card,.smart-action,.potential-use,.start-distribution,.btn,.pill-btn{ -webkit-touch-callout:none }
.round-btn:focus-visible,.mini-round:focus-visible,.workflow-card:focus-visible,.smart-action:focus-visible,.start-distribution:focus-visible,.btn:focus-visible{outline:2px solid rgba(72,166,255,.8);outline-offset:2px}
@media (max-width:430px){.sheet-grabber,.bottom-sheet[data-snap="peek"] .sheet-grabber{height:52px}.sheet-grabber span{width:44px}}


/* IvoFlyer 4.3.1 – iOS Bottom-Sheet Interaktions-Hotfix
   Der Grabber ist bewusst KEIN Kind des Scrollcontainers mehr. Dadurch bleiben
   Drag-Gesten auch nach dem Einblenden der langen Routenauswertung zuverlässig. */
.bottom-sheet{
  padding:0!important;
  overflow:hidden!important;
  isolation:isolate;
}
.sheet-grabber,.bottom-sheet[data-snap="peek"] .sheet-grabber{
  position:absolute!important;
  z-index:60!important;
  top:0!important;left:0!important;right:0!important;
  width:100%!important;height:52px!important;
  margin:0!important;padding:10px 0 0!important;
  display:grid!important;place-items:start center!important;
  background:linear-gradient(180deg,rgba(12,24,41,.995) 0%,rgba(12,24,41,.95) 62%,rgba(12,24,41,0) 100%)!important;
  touch-action:none!important;
  -webkit-user-select:none!important;user-select:none!important;
  cursor:grab;
}
.sheet-grabber:active{cursor:grabbing}
.sheet-scroller{
  position:relative;
  height:100%;width:100%;
  overflow-x:hidden;overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scrollbar-width:none;
  padding:48px 16px max(13px,env(safe-area-inset-bottom));
}
.sheet-scroller::-webkit-scrollbar{display:none}
.bottom-sheet.sheet-dragging .sheet-scroller{
  overflow:hidden!important;
  pointer-events:none!important;
}
.bottom-sheet[data-snap="peek"] .sheet-scroller{
  opacity:0;
  pointer-events:none;
  overflow:hidden;
}
.bottom-sheet[data-snap="full"] .smart-flow{top:2px}
.sheet-is-dragging,.sheet-is-dragging body{
  overscroll-behavior:none!important;
  touch-action:none!important;
}
@media (max-width:430px){
  .sheet-grabber,.bottom-sheet[data-snap="peek"] .sheet-grabber{height:54px!important;padding-top:11px!important}
  .sheet-scroller{padding-top:50px}
}

/* IvoFlyer 4.3.2 – iOS-konforme sekundäre Planungsoptionen */
.sheet-head-actions{display:flex;align-items:center;gap:7px;flex:none}
.sheet-more{
  width:36px;height:32px;border-radius:12px;border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.055);color:#d8e5f2;display:grid;place-items:center;
  font-size:15px;font-weight:900;letter-spacing:1px;line-height:1;padding:0 0 6px;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.sheet-more:active{transform:scale(.96);background:rgba(255,255,255,.085)}
.options-backdrop{
  position:fixed;inset:0;z-index:930;background:rgba(2,8,17,.46);
  -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);
}
.options-panel{
  position:fixed;z-index:940;left:12px;right:12px;
  bottom:max(12px,env(safe-area-inset-bottom));
  max-height:min(72vh,620px);overflow:auto;-webkit-overflow-scrolling:touch;
  padding:17px 16px max(16px,env(safe-area-inset-bottom));border-radius:28px;
  border:1px solid rgba(255,255,255,.12);background:rgba(9,20,36,.94);
  box-shadow:0 28px 80px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.06);
  overscroll-behavior:contain;
}
.options-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}
.options-panel-head h2{margin:0;font-size:22px;letter-spacing:-.55px}
.options-panel-head p{margin:4px 0 0;color:var(--muted);font-size:11px}
.options-close{
  width:36px;height:36px;flex:none;border-radius:50%;border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.07);color:#e5eef8;font-size:22px;line-height:1;
  display:grid;place-items:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
}
.options-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.options-action{min-height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.055);color:#d7e5f2;font-size:12px;font-weight:800}
.options-action.danger{color:#ff8d9a;background:rgba(255,91,110,.055);border-color:rgba(255,91,110,.13)}
@media (min-width:760px){.options-panel{left:18px;right:auto;width:390px;bottom:18px}}

/* IvoFlyer 4.4.0 – hochwertige Gebietsverwaltung */
.project-list{gap:10px}
.project-item{position:relative;grid-template-columns:minmax(0,1fr) 38px;gap:10px;align-items:start;padding:13px 12px 12px;border-radius:19px;cursor:pointer;outline:none}
.project-item:focus-visible{border-color:rgba(72,166,255,.55);box-shadow:0 0 0 3px rgba(72,166,255,.12)}
.project-item.active{border-color:rgba(49,215,165,.34);background:linear-gradient(135deg,rgba(49,215,165,.09),rgba(255,255,255,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.project-copy{min-width:0;display:grid;gap:9px}
.project-title-line{position:relative;display:flex;align-items:center;min-width:0;padding-right:24px}
.project-name-field{width:100%;min-width:0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--text);font:inherit;font-size:15px;font-weight:850;letter-spacing:-.18px;padding:1px 0 3px;outline:none;text-overflow:ellipsis}
.project-name-field:focus{border-bottom-color:rgba(49,215,165,.55);background:linear-gradient(180deg,transparent,rgba(49,215,165,.035));text-overflow:clip}
.project-edit-hint{position:absolute;right:1px;top:1px;color:#7f91a8;font-size:14px;pointer-events:none;transition:color .18s ease,transform .18s ease}
.project-item.editing .project-edit-hint{color:var(--accent);transform:scale(1.08)}
.project-metrics{display:flex;flex-wrap:wrap;gap:6px}
.project-metrics span{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:4px 7px;border-radius:9px;border:1px solid rgba(255,255,255,.065);background:rgba(255,255,255,.035);font-size:9.5px;font-weight:720;color:#b8c6d8;white-space:nowrap}
.project-metrics i{font-style:normal;color:var(--accent);font-size:11px;opacity:.92}
.project-status{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.project-status small{color:var(--muted);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-active-badge{flex:0 0 auto;font-size:8px;font-weight:900;letter-spacing:.9px;color:#7f91a8}
.project-item.active .project-active-badge{color:var(--accent)}
.project-progress{height:3px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.06)}
.project-progress>div{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#4fdaf0);transition:width .35s ease}
.project-delete{width:36px;height:36px;border-radius:12px;margin-top:0;font-size:18px;line-height:1;background:rgba(255,97,116,.075);border:1px solid rgba(255,97,116,.06);color:#ff8290;cursor:pointer}
.project-delete:active{transform:scale(.94)}
@media (max-width:390px){.project-metrics{gap:4px}.project-metrics span{font-size:9px;padding:4px 6px}.project-item{padding:11px 10px}}
.project-active-badge{border:0;background:transparent;padding:2px 0;font-family:inherit;cursor:pointer}
.project-active-badge:focus-visible{outline:2px solid rgba(72,166,255,.55);outline-offset:3px;border-radius:5px}


/* IvoFlyer 4.4.1 – iOS Rename/Viewport Hotfix */
@media (max-width:760px){input,select,textarea{font-size:16px!important}}
.project-item{grid-template-columns:minmax(0,1fr) 44px;gap:10px;cursor:default;padding:12px}
.project-copy{gap:8px}.project-title-line{padding-right:0}
.project-name-button{appearance:none;-webkit-appearance:none;width:100%;min-width:0;min-height:44px;border:0;border-radius:13px;padding:7px 9px;background:rgba(255,255,255,.025);color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font-family:inherit;touch-action:manipulation}
.project-name-button:active{transform:scale(.985);background:rgba(49,215,165,.075)}
.project-name-button:focus-visible{outline:2px solid rgba(49,215,165,.52);outline-offset:2px}
.project-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:850;letter-spacing:-.2px}
.project-name-pencil{flex:none;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgba(49,215,165,.085);border:1px solid rgba(49,215,165,.14);color:var(--accent);font-size:16px;font-weight:900}
.project-status{min-height:38px}.project-open-button{flex:none;min-width:76px;min-height:36px;padding:0 11px;border-radius:11px;border:1px solid rgba(72,166,255,.18);background:rgba(72,166,255,.08);color:#9fd0ff;font:900 9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,sans-serif;letter-spacing:.75px;touch-action:manipulation}
.project-item.active .project-open-button{border-color:rgba(49,215,165,.20);background:rgba(49,215,165,.08);color:var(--accent)}.project-open-button:active{transform:scale(.96)}
.project-delete{width:44px;height:44px;border-radius:14px;font-size:21px;touch-action:manipulation}.project-active-badge,.project-name-field,.project-edit-hint{display:none!important}
.rename-dialog{position:absolute;z-index:1350;inset:0;display:grid;place-items:center;padding:22px;background:rgba(2,8,16,.58);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.rename-card{width:min(350px,100%);border-radius:27px;padding:20px;display:grid;gap:11px;box-shadow:0 28px 90px rgba(0,0,0,.52)}
.rename-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:rgba(49,215,165,.12);border:1px solid rgba(49,215,165,.18);color:var(--accent);font-size:23px;font-weight:900}
.rename-copy h2{margin:0;font-size:22px;letter-spacing:-.55px}.rename-copy .eyebrow{margin-bottom:4px}.rename-copy p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.4}
.rename-label{margin:3px 1px -4px;color:#9eb0c7;font-size:10px;font-weight:800;letter-spacing:.45px;text-transform:uppercase}.rename-input{width:100%;height:52px;border-radius:15px;border:1px solid rgba(72,166,255,.20);outline:none;padding:0 14px;background:rgba(255,255,255,.055);color:#fff;font:700 17px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,sans-serif!important;caret-color:var(--accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.rename-input:focus{border-color:rgba(49,215,165,.48);box-shadow:0 0 0 3px rgba(49,215,165,.09),inset 0 1px 0 rgba(255,255,255,.03)}
.rename-actions{display:grid;grid-template-columns:1fr 1.15fr;gap:8px;margin-top:2px}.rename-actions .btn{min-height:46px}.rename-dialog:not(.hidden) .rename-card{animation:cardIn .22s var(--ease-premium)}


/* IvoFlyer 4.4.2 – ruhige, feste Kartenquellen (kein Mitschwingen mit Bottom-Sheet) */
.map-credits-wrap{
  position:absolute;
  z-index:488;
  left:auto;
  right:12px;
  top:max(128px,calc(env(safe-area-inset-top) + 116px));
  bottom:auto;
  transition:none;
  pointer-events:none;
}
.map-credits-btn{
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-width:28px;
  height:24px;
  padding:0 7px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  color:rgba(236,244,252,.78);
  font:700 8px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,sans-serif;
  letter-spacing:.05px;
  background:rgba(5,13,23,.48);
  box-shadow:0 2px 8px rgba(0,0,0,.16);
  -webkit-backdrop-filter:blur(9px) saturate(120%);
  backdrop-filter:blur(9px) saturate(120%);
  transition:width .22s ease,padding .22s ease,background .2s ease,opacity .2s ease,transform .16s ease;
}
.map-credits-btn:active{transform:scale(.96)}
.map-credits-btn[aria-expanded="true"]{background:rgba(9,22,36,.90);color:#fff}
.map-credits-label{white-space:nowrap;max-width:150px;overflow:hidden;opacity:1;transition:max-width .22s ease,opacity .14s ease}
.map-credits-info{font-size:11px;line-height:1;opacity:.86}
.map-credits-wrap.map-credits-compact .map-credits-btn{width:26px;min-width:26px;padding:0;background:rgba(5,13,23,.42);opacity:.82}
.map-credits-wrap.map-credits-compact .map-credits-label{max-width:0;opacity:0}
.map-credits-panel{
  pointer-events:auto;
  position:absolute;
  right:0;
  left:auto;
  top:32px;
  bottom:auto;
  width:min(300px,calc(100vw - 24px));
  padding:12px 13px;
  border-radius:17px;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(6,15,27,.95);
  box-shadow:0 14px 36px rgba(0,0,0,.36);
  -webkit-backdrop-filter:blur(22px);
  backdrop-filter:blur(22px);
  color:#d5e2f1;
}
.drawer-map-credit{display:inline-block;margin-top:5px;color:#788da6;font-size:8px;letter-spacing:.2px}
@media (orientation:landscape) and (max-height:620px){
  .map-credits-wrap{left:auto;right:12px;top:max(64px,calc(env(safe-area-inset-top) + 56px));bottom:auto}
}

/* IvoFlyer 4.6.0 · Offline Maps */
.layer-thumb.offline{background:linear-gradient(135deg,#132638,#1b364c 45%,#233f55 46% 52%,#132638 53%);position:relative;overflow:hidden}
.layer-thumb.offline:after{content:"";position:absolute;left:8px;right:8px;top:16px;height:2px;background:rgba(182,207,227,.72);box-shadow:7px -8px 0 rgba(182,207,227,.42),-5px 8px 0 rgba(182,207,227,.42);transform:rotate(-12deg)}
.offline-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(72,166,255,.13);background:rgba(72,166,255,.055);border-radius:15px;padding:9px 10px}
.offline-row>span{display:grid;min-width:0}.offline-row b{font-size:12px}.offline-row small{font-size:10px;color:var(--muted);margin-top:2px;white-space:normal}.offline-row button{flex:none;min-width:72px;border:1px solid rgba(72,166,255,.24);border-radius:11px;background:rgba(72,166,255,.12);color:#cfe9ff;font-weight:800;font-size:11px;padding:8px 10px}


/* IvoFlyer 4.8.0 – Live-Menü: immer erreichbarer Minimieren-Schalter */
.nav-banner{
  grid-template-columns:48px minmax(0,1fr) 38px 38px;
}
.live-sheet-toggle{
  color:var(--accent);
  font-size:24px;
  font-weight:900;
  line-height:1;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.live-sheet-toggle:active{transform:scale(.92)}
.bottom-sheet[data-view="live"] .sheet-grabber span{
  width:56px!important;
  background:rgba(49,215,165,.72)!important;
  box-shadow:0 0 0 7px rgba(49,215,165,.001),0 0 14px rgba(49,215,165,.16)!important;
}
.bottom-sheet[data-view="live"][data-snap="peek"] .sheet-grabber span{
  width:62px!important;
  background:rgba(49,215,165,.88)!important;
}
@media (max-width:360px){
  .nav-banner{grid-template-columns:42px minmax(0,1fr) 36px 36px;gap:7px}
  .nav-copy strong{font-size:20px}
  .nav-copy span{font-size:12px}
}
/* 4.8.0: unobtrusive diagnostics in the project drawer. */
#analysisBackendStatus[data-state="ok"]{color:#69e6c1}
#analysisBackendStatus[data-state="error"]{color:#ff8f9e}
