:root{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--red:#e1082b;--deep:#ab001c;--ink:#181c25;--paper:#f2f3f6;--muted:#707785;--line:#e1e4e9;--blue:#135eaa;--green:#168452;color:var(--ink);background:var(--paper);font-size:14px}*{box-sizing:border-box}body{margin:0;min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.45}a{text-decoration:none;color:inherit}[hidden]{display:none!important}:focus-visible{outline:3px solid #eabf43;outline-offset:3px}.game-header{height:76px;background:linear-gradient(100deg,#a8001c,#e9092e 65%,#ba001d);display:flex;align-items:center;gap:17px;color:white;padding:7px 23px;box-shadow:0 5px 19px #26000b2e;position:relative;z-index:20;border-bottom:4px solid #fff}.game-brand{display:flex;align-items:center;gap:10px;min-width:0}.game-brand img{width:56px;height:56px;border-radius:11px;object-fit:contain;background:white;border:2px solid #ffffff50}.game-brand b{display:block;font-size:22px;line-height:1;font-weight:1000;letter-spacing:-.06em;white-space:nowrap}.game-brand em{font-style:normal}.game-brand small{display:block;font-size:9px;font-weight:850;letter-spacing:.1em;margin-top:6px;white-space:nowrap}.header-badges{display:flex;align-items:center;gap:12px;margin-left:auto;font-size:10px;font-weight:900;letter-spacing:.05em}.header-badges>span{background:#ffffff19;border:1px solid #ffffff38;padding:9px 11px;border-radius:8px;white-space:nowrap}.status-pip,.bar-live,.phone-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#65f0a7;box-shadow:0 0 0 4px #65f0a72d;margin-right:6px;animation:pip 2s infinite}.head-clock{font-size:16px!important;font-variant-numeric:tabular-nums}.header-actions{display:flex;gap:7px}.icon-btn{width:40px;height:40px;border-radius:9px;border:1px solid #ffffff67;background:#ffffff16;color:white;display:grid;place-items:center;font-size:22px}.command-bar{min-height:54px;display:flex;align-items:center;gap:20px;padding:9px 23px;background:white;border-bottom:1px solid var(--line)}.bar-left,.bar-stats{display:flex;align-items:center;gap:16px}.command-title{font-weight:1000;letter-spacing:.1em;font-size:12px;white-space:nowrap}.bar-live{background:var(--red);box-shadow:0 0 0 4px #e1092924}.bar-muted{color:#8b909a;font-size:10px;font-weight:900;white-space:nowrap}.bar-stats{margin-left:auto;gap:18px}.bar-stats>span{font-size:10px;font-weight:900;color:#697180;white-space:nowrap}.bar-stats b{font-size:17px;color:#202532;font-variant-numeric:tabular-nums;margin-right:3px}.bar-stats .xp b{color:#ce0627}.bar-button,.small-primary,.mini-primary{border:0;background:var(--red);color:white;border-radius:8px;font-size:11px;letter-spacing:.05em;font-weight:1000;padding:11px 13px;white-space:nowrap;box-shadow:0 3px 0 #9b001d}.bar-button:hover,.small-primary:hover,.mini-primary:hover{background:#b90020}.dashboard{display:grid;grid-template-columns:minmax(240px,288px) minmax(410px,1fr) minmax(290px,356px);grid-template-areas:'queue map detail' 'aux aux aux';gap:12px;padding:12px;max-width:1950px;margin:auto;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 15px #1b26360a;min-width:0;overflow:hidden}.queue-panel{grid-area:queue}.map-panel{grid-area:map}.detail-panel{grid-area:detail}.aux-panel{grid-area:aux}.panel-head{padding:17px 17px 15px;display:flex;align-items:center;justify-content:space-between;gap:9px;border-bottom:1px solid var(--line)}.eyebrow{font-weight:1000;font-size:9px;letter-spacing:.16em;color:#a5aab4;line-height:1.4}.panel-head h2{font-size:20px;margin:5px 0 0;line-height:1.1;font-weight:1000;letter-spacing:-.055em}.red-point{font-size:11px;color:var(--red);vertical-align:middle}.count-pill{background:#fae2e8;color:#ba0928;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:1000;font-variant-numeric:tabular-nums}.panel-tools{display:flex;gap:7px;padding:12px;border-bottom:1px solid var(--line)}.small-outline,.mini-btn,.danger-outline{background:white;color:#4c5563;border:1px solid #d7dce3;border-radius:8px;padding:10px 12px;font-size:10px;letter-spacing:.03em;font-weight:1000}.small-outline:hover,.mini-btn:hover{background:#f4f5f7}.panel-tools button{flex:1}.queue-scroll{max-height:65vh;min-height:390px;overflow-y:auto;padding:11px;display:flex;flex-direction:column;gap:9px;scrollbar-width:thin}.empty{padding:30px 12px;text-align:center;color:#8b939e}.call-card{display:block;width:100%;border:1px solid #e1e4e9;border-left:5px solid #cdd2da;text-align:left;padding:13px;border-radius:10px;background:#fff;transition:transform .2s,border .2s,box-shadow .2s}.call-card:hover{transform:translateY(-2px)}.call-card.selected{border-color:#ed6a80;border-left-color:var(--red);background:#fff8fa;box-shadow:0 3px 17px #cc0b3021}.call-card.pri1{border-left-color:#d20b29}.call-card.pri2{border-left-color:#e99717}.call-card.pri3{border-left-color:#7d9db9}.call-card.ringing{animation:ringGlow 2.2s infinite}.call-top,.call-meta{display:flex;justify-content:space-between;gap:7px;align-items:center}.call-top b{font-size:11px;color:#c30b2a}.call-state{background:#f1f3f6;color:#67717d;font-size:9px;font-weight:1000;border-radius:20px;padding:5px 8px;white-space:nowrap}.call-state.ringing{background:#fce0e6;color:#b8052b}.call-state.active{background:#e1f2fb;color:#135c92}.call-state.dispatched{background:#e7edff;color:#335ca4}.call-state.onscene{background:#def4e7;color:#167347}.call-card h3{font-size:14px;font-weight:950;margin:11px 0 6px;line-height:1.25}.call-meta{font-size:10px;color:#7e8793;font-weight:750}.call-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-footer{background:#fbfbfc;border-top:1px solid var(--line);padding:13px 16px}.micro-info{font-size:9px;font-weight:1000;letter-spacing:.08em;color:#69717d}.micro-dot{width:6px;height:6px;background:#1b9c5f;display:inline-block;border-radius:50%;margin-right:4px}.queue-footer p{font-size:11px;color:#9299a2;line-height:1.5;margin:7px 0 0}.map-head-sub{font-weight:800;color:#9ca4ae;font-size:11px;letter-spacing:.08em;margin-left:6px}.map-head-actions{display:flex;gap:7px}.mini-btn{padding:8px}.map-search{padding:11px 14px;display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);flex-wrap:wrap}.map-search label{font-size:9px;font-weight:1000;color:#717887;letter-spacing:.06em}.map-search select,.map-search input{border:1px solid #dce0e7;border-radius:7px;background:white;min-height:36px;padding:7px 9px;font-size:12px;min-width:0}.map-search select{width:155px}.map-search input{flex:1;min-width:120px}.mini-primary{padding:10px}.map-stage{position:relative;background:#e1e9e8;height:clamp(420px,61vh,720px);overflow:hidden}#osmMap{position:absolute;inset:0;z-index:1;background:#e3e7e6}.schematic{position:absolute;inset:0;background:linear-gradient(135deg,#eef2ec,#d5e0d9);z-index:2;overflow:hidden}.schematic-grid{position:absolute;inset:-35%;background:repeating-linear-gradient(24deg,transparent 0 35px,#fafcf9 35px 47px,#bac9c15e 47px 49px,transparent 49px 100px),repeating-linear-gradient(112deg,transparent 0 31px,#fefefe 31px 40px,#acbcb859 40px 42px,transparent 42px 97px);transform:rotate(-6deg)}.rhine{position:absolute;inset:0;width:100%;height:100%;opacity:.86}.district-word{position:absolute;z-index:2;font-size:11px;letter-spacing:.16em;color:#6b857f;font-weight:1000;text-shadow:0 1px white}.d-1{left:14%;top:43%}.d-2{left:29%;top:62%}.d-3{left:65%;top:61%}.d-4{left:79%;top:78%}.d-5{left:28%;top:20%}.d-6{left:75%;top:20%}.fallback-markers{position:absolute;inset:0;z-index:3;pointer-events:none}.fallback-marker{position:absolute;transform:translate(-50%,-50%);border-radius:50%;width:28px;height:28px;border:2px solid white;box-shadow:0 4px 12px #18222c64;background:#135ba1;color:#fff;font-size:12px;font-weight:1000;display:grid;place-items:center;pointer-events:auto;cursor:pointer}.fallback-marker.station{background:#252a33;width:22px;height:22px;font-size:10px}.fallback-marker.call{background:#dd092e;animation:ping 2.2s infinite}.fallback-marker.unit{background:#1765bb}.schematic-label{position:absolute;left:12px;bottom:45px;z-index:4;font-size:9px;font-weight:1000;background:#fffdf4ef;color:#444d54;border:1px solid #d1d6d5;padding:7px 10px;border-radius:6px}.map-top-label{position:absolute;z-index:4;top:13px;left:13px;background:#fffffff0;border:1px solid #dae0e5;padding:8px 12px;border-radius:7px;font-size:9px;font-weight:1000;letter-spacing:.08em;box-shadow:0 3px 10px #20322c12}.map-live-pip{display:inline-block;width:6px;height:6px;border-radius:50%;background:#21a05d;margin-right:6px}.map-legend{position:absolute;z-index:4;top:13px;right:13px;background:#fffffff0;border:1px solid #dae0e5;padding:9px;border-radius:7px;display:flex;gap:10px;font-size:9px;font-weight:950;box-shadow:0 3px 10px #20322c12}.map-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:3px}.legend-unit{background:#1665b8}.legend-call{background:#e0092b}.legend-station{background:#333945}.map-bottom-status{position:absolute;bottom:12px;right:12px;z-index:4;background:#202c39ed;color:white;padding:8px 11px;border-radius:6px;display:flex;flex-wrap:wrap;gap:11px;font-size:9px;font-weight:900}.map-bottom{display:flex;gap:12px;align-items:center;padding:13px;background:#fbfbfc;border-top:1px solid #e4e6eb;flex-wrap:wrap}.map-bottom-title{white-space:nowrap;font-size:10px;letter-spacing:.06em;font-weight:1000;color:#d40a2c}.map-bottom-title span{background:#f7e0e5;border-radius:10px;padding:2px 6px}.radio-preview{font-size:11px;color:#747c88;flex:1;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.open-radio{border:0;color:#a90522;background:transparent;font-weight:950;font-size:10px}.detail-head h2{font-variant-numeric:tabular-nums}.priority-badge{padding:7px 11px;background:#eff0f3;color:#6d7480;border-radius:7px;font-size:10px;font-weight:1000;white-space:nowrap}.priority-badge.p1{background:#fae0e4;color:#b70724}.priority-badge.p2{background:#fff0d6;color:#976008}.priority-badge.p3{background:#e3eef8;color:#2c6595}.call-detail{padding:14px 16px;min-height:235px;border-bottom:1px solid var(--line)}.detail-empty{text-align:center;color:#838c97;padding:20px}.detail-empty>span{font-size:60px;color:#e0092b}.detail-empty h3{color:#232833;font-size:17px}.detail-empty p{font-size:12px;line-height:1.6}.detail-call-type{font-size:19px;font-weight:1000;letter-spacing:-.04em;line-height:1.2}.detail-address{color:#6e7784;margin:8px 0 11px;font-size:12px;line-height:1.5}.detail-status{font-size:10px;font-weight:850;background:#f2f3f6;padding:8px 10px;border-radius:6px;color:#5b6674;margin-bottom:12px}.detail-call-actions{display:flex;flex-wrap:wrap;gap:7px}.detail-call-actions button{flex:1;min-height:40px;border:1px solid #dce1e7;border-radius:8px;font-size:10px;font-weight:1000;background:white;color:#364252}.detail-call-actions .take-call{background:var(--red);color:white;border-color:var(--red)}.detail-call-actions .open-call{background:#222d40;color:white;border-color:#222d40}.notes-label{display:block;margin-top:13px;font-size:10px;font-weight:900;color:#5f6979}.notes-input{margin-top:6px;width:100%;min-height:57px;resize:vertical;padding:9px;border:1px solid #dee2e9;border-radius:7px;background:#fdfdfd;font-size:12px;line-height:1.4}.dispatch-section{padding:15px 14px 17px}.dispatch-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.dispatch-title h3{margin:4px 0 0;font-size:16px;font-weight:1000;letter-spacing:-.05em}.unit-list{display:flex;flex-direction:column;gap:7px;max-height:260px;overflow:auto;margin-bottom:12px;scrollbar-width:thin}.unit-row{width:100%;display:flex;align-items:center;gap:10px;text-align:left;border:1px solid #e0e4eb;background:white;border-radius:9px;padding:9px;color:#253040}.unit-row.selected{border-color:#e4072a;background:#fff2f5;box-shadow:0 0 0 1px #e4072a}.unit-row.unavailable{opacity:.56}.unit-symbol{width:36px;height:36px;background:#e6effa;color:#195eac;display:grid;place-items:center;border-radius:8px;font-size:17px;flex-shrink:0}.unit-row.selected .unit-symbol{background:#d50b2f;color:white}.unit-main{flex:1;min-width:0}.unit-main strong{display:block;font-size:12px}.unit-main small{display:block;font-size:10px;color:#8b939e;margin-top:3px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.unit-badge{font-size:9px;border-radius:30px;padding:5px 7px;font-weight:900;color:#18804b;background:#e2f4e8;white-space:nowrap}.unit-badge.busy{color:#836029;background:#fff0d8}.track-btn{background:#f1f5fa;border:0;border-radius:6px;color:#1960a5;padding:7px;font-size:11px;font-weight:900}.action-btn{width:100%;padding:12px;margin-top:7px;border-radius:9px;border:0;background:var(--red);color:white;font-weight:1000;letter-spacing:.035em;font-size:11px;min-height:45px}.action-btn.subtle{background:white;color:#ad0925;border:1px solid #e8b6c0}.action-btn.complete{background:#137e50;color:white}.aux-panel .panel-head{padding:16px 20px}.radio-led{font-size:10px;font-weight:1000;color:#137e4d}.aux-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:18px}.aux-block{border:1px solid #e3e6eb;border-radius:11px;padding:16px;min-width:0}.block-heading{font-size:11px;font-weight:1000;color:#a30b26;letter-spacing:.1em;margin-bottom:12px}.radio-log{min-height:150px;max-height:275px;overflow:auto;display:flex;flex-direction:column;gap:8px}.radio-entry{padding:10px;background:#f5f6f9;border-left:3px solid #cbd1d8;border-radius:5px;font-size:12px;line-height:1.4}.radio-entry strong{color:#1d568e;font-size:10px;display:block;margin-bottom:4px}.radio-entry:first-child{border-color:#d90a2b}.radio-actions,.shift-buttons{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.shift-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.shift-summary>div{background:#f5f6f8;border-radius:8px;padding:12px 9px}.shift-summary span{font-size:9px;color:#79818d;font-weight:1000;display:block;margin-bottom:8px}.shift-summary b{font-size:21px;letter-spacing:-.07em}.progress-track{height:10px;border-radius:20px;background:#e9edf1;overflow:hidden;margin-top:16px}.progress-track>div{height:100%;width:0;background:linear-gradient(90deg,#b70725,#ef3155);transition:width .35s}.time-meta{display:flex;justify-content:space-between;gap:8px;color:#7c8592;font-size:10px;font-weight:1000;margin-top:8px}.archive-heading{margin-top:20px}.archive-list{display:flex;flex-direction:column;gap:6px;max-height:230px;overflow:auto}.archive-entry{font-size:11px;padding:10px;background:#f5f6f8;border-radius:7px;color:#424a58;display:flex;justify-content:space-between;gap:8px}.archive-entry b{color:#c9092e}.mobile-tabs{display:none}.mini-call{position:fixed;z-index:30;bottom:calc(70px + env(safe-area-inset-bottom));left:10px;right:10px;border:0;background:#b60523;color:white;padding:13px;border-radius:9px;font-size:11px;font-weight:1000;box-shadow:0 5px 15px #33001358;animation:ringGlow 2.7s infinite}.toast{position:fixed;z-index:110;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#202733;color:#fff;box-shadow:0 11px 30px #10131c66;padding:13px 18px;border-radius:10px;max-width:min(510px,calc(100% - 25px));min-width:min(310px,calc(100% - 25px));text-align:center;font-size:12px;font-weight:800;animation:toastIn .25s}.phone-backdrop,.settings-backdrop{position:fixed;inset:0;z-index:80;background:#10141bd9;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));backdrop-filter:blur(8px)}.phone-window{width:min(560px,100%);max-height:calc(100dvh - 24px - env(safe-area-inset-bottom));display:flex;flex-direction:column;background:#fff;border-radius:21px;overflow:hidden;box-shadow:0 25px 75px #0009;border:2px solid #ffffff40}.phone-top{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(105deg,#b00022,#eb0b33);color:white;padding:13px 18px;font-size:10px;font-weight:1000;letter-spacing:.1em}.phone-dot{background:#fff;box-shadow:0 0 0 4px #fff4}.phone-minimize{background:#ffffff1e;color:white;border:1px solid #ffffff66;padding:8px 11px;border-radius:7px;font-size:10px;font-weight:1000;white-space:nowrap}.phone-head{display:flex;gap:12px;align-items:center;padding:19px 21px 9px}.caller-avatar{border-radius:50%;width:60px;height:60px;flex-shrink:0;display:grid;place-items:center;background:#f9e0e6;border:2px solid #efbcc8;color:#c0072b;font-size:28px}.caller-name{min-width:0;flex:1}.caller-name h2{font-size:20px;line-height:1.15;letter-spacing:-.05em;margin:5px 0}.caller-name p{font-size:11px;color:#88929f;margin:0}.call-timer{font-size:15px;font-weight:1000;color:#b40829;align-self:start;font-variant-numeric:tabular-nums}.voice-wave{height:53px;display:flex;justify-content:center;align-items:center;gap:4px;padding:5px 0}.voice-wave i{display:block;background:#e6adb9;width:4px;height:10px;border-radius:3px;transition:background .2s;animation:voiceBar 1s ease-in-out infinite alternate;animation-play-state:paused}.voice-wave i:nth-child(3n){animation-duration:.7s}.voice-wave i:nth-child(4n){animation-duration:1.3s}.voice-wave.speaking i{background:#c2082a;animation-play-state:running}.voice-wave.listening i{background:#186cb6;animation-play-state:running}.voice-state{text-align:center;font-size:10px;letter-spacing:.13em;color:#ba0a2b;font-weight:1000;margin-bottom:10px}.phone-transcript{background:#f5f6f8;margin:0 14px;border-radius:11px;padding:13px;min-height:155px;max-height:25dvh;overflow-y:auto;display:flex;flex-direction:column;gap:9px;scrollbar-width:thin}.transcript-line{max-width:91%;align-self:start;display:flex;flex-direction:column;gap:4px}.transcript-line.you{align-self:end}.transcript-line small{font-size:9px;font-weight:900;color:#6c7482}.transcript-line>span{display:block;background:white;border:1px solid #e2e5eb;border-radius:12px 12px 12px 3px;padding:9px 11px;font-size:12px;line-height:1.45}.transcript-line.you>span{background:#cf0b2b;color:white;border-color:#cf0b2b;border-radius:12px 12px 3px 12px}.quick-questions{display:flex;gap:6px;padding:12px 14px 9px;overflow-x:auto;scrollbar-width:thin;flex-shrink:0}.quick-questions button{font-size:10px;font-weight:950;white-space:nowrap;background:#fff;border:1px solid #dae0e7;border-radius:20px;padding:8px 10px;color:#485364}.reply-row{display:flex;gap:7px;padding:5px 14px 12px}.reply-row input{min-width:0;flex:1;border:1px solid #dce1e7;border-radius:8px;background:white;padding:12px;font-size:16px;min-height:46px}.reply-row button{border:0;background:#d20a2e;color:#fff;border-radius:8px;font-size:11px;font-weight:1000;padding:12px}.phone-controls{display:flex;justify-content:center;gap:13px;border-top:1px solid #ecedf1;padding:13px 12px 7px}.circle-control{display:flex;flex-direction:column;align-items:center;gap:5px;justify-content:center;background:#f0f2f5;border:1px solid #e5e7ec;color:#253140;width:68px;height:62px;border-radius:13px;font-size:25px}.circle-control small{font-size:8px;letter-spacing:.02em;font-weight:1000}.circle-control.active{background:#e6eef9;border-color:#1670bd;color:#0d65b3;animation:ringGlow 2s infinite}.circle-control.hangup{background:#d6072c;color:white;border-color:#d6072c;transform:rotate(0deg)}.voice-help{color:#858c98;text-align:center;font-size:10px;line-height:1.45;padding:0 14px 14px}.settings-window{background:#fff;border-radius:17px;box-shadow:0 20px 70px #0008;width:min(650px,100%);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;overflow:hidden}.settings-top{background:#d4092c;color:white;padding:20px;display:flex;justify-content:space-between;align-items:center;gap:14px}.settings-top h2{font-size:19px;letter-spacing:-.05em;margin:0}.settings-close{background:#fff1;border:1px solid #ffffff6b;color:white;border-radius:8px;font-size:10px;font-weight:950;padding:10px}.settings-scroll{overflow:auto;padding:18px}.settings-lead{font-size:12px;color:#646e7d;line-height:1.6}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.check-row{padding:11px;border:1px solid #e4e7ed;border-radius:8px;font-size:11px;background:#f8f9fa}.check-row strong{display:block;font-size:12px;margin-bottom:5px}.check-row.good strong{color:#16804d}.check-row.warn strong{color:#a46b10}.settings-rows{display:flex;flex-direction:column;gap:11px;border-block:1px solid #e7e9ee;padding:17px 0}.settings-rows label{font-size:12px;font-weight:800;display:flex;align-items:center;gap:9px}.settings-rows input{accent-color:#d30b2d;width:17px;height:17px}.settings-rows select{margin-left:auto;padding:8px;border:1px solid #d6dae1;border-radius:6px}.settings-actions{display:flex;gap:8px;flex-wrap:wrap;padding:16px 0}.import-label{display:inline-flex;align-items:center;cursor:pointer;border:1px solid #d7dce3;padding:10px 12px;border-radius:8px;font-size:10px;font-weight:1000}.danger-outline{border-color:#ebafb9;color:#b70928}.settings-msg{color:#9a0926;font-size:12px;min-height:15px}.legal{font-size:10px;color:#8a919b;line-height:1.5}.leaflet-container{font-family:inherit!important}.leaflet-popup-content{font-size:12px!important}.leaflet-control-attribution{font-size:10px!important}.leaflet-marker-icon.custom-marker{border:0;background:transparent}.marker-chip{width:30px;height:30px;border-radius:50%;border:2px solid white;box-shadow:0 3px 10px #16213677;display:grid;place-items:center;font-weight:1000;color:white;background:#1869be}.marker-chip.call{background:#da0a2d;animation:ping 2s infinite}.marker-chip.station{background:#252c38;font-size:13px;width:25px;height:25px}.marker-chip.unit.moving{box-shadow:0 0 0 7px #166bc330,0 4px 10px #0b29426b}.off-motion *, .off-motion *:before,.off-motion *:after{animation:none!important;transition:none!important}@keyframes pip{50%{opacity:.6}}@keyframes ping{50%{box-shadow:0 0 0 8px #e6092f28,0 3px 12px #1515153d}}@keyframes ringGlow{50%{box-shadow:0 0 0 3px #e0092b15}}@keyframes voiceBar{from{height:7px;opacity:.55}to{height:40px;opacity:1}}@keyframes toastIn{from{transform:translate(-50%,15px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
@media(max-width:1370px){.dashboard{grid-template-columns:minmax(220px,250px) minmax(310px,1fr) minmax(270px,324px);gap:9px;padding:9px}.game-brand b{font-size:20px}.bar-muted{display:none}.bar-stats{gap:12px}.map-head-sub{display:block;margin:4px 0 0}.map-search label{display:none}.map-search select{width:145px}.map-stage{height:clamp(420px,60vh,650px)}}
@media(max-width:1050px) and (min-width:901px){.dashboard{grid-template-columns:220px minmax(280px,1fr) 270px}.queue-scroll{padding:7px}.panel-head{padding:13px}.map-legend{top:45px}.map-search{gap:6px}.map-search select{width:100%}.map-search input{min-width:115px}}
@media(max-width:900px){body{padding-bottom:calc(67px + env(safe-area-inset-bottom))}.game-header{height:67px;padding:5px 11px}.game-brand img{height:47px;width:47px}.game-brand b{font-size:18px}.game-brand small{font-size:7px}.header-online,.head-shift{display:none!important}.header-badges{gap:5px}.header-badges>span{padding:6px}.head-clock{font-size:14px!important}.icon-btn{width:34px;height:36px;font-size:19px}.command-bar{gap:9px;padding:8px 10px;flex-wrap:wrap}.bar-stats{order:3;width:100%;justify-content:space-between;gap:5px}.bar-stats>span{font-size:9px}.bar-stats b{font-size:15px}.bar-button{margin-left:auto}.dashboard{display:block;padding:9px}.dashboard>.panel{display:none}.dashboard>.panel[data-panel="einsaetze"]{display:block}.dashboard>.panel[data-panel="karte"]{display:block}body:not([data-view="einsaetze"]) .dashboard>.panel[data-panel="einsaetze"]{display:none}body:not([data-view="karte"]) .dashboard>.panel[data-panel="karte"]{display:none}body:not([data-view="telefon"]) .dashboard>.panel[data-panel="telefon"]{display:none}body:not([data-view="funk"]) .dashboard>.panel[data-panel="funk"]{display:none}.dashboard>.panel{min-height:calc(100dvh - 215px)}.queue-scroll{max-height:calc(100dvh - 360px);min-height:380px}.unit-list{max-height:33dvh}.map-stage{height:calc(100dvh - 295px);min-height:440px}.map-search select{flex:1}.map-search input{flex:2}.aux-grid{grid-template-columns:1fr}.mobile-tabs{display:flex;position:fixed;z-index:40;bottom:0;left:0;right:0;background:#fff;box-shadow:0 -5px 25px #09122124;border-top:2px solid #e0e3e8;padding-bottom:env(safe-area-inset-bottom)}.mobile-tabs button{flex:1;min-width:0;background:transparent;border:0;border-top:3px solid transparent;font-size:9px;font-weight:1000;padding:9px 3px;color:#798392;display:flex;align-items:center;flex-direction:column;gap:3px}.mobile-tabs button span{font-size:22px;line-height:1}.mobile-tabs button.active{border-top-color:#df0829;color:#c40728;background:#fff4f6}.radio-log{max-height:240px}.call-detail{min-height:230px}.mini-call{display:block}.phone-transcript{max-height:31dvh}}
@media(max-width:530px){.map-legend{top:auto;bottom:45px;right:8px}.map-top-label{top:8px;left:8px}.map-bottom-status{left:8px;right:8px;bottom:8px;justify-content:space-between}.schematic-label{display:none}.map-head-actions{gap:3px}.mini-btn{font-size:9px;padding:7px}.panel-head h2{font-size:19px}.phone-backdrop,.settings-backdrop{padding:0}.phone-window,.settings-window{width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0}.phone-head{padding:14px 14px 7px}.phone-transcript{max-height:none;min-height:70px;flex:1;margin:0 8px}.quick-questions{padding:8px}.reply-row{padding:7px 8px}.phone-controls{gap:8px;padding:9px 5px 5px}.circle-control{height:57px;width:66px}.voice-help{padding:0 8px 8px}.settings-scroll{padding:13px}.checks{grid-template-columns:1fr}.map-stage{height:calc(100dvh - 316px);min-height:365px}.head-clock{display:none!important}.map-legend{font-size:8px;gap:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:900px){body[data-view="einsaetze"] .dashboard>.panel[data-panel="einsaetze"],body[data-view="karte"] .dashboard>.panel[data-panel="karte"],body[data-view="telefon"] .dashboard>.panel[data-panel="telefon"],body[data-view="funk"] .dashboard>.panel[data-panel="funk"]{display:block}}

/* TELEPHONE UPDATE 7.0 – accessible, compact iPad telephone with consistent Lyrox red/white. */
.phone-window{width:min(704px,100%);border-radius:23px;box-shadow:0 35px 105px #10050bb3;position:relative;background:linear-gradient(#fff 80%,#fff5f7)}
.phone-window::before{content:"";pointer-events:none;position:absolute;z-index:2;top:51px;right:-68px;width:175px;height:175px;background:radial-gradient(circle,#ed14332a,transparent 67%);filter:blur(12px)}
.phone-top{min-height:51px;padding:13px 21px;position:relative;z-index:3}
.phone-version{font-size:9px;opacity:.75;letter-spacing:.07em;margin-left:6px}
.phone-head{padding:17px 21px 10px}
.caller-avatar{height:66px;width:66px;background:linear-gradient(140deg,#ffedf0,#f5b6c7);box-shadow:0 0 0 5px #e31b3822;animation:callerBreathe 2.8s ease-in-out infinite}
.caller-traits{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 0}
.caller-traits>span{font-size:9px;font-weight:900;letter-spacing:.03em;padding:5px 7px;border-radius:5px;background:#f0f2f5;color:#647081}
.caller-traits>span:first-child{background:#fff0f4;color:#b5042a}
.phone-transcript{background:#f3f4f7;max-height:min(28dvh,285px);min-height:120px;gap:11px}
.phone-transcript .transcript-line>span{font-size:13px;line-height:1.6;box-shadow:0 3px 6px #10192506}
.phone-transcript .transcript-line.you>span{box-shadow:0 4px 10px #c60a2924}
.phone-separator{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 17px 9px;color:#505768;font-size:9px;letter-spacing:.08em}
.phone-separator strong{font-weight:1000}
.phone-separator span{color:#b70929;font-weight:950}
.live-caption{padding:8px 13px;border-radius:7px;min-height:35px;margin:0 16px 10px;background:#f9f0f2;text-align:center;color:#6f3442;line-height:1.45;font-size:11px;border:1px solid #f4d3da;overflow-wrap:anywhere}
.phone-toggle-row{display:flex;gap:8px;padding:1px 16px 12px}
.phone-toggle{flex:1;min-height:40px;border-radius:9px;background:white;border:1px solid #e3e5ed;padding:10px;color:#565c68;font-size:10px;font-weight:1000;letter-spacing:.01em}
.phone-toggle.active{color:#b80728;background:#fff0f4;border-color:#d5133e;box-shadow:0 0 0 3px #d5133e13}
#autoVoiceBtn.active{animation:autovoice 2s ease-in-out infinite}
#ambienceBtn.active{color:#237459;background:#e9f9f1;border-color:#afdfc9;box-shadow:none}
.phone-controls{gap:8px;padding:12px 10px 7px}
.circle-control{min-width:0;width:73px;height:61px;transition:transform .16s,box-shadow .18s}
.circle-control:active,.phone-toggle:active{transform:scale(.94)}
#repeatCallerBtn{font-size:30px}
.voice-help{max-width:640px;margin:0 auto;color:#666d7b;padding-bottom:max(13px,env(safe-area-inset-bottom));font-size:10px}
.voice-wave{margin-top:0;height:44px}
.voice-state{margin-bottom:6px}
@keyframes autovoice{50%{box-shadow:0 0 0 5px #e21e3b1a}}
@keyframes callerBreathe{50%{box-shadow:0 0 0 10px #e31b3812}}
@media(min-width:901px){.phone-transcript{min-height:165px}.phone-window{max-height:calc(100dvh - 35px)}}
@media(max-width:900px){.phone-backdrop{align-items:center;padding:10px}.phone-window{width:min(740px,100%);max-height:calc(100dvh - 20px)}.phone-transcript{max-height:25dvh;min-height:100px}}
@media(max-width:530px){.phone-window{height:100dvh;max-height:100dvh;border-radius:0}.phone-top{padding:12px}.phone-head{padding:12px}.caller-avatar{height:50px;width:50px}.caller-name h2{font-size:18px}.caller-traits>span{font-size:8px}.phone-toggle-row{padding:0 10px 8px}.phone-toggle{font-size:9px;min-height:38px}.phone-separator{padding:0 12px 7px}.phone-transcript{min-height:70px;max-height:none;margin:0 7px;padding:10px;flex:1}.phone-controls{gap:4px}.circle-control{width:auto;flex:1;height:57px;font-size:22px}.circle-control small{font-size:7px}.phone-version{display:none}.live-caption{margin:0 9px 7px;min-height:30px;padding:6px;font-size:10px}}
@media(max-height:750px) and (min-width:531px){.phone-head{padding:9px 15px 4px}.caller-avatar{width:45px;height:45px}.phone-transcript{min-height:60px;max-height:20dvh}.phone-toggle-row{padding-bottom:5px}.phone-controls{padding:7px 12px 4px}.voice-help{padding-bottom:7px}}
@media(prefers-reduced-motion:reduce){.caller-avatar,#autoVoiceBtn.active{animation:none!important}}
/* LYROX TELEPHONE & REALISM 8.0 — built on the red/white 7.0 design. */
:root{--red:#da062b;--deep:#99051e;--berry:#ed1745;--paper:#f5f6f8}
.bar-phone{background:#fff;border:1px solid #ffb3c3;color:#b20428;padding:10px 14px;border-radius:9px;font-weight:1000;font-size:11px;min-height:42px;white-space:nowrap;display:flex;align-items:center;gap:9px;box-shadow:0 5px 12px #b70a2510;transition:transform .15s,box-shadow .15s}
.bar-phone b{display:grid;place-items:center;min-width:22px;height:22px;background:#e51034;color:white;border-radius:7px;font-size:11px}.bar-phone:active{transform:scale(.97)}.bar-phone.new-lines{box-shadow:0 0 0 3px #ea123a33;animation:callPulse 2s ease-in-out infinite}
@keyframes callPulse{50%{box-shadow:0 0 0 6px #e7063120}}
.line-tray{padding:9px 13px;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;flex:0 0 auto;min-height:76px;background:linear-gradient(90deg,#f7f8fa,#fff);border-bottom:1px solid #e4e7ed;overscroll-behavior-inline:contain}
.line-tile{flex:0 0 126px;scroll-snap-align:start;min-height:59px;padding:7px 9px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;text-align:left;background:#fff;border:1px solid #e3e7ed;border-radius:10px;color:#252a35;box-shadow:0 2px 6px #00000008;transition:transform .15s,background .15s,border-color .15s}
.line-tile small{font-size:9px;color:#7e8592;font-weight:950;letter-spacing:.08em}.line-tile strong{font-size:10px;white-space:nowrap}.line-tile span{font-size:9px;color:#69717d}.line-tile.ringing{border-color:#e62548;background:#fff0f3;animation:lineIncoming 1.5s ease-in-out infinite}.line-tile.held{border-color:#dfa144;background:#fff8eb}.line-tile.connected{border-color:#54b187;background:#f0fff7}.line-tile.line-active{outline:2px solid #c9002c;outline-offset:-2px}.line-tile:active{transform:scale(.97)}.line-placeholder{align-self:center;font-size:11px;color:#727987}
@keyframes lineIncoming{50%{background:#ffe0e6}}
.phone-call-actions{padding:3px 16px 9px;display:flex;gap:8px;flex:0 0 auto}.phone-call-actions button{flex:1;border:1px solid #e9b8c1;background:#fff1f4;color:#ae0929;padding:9px 7px;min-height:38px;border-radius:9px;font-weight:1000;font-size:10px}.phone-call-actions .phone-callback{background:#f7f7fa;border-color:#e2e6eb;color:#535a65}.phone-call-actions button:active{transform:scale(.98)}
.nearest-strip{padding:12px 14px;background:#fff9fb;border-bottom:1px solid #f3dce1;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.nearest-strip>span{color:#a40929;font-weight:1000;letter-spacing:.08em;font-size:9px}.nearest-strip button{border:1px solid #ecb3c0;color:#a90629;background:white;border-radius:7px;min-height:35px;padding:7px 9px;font-size:10px;font-weight:950}.nearest-strip button:disabled{opacity:.5}
.radio-command{background:linear-gradient(#fff,#fcf5f7);border:1px solid #efced5;border-radius:12px;margin:0 0 13px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.radio-command label{font-size:9px;color:#a00928;font-weight:1000;letter-spacing:.08em}.radio-command label:first-child{grid-column:1}.radio-command select{width:100%;font-size:11px;min-width:0;min-height:38px;border:1px solid #dfe3ea;border-radius:8px;background:white;color:#252a35;padding:5px}.radio-command button{grid-column:1/-1;min-height:39px}.shift-expanded{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}.shift-expanded>div{padding:10px 7px;background:#f7f8fa;border:1px solid #e7e8ed;border-radius:9px;display:flex;flex-direction:column;gap:4px;text-align:center}.shift-expanded small{font-size:9px;color:#636e7d;font-weight:900}.shift-expanded b{font-size:19px;color:#bd0b30}
.mixer{grid-column:1/-1;display:flex;flex-direction:column;gap:8px;padding:14px;background:#fff6f8;border:1px solid #f0cdd4;border-radius:10px}.mixer strong{font-weight:1000;letter-spacing:.05em;color:#b30a2b;font-size:11px}.mixer label{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:800}.mixer output{color:#c80a30;font-variant-numeric:tabular-nums}.mixer input[type=range]{width:100%;accent-color:#d70831;min-height:28px}
.test-results{padding:14px;border:1px solid #e1e5ed;border-radius:11px;background:#fafbfc;display:flex;flex-direction:column;gap:8px;margin:14px 0}.test-results>strong{font-size:13px;color:#a60828}.test-results p{font-size:12px;color:#69717e;line-height:1.6;margin:0}.test-item{padding:8px;border:1px solid #d4e8dd;border-radius:8px;background:#f1fcf5;display:flex;flex-direction:column;gap:3px}.test-item.fail{border-color:#edd4a0;background:#fff8e9}.test-item b{font-size:11px;color:#1d7049}.test-item.fail b{color:#9c5a00}.test-item span{font-size:11px;color:#5a6470;line-height:1.4}.test-results .test-note{padding-top:5px;border-top:1px solid #e8e9ed}
@media(max-width:1150px){.bar-phone{padding:9px 10px;font-size:10px}.command-bar{gap:7px}}
@media(max-width:900px){.bar-phone{min-height:36px;padding:6px 9px}.line-tray{min-height:70px;padding:7px 9px}.line-tile{flex-basis:114px;min-height:56px}.phone-call-actions{padding:2px 11px 8px}.phone-call-actions button{min-height:36px}.phone-transcript{min-height:85px;max-height:22dvh}}
@media(max-width:530px){.line-tray{min-height:57px;padding:5px 9px}.line-tile{min-height:47px;flex-basis:110px;padding:5px}.phone-call-actions{padding:1px 8px 5px}.phone-call-actions button{font-size:9px;padding:6px 3px;min-height:32px}.phone-transcript{min-height:62px;max-height:none}.phone-head{padding:7px 10px 5px}.phone-controls{padding:6px 6px 4px}.circle-control{height:49px}.circle-control small{font-size:7px}.quick-questions{padding-block:4px}.voice-help{padding:3px 10px max(8px,env(safe-area-inset-bottom));line-height:1.3}.phone-separator{padding-bottom:4px}.phone-toggle-row{padding-bottom:5px}.live-caption{padding:6px;font-size:10px;min-height:29px;margin-bottom:5px}}
@media(max-height:770px) and (min-width:531px){.line-tray{min-height:55px;padding:4px 10px}.line-tile{min-height:45px}.phone-call-actions button{min-height:32px;padding:5px}.phone-transcript{min-height:48px;max-height:16dvh}.phone-head{padding:6px 12px 4px}.phone-controls{padding:5px}}
@media(prefers-reduced-motion:reduce){.line-tile.ringing,.bar-phone.new-lines{animation:none}}
.call-state.held{color:#9d620a;background:#fff0d3;border:1px solid #e9c172}
@media(max-width:530px){.phone-backdrop{padding:0;align-items:stretch}.phone-window{width:100%;height:100dvh;max-height:100dvh;border-radius:0}}
/* Short iPad landscape: keep the complete control row and the input visible. */
@media(max-height:860px) and (min-width:531px){
 .phone-head{padding:7px 14px 4px}.caller-avatar{width:46px;height:46px;font-size:25px}.caller-name h2{font-size:20px}.caller-traits{margin-top:3px}
 .line-tray{padding:5px 12px;min-height:53px}.line-tile{min-height:43px;padding:4px 7px}
 .voice-wave{height:25px}.voice-state{min-height:18px;margin-bottom:3px;font-size:10px}.live-caption{padding:5px 9px;margin-bottom:5px;min-height:25px;font-size:10px}
 .phone-call-actions{padding:1px 12px 5px}.phone-call-actions button{min-height:30px;padding:5px}
 .phone-toggle-row{padding:0 12px 4px}.phone-toggle{min-height:31px;padding:5px}.phone-separator{padding:0 12px 4px}
 .phone-transcript{min-height:56px;max-height:18dvh;padding:8px}.quick-questions{padding-block:5px}.reply-row{padding-block:5px}
 .phone-controls{padding:5px 8px 2px;gap:7px}.circle-control{height:45px;width:65px;font-size:21px}.circle-control small{font-size:7px}.voice-help{padding:2px 8px max(4px,env(safe-area-inset-bottom));font-size:9px;line-height:1.28}
}
