.function-map__filter-time{grid-template-columns:.7fr 1fr 1fr .9fr}
@media(max-width:1100px){.function-map__filter-time{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.function-map__filter-time{grid-template-columns:1fr}}
[data-floating]{z-index:30!important;box-sizing:border-box;resize:both;overflow:auto;touch-action:none}
[data-floating]:focus-within,[data-floating].is-dragging{z-index:60!important;box-shadow:0 24px 70px rgba(0,0,0,.72)!important}
.function-map__float-handle,[data-float-handle]{cursor:move;user-select:none;touch-action:none}
.function-map__float-handle{grid-column:1/-1;display:block;padding:2px 5px 7px;color:#b89b60;font-size:8px;font-weight:700;letter-spacing:.12em;text-align:center;text-transform:uppercase}
.function-map__joystick{--joy-gold:#d8b76c;--joy-ink:#0a0e0a;min-width:338px;min-height:356px;max-width:520px;max-height:600px;padding:0!important;overflow:auto;transform:translateX(-50%);border:1px solid rgba(224,191,112,.34)!important;border-radius:26px!important;background:radial-gradient(circle at 50% 18%,rgba(105,119,78,.24),transparent 37%),linear-gradient(155deg,rgba(24,29,22,.97),rgba(7,10,7,.98))!important;box-shadow:0 30px 80px rgba(0,0,0,.62),inset 0 1px rgba(255,245,211,.13),inset 0 0 46px rgba(190,151,64,.045)!important;backdrop-filter:blur(24px) saturate(1.25)}
.function-map__joystick::before{content:"";position:absolute;inset:7px;pointer-events:none;border:1px solid rgba(216,183,108,.1);border-radius:20px}
.function-map__joystick-head{position:relative;display:flex!important;grid-column:auto!important;align-items:center;gap:10px;padding:14px 17px 10px!important;border-bottom:1px solid rgba(216,183,108,.13);text-align:left!important}.function-map__joystick-head>i{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(226,193,112,.38);border-radius:50%;background:radial-gradient(circle,#e3c477 0 10%,#8c672c 11% 25%,#171a13 27%);color:#f5d88e;font-style:normal;filter:drop-shadow(0 0 9px rgba(224,181,82,.35))}.function-map__joystick-head span{display:grid;gap:2px;flex:1}.function-map__joystick-head b{color:#f5ead1;font:600 11px system-ui;letter-spacing:.13em;text-transform:uppercase}.function-map__joystick-head small{color:#778173;font:500 8px system-ui;letter-spacing:.08em}.function-map__joystick-head em{color:#806e45;font-size:17px;font-style:normal}
.function-map__joystick-body{position:relative;display:grid;grid-template-columns:1fr 72px;gap:9px;padding:14px 16px 11px}.function-map__orbit-pad{position:relative;height:202px}.function-map__orbit-ring{position:absolute;inset:6px 19px 7px;border:1px solid rgba(216,183,108,.25);border-radius:50%;background:radial-gradient(circle at 50% 44%,rgba(218,183,104,.13),transparent 33%),conic-gradient(from 45deg,rgba(216,183,108,.02),rgba(216,183,108,.18),rgba(216,183,108,.02),rgba(216,183,108,.18),rgba(216,183,108,.02));box-shadow:inset 0 0 28px rgba(0,0,0,.48),0 0 24px rgba(199,158,66,.06)}.function-map__orbit-ring::before,.function-map__orbit-ring::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(220,189,115,.1)}.function-map__orbit-ring::before{inset:18px}.function-map__orbit-ring::after{inset:43px;border-color:rgba(220,189,115,.18)}
.function-map__joystick button{position:absolute;z-index:2;display:grid!important;min-width:0!important;min-height:0!important;place-items:center;padding:0!important;border:1px solid rgba(224,194,124,.24)!important;border-radius:14px!important;background:linear-gradient(145deg,rgba(52,59,44,.94),rgba(16,20,15,.96))!important;color:#d8c28d!important;box-shadow:inset 0 1px rgba(255,255,255,.08),0 8px 18px rgba(0,0,0,.28)!important;transition:transform .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease!important}.function-map__joystick button:hover{z-index:4;transform:translateY(-2px) scale(1.04);border-color:rgba(237,202,120,.62)!important;color:#ffe9ae!important;box-shadow:0 10px 28px rgba(0,0,0,.44),0 0 18px rgba(218,174,76,.14)!important}.function-map__joystick button:active{transform:scale(.96)}.function-map__joystick button i{font:400 18px Georgia,serif;font-style:normal}.function-map__joystick button small{color:#7f897a;font:600 7px system-ui;letter-spacing:.04em}.function-map__orbit-pad>button{width:48px;height:48px}.function-map__orbit-pad .is-up{top:0;left:calc(50% - 24px)}.function-map__orbit-pad .is-left{top:calc(50% - 24px);left:7px}.function-map__orbit-pad .is-right{top:calc(50% - 24px);right:7px}.function-map__orbit-pad .is-down{bottom:0;left:calc(50% - 24px)}
.function-map__joystick .is-capture{top:calc(50% - 44px);left:calc(50% - 44px);width:88px;height:88px;border:1px solid rgba(255,224,151,.7)!important;border-radius:50%!important;background:radial-gradient(circle at 38% 29%,#f3d98e 0 5%,#c79b43 24%,#79531e 63%,#2b1c09 100%)!important;color:#fff4ce!important;box-shadow:inset 0 2px 4px rgba(255,255,255,.32),inset 0 -10px 18px rgba(38,19,0,.45),0 0 0 6px rgba(197,153,62,.08),0 12px 28px rgba(0,0,0,.54)!important}.function-map__joystick .is-capture::before{content:"";position:absolute;inset:7px;border:1px dashed rgba(255,235,184,.42);border-radius:50%;animation:joystickJewel 16s linear infinite}.function-map__joystick .is-capture i{font-size:24px;line-height:1}.function-map__joystick .is-capture b{font:700 8px system-ui;letter-spacing:.13em;text-transform:uppercase}.function-map__joystick .is-capture small{color:#f0d797;font-size:6px}.function-map__joystick .is-capture:hover{transform:scale(1.04);box-shadow:inset 0 2px 4px rgba(255,255,255,.35),0 0 34px rgba(225,180,77,.32),0 14px 32px rgba(0,0,0,.58)!important}
.function-map__joystick-tools{position:relative;display:grid;align-content:start;gap:9px;padding-left:10px;border-left:1px solid rgba(216,183,108,.13)}.function-map__joystick-tools>span,.function-map__joystick-spacing>span{color:#7f897a;font:700 7px system-ui;letter-spacing:.13em;text-transform:uppercase}.function-map__joystick-tools button{position:relative;width:56px;height:68px}.function-map__joystick-tools button i{font-size:25px}.function-map__joystick-spacing{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 16px 15px;padding:10px 11px;border:1px solid rgba(216,183,108,.13);border-radius:13px;background:rgba(255,255,255,.025)}.function-map__joystick-spacing div{display:flex;gap:7px}.function-map__joystick-spacing button{position:relative;width:72px;height:38px;border-radius:9px!important;grid-template-columns:22px 1fr!important}.function-map__joystick-spacing button i{font-size:15px}.function-map__joystick-spacing button small{font-size:7px}
@keyframes joystickJewel{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.function-map__joystick .is-capture::before{animation:none}}

/* Настоящая аналоговая рукоять: направление и скорость задаются отклонением. */
.function-map__orbit-pad{height:218px;touch-action:none;user-select:none}.function-map__orbit-ring{inset:7px 11px 15px;border:1px solid rgba(231,201,129,.32);background:radial-gradient(circle at 50% 50%,rgba(5,8,5,.94) 0 31%,rgba(189,147,58,.11) 32% 33%,rgba(19,24,17,.91) 34% 56%,rgba(205,166,76,.13) 57% 58%,rgba(8,11,8,.96) 59%),conic-gradient(from -12deg,rgba(227,190,103,.08),rgba(227,190,103,.22),rgba(227,190,103,.06),rgba(227,190,103,.22),rgba(227,190,103,.08));box-shadow:inset 0 0 42px rgba(0,0,0,.82),inset 0 1px rgba(255,240,198,.11),0 13px 32px rgba(0,0,0,.46)}.function-map__orbit-ring::before{inset:12px;border-style:dashed;border-color:rgba(220,184,98,.18)}.function-map__orbit-ring::after{inset:50px;border-color:rgba(230,198,120,.2);box-shadow:0 0 18px rgba(212,167,65,.08)}.function-map__orbit-ring>i{position:absolute;top:11px;left:50%;transform:translateX(-50%);color:#837958;font:700 6px system-ui;font-style:normal;letter-spacing:.18em;text-transform:uppercase}.function-map__orbit-ring>b{position:absolute;color:rgba(213,190,139,.48);font:400 11px system-ui}.function-map__orbit-ring>b:nth-of-type(1){top:26px;left:calc(50% - 4px)}.function-map__orbit-ring>b:nth-of-type(2){right:27px;top:calc(50% - 7px)}.function-map__orbit-ring>b:nth-of-type(3){bottom:25px;left:calc(50% - 4px)}.function-map__orbit-ring>b:nth-of-type(4){left:27px;top:calc(50% - 7px)}
.function-map__joystick .function-map__stick{--stick-x:0px;--stick-y:0px;top:calc(50% - 38px);left:calc(50% - 38px);width:76px;height:76px;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;transform:translate(var(--stick-x),var(--stick-y));transition:transform .28s cubic-bezier(.2,1.7,.3,1),filter .18s ease!important;cursor:grab}.function-map__joystick .function-map__stick::before{content:"";position:absolute;z-index:-1;left:calc(50% - 10px);top:42px;width:20px;height:69px;border-radius:5px 5px 14px 14px;background:linear-gradient(90deg,#513918,#d4ac56 40%,#f2d58b 55%,#68491c);box-shadow:7px 11px 13px rgba(0,0,0,.52);transform:perspective(100px) rotateX(-27deg);transform-origin:top}.function-map__joystick .function-map__stick::after{content:"";position:absolute;z-index:-2;left:calc(50% - 38px);top:86px;width:76px;height:31px;border:1px solid rgba(224,188,102,.3);border-radius:50%;background:radial-gradient(ellipse,#6f5226 0 12%,#25251a 15% 42%,#090c09 46%);box-shadow:0 9px 22px rgba(0,0,0,.7)}.function-map__joystick .function-map__stick>span{position:absolute;inset:0;display:grid;place-content:center;gap:2px;border:1px solid rgba(255,224,151,.78);border-radius:50%;background:radial-gradient(circle at 34% 25%,#f5dc98 0 4%,#ca9e48 22%,#76501c 62%,#261706 100%);color:#fff0c4;box-shadow:inset 0 2px 4px rgba(255,255,255,.34),inset 0 -11px 17px rgba(37,18,0,.5),0 0 0 5px rgba(202,158,64,.09),0 13px 21px rgba(0,0,0,.58)}.function-map__joystick .function-map__stick>span::after{content:"";position:absolute;inset:7px;border:1px dashed rgba(255,236,188,.38);border-radius:50%;animation:joystickJewel 16s linear infinite}.function-map__joystick .function-map__stick i{font-size:21px}.function-map__joystick .function-map__stick b{font:700 7px system-ui;letter-spacing:.12em;text-transform:uppercase}.function-map__joystick .function-map__stick:hover{transform:translate(var(--stick-x),calc(var(--stick-y) - 2px));filter:brightness(1.14);box-shadow:none!important}.function-map__joystick .function-map__stick.is-engaged{transition:none!important;cursor:grabbing;filter:brightness(1.18) drop-shadow(0 0 12px rgba(223,177,73,.28))}.function-map__stick-hint{position:absolute;bottom:-1px;left:0;right:0;color:#6f776a;font:600 7px system-ui;text-align:center;letter-spacing:.06em}
.function-map__history{min-width:230px;min-height:48px;max-width:650px;max-height:520px;resize:both}
.function-map__history header{cursor:move;user-select:none}
.function-map__legend{min-width:360px;max-width:900px;max-height:240px;flex-wrap:wrap;resize:both;overflow:auto}
.function-map__legend .function-map__float-handle{width:100%;padding:0 4px 3px;text-align:left}
.function-map__detail{z-index:35!important}

/* Цельная адаптивная раскладка джойстика, независимая от прежней сетки. */
.function-map__joystick{left:18px;right:auto;top:18px;bottom:auto;transform:none}
.function-map__joystick{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto minmax(226px,1fr) auto!important;width:360px;min-width:340px;min-height:374px;max-width:440px;max-height:520px;overflow:hidden!important;resize:both}.function-map__joystick-head{grid-column:1!important;grid-row:1!important;width:auto!important;box-sizing:border-box}.function-map__joystick-body{grid-column:1!important;grid-row:2!important;grid-template-columns:minmax(226px,1fr) 70px!important;width:100%;height:100%;min-height:226px;box-sizing:border-box}.function-map__orbit-pad{width:100%;height:100%;min-width:226px;min-height:218px}.function-map__orbit-ring{left:50%;right:auto;top:50%;bottom:auto;width:min(190px,calc(100% - 24px));height:min(190px,calc(100% - 20px));aspect-ratio:1;transform:translate(-50%,-50%)}.function-map__joystick .function-map__stick{top:50%;left:50%;margin:-38px 0 0 -38px}.function-map__stick-hint{bottom:0}.function-map__joystick-tools{grid-template-rows:auto 1fr 1fr;height:100%;box-sizing:border-box}.function-map__joystick-tools button{width:52px;height:auto;min-height:66px!important}.function-map__joystick-spacing{grid-column:1!important;grid-row:3!important;box-sizing:border-box}.function-map__joystick-spacing button{position:relative!important}.function-map__joystick-spacing div{flex-shrink:0}
@media(max-width:720px){.function-map__joystick{width:340px;max-width:calc(100% - 16px)}.function-map__joystick-body{grid-template-columns:minmax(210px,1fr) 64px!important}}
.function-map__joystick{opacity:0;visibility:hidden;pointer-events:none;resize:none!important;transition:opacity .32s ease,visibility .32s ease,box-shadow .2s ease!important}.function-map.is-map-ready .function-map__joystick{opacity:1;visibility:visible;pointer-events:auto}.function-map__history.is-collapsed{width:220px!important;height:42px!important;min-width:220px!important;min-height:42px!important;max-height:42px!important;resize:none!important}.function-map__history.is-collapsed [data-history]{display:none!important}.function-map__history.is-collapsed header{height:42px;box-sizing:border-box;border:0}.function-map__joystick-tools{grid-template-rows:auto repeat(3,1fr)!important}.function-map__joystick-tools button{min-height:48px!important}.function-map__joystick-spacing label{display:grid;grid-template-columns:auto 76px auto;align-items:center;gap:7px;color:#8f998b;font:600 7px system-ui;letter-spacing:.06em;text-transform:uppercase}.function-map__joystick-spacing input{width:76px;accent-color:#d8b76c}.function-map__joystick-spacing output{min-width:30px;color:#d8c28d}.function-map__loader{position:absolute;z-index:5;top:14px;left:50%;display:flex;align-items:center;gap:9px;padding:8px 13px;border:1px solid rgba(226,193,112,.22);border-radius:999px;background:rgba(10,14,10,.78);color:#d9cfb5;font:600 9px system-ui;letter-spacing:.08em;box-shadow:0 10px 30px rgba(0,0,0,.24);backdrop-filter:blur(14px);opacity:0;pointer-events:none;transform:translate(-50%,-7px);transition:opacity .2s ease,transform .2s ease}.function-map__loader.is-visible{opacity:1;transform:translate(-50%,0)}.function-map__loader i{width:9px;height:9px;border:1px solid rgba(225,190,108,.28);border-top-color:#e1be6c;border-radius:50%;animation:functionMapSpin .8s linear infinite}.function-map__toast{position:absolute;z-index:60;left:50%;bottom:28px;max-width:min(440px,calc(100% - 32px));padding:11px 16px;border:1px solid rgba(232,201,130,.32);border-radius:14px;background:rgba(12,16,11,.92);color:#f2e6c8;font:600 10px system-ui;box-shadow:0 18px 48px rgba(0,0,0,.46);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transform:translate(-50%,12px) scale(.98);transition:opacity .25s ease,transform .25s ease}.function-map__toast.is-visible{opacity:1;transform:translate(-50%,0) scale(1)}.function-map__canvas.is-capturing::after{content:"";position:absolute;z-index:55;inset:0;border:2px solid rgba(246,220,157,.9);box-shadow:inset 0 0 80px rgba(238,196,100,.24);pointer-events:none;animation:functionMapCapture .5s ease-out both}@keyframes functionMapSpin{to{transform:rotate(360deg)}}@keyframes functionMapCapture{0%{opacity:0}30%{opacity:1}100%{opacity:0}}
.function-map__joystick{max-width:720px;max-height:760px;touch-action:auto}.function-map__joystick-head{touch-action:none}.function-map__joystick-collapse{position:relative!important;display:grid!important;width:28px!important;height:28px!important;min-height:28px!important;flex:0 0 28px;border-radius:9px!important}.function-map__joystick.is-collapsed{grid-template-rows:58px!important;width:270px!important;height:58px!important;min-width:270px!important;min-height:58px!important;max-height:58px!important;resize:none}.function-map__joystick.is-collapsed .function-map__joystick-body,.function-map__joystick.is-collapsed .function-map__joystick-spacing{display:none!important}.function-map__joystick.is-collapsed .function-map__joystick-head{border-bottom:0}.function-map__joystick.is-collapsed::before{inset:5px}
.function-map__joystick-spacing{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:9px!important;width:auto!important;min-width:0;margin:0 16px 15px!important;padding:10px 11px!important;overflow:hidden}
.function-map__speed{display:grid!important;grid-template-columns:minmax(94px,1fr) minmax(70px,1.25fr) 42px!important;width:100%;min-width:0;gap:10px!important;padding:2px 0 9px;border-bottom:1px solid rgba(216,183,108,.1);box-sizing:border-box}
.function-map__speed>span{display:grid;min-width:0;gap:2px}.function-map__speed b{overflow:hidden;color:#cfc2a0;font:650 8px/1.2 system-ui;letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis}.function-map__speed small{color:#687267;font:500 7px/1.2 system-ui;letter-spacing:.02em;text-transform:none}
.function-map__speed input{display:block;width:100%!important;min-width:0;height:18px;margin:0;padding:0;background:transparent;accent-color:#d8b76c}.function-map__speed output{display:grid;min-width:0!important;height:24px;place-items:center;border:1px solid rgba(216,183,108,.18);border-radius:8px;background:rgba(216,183,108,.07);color:#e3ca8c!important;font:700 8px system-ui;letter-spacing:.02em}
.function-map__spacing-row{display:flex!important;align-items:center;justify-content:space-between;min-width:0;gap:9px}.function-map__spacing-row>span{overflow:hidden;min-width:0;color:#7f897a;font:700 7px system-ui;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis}.function-map__spacing-row>div{display:flex;flex:0 0 auto;gap:6px}.function-map__spacing-row button{width:68px!important}
@media(max-width:380px){.function-map__speed{grid-template-columns:minmax(80px,1fr) minmax(58px,1fr) 38px!important;gap:7px!important}.function-map__spacing-row button{width:62px!important}.function-map__joystick-spacing{margin-inline:10px!important}}
.function-map__joystick:not(.is-collapsed){display:grid!important;grid-template-rows:58px minmax(0,1fr) auto!important;width:min(380px,calc(100% - 24px))!important;height:min(470px,calc(100% - 24px))!important;min-width:0!important;min-height:390px!important;max-width:380px!important;max-height:470px!important;box-sizing:border-box!important;overflow:hidden!important}
.function-map__joystick *{box-sizing:border-box}.function-map__joystick-body{min-width:0!important;min-height:0!important;height:auto!important;overflow:hidden}.function-map__orbit-pad{min-width:0!important;min-height:0!important;height:100%!important}.function-map__joystick-tools{min-width:0;min-height:0;overflow:hidden}.function-map__joystick-tools button{width:100%!important;max-width:52px!important;min-height:0!important}.function-map__joystick-spacing{min-width:0;max-width:calc(100% - 32px);align-self:end}.function-map__spacing-row{max-width:100%;overflow:hidden}.function-map__spacing-row>div{min-width:0}.function-map__spacing-row button{max-width:68px;min-width:0!important}.function-map__speed{max-width:100%;overflow:hidden}.function-map__speed>*{min-width:0}
@media(max-height:700px){.function-map__joystick:not(.is-collapsed){height:calc(100% - 16px)!important;min-height:330px!important;top:8px!important}.function-map__joystick-body{padding-block:8px}.function-map__joystick-spacing{margin-bottom:9px!important;padding-block:7px!important}.function-map__orbit-ring{max-width:160px;max-height:160px}}
.function-map__detail,.function-map__history,.function-map__legend{z-index:42!important;border:1px solid rgba(224,191,112,.3)!important;border-radius:20px!important;background:radial-gradient(circle at 20% 0,rgba(105,119,78,.15),transparent 34%),linear-gradient(155deg,rgba(24,29,22,.96),rgba(7,10,7,.97))!important;box-shadow:0 24px 64px rgba(0,0,0,.52),inset 0 1px rgba(255,245,211,.1)!important;backdrop-filter:blur(22px) saturate(1.2)}.function-map__detail{width:min(520px,calc(100% - 32px));height:min(620px,calc(100% - 32px));min-width:320px;min-height:180px}.function-map__detail>header,.function-map__history>header,.function-map__legend>header{display:flex!important;align-items:center;gap:10px;min-height:52px;padding:9px 12px!important;border-bottom:1px solid rgba(216,183,108,.12)!important;cursor:move;user-select:none}.function-map__detail>header>i,.function-map__history>header>i,.function-map__legend>header>i{display:grid;width:31px;height:31px;flex:0 0 31px;place-items:center;border:1px solid rgba(226,193,112,.3);border-radius:10px;background:rgba(216,183,108,.07);color:#e1c477;font:400 15px Georgia,serif;font-style:normal}.function-map__detail>header>span,.function-map__history>header>span,.function-map__legend>header>span{display:grid;min-width:0;gap:2px;flex:1}.function-map__detail>header b,.function-map__history>header b,.function-map__legend>header b{overflow:hidden;color:#f2e8d0;font:650 10px system-ui;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis}.function-map__detail>header small,.function-map__history>header small,.function-map__legend>header small{color:#707b6e;font:500 8px system-ui;letter-spacing:.02em}.function-map__detail>header button,.function-map__history>header button,.function-map__legend>header button{position:relative!important;display:grid!important;width:29px!important;height:29px!important;min-height:29px!important;padding:0!important;place-items:center;border:1px solid rgba(255,255,255,.1)!important;border-radius:9px!important;background:rgba(255,255,255,.045)!important;color:#dcc58f!important;box-shadow:none!important}.function-map__history{width:min(340px,calc(100% - 32px));height:min(300px,calc(100% - 32px));max-height:520px!important}.function-map__history [data-history]{max-height:none!important;min-height:0;height:calc(100% - 52px)}.function-map__legend{display:block!important;width:min(520px,calc(100% - 32px));min-width:280px!important;max-width:650px!important;max-height:260px!important;padding:0!important;overflow:hidden!important}.function-map__legend-body{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;overflow:auto}.function-map__legend.is-collapsed{width:220px!important;height:52px!important;min-width:220px!important;min-height:52px!important;max-height:52px!important;resize:none!important}.function-map__legend.is-collapsed .function-map__legend-body{display:none}.function-map__detail.is-collapsed{height:52px!important;min-height:52px!important}.function-map__diagnostics{display:grid;gap:8px;margin-top:13px}.function-map__diagnostics>h3{display:flex;justify-content:space-between;align-items:center;margin:0;color:#f0dfb6;font:650 12px system-ui}.function-map__diagnostics>h3 b{display:grid;min-width:23px;height:23px;place-items:center;border-radius:50%;background:rgba(218,87,74,.18);color:#ff9185;font-size:9px}.function-map__diagnostics details{border:1px solid rgba(231,104,91,.2);border-radius:11px;background:rgba(80,18,14,.12);overflow:hidden}.function-map__diagnostics summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding:9px 10px;color:#e6d7c1;cursor:pointer}.function-map__diagnostics summary b{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px}.function-map__diagnostics summary time,.function-map__diagnostics summary small{color:#8e9388;font-size:8px}.function-map__diagnostics p{margin:0;padding:8px 10px;border-top:1px solid rgba(255,255,255,.06);color:#f0b1aa!important}.function-map__diagnostics pre{max-height:360px;margin:0;padding:12px;border-top:1px solid rgba(255,255,255,.06);background:#050705;color:#d8e0d5;font:500 10px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;overflow:auto}

/* Native tooltip replacement */
.function-map__detail.is-idle::after{
  content:attr(data-idle-hint);
  position:absolute;
  top:50%;
  right:58px;
  width:max-content;
  max-width:220px;
  padding:7px 10px;
  border:1px solid rgba(224,191,112,.18);
  border-radius:9px;
  background:rgba(7,10,7,.96);
  color:#a59d89;
  font:600 9px/1.35 system-ui;
  letter-spacing:.025em;
  box-shadow:0 10px 28px rgba(0,0,0,.4);
  opacity:0;
  pointer-events:none;
  transform:translateY(-50%) translateX(4px);
  transition:opacity .16s ease,transform .16s ease;
  white-space:nowrap;
}

.function-map__detail.is-idle:hover::after{
  opacity:1;
  transform:translateY(-50%) translateX(0);
}

/* Active detail */
.function-map__detail:not(.is-idle){
  opacity:1;
  pointer-events:auto;
}


/* Кнопка Детализации в правом верхнем углу карты */
.function-map__detail-launcher{
  position:absolute!important;
  z-index:46;
  top:18px;
  right:18px;

  display:grid;
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  min-height:46px!important;
  padding:0!important;
  place-items:center;

  border:1px solid rgba(224,191,112,.26)!important;
  border-radius:14px!important;

  background:
    radial-gradient(circle at 32% 24%,
      rgba(232,204,135,.12),
      transparent 45%),
    linear-gradient(155deg,
      rgba(25,30,22,.96),
      rgba(7,10,7,.98))!important;

  color:rgba(221,196,137,.48)!important;

  box-shadow:
    0 16px 40px rgba(0,0,0,.4),
    inset 0 1px rgba(255,245,211,.08)!important;

  backdrop-filter:blur(18px);
  cursor:default!important;
  transition:
    opacity .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease!important;
}

.function-map__detail-launcher span{
  display:grid;
  width:28px;
  height:28px;
  place-items:center;

  border:1px solid rgba(224,191,112,.18);
  border-radius:9px;

  background:rgba(216,183,108,.035);
  font:400 17px/1 Georgia,serif;
}

/* Неактивное состояние */
.function-map__detail-launcher:disabled{
  opacity:.52!important;
  filter:saturate(.55);
  pointer-events:auto;
}

/* Tooltip */
.function-map__detail-launcher:disabled:hover::after{
  content:"Выберите элемент карты";
  position:absolute;
  top:50%;
  right:58px;

  width:max-content;
  padding:8px 11px;

  border:1px solid rgba(224,191,112,.2);
  border-radius:9px;

  background:rgba(7,10,7,.97);
  color:#b5aa91;

  font:600 9px/1.3 system-ui;
  letter-spacing:.025em;
  white-space:nowrap;

  box-shadow:0 12px 30px rgba(0,0,0,.42);

  transform:translateY(-50%);
  pointer-events:none;
}

.function-map__detail-launcher[hidden]{
  display:none!important;
}


/* function-map tool-dock-v1 */

/* Никаких floating/resizable панелей. */
.function-map__joystick,
.function-map__detail,
.function-map__history,
.function-map__legend{
  position:absolute!important;
  z-index:44!important;

  top:76px!important;
  right:18px!important;
  bottom:auto!important;
  left:auto!important;

  transform:none!important;
  resize:none!important;

  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.function-map__joystick.is-tool-hidden,
.function-map__detail.is-tool-hidden,
.function-map__history.is-tool-hidden,
.function-map__legend.is-tool-hidden{
  display:none!important;
}

/* Старые внутренние collapse-кнопки больше не нужны. */
[data-detail-collapse],
[data-history-toggle],
[data-legend-toggle],
[data-joystick-collapse]{
  display:none!important;
}

/* Header теперь просто заголовок, не drag handle. */
.function-map__joystick-head,
.function-map__detail>header,
.function-map__history>header,
.function-map__legend>header{
  cursor:default!important;
}

/* Верхний dock */
.function-map__tool-dock{
  position:absolute;
  z-index:56;
  top:18px;
  right:18px;

  display:flex;
  align-items:center;
  gap:6px;

  padding:6px;

  border:1px solid rgba(224,191,112,.23);
  border-radius:16px;

  background:
    radial-gradient(circle at 15% 0,
      rgba(121,139,91,.11),
      transparent 42%),
    linear-gradient(
      155deg,
      rgba(24,29,22,.96),
      rgba(7,10,7,.97)
    );

  box-shadow:
    0 18px 48px rgba(0,0,0,.44),
    inset 0 1px rgba(255,245,211,.08);

  backdrop-filter:blur(20px) saturate(1.15);
}

.function-map__tool-dock button{
  position:relative!important;

  display:grid!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;

  padding:0!important;
  place-items:center;

  border:1px solid rgba(255,255,255,.075)!important;
  border-radius:11px!important;

  background:rgba(255,255,255,.035)!important;
  color:#b8aa87!important;

  box-shadow:none!important;

  cursor:pointer!important;

  transition:
    background .18s ease,
    border-color .18s ease,
    color .18s ease,
    opacity .18s ease,
    transform .18s ease!important;
}

.function-map__tool-dock button span{
  font:400 17px/1 Georgia,serif;
}

.function-map__tool-dock button:hover:not(:disabled){
  border-color:rgba(225,193,116,.34)!important;
  background:rgba(216,183,108,.09)!important;
  color:#efd797!important;
  transform:translateY(-1px);
}

.function-map__tool-dock button.is-active{
  border-color:rgba(230,197,117,.52)!important;
  background:
    radial-gradient(circle at 35% 25%,
      rgba(245,218,151,.18),
      transparent 55%),
    rgba(198,157,65,.13)!important;

  color:#f2d992!important;

  box-shadow:
    inset 0 0 0 1px rgba(255,237,187,.055),
    0 0 20px rgba(204,165,76,.08)!important;
}

/* Детализация пока ничего не выбрано */
.function-map__tool-dock button:disabled{
  opacity:.28!important;
  filter:saturate(.3);
  cursor:default!important;
}

/* Docked panels */
.function-map__detail{
  width:min(520px,calc(100% - 36px))!important;
  height:min(620px,calc(100% - 112px))!important;
  max-height:calc(100% - 112px)!important;
}

.function-map__history{
  width:min(360px,calc(100% - 36px))!important;
  height:min(360px,calc(100% - 112px))!important;
  max-height:calc(100% - 112px)!important;
}

.function-map__legend{
  width:min(520px,calc(100% - 36px))!important;
  max-height:calc(100% - 112px)!important;
}

.function-map__joystick{
  width:min(380px,calc(100% - 36px))!important;
  height:min(470px,calc(100% - 112px))!important;
  min-height:390px!important;
  max-height:calc(100% - 112px)!important;

  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}

/* Панели не прыгают из-за старого floating inline-style. */
.function-map__tool-dock + .function-map__joystick,
.function-map__detail,
.function-map__history,
.function-map__legend{
  margin:0!important;
}

/* Мобильное положение */
@media(max-width:720px){
  .function-map__tool-dock{
    top:10px;
    right:10px;
  }

  .function-map__tool-dock button{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
  }

  .function-map__joystick,
  .function-map__detail,
  .function-map__history,
  .function-map__legend{
    top:64px!important;
    right:10px!important;
    width:calc(100% - 20px)!important;
    max-width:none!important;
  }
}


/* function-map help-and-navigator-buttons-v1 */

/* Навигатор — отдельная кнопка справа снизу */
.function-map__navigator-button{
  position:absolute!important;
  z-index:56;
  right:18px;
  bottom:18px;

  display:grid!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  padding:0!important;
  place-items:center;

  border:1px solid rgba(224,191,112,.28)!important;
  border-radius:15px!important;

  background:
    radial-gradient(circle at 35% 25%,rgba(232,204,135,.13),transparent 48%),
    linear-gradient(155deg,rgba(24,29,22,.97),rgba(7,10,7,.98))!important;

  color:#d9bf7e!important;

  box-shadow:
    0 16px 42px rgba(0,0,0,.46),
    inset 0 1px rgba(255,245,211,.08)!important;

  backdrop-filter:blur(18px);
  cursor:pointer!important;
}

.function-map__navigator-button span{
  font:400 20px/1 Georgia,serif;
}

.function-map__navigator-button:hover,
.function-map__navigator-button.is-active{
  border-color:rgba(230,197,117,.55)!important;
  color:#f1d993!important;
  background:
    radial-gradient(circle at 35% 25%,rgba(245,218,151,.2),transparent 55%),
    rgba(198,157,65,.13)!important;
}

/* Справка — слева сверху */
.function-map__help-button{
  position:absolute!important;
  z-index:56;
  top:18px;
  left:18px;

  display:flex!important;
  align-items:center;
  gap:8px;

  min-height:42px!important;
  padding:6px 12px 6px 7px!important;

  border:1px solid rgba(224,191,112,.23)!important;
  border-radius:14px!important;

  background:
    linear-gradient(155deg,rgba(24,29,22,.96),rgba(7,10,7,.97))!important;

  color:#bfae88!important;
  box-shadow:0 14px 38px rgba(0,0,0,.4)!important;
  backdrop-filter:blur(18px);

  cursor:pointer!important;
}

.function-map__help-button span{
  display:grid;
  width:28px;
  height:28px;
  place-items:center;

  border:1px solid rgba(224,191,112,.22);
  border-radius:9px;

  color:#dcc37f;
  background:rgba(216,183,108,.055);

  font:700 15px/1 system-ui;
}

.function-map__help-button b{
  font:650 9px system-ui;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.function-map__help-button:hover,
.function-map__help-button.is-active{
  border-color:rgba(230,197,117,.45)!important;
  color:#f0db9d!important;
}

/* Help panel */
.function-map__help-panel{
  position:absolute!important;
  z-index:50!important;

  top:72px!important;
  left:18px!important;

  width:min(420px,calc(100% - 36px));
  max-height:calc(100% - 92px);

  border:1px solid rgba(224,191,112,.3);
  border-radius:20px;

  background:
    radial-gradient(circle at 20% 0,rgba(105,119,78,.15),transparent 34%),
    linear-gradient(155deg,rgba(24,29,22,.97),rgba(7,10,7,.98));

  box-shadow:
    0 24px 64px rgba(0,0,0,.52),
    inset 0 1px rgba(255,245,211,.1);

  backdrop-filter:blur(22px) saturate(1.2);
  overflow:hidden;
}

.function-map__help-panel.is-tool-hidden{
  display:none!important;
}

.function-map__help-panel>header{
  display:flex;
  align-items:center;
  gap:10px;

  min-height:52px;
  padding:9px 12px;

  border-bottom:1px solid rgba(216,183,108,.12);
}

.function-map__help-panel>header>i{
  display:grid;
  width:31px;
  height:31px;
  place-items:center;

  border:1px solid rgba(226,193,112,.3);
  border-radius:10px;

  background:rgba(216,183,108,.07);
  color:#e1c477;

  font:700 14px system-ui;
  font-style:normal;
}

.function-map__help-panel>header>span{
  display:grid;
  flex:1;
  gap:2px;
}

.function-map__help-panel>header b{
  color:#f2e8d0;
  font:650 10px system-ui;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.function-map__help-panel>header small{
  color:#707b6e;
  font:500 8px system-ui;
}

.function-map__help-panel>header button{
  width:29px!important;
  height:29px!important;
  min-height:29px!important;
  padding:0!important;

  border:1px solid rgba(255,255,255,.1)!important;
  border-radius:9px!important;

  background:rgba(255,255,255,.045)!important;
  color:#dcc58f!important;
  box-shadow:none!important;
}

.function-map__help-body{
  padding:20px;
}

.function-map__help-body h2{
  margin:0 0 12px;
  color:#f0dfb6;
  font:650 17px system-ui;
}

.function-map__help-body p{
  margin:0 0 10px;
  color:#aab3a7;
  font:500 11px/1.6 system-ui;
}

/* navigator больше не должен наследовать top/right dock */
.function-map__joystick{
  top:auto!important;
  right:18px!important;
  bottom:78px!important;
  left:auto!important;
}

/* На мобильном */
@media(max-width:720px){
  .function-map__help-button{
    top:10px;
    left:10px;
  }

  .function-map__navigator-button{
    right:10px;
    bottom:10px;
  }

  .function-map__joystick{
    top:auto!important;
    right:10px!important;
    bottom:66px!important;
  }

  .function-map__help-panel{
    top:62px!important;
    left:10px!important;
    width:calc(100% - 20px);
  }
}


/* function-map-settings-screen-v1 */

/* Старые настройки скорости/spacing из Navigator убираем:
   управление теперь централизовано в Settings. */
.function-map__joystick .function-map__speed,
.function-map__joystick .function-map__spacing-row{
  display:none!important;
}

/* Settings — не floating, а большой dock-screen */
.function-map__settings{
  position:absolute!important;
  z-index:52!important;

  top:76px!important;
  right:18px!important;
  bottom:18px!important;
  left:auto!important;

  width:min(680px,calc(100% - 36px))!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;

  display:flex;
  flex-direction:column;

  border:1px solid rgba(222,190,111,.26);
  border-radius:22px;

  background:
    radial-gradient(circle at 85% -10%,
      rgba(208,174,91,.09),
      transparent 32%),
    radial-gradient(circle at 5% 5%,
      rgba(91,120,83,.11),
      transparent 34%),
    linear-gradient(155deg,
      rgba(19,24,18,.985),
      rgba(7,10,7,.99));

  box-shadow:
    0 30px 80px rgba(0,0,0,.58),
    inset 0 1px rgba(255,246,217,.075);

  backdrop-filter:blur(26px) saturate(1.14);

  overflow:hidden;
  resize:none!important;
  transform:none!important;
}

.function-map__settings.is-tool-hidden{
  display:none!important;
}


/* HEAD */

.function-map__settings-head{
  display:flex;
  align-items:center;
  justify-content:space-between;

  min-height:68px;
  padding:12px 15px 12px 17px;

  border-bottom:1px solid rgba(222,190,111,.105);
}

.function-map__settings-head>div{
  display:flex;
  align-items:center;
  gap:12px;
}

.function-map__settings-head i{
  display:grid;
  width:38px;
  height:38px;
  place-items:center;

  border:1px solid rgba(224,191,112,.25);
  border-radius:12px;

  background:rgba(216,183,108,.06);
  color:#ddc37f;

  font-size:18px;
  font-style:normal;
}

.function-map__settings-head span{
  display:grid;
  gap:3px;
}

.function-map__settings-head b{
  color:#eee3ca;
  font:650 12px/1.2 system-ui;
  letter-spacing:.075em;
  text-transform:uppercase;
}

.function-map__settings-head small{
  color:#778174;
  font:500 9px/1.2 system-ui;
}

.function-map__settings-head>button{
  width:32px!important;
  height:32px!important;
  min-height:32px!important;
  padding:0!important;

  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:10px!important;

  background:rgba(255,255,255,.035)!important;
  color:#baa982!important;
}


/* TABS */

.function-map__settings-tabs{
  display:flex;
  gap:4px;

  padding:8px 12px;

  border-bottom:1px solid rgba(255,255,255,.05);
  overflow-x:auto;
}

.function-map__settings-tabs button{
  min-height:34px!important;
  padding:0 13px!important;

  border:1px solid transparent!important;
  border-radius:10px!important;

  background:transparent!important;
  color:#747e71!important;

  font:650 9px system-ui!important;
  letter-spacing:.04em;

  box-shadow:none!important;
  white-space:nowrap;
}

.function-map__settings-tabs button:hover{
  color:#c8b98f!important;
  background:rgba(255,255,255,.025)!important;
}

.function-map__settings-tabs button.is-active{
  border-color:rgba(219,186,106,.19)!important;
  background:rgba(213,177,91,.075)!important;
  color:#e1c77f!important;
}


/* CONTENT */

.function-map__settings-content{
  flex:1;
  min-height:0;
  padding:20px;
  overflow:auto;

  scrollbar-width:thin;
  scrollbar-color:#c9a85f rgba(8,11,8,.55);
}

.function-map__settings-content::-webkit-scrollbar{
  width:8px;
}

.function-map__settings-content::-webkit-scrollbar-track{
  background:rgba(8,11,8,.55);
}

.function-map__settings-content::-webkit-scrollbar-thumb{
  border:2px solid rgba(8,11,8,.85);
  border-radius:999px;
  background:#c9a85f;
}

.function-map__settings-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;

  margin:0 0 20px;
  padding:0 2px 17px;

  border-bottom:1px solid rgba(255,255,255,.055);
}

.function-map__settings-title>div{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:10px;
}

.function-map__settings-title small{
  grid-row:1 / 3;

  color:#806f47;
  font:700 9px/1 system-ui;
}

.function-map__settings-title h2{
  margin:0;

  color:#f0e4c7;
  font:650 18px/1.1 system-ui;
}

.function-map__settings-title p{
  margin:6px 0 0;

  color:#798377;
  font:500 10px/1.5 system-ui;
}

.function-map__settings-title em{
  padding:5px 8px;

  border:1px solid rgba(124,155,105,.2);
  border-radius:999px;

  background:rgba(99,141,80,.07);
  color:#8ba079;

  font:650 8px system-ui;
  font-style:normal;
  letter-spacing:.05em;
  text-transform:uppercase;
}


/* ROWS */

.function-map__setting-row,
.function-map__setting-slider,
.function-map__setting-select,
.function-map__setting-action{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;

  min-height:67px;
  padding:12px 4px;

  border-bottom:1px solid rgba(255,255,255,.045);
}

.function-map__setting-row>span,
.function-map__setting-slider>span,
.function-map__setting-select>span,
.function-map__setting-action>span{
  display:grid;
  gap:5px;

  min-width:0;
}

.function-map__setting-row b,
.function-map__setting-slider b,
.function-map__setting-select b,
.function-map__setting-action b{
  color:#d9d6c8;
  font:600 10px/1.2 system-ui;
}

.function-map__setting-row small,
.function-map__setting-slider small,
.function-map__setting-select small,
.function-map__setting-action small{
  max-width:400px;

  color:#697268;
  font:500 9px/1.45 system-ui;
}


/* SWITCH */

.function-map__setting-row input[type=checkbox]{
  appearance:none;

  position:relative;

  flex:0 0 auto;
  width:42px;
  height:23px;

  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;

  background:#161b15;

  cursor:pointer;
  transition:.18s ease;
}

.function-map__setting-row input[type=checkbox]::after{
  content:"";

  position:absolute;
  top:3px;
  left:3px;

  width:15px;
  height:15px;

  border-radius:50%;

  background:#72786e;

  transition:.18s ease;
}

.function-map__setting-row input[type=checkbox]:checked{
  border-color:rgba(215,181,99,.37);
  background:rgba(196,157,67,.15);
}

.function-map__setting-row input[type=checkbox]:checked::after{
  left:22px;
  background:#d7b967;

  box-shadow:0 0 12px rgba(216,184,103,.22);
}


/* RANGE */

.function-map__setting-slider>div{
  display:grid;
  grid-template-columns:minmax(130px,190px) 48px;
  align-items:center;
  gap:12px;
}

.function-map__setting-slider input[type=range]{
  width:100%;
  accent-color:#c6a457;
}

.function-map__setting-slider output{
  color:#d8c58e;
  font:650 9px system-ui;
  text-align:right;
}


/* SELECT */

.function-map__setting-select select{
  min-width:185px;
  height:35px;

  padding:0 34px 0 11px;

  border:1px solid rgba(216,183,108,.15);
  border-radius:10px;

  background:#111610;
  color:#cfc9b8;

  font:600 9px system-ui;
}


/* ACTIONS */

.function-map__setting-action>button,
.function-map__setting-action>div button,
.function-map__settings-footer button{
  min-height:34px!important;
  padding:0 12px!important;

  border:1px solid rgba(216,183,108,.17)!important;
  border-radius:10px!important;

  background:rgba(216,183,108,.055)!important;
  color:#cbb988!important;

  font:650 9px system-ui!important;

  box-shadow:none!important;
}

.function-map__setting-action>div{
  display:flex;
  gap:6px;
}

.function-map__setting-action.is-danger>button{
  border-color:rgba(207,103,87,.2)!important;
  background:rgba(190,75,58,.055)!important;
  color:#bd8073!important;
}


/* DETAIL INFO */

.function-map__settings-info{
  display:flex;
  gap:12px;

  margin-top:20px;
  padding:14px;

  border:1px solid rgba(216,183,108,.1);
  border-radius:13px;

  background:rgba(216,183,108,.025);
}

.function-map__settings-info i{
  color:#c2a760;
  font-style:normal;
}

.function-map__settings-info p{
  margin:0;

  color:#778176;
  font:500 9px/1.6 system-ui;
}


/* FOOTER */

.function-map__settings-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;

  min-height:58px;
  padding:10px 16px;

  border-top:1px solid rgba(255,255,255,.05);
}

.function-map__settings-footer span{
  color:#626c61;
  font:500 8px system-ui;
}


/* Mobile */

@media(max-width:720px){
  .function-map__settings{
    top:62px!important;
    right:10px!important;
    bottom:10px!important;

    width:calc(100% - 20px)!important;
  }

  .function-map__settings-content{
    padding:14px;
  }

  .function-map__setting-row,
  .function-map__setting-slider,
  .function-map__setting-select,
  .function-map__setting-action{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }

  .function-map__setting-slider>div{
    width:100%;
    grid-template-columns:1fr 48px;
  }

  .function-map__setting-select select{
    width:100%;
  }
}

