:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b111b;--surface:#111a27;--surface-2:#172233;--border:#1f2a3a;--border-strong:#2b3a50;--text:#e6edf3;--text-muted:#9fb0c3;--input-bg:#0b111b;--accent:#1f6feb;--accent-2:#388bfd;--accent-soft:#0d2a4d;--accent-text:#79c0ff;--accent-glow:#1f6feb55;--ok:#3fb950;--ok-soft:#12361f;--info:#79c0ff;--info-soft:#0d2a4d;--warn:#e3b341;--warn-strong:#d29922;--warn-soft:#3a2d06;--err:#ff7b72;--err-strong:#da3633;--err-soft:#3d1418;--muted:#8b949e;--muted-soft:#1c2533;--card-shadow:none;--focus:0 0 0 3px #58a6ff88;--focus-ring:#58a6ff;--map-park:#a371f7}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef2f6;--surface:#fff;--surface-2:#f1f4f8;--border:#dde3ea;--border-strong:#c9d3de;--text:#1b2330;--text-muted:#4a5566;--input-bg:#fff;--accent:#1f5fd6;--accent-2:#3b78e7;--accent-soft:#e7f0ff;--accent-text:#1f5fd6;--accent-glow:#1f5fd640;--ok:#1a7f37;--ok-soft:#dcf5e3;--info:#1f5fd6;--info-soft:#e7f0ff;--warn:#9a6700;--warn-strong:#d29922;--warn-soft:#fff4d6;--err:#c93c37;--err-strong:#c93c37;--err-soft:#ffe5e3;--muted:#6b7788;--muted-soft:#eef2f6;--card-shadow:0 2px 10px #0000000f;--focus:0 0 0 3px #1f5fd655;--focus-ring:#1f5fd6;--map-park:#8250df}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.4}h1,h2,h3,h4{margin:0;line-height:1.2}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.icon{flex:none}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:14px;padding:16px}.section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;margin:0 0 10px;font-size:13px;font-weight:700;display:flex}.btn{border:1px solid var(--border-strong);background:var(--surface-2);min-height:48px;color:var(--text);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:700;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:0 6px 18px var(--accent-glow);border-color:#0000}.btn-danger{background:var(--err-strong);color:#fff;border-color:#0000}.btn:disabled{background:var(--muted-soft);color:var(--muted);border-color:var(--border);box-shadow:none}.btn-lg{border-radius:14px;width:100%;min-height:72px;font-size:22px}.icon-btn{border:1px solid var(--border);background:var(--surface-2);width:44px;height:44px;color:var(--text);border-radius:10px;place-items:center;padding:0;display:inline-grid}.absolute{position:absolute}.chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:700;display:inline-flex}.tone-ok{color:var(--ok)}.tone-info{color:var(--info)}.tone-warn{color:var(--warn)}.tone-err{color:var(--err)}.tone-muted{color:var(--muted)}.badge-sim{letter-spacing:.08em;background:var(--accent);color:#fff;vertical-align:middle;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:800;display:inline-block}.banner{border-radius:12px;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;font-weight:700;display:flex}.banner-err{background:var(--err-soft);color:var(--err)}.banner-warn{background:var(--warn-soft);color:var(--warn)}.banner-ok{background:var(--ok-soft);color:var(--ok)}.banner-info{background:var(--info-soft);color:var(--info)}input:not([type=checkbox]):not([type=radio]),select{font:inherit;border:1px solid var(--border-strong);background:var(--input-bg);width:100%;max-width:none;min-height:44px;color:var(--text);border-radius:10px;margin:0;padding:8px 12px;font-size:16px}.seg{background:var(--bg);border:1px solid var(--border-strong);border-radius:12px;gap:4px;padding:4px;display:flex}.seg button{min-height:44px;color:var(--text-muted);background:0 0;border:0;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:8px;margin:0;font-weight:700;display:flex}.seg button[aria-pressed=true]{background:var(--accent);color:#fff}.switch{appearance:none;background:var(--border-strong);cursor:pointer;border-radius:999px;flex:none;width:52px;height:30px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .15s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--accent)}.switch:checked:after{left:25px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.robot{--rb-body:#e4eaf1;--rb-top:#f7f9fc;--rb-dark:#18212f;--rb-eye:#58a6ff;--rb-mast:#6b7788;--rb-fork:#4a5566;--rb-wheel:#262f3c;--rb-hub:#9aa6b5;--rb-outline:#b8c3d0;--rb-led:#3fb950;flex:none;overflow:visible}.robot--moving{--rb-led:#388bfd}.robot--blocked{--rb-led:#d29922;--rb-eye:#e3b341}.robot--estop,.robot--fault{--rb-led:#f85149;--rb-eye:#ff7b72}.robot--offline,.robot--unknown{filter:grayscale();opacity:.55}.rb-shadow{fill:#000;opacity:.25}.rb-body{fill:var(--rb-body);stroke:var(--rb-outline);stroke-width:1.5px}.rb-top{fill:var(--rb-top)}.rb-dark{fill:var(--rb-dark)}.rb-eye{fill:var(--rb-eye)}.rb-led{fill:var(--rb-led)}.rb-mast{fill:var(--rb-mast)}.rb-fork{fill:var(--rb-fork)}.rb-wheel{fill:var(--rb-wheel)}.rb-hub{fill:var(--rb-hub)}.rb-load{fill:#c89b6d}.rb-load-line{stroke:#a97c50;stroke-width:3px;fill:none}.rb-pallet{fill:#b98550}.rb-speed{stroke:#58a6ff;stroke-width:3px;stroke-linecap:round;fill:none;animation:.9s ease-in-out infinite rb-speed}.rb-badge-ok{fill:#3fb950}.rb-badge-warn{fill:#d29922}.rb-badge-err{fill:#f85149}.rb-badge-mark{fill:#0f1623}.rb-badge-light{fill:#fff}.rb-badge-cross{stroke:#c9d1d9;stroke-width:6px;stroke-linecap:round;fill:none}.rb-badge-dark{fill:#30363d}@keyframes rb-speed{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.rb-speed{animation:none}}.fact-tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.fact-tile{background:var(--surface);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.fact-tile .icon{width:1.6em;height:1.6em}.fact-tile__text{flex-direction:column;display:flex}.fact-tile__text small{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.5em;font-weight:700}.fact-tile__text b{color:var(--text);font-size:1em}.flags{margin-top:10px}.step-bar{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.step{border-top:4px solid var(--border-strong);text-align:center;min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;padding-top:8px;font-size:12px;font-weight:700;overflow:hidden}.step--done{border-color:var(--ok);color:var(--ok)}.step--current{border-color:var(--accent-2);color:var(--text)}.event-list{margin:0;padding:0;font-size:15px;list-style:none}.event-list li{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.event-list li:last-child{border-bottom:0}.event-icon{background:var(--surface-2);border-radius:7px;flex:none;place-items:center;width:24px;height:24px;display:grid}.event-time{width:66px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.event-text{min-width:0}.event-who{color:var(--muted)}.planning-notice{color:var(--info);flex-wrap:wrap;align-items:center;gap:.3em .6em;margin:0 0 .4em;font-weight:700;display:flex}.planning-notice__codes{color:var(--text-muted);font-size:.75em;font-weight:600}.spinner{border:.16em solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;flex:none;width:1em;height:1em;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.topbar{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--card-shadow);align-items:center;gap:14px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar__brand{white-space:nowrap;align-items:center;gap:8px;font-size:17px;font-weight:800;display:flex}.topbar__nav{gap:4px;margin-left:10px;display:flex}.topbar__link{min-height:44px;color:var(--text-muted);border-radius:999px;align-items:center;padding:8px 14px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.topbar__link:hover{background:var(--surface-2);color:var(--text)}.topbar__link.active{background:var(--accent);color:#fff}.topbar__spacer{flex:1}.topbar__user{color:var(--text-muted);font-size:14px}@media (width<=640px){.topbar{flex-wrap:wrap}.topbar__nav{order:3;justify-content:space-between;width:100%;margin:0}.topbar__user{display:none}}.page{max-width:1400px;margin:0 auto;padding:16px}.login{background:linear-gradient(160deg, var(--accent-soft), var(--bg) 60%);place-items:center;min-height:100vh;padding:24px;display:grid;position:relative}.login__theme{position:absolute;top:16px;right:16px}.login__card{text-align:center;border-radius:18px;flex-direction:column;align-items:stretch;gap:12px;width:min(380px,100%);padding:28px;display:flex}.login__card .robot{align-self:center}.login__title{font-size:26px}.login__subtitle{color:var(--text-muted);margin-bottom:6px;font-size:14px}.login__field{text-align:left;flex-direction:column;gap:5px;font-size:13px;font-weight:700;display:flex}.login__input{border:2px solid var(--border-strong);background:var(--input-bg);color:var(--text-muted);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.login__input:focus-within{border-color:var(--accent);box-shadow:var(--focus)}.login__input input{min-height:46px;box-shadow:none;background:0 0!important;border:0!important;padding-left:0!important}.login__input input:focus-visible{box-shadow:none;outline:none}.control{gap:14px;display:grid}.control .fault-box{border-width:2px;border-radius:12px;gap:14px;padding:12px 14px}.control .fault-box__icon{width:40px;height:40px}.control__recovery{justify-items:start;gap:8px;display:grid}.control__recovery-hint{color:var(--text-muted);margin:0;font-size:13px}.control__recovery .banner{justify-self:stretch}.robot-card{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.robot-card__info{flex:260px;min-width:0}.robot-card__name{align-items:center;gap:10px;margin-bottom:10px;font-size:24px;font-weight:800;display:flex}.control__columns.control__robot-row{align-items:stretch}.now-box{border:1px solid var(--accent);background:var(--accent-soft);color:var(--text);border-radius:14px;flex-direction:column;justify-content:center;gap:4px;padding:16px;display:flex}.now-box small{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.now-box b{font-size:19px}.control__columns{grid-template-columns:1.5fr 1fr;align-items:start;gap:14px;display:grid}.tiles-block{margin-top:16px}.tiles-block__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.tiles-block__head .section-title{margin:0}.tiles-block__map{align-items:center;gap:6px;padding:6px 12px;font-size:14px;display:inline-flex}.tiles-block__map .icon{width:16px;height:16px}.tiles{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.tile{background:var(--surface-2);border:2px solid var(--border);min-height:60px;color:var(--text);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:10px 6px;font-size:16px;font-weight:800;display:flex}.tile:hover:not(:disabled){border-color:var(--accent-2)}.tile--selected{border-color:var(--accent-2);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-glow)}.tile--here{opacity:.55}.tile:disabled{cursor:not-allowed}.tile__note{font-size:11px;font-weight:700}.tile{box-shadow:inset 0 3px 0 var(--kind,transparent)}.tile--selected{box-shadow:inset 0 3px 0 var(--kind,transparent), 0 0 0 3px var(--accent-glow)}.tile__kind{color:var(--kind,var(--text-muted));display:flex}.tile__kind .icon{width:18px;height:18px}.tile--charge{--kind:var(--ok)}.tile--park{--kind:var(--map-park)}.tile--action{--kind:var(--warn)}.tile--mark{--kind:var(--accent-text)}.tile--bin{--kind:var(--warn-strong)}.hint{margin:12px 0 0}.control__run{margin-top:16px}.control__cancel{margin-top:10px}@media (width<=900px){.control__columns{grid-template-columns:1fr}}.status{background:var(--bg);min-height:100vh;color:var(--text);flex-direction:column;gap:1.2vw;margin:0;padding:2vw 2.4vw;font-size:2vw;display:flex}.status__header{align-items:center;gap:1.4vw;display:flex}.status__header .robot{width:11vw;height:auto}.status__name{align-items:center;gap:1vw;font-size:1.9em;font-weight:800;display:flex}.status__name .badge-sim{font-size:.4em}.status__conn{align-items:center;gap:.5em;font-size:.75em;font-weight:700;display:flex}.status__conn i{background:currentColor;border-radius:50%;width:.6em;height:.6em;box-shadow:0 0 .5em}.status__conn--ok{color:var(--ok)}.status__conn--err{color:var(--err)}.status__clock{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:1.1em;font-weight:700}.status .theme-toggle{width:2.4em;min-width:44px;height:2.4em;min-height:44px}.status .banner{margin:0;font-size:.9em}.status .fact-tiles{grid-template-columns:repeat(2,1fr);gap:1vw}.status .fact-tile{padding:.6em .8em;font-size:1.1em}.status .fact-tile__text small{font-size:.5em}.status .flags .chip{font-size:.8em}.status__message{font-size:1.3em;font-weight:700}.fault-box{border:.25vw solid;border-radius:1vw;align-items:center;gap:1.4vw;padding:1vw 1.4vw;display:flex}.fault-box__icon{width:3.6vw;height:3.6vw}.fault-box__title{font-size:1.6em;font-weight:800}.fault-box__why{margin-top:.2em;font-size:1.15em}.fault-box__do{flex-wrap:wrap;align-items:baseline;gap:.5em;margin-top:.3em;font-size:1.15em;font-weight:700;display:flex}.fault-box__tag{letter-spacing:.06em;text-transform:uppercase;background:var(--warn-strong);color:#1d1400;border-radius:.3em;padding:.05em .5em;font-size:.7em}.fault-box__user{align-items:center;gap:.4em;margin-top:.4em;font-size:.8em;font-weight:700;display:flex}.status .fault-box{border-width:.18vw;gap:1vw;padding:.6vw 1vw;font-size:.65em}.status .fault-box__icon{width:2.4vw;height:2.4vw}.fault-error{background:var(--err-soft);border-color:var(--err-strong);color:var(--text)}.fault-error .fault-box__icon{color:var(--err-strong)}.fault-warning{background:var(--warn-soft);border-color:var(--warn-strong);color:var(--text)}.fault-warning .fault-box__icon{color:var(--warn-strong)}.fault-info{background:var(--info-soft);border-color:var(--accent);color:var(--text)}.fault-info .fault-box__icon{color:var(--accent)}.fault-unknown{background:var(--muted-soft);border-color:var(--muted);color:var(--text)}.fault-unknown .fault-box__icon{color:var(--muted)}.fault-error .fault-box__tag{background:var(--err-strong);color:#fff}.fault-info .fault-box__tag{background:var(--accent);color:#fff}.fault-unknown .fault-box__tag{background:var(--muted);color:#fff}.status__columns{flex:1;grid-template-columns:1fr 1.4fr;gap:1.2vw;min-height:0;font-size:.75em;display:grid}.status__stack{flex-direction:column;gap:1.2vw;min-width:0;min-height:0;display:flex}.status__body{flex:1;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:1.2vw;min-height:0;display:grid}.status__left{flex-direction:column;gap:1.2vw;min-width:0;min-height:0;display:flex}.status__map{background:var(--surface);border:1px solid var(--border);min-width:0;min-height:0;box-shadow:var(--card-shadow);border-radius:1vw;justify-content:center;align-items:center;padding:.6vw;display:flex}.status__map .map-message{font-size:.8em}.pane{background:var(--surface);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:1vw;min-width:0;padding:1vw 1.2vw}.pane__title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.5em;margin-bottom:.6em;font-size:.75em;font-weight:700;display:flex}.pane__title .icon{width:1.2em;height:1.2em}.pane__list{margin:0;padding:0;font-size:.85em;list-style:none}.pane__list li{align-items:flex-start;gap:.5em;padding:.25em 0;display:flex}.pane__list li .icon{width:1.1em;height:1.1em;margin-top:.15em}.pane__list li span{color:var(--text)}.pane__time{color:var(--muted);font-variant-numeric:tabular-nums}.pane--now{background:var(--accent-soft);border-color:var(--accent)}.pane__order{flex-wrap:wrap;align-items:baseline;gap:.3em .8em;margin-bottom:.3em;display:flex}.pane__order-name{font-variant-numeric:tabular-nums;font-size:.75em;font-weight:700}.pane__order-m4{color:var(--text-muted);font-size:.6em}.pane__now-text{font-size:1.5em;font-weight:800;line-height:1.15}.status .step{border-top-width:.3vw;font-size:.6em}.status__log{background:var(--surface);border:1px solid var(--border);border-radius:.6vw;padding:.5em .8em;font-size:.5em;overflow:hidden}.status__log ul{flex-wrap:wrap;gap:.2em 1.6em;max-height:2.9em;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.status__log time{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:.3em}@media (width<=800px){.status{gap:12px;padding:16px;font-size:16px}.status__header .robot{width:120px}.status .fact-tiles{grid-template-columns:repeat(2,1fr)}.status__columns{grid-template-columns:1fr;font-size:1em}.status__body{grid-template-columns:1fr}.status__map{min-height:280px}.fault-box__icon,.status .fault-box__icon{width:40px;height:40px}.status .fault-box{font-size:1em}}.map{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;max-height:100%;display:block}.map:active{cursor:grabbing}.map-viewport{width:100%;min-width:0;height:100%;min-height:0;position:relative}.map-controls{flex-direction:column;gap:4px;display:flex;position:absolute;top:8px;right:8px}.map-control{border:1px solid var(--border-strong);background:var(--surface);width:34px;height:34px;color:var(--text);border-radius:8px;place-items:center;padding:0;display:grid}.map-control:disabled{opacity:.4}.map-control .icon{width:18px;height:18px}.map-dialog-backdrop{z-index:100;background:#000000a0;justify-content:center;align-items:center;padding:24px;font-size:16px;display:flex;position:fixed;inset:0}.map-dialog{border:1px solid var(--border);background:var(--surface);width:min(1600px,100%);height:min(1000px,100%);color:var(--text);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.map-dialog__head{justify-content:space-between;align-items:center;display:flex}.map-dialog__title{font-size:1.1rem;font-weight:700}.map-dialog__body{flex:1;min-height:0}.map-message{text-align:center;color:var(--text-muted);margin:0;padding:1em}.map-message--error{color:var(--err)}.map-zone{fill:color-mix(in srgb, var(--accent) 8%, transparent);stroke:var(--border-strong);stroke-width:.03px;stroke-dasharray:.12 .08}.map-path{fill:none;stroke:var(--border-strong);stroke-width:.06px;stroke-linecap:round}.map-arrow{fill:var(--text-muted);opacity:.75}.map-route{fill:none;stroke:var(--accent-2);stroke-width:.14px;stroke-linecap:round;stroke-dasharray:.3 .15}.map-target circle{fill:none;stroke:var(--accent-2);stroke-width:.06px}.map-target .map-target__outer{stroke-width:.03px;opacity:.5}.map-bin rect{fill:none;stroke:var(--warn);stroke-width:.05px}.map-bin--full rect{fill:color-mix(in srgb, var(--warn) 35%, transparent)}.map-label{fill:var(--text-muted);font-size:.2px}.map-label--bin{fill:var(--text);font-size:.26px;font-weight:600}.map-point circle{stroke:var(--bg);stroke-width:.03px}.map-point--charge circle{fill:var(--ok)}.map-point--park circle{fill:var(--map-park)}.map-point--action circle{fill:var(--warn)}.map-point--mark circle{fill:var(--accent-text)}.map-point--charge .map-label,.map-point--park .map-label,.map-point--action .map-label{font-size:.24px}.map-robot__body{fill:var(--muted)}.map-robot__fork{fill:var(--text-muted)}.map-robot__nose{fill:var(--bg);opacity:.85}.map-robot__name{fill:var(--muted);font-size:.3px;font-weight:700}.map-robot__ring{fill:none;stroke:var(--accent-2);stroke-width:.04px;opacity:.55}.map-robot--other{opacity:.75}.map-robot--own .map-robot__body,.map-robot--own .map-robot__name{fill:var(--accent-2)}.map-robot--fault .map-robot__body,.map-robot--fault .map-robot__name{fill:var(--err)}.map-robot--offline{opacity:.45}.map-robot--selectable{cursor:pointer}.map--picking .map-robot{pointer-events:none}.map--picking .map-point:not(.map-point--selectable),.map--picking .map-bin:not(.map-bin--selectable){opacity:.3}.map-point--selectable,.map-bin--selectable{cursor:pointer}.map-point .map-hit{fill:#0000;stroke:none}.map-point--selectable:hover .map-hit,.map-point--selectable:focus-visible .map-hit{fill:color-mix(in srgb, var(--accent-2) 25%, transparent);stroke:var(--accent-2);stroke-width:.04px}.map-bin--selectable:hover rect,.map-bin--selectable:focus-visible rect{stroke:var(--accent-2);stroke-width:.08px}.map-point--selectable:focus,.map-bin--selectable:focus{outline:none}.map-robot--selectable:hover .map-robot__body,.map-robot--selectable:focus-visible .map-robot__body{stroke:var(--accent-2);stroke-width:.06px}.map-robot--selectable:focus{outline:none}.map-view{grid-template-columns:minmax(0,2.4fr) minmax(260px,1fr);align-items:start;gap:16px;padding:16px;display:grid}.map-view__map{flex-direction:column;gap:10px;display:flex}.map-view__map .map{height:auto;max-height:calc(100vh - 170px)}.map-view__side{flex-direction:column;gap:16px;display:flex}.map-side__title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px;font-size:.8rem;font-weight:700}.map-robots,.map-places{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.map-robots__item{border-left:3px solid var(--muted);flex-direction:column;gap:2px;padding-left:10px;display:flex}.map-robots__item--own{border-left-color:var(--accent-2)}.map-robots__head{align-items:baseline;gap:8px;display:flex}.map-places li{justify-content:space-between;gap:12px;display:flex}.map-legend{color:var(--text-muted);flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.map-legend li{align-items:center;gap:6px;display:flex}.map-legend__swatch{border-radius:50%;width:12px;height:12px;display:inline-block}.map-legend__swatch--charge{background:var(--ok)}.map-legend__swatch--park{background:var(--map-park)}.map-legend__swatch--action{background:var(--warn)}.map-legend__swatch--mark{background:var(--accent-text);width:8px;height:8px}.map-legend__swatch--bin{border:2px solid var(--warn);background:color-mix(in srgb, var(--warn) 35%, transparent);border-radius:2px}.map-legend__swatch--route{border-top:3px dashed var(--accent-2);border-radius:0;width:18px;height:0}.map-legend__swatch--target{border:2px solid var(--accent-2);background:0 0}.map-legend__swatch--arrow{border:6px solid #0000;border-left:9px solid var(--text-muted);border-radius:0;width:0;height:0}@media (width<=900px){.map-view{grid-template-columns:1fr}}.settings{grid-template-columns:220px 1fr;align-items:start;gap:16px;display:grid}.settings__nav{flex-direction:column;gap:4px;display:flex;position:sticky;top:76px}.settings__nav hr{border:0;border-top:1px solid var(--border);width:100%;margin:8px 0}.settings__nav-item{min-height:44px;color:var(--text-muted);text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:700;display:flex}.settings__nav-item:hover{background:var(--surface-2);color:var(--text)}.settings__nav-item[aria-current]{background:var(--surface-2);color:var(--text);box-shadow:inset 3px 0 0 var(--accent-2)}.settings__content{gap:14px;min-width:0;display:grid}.summary-box{border:2px solid var(--border);background:var(--surface);box-shadow:var(--card-shadow);border-radius:14px;align-items:center;gap:16px;padding:16px 18px;display:flex}.summary-box--fake{border-color:#8957e5}.summary-box--fake .summary-box__icon{color:#a371f7}.summary-box--simulation{border-color:var(--accent);background:var(--accent-soft)}.summary-box--real{background:var(--warn-soft);border-color:#db6d28}.summary-box--real.summary-box--allowed{border-color:var(--err-strong);background:var(--err-soft)}.summary-box--unknown,.summary-box--loading{border-color:var(--muted)}.summary-box__icon{flex:none;place-items:center;width:72px;height:56px;display:grid;position:relative}.summary-box__tag{letter-spacing:.06em;background:var(--accent);color:#fff;border-radius:6px;place-items:center;padding:2px 6px;font-size:11px;font-weight:800;display:grid;position:absolute;bottom:-4px;right:-4px}.summary-box__tag--warn{color:#fff;background:#db6d28;padding:3px}.summary-box--allowed .summary-box__tag--warn{background:var(--err-strong);color:#fff}.summary-box__tag--muted{background:var(--muted);padding:3px}.summary-box__title{margin-bottom:4px;font-size:18px;font-weight:800}.summary-box__line{color:var(--text-muted);font-size:14px}.summary-box--real.summary-box--allowed .summary-box__line:first-of-type{color:var(--err);font-weight:800}.settings-group{padding:6px 18px 10px;scroll-margin-top:76px}.settings-group__title{align-items:center;gap:10px;margin:12px 0 6px;font-size:18px;display:flex}.settings-group__title .icon{color:var(--accent-text);width:22px;height:22px}.setting-row{border-top:1px solid var(--border);grid-template-columns:1fr minmax(220px,320px);align-items:center;gap:18px;padding:14px 0;display:grid}.settings-group__title+.setting-row{border-top:0}.setting-row__label{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.setting-row__key{color:var(--muted);margin-top:2px;font-size:11px;display:block}.setting-row__desc{color:var(--text-muted);margin-top:4px;font-size:13px;line-height:1.4}.setting-row__control{justify-content:flex-end;display:flex}.setting-row__control .switch{margin-left:auto}.setting-control__with-tag{align-items:center;gap:8px;width:100%;display:flex}.from-m4{background:var(--accent-soft);color:var(--accent-text);border-radius:6px;flex:none;padding:2px 7px;font-size:11px;font-weight:700}.setting-row--danger{border:1px solid var(--err-strong);background:var(--err-soft);border-radius:12px;margin:6px 0 8px;padding:12px 14px}.setting-row--danger .setting-row__label{color:var(--err)}.simulate{border-top:1px solid var(--border);padding:14px 0 6px}.simulate__buttons{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.save-bar{z-index:5;border:1px solid var(--border);background:var(--surface);border-radius:14px 14px 0 0;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex;position:sticky;bottom:0;box-shadow:0 -6px 18px #0003}.save-bar__dirty{color:var(--warn);align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.save-bar__dirty i{background:var(--warn);border-radius:50%;width:8px;height:8px}.save-bar__clean{color:var(--muted);font-size:14px}.save-bar__notice{font-size:14px;font-weight:700}.save-bar__spacer{flex:1}.save-bar__hint{color:var(--muted);font-size:12px}.log-filters{flex-wrap:wrap;gap:10px;margin:6px 0 12px;display:flex}.seg--compact{flex:0 auto}.seg--compact button{flex:none;min-height:44px;padding:0 14px}.log-filters input{flex:220px;width:auto}.log-table__wrap{overflow-x:auto}.log-table{border-collapse:collapse;width:100%;font-size:13px}.log-table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:6px 8px;font-size:11px}.log-table td{border-top:1px solid var(--border);vertical-align:top;padding:7px 8px}.log-table__time{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-muted)}.log-table__source{white-space:nowrap}.level-badge{background:var(--surface-2);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800;display:inline-block}.level-badge.tone-info{background:var(--info-soft)}.level-badge.tone-warn{background:var(--warn-soft)}.level-badge.tone-err{background:var(--err-soft)}.log-table pre{white-space:pre-wrap;font-size:12px}.settings-password{gap:12px;max-width:480px;display:grid}.settings-password__field{gap:6px;font-size:14px;font-weight:700;display:grid}@media (width<=900px){.settings{grid-template-columns:1fr}.settings__nav{flex-flow:wrap;position:static}.settings__nav hr{display:none}.setting-row{grid-template-columns:1fr}.setting-row__control{justify-content:flex-start}}
