@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Titillium+Web:wght@400;600;700&display=swap";:root{--font-sans: "Titillium Web", "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--bg-base: #202020;--bg-surface: #2a2a2a;--bg-panel: #303030;--bg-panel-soft: #383838;--bg-card: #383838;--line: #505050;--line-soft: #3c3c3c;--text-strong: #f0f0f0;--text: #c0c0c0;--text-soft: #808080;--text-on-accent: #202020;--accent: #3a8db5;--accent-soft: #2c6e8d;--ok: #00aa00;--warn: #c09000;--danger: #e05000;--state-ok-text: #c8ffd8;--state-ok-text-soft: #cbffdb;--state-ok-border: rgba(97, 217, 138, .45);--state-ok-bg: rgba(28, 114, 56, .35);--state-ok-bg-strong: rgba(24, 96, 54, .45);--state-ok-fill: #61d98a;--state-warn-text: #ffe8c7;--state-warn-text-soft: #ffe8ca;--state-warn-border: rgba(255, 186, 111, .45);--state-warn-bg: rgba(120, 77, 25, .45);--state-warn-fill: #ffba6f;--state-low-fill: #ff8c4d;--state-danger-text: #ffd5d5;--state-danger-text-soft: #ffd3d3;--state-danger-border: rgba(255, 113, 113, .45);--state-danger-bg: rgba(117, 34, 34, .45);--state-danger-bg-soft: rgba(110, 28, 28, .3);--state-danger-fill: #ff5d5d;--state-neutral-border: rgba(123, 143, 165, .4);--state-neutral-fill: #7b8fa5;--signal-shell: #5b6d7f;--status-normal: #70dda0;--status-warning: #f2a444;--status-critical: #ff6572;--status-critical-border: #ff5a67;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--radius-tight: 5px;--border-default: 1px solid var(--line);--border-soft: 1px solid var(--line-soft);--control-height-sm: 38px;--control-height-md: 44px;--control-height-lg: 46px;--focus-inset: inset 0 0 0 1px var(--accent);--transition-fast: .15s ease;--transition-meter: .14s ease-out;--shadow-panel: 0 12px 28px rgba(0, 0, 0, .35);--shadow-floating: 0 16px 34px rgba(0, 0, 0, .42)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%;width:100%}html{background:var(--bg-base)}body{margin:0;color:var(--text);font-family:var(--font-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-base)}button,input,select,textarea{font:inherit}.monospace,code,pre{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--text);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.ui-panel{border-radius:var(--radius-md);border:var(--border-default);background:var(--bg-panel);box-shadow:var(--shadow-panel)}.ui-state-box{border-radius:var(--radius-md);border:var(--border-default);background:var(--bg-panel);color:var(--text);padding:28px;text-align:center}.ui-loading-state{display:grid;place-items:center;color:var(--text-soft)}.ui-empty-state{color:var(--text-soft)}.ui-empty-state p{margin:0}.ui-notice{padding:10px 12px;border-radius:var(--radius-sm);border:var(--border-default);border-left-width:4px;font-size:.9rem}.ui-notice-success{color:var(--state-ok-text);border-color:var(--ok);background:#0078002e}.ui-notice-warn{color:var(--state-warn-text);border-color:var(--state-warn-fill);background:#6e481833}.ui-notice-error{color:var(--state-danger-text);border-color:var(--danger);background:#78281440}.ui-button{min-height:var(--control-height-sm);padding:0 14px;border-radius:var(--radius-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.ui-button-primary{border:0;color:var(--text-on-accent);background:var(--accent)}.ui-button-secondary{border:var(--border-default);color:var(--text-strong);background:var(--bg-panel-soft)}.ui-button-danger{border:1px solid rgba(141,60,79,.45);color:#ffd9de;background:#5a2431}.ui-button:hover:not(:disabled){filter:brightness(1.06)}.ui-button:disabled{opacity:.65;cursor:not-allowed;filter:none}.ui-status-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);border:var(--border-soft);padding:4px 10px;color:var(--text);background:var(--bg-panel);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.ui-status-ok{color:var(--state-ok-text);border-color:var(--state-ok-border);background:var(--state-ok-bg)}.ui-status-warn{color:var(--state-warn-text);border-color:var(--state-warn-border);background:var(--state-warn-bg)}.ui-status-danger{color:var(--state-danger-text);border-color:var(--state-danger-border);background:var(--state-danger-bg)}.ui-status-accent{color:var(--text-strong);border-color:var(--accent-soft);background:var(--accent-soft)}.ui-battery-chip{min-height:32px;border-radius:var(--radius-pill);border:var(--border-soft);background:var(--bg-panel-soft);display:inline-flex;align-items:center;gap:8px;padding:0 10px;color:var(--text)}.ui-battery-icon{display:inline-flex;align-items:center;gap:2px}.ui-battery-shell{width:22px;height:12px;border-radius:3px;border:1px solid var(--signal-shell);padding:1px;display:inline-flex;align-items:center;background:#0d1219db;overflow:hidden}.ui-battery-fill{height:100%;border-radius:2px;background:var(--state-ok-fill);transition:width var(--transition-meter),background-color var(--transition-meter)}.ui-battery-cap{width:2px;height:6px;border-radius:1px;background:var(--signal-shell)}.ui-battery-value{color:var(--text-strong);font-size:.8rem;font-weight:700;font-family:var(--font-mono)}.ui-battery-chip.good{border-color:var(--state-ok-border)}.ui-battery-chip.good .ui-battery-fill{background:var(--state-ok-fill)}.ui-battery-chip.warn{border-color:var(--state-warn-border)}.ui-battery-chip.warn .ui-battery-fill{background:var(--state-warn-fill)}.ui-battery-chip.low{border-color:#ff8c4d73}.ui-battery-chip.low .ui-battery-fill{background:var(--state-low-fill)}.ui-battery-chip.critical{border-color:#ff5d5d73}.ui-battery-chip.critical .ui-battery-fill{background:var(--state-danger-fill);animation:uiBatteryCriticalPulse 1s ease-in-out infinite}.ui-battery-chip.unknown{border-color:var(--state-neutral-border)}.ui-battery-chip.unknown .ui-battery-fill{background:var(--state-neutral-fill)}@keyframes uiBatteryCriticalPulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.35)}}.auth-shell{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:transparent}.auth-hero-panel{position:relative;display:flex;align-items:center;justify-content:center;padding:48px 40px 48px 56px;overflow:hidden}.auth-hero-visual{position:relative;z-index:1}.auth-hero-brand-logo,.auth-form-brand-logo{width:120px;height:120px;padding:0;border-radius:5px;border:0;background:transparent}.auth-hero-visual{display:flex;align-items:center;justify-content:center;width:100%;min-height:540px;padding:12px 0}.auth-hero-image{width:min(100%,1040px);max-height:84vh;transform:scale(1.22);transform-origin:center center;object-fit:contain;filter:drop-shadow(0 22px 34px rgba(0,0,0,.36))}.auth-form-panel{display:flex;align-items:center;justify-content:center;padding:32px;width:100%}.auth-form-card{width:100%;max-width:520px;padding:32px;border-radius:var(--radius-lg);border:var(--border-default);background:var(--bg-panel);box-shadow:var(--shadow-panel);position:relative;z-index:1;display:flex;flex-direction:column;animation:panelIn .35s ease-out}.auth-form-logo-wrap{display:flex;justify-content:center}.auth-form-header{margin:18px 0 24px;text-align:center}.auth-form-header h1{margin:0;font-size:2rem;line-height:1.05;letter-spacing:.02em;color:var(--text-strong)}.auth-form-header p{margin:8px 0 0;color:var(--text-soft);letter-spacing:.05em;font-size:.9rem;line-height:1.6}@media(max-width:1080px){.auth-shell{grid-template-columns:1fr}.auth-hero-panel{padding:32px 24px 12px;border-bottom:1px solid var(--line)}.auth-hero-visual{min-height:220px}.auth-hero-image{max-height:280px;transform:none}.auth-form-panel{padding-top:20px}}@media(max-width:640px){.auth-hero-panel{padding-inline:16px}.auth-form-panel{padding:16px}.auth-form-card{padding:24px 20px}.auth-form-header h1{font-size:1.7rem}}.auth-form-stack{display:flex;flex-direction:column;gap:18px}.login-form{display:grid;gap:16px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-group{display:grid;gap:6px}.form-group label{color:var(--text-soft);font-weight:600;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}.form-group input{width:100%;min-width:0;height:var(--control-height-md);padding:0 12px;border-radius:var(--radius-sm);border:var(--border-default);background:var(--bg-panel-soft);background-clip:padding-box;color:var(--text-strong);appearance:none;-webkit-appearance:none;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.form-group input::placeholder{color:var(--text-soft)}.form-group input.input-invalid{border-color:#ff71718c;box-shadow:inset 0 0 0 1px #ff717138}.form-group input:focus,.form-group input:focus-visible{outline:none!important;outline-offset:0!important;border-color:var(--accent);box-shadow:var(--focus-inset);background:var(--bg-panel-soft)}.form-group input:-webkit-autofill,.form-group input:-webkit-autofill:hover,.form-group input:-webkit-autofill:focus,.form-group input:-webkit-autofill:active{-webkit-text-fill-color:var(--text-strong);-webkit-box-shadow:0 0 0 1000px var(--bg-panel-soft) inset,inset 0 0 0 1px var(--line);box-shadow:0 0 0 1000px var(--bg-panel-soft) inset,inset 0 0 0 1px var(--line);transition:background-color 9999s ease-in-out 0s;caret-color:var(--text-strong)}.field-error{margin:0;color:var(--danger);font-size:.82rem;line-height:1.45}.password-strength{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;color:var(--text-soft);font-size:.82rem}.password-strength-bars{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.password-strength-bar{height:6px;border-radius:var(--radius-pill);background:var(--line)}.password-strength-bar.active{background:var(--accent)}.password-strength-1 .password-strength-bar.active{background:var(--danger)}.password-strength-2 .password-strength-bar.active{background:var(--warn)}.password-strength-3 .password-strength-bar.active{background:var(--accent)}.password-strength-4 .password-strength-bar.active{background:var(--ok)}.password-strength-label{min-width:74px;text-align:right;font-weight:700}.form-group input:disabled{opacity:.7;cursor:not-allowed}.login-button{margin-top:6px;height:var(--control-height-lg);transition:transform .15s ease,filter .15s ease}.login-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.04)}.demo-info{padding:14px 16px;border:var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-panel-soft);color:var(--text-soft);font-size:.88rem}.demo-info p{margin:0 0 8px;color:var(--text);font-weight:600}.demo-info ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}.demo-info code{color:var(--text);background:var(--bg-panel);border:var(--border-default);border-radius:6px;padding:2px 6px}.auth-switch{margin-top:4px;display:flex;align-items:center;justify-content:center;gap:8px;padding-top:18px;border-top:1px solid var(--line-soft);color:var(--text-soft);font-size:.9rem}.auth-switch-link{color:var(--text);text-decoration:none;font-weight:700}.auth-switch-link:hover{text-decoration:underline}@media(max-width:520px){.form-row{grid-template-columns:1fr}}.app-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:var(--bg-surface)}.app-header-shell{padding:10px 18px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}.app-header-left,.app-header-right{display:flex;align-items:center;gap:12px}.app-header-right{justify-content:flex-end}.app-header-center{text-align:center}.app-header-center h1{margin:0;color:var(--text-strong);font-size:1.65rem;letter-spacing:.03em}.app-header-back-button{height:36px;padding:0 13px;display:inline-flex;align-items:center;gap:8px;border-radius:var(--radius-sm);border:var(--border-default);color:var(--text-strong);background:var(--bg-panel-soft);cursor:pointer;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.app-header-back-chevron{width:10px;height:10px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}.app-header-logo-button{width:38px;height:var(--control-height-sm);border-radius:10px;border:var(--border-default);background:var(--bg-panel-soft);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff08}.app-header-logo-button:hover,.app-header-back-button:hover,.app-header-user-chip:hover,.app-header-button:hover{filter:brightness(1.06)}.app-header-logo{display:block;width:30px;height:30px;padding:0;border-radius:4px;background:transparent;border:0}.app-header-user-chip{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 11px;border-radius:var(--radius-pill);border:var(--border-default);color:var(--text);background:var(--bg-panel);cursor:pointer}.app-header-user-role{min-height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);border:var(--border-soft);padding:0 7px;color:var(--text-soft);background:var(--bg-panel-soft);text-transform:uppercase;letter-spacing:.12em;font-size:.64rem;font-weight:700}.app-header-user-name{color:var(--text-strong);font-weight:700;font-size:.92rem;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.app-header-button{height:36px;padding:0 13px;border-radius:var(--radius-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.app-header-secondary-button{border:var(--border-default);background:var(--bg-panel-soft);color:var(--text-strong)}.app-header-logout-button{border:1px solid rgba(141,60,79,.45);background:#5a2431;color:#ffd9de}@media(max-width:900px){.app-header-shell{grid-template-columns:1fr}.app-header-left,.app-header-center,.app-header-right{justify-content:flex-start;text-align:left}.app-header-right{flex-wrap:wrap}.app-header-center h1{font-size:1.5rem}}@media(max-width:640px){.app-header-shell{padding-inline:16px}}.dashboard-container{min-height:100vh;position:relative;z-index:1}.dashboard-main{width:100%;padding:32px 24px 40px}.robots-section-header{display:block;margin-bottom:18px}.robots-section h2{margin:0 0 6px;color:var(--text-strong);font-size:1.7rem;letter-spacing:.03em}.robots-section-description{margin:0;color:var(--text-soft);font-size:1rem}.error-message{margin-bottom:16px}.empty-state p{margin:0 0 16px}.robots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px}.robot-card{border-radius:var(--radius-md);border:var(--border-default);background:var(--bg-panel);box-shadow:var(--shadow-panel);padding:18px 18px 16px;animation:panelIn .25s ease-out}.robot-card:hover{border-color:var(--line)}.robot-card-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.robot-card-title{min-width:0}.robot-card-header h3{margin:0;color:var(--text-strong);font-size:1.45rem}.robot-card-controlled-by{margin:6px 0 0;color:var(--text-soft);font-size:.92rem}.robot-card-controlled-by span{color:var(--text-strong);font-weight:700}.robot-card-status-strip{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.robot-card-muted{margin:0;color:var(--text-soft);font-size:.95rem}.robot-card-actions{display:grid;gap:10px}.robot-card-actions.single-action{grid-template-columns:1fr}.robot-card-actions.dual-action{grid-template-columns:repeat(2,minmax(0,1fr))}.control-button,.control-button-disabled,.view-button{width:100%;height:var(--control-height-md)}.control-button:hover{filter:brightness(1.04)}.view-button{border-color:var(--accent)}.view-button:hover{filter:brightness(1.05)}.control-button-disabled{color:var(--text-soft)}@media(max-width:640px){.dashboard-main{padding-inline:16px}.robots-grid,.robot-card-actions.dual-action{grid-template-columns:1fr}}.profile-container{min-height:100vh;background:var(--bg-base)}.profile-main{width:min(1180px,calc(100vw - 40px));margin:0 auto;padding:28px 0 42px;display:grid;gap:18px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.profile-form{min-height:480px;padding:22px;display:grid;gap:16px;align-content:start}.profile-section-heading h2{margin:0;color:var(--text-strong);font-size:1.35rem}.profile-section-heading p,.profile-password-note{margin:4px 0 0;color:var(--text-soft);font-size:.92rem}.profile-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile-form label{display:grid;gap:6px}.profile-form label>span{color:var(--text-soft);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.profile-form input{width:100%;min-width:0;height:var(--control-height-md);padding:0 12px;border-radius:var(--radius-sm);border:var(--border-default);color:var(--text-strong);background:var(--bg-panel-soft)}.profile-form input:focus,.profile-form input:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-inset)}.profile-form input.input-invalid{border-color:#e05000b3;box-shadow:inset 0 0 0 1px #e050004d}.profile-form input:disabled{opacity:.7;cursor:not-allowed}.profile-form small{color:var(--danger);font-size:.82rem}.profile-primary-button{height:var(--control-height-md)}.profile-primary-button:hover:not(:disabled){filter:brightness(1.06)}@media(max-width:900px){.profile-grid{grid-template-columns:1fr}}@media(max-width:560px){.profile-form-row{grid-template-columns:1fr}.profile-main{width:calc(100vw - 20px)}}.control-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:78px;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--bg-surface)}.control-header h1{margin:0;text-align:left;font-size:1.95rem;color:var(--text-strong);letter-spacing:.02em;white-space:nowrap}.control-title-group{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;z-index:1}.control-title-row{display:inline-flex;align-items:center;justify-content:center;gap:10px;pointer-events:none}.control-workspace-tabs{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:3px;border:var(--border-soft);border-radius:var(--radius-pill);background:var(--bg-panel)}.control-workspace-tab{height:26px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-pill);color:var(--text-soft);background:transparent;cursor:pointer;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.control-workspace-tab:hover{color:var(--text);background:var(--bg-panel-soft)}.control-workspace-tab.active{color:var(--text-strong);border-color:var(--accent-soft);background:var(--accent-soft)}.control-header-left{display:flex;align-items:center;gap:14px;z-index:2}.control-header-right{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto;z-index:2}.header-status-strip{display:inline-flex;align-items:center;justify-content:flex-end;flex-direction:row-reverse;gap:8px;min-height:var(--control-height-sm)}.control-notification-area{position:relative;display:inline-flex;align-items:center;gap:6px}.control-notification-chip{height:32px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border-radius:var(--radius-pill);background:var(--bg-panel);cursor:pointer;font-weight:700}.control-notification-chip span{color:var(--text-soft);font-size:.68rem;letter-spacing:.08em}.control-notification-chip strong{color:var(--text-strong);font-size:.8rem;font-family:var(--font-mono)}.control-notification-chip.warn{border:1px solid rgba(192,144,0,.62)}.control-notification-chip.error{border:1px solid rgba(224,80,0,.68)}.control-notification-chip:hover{filter:brightness(1.08)}.control-notification-tray{position:absolute;top:calc(100% + 10px);right:0;z-index:60;width:min(420px,calc(100vw - 32px));border-radius:var(--radius-md);border:var(--border-default);background:var(--bg-panel);box-shadow:var(--shadow-floating);overflow:hidden}.control-notification-tray-header,.control-notification-tray-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line-soft)}.control-notification-tray-footer{border-top:1px solid var(--line-soft);border-bottom:0}.control-notification-tray-header strong{color:var(--text-strong);font-size:.95rem}.control-notification-tray button{min-height:28px;border-radius:var(--radius-sm);border:var(--border-default);color:var(--text);background:var(--bg-panel-soft);cursor:pointer;font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.control-notification-tray button:disabled{cursor:not-allowed;opacity:.5}.control-notification-empty{padding:14px 12px;color:var(--text-soft);font-size:.86rem}.control-notification-list{max-height:330px;overflow-y:auto;display:grid;gap:6px;padding:10px}.control-notification-item{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:9px;padding:9px;border-radius:var(--radius-sm);border:var(--border-soft);background:var(--bg-panel-soft)}.control-notification-item.warn{border-left:3px solid var(--warn)}.control-notification-item.error{border-left:3px solid var(--danger)}.control-notification-level{min-width:42px;color:var(--text-soft);font-size:.68rem;font-weight:700;letter-spacing:.08em}.control-notification-item time{display:block;color:var(--text-soft);font-size:.72rem;font-family:var(--font-mono)}.control-notification-item p{margin:3px 0 0;color:var(--text);font-size:.84rem;line-height:1.35}.control-notification-item>button{width:24px;min-height:24px;padding:0;line-height:1}.back-button,.header-run-stop-button,.release-button,.reacquire-button{height:var(--control-height-sm);padding:0 14px;border-radius:var(--radius-sm);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700;cursor:pointer}.back-button{display:inline-flex;align-items:center;gap:8px;border:var(--border-default);color:var(--text-strong);background:var(--bg-panel-soft)}.back-chevron{width:8px;height:8px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}.back-button:hover{filter:brightness(1.06)}.back-button:disabled{cursor:not-allowed;opacity:.58;filter:none}.release-button{border:1px solid #5d2e35;color:#ffd9de;background:linear-gradient(145deg,#7b3040,#622937)}.header-run-stop-button.run{min-width:96px;border:1px solid rgba(77,162,111,.5);color:#d8ffea;background:linear-gradient(145deg,#226c42f2,#195936f2)}.header-run-stop-button.stop{min-width:96px;border:1px solid rgba(194,100,100,.5);color:#ffe0e0;background:linear-gradient(145deg,#832a2af2,#6c2121f2)}.release-button:hover,.header-run-stop-button:hover{filter:brightness(1.06)}.reacquire-button{border:1px solid var(--accent);color:var(--text-strong);background:var(--accent-soft)}.reacquire-button:hover{filter:brightness(1.06)}.header-run-stop-button:disabled,.release-button:disabled,.reacquire-button:disabled{cursor:not-allowed;opacity:.6;filter:none}.header-chip{height:32px;border-radius:var(--radius-pill);border:var(--border-soft);background:var(--bg-panel);display:inline-flex;align-items:center;gap:8px;padding:0 10px;color:var(--text)}.chip-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:700}.chip-value{color:var(--text-strong);font-size:.8rem;font-weight:700;font-family:var(--font-mono)}.battery-chip,.metric-chip{min-width:88px}.metric-chip.good{border-color:var(--state-ok-border)}.metric-chip.warn{border-color:var(--state-warn-border)}.metric-chip.bad{border-color:var(--state-danger-border)}.metric-chip.unknown{border-color:var(--state-neutral-border)}.control-state-badge{display:inline-flex;align-items:center;justify-content:center;height:30px;min-width:88px;border-radius:var(--radius-pill);padding:0 10px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:var(--border-soft)}.control-state-badge.active{color:#cbffe0;border-color:var(--state-ok-border);background:var(--state-ok-bg-strong)}.control-state-badge.at-risk{color:#ffe6b8;border-color:var(--state-warn-border);background:var(--state-warn-bg)}.control-state-badge.control-inactive,.control-state-badge.view-only{color:var(--text);border-color:var(--line);background:var(--bg-panel)}.control-state-badge.controlled-by{color:#ffe6b8;border-color:var(--state-warn-border);background:var(--state-warn-bg)}.control-state-badge.robot-offline{color:var(--state-danger-text-soft);border-color:var(--state-danger-border);background:var(--state-danger-bg);animation:batteryCriticalPulse 2s ease-in-out infinite}@keyframes batteryCriticalPulse{0%{opacity:1}50%{opacity:.55}to{opacity:1}}@media(max-width:1320px){.control-header{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"back actions" "nav nav";row-gap:10px}.control-header-left{grid-area:back}.control-title-group{position:static;left:auto;transform:none;grid-area:nav;justify-self:center;pointer-events:auto}.control-header-right{grid-area:actions;justify-self:end;margin-left:0}}@media(max-width:900px){.control-header{grid-template-columns:1fr auto;grid-template-areas:"back actions" "nav" "status";align-items:center;gap:10px}.control-header h1{font-size:1.55rem}.control-title-group{grid-area:nav;justify-content:flex-start;gap:8px;justify-self:start}.control-title-row{flex-wrap:wrap;justify-content:flex-start}.control-header-right{grid-area:status;justify-self:stretch;display:grid;gap:8px}.header-status-strip{flex-wrap:wrap;justify-content:flex-start;flex-direction:row}.release-button,.reacquire-button{justify-self:stretch}}.joystick-panel{height:100%;display:flex;flex-direction:column;justify-content:flex-start;gap:10px}.joystick-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.joystick-panel h3{margin:0;font-size:1rem;color:var(--text)}.control-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:start}.control-card{border:var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-card);padding:10px;display:flex;flex-direction:column;justify-content:flex-start;gap:10px;min-height:0}.control-card label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);font-weight:700}.control-hint{margin:0;color:var(--text-soft);font-size:.76rem}.input-toggle{display:flex;border:var(--border-soft);border-radius:var(--radius-pill);overflow:hidden;width:100%}.controller-layout-group{display:grid;gap:6px}.controller-layout-group>span{color:var(--text-soft);font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.layout-toggle{display:flex;width:100%;overflow:hidden;border:var(--border-soft);border-radius:var(--radius-sm)}.input-mode-button{flex:1;border:0;background:var(--bg-panel-soft);color:var(--text-soft);padding:7px 11px;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;line-height:1.2;cursor:pointer}.layout-mode-button{flex:1;border:0;background:var(--bg-panel-soft);color:var(--text-soft);padding:6px 8px;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;line-height:1.2;cursor:pointer}.input-mode-button.active,.layout-mode-button.active{background:var(--accent-soft);color:var(--text-strong)}.layout-mode-button:disabled{opacity:.55;cursor:not-allowed}.avoidance-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-soft);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.avoidance-toggle-button{min-width:54px;border:var(--border-soft);border-radius:var(--radius-pill);padding:5px 10px;background:var(--bg-panel-soft);color:var(--text-soft);font-size:.72rem;font-weight:800;letter-spacing:.06em;cursor:pointer}.avoidance-toggle-button.enabled{border-color:#4da26f80;background:#226c42f2;color:#d8ffea}.avoidance-toggle-button:disabled{opacity:.5;cursor:not-allowed}.speed-card input[type=range]{width:100%;margin:2px 0 6px}.joystick-live-badge{width:fit-content;border-radius:var(--radius-pill);padding:3px 8px;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;border:var(--border-soft)}.joystick-live-badge.connected{color:#d0ffde;border-color:var(--state-ok-border);background:#185a3159}.joystick-live-badge.disconnected{color:#ffe7c8;border-color:#ffba6f61;background:#8254174d}.joystick-note{margin-top:auto;padding-top:10px;border-top:1px solid var(--line-soft)}@container (max-width: 900px){.control-toolbar{grid-template-columns:1fr}}@media(max-width:980px){.control-toolbar{grid-template-columns:1fr}}@media(max-width:760px){.input-toggle{width:100%}.input-mode-button{flex:1}}.motion-actions-panel{display:flex;flex-direction:column;gap:10px;padding:10px 0 2px}.motion-row{display:grid;grid-template-columns:50px minmax(0,1fr) 32px;gap:8px;align-items:center;padding:8px;border-radius:var(--radius-pill);border:var(--border-soft);background:var(--bg-panel-soft);overflow:hidden}.motion-row-mode{background:var(--bg-panel-soft)}.motion-row-lead,.motion-row-more{display:inline-flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border:1px solid transparent;border-radius:var(--radius-pill);padding:0;background:transparent;color:var(--text-soft);box-shadow:none}.motion-row-lead{border-color:var(--line);background:var(--bg-panel);color:var(--text)}.motion-row-lead svg,.motion-row-more svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.motion-row-more{background:transparent;color:var(--text-soft);box-shadow:none;cursor:pointer}.motion-row-lead.active-row{border-color:var(--line);background:var(--bg-panel);color:var(--text-strong);box-shadow:none}.motion-row-more.enabled:hover{color:var(--text-strong);background:var(--bg-panel)}.motion-row-more.inactive{color:var(--line);cursor:default}.motion-row-viewport{position:relative;min-width:0;overflow:hidden}.motion-row-viewport.has-left-fade:before,.motion-row-viewport.has-right-fade:after{content:none;position:absolute;top:0;bottom:0;width:28px;z-index:1;pointer-events:none}.motion-row-viewport.has-left-fade:before{left:0}.motion-row-viewport.has-right-fade:after{right:0}.motion-row-track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.motion-action-button{display:flex;flex-direction:column;align-items:center;gap:5px;min-height:62px;border:0;border-radius:14px;padding:5px 6px;background:transparent;color:var(--text);cursor:pointer;transition:transform .15s ease,color .15s ease,background .15s ease}.motion-action-button:hover:not(:disabled){background:var(--bg-panel);transform:translateY(-1px)}.motion-action-button.active{background:var(--accent-soft);color:var(--text-strong)}.motion-action-button:disabled{opacity:.55;cursor:not-allowed}.motion-action-button.preview-disabled{opacity:.72}.motion-action-button.unmapped{opacity:.42}.motion-glyph{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center}.motion-glyph svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.motion-glyph svg circle,.motion-glyph svg rect{fill:none}.motion-action-label{font-size:.72rem;line-height:1.1;text-align:center;color:inherit}@media(max-width:760px){.motion-row{grid-template-columns:46px minmax(0,1fr) 28px;gap:6px;padding:7px}.motion-row-track{grid-auto-columns:minmax(80px,1fr);gap:6px}.motion-action-button{min-height:58px}.motion-action-label{font-size:.68rem}}.live-map-panel{display:flex;flex-direction:column;gap:10px;height:100%;min-height:0}.live-map-stage{position:relative;flex:1;min-height:180px;overflow:hidden;border:var(--border-default);border-radius:6px;background:#303030;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.live-map-stage.is-dragging{cursor:grabbing}.live-map-stage.is-goal-mode{cursor:crosshair}.live-map-stage.is-goal-drafting{cursor:pointer}.live-map-canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.live-map-path-overlay{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}.live-map-path-overlay polyline{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;opacity:.85;filter:drop-shadow(0 1px 2px rgba(0,0,0,.75))}.live-map-robot-model-anchor{position:absolute;z-index:2;pointer-events:none;transform:translate(-50%,-50%)}.live-map-robot-model{width:100%;height:100%;transform-origin:center;opacity:.98;filter:drop-shadow(0 2px 5px rgba(0,0,0,.75))}.live-map-robot-model.is-stale{opacity:.45}.live-map-tools{position:absolute;top:8px;right:8px;z-index:4;display:flex;gap:6px;padding:5px;border:var(--border-default);border-radius:6px;background:#2a2a2ae0;cursor:default}.live-map-tools button{height:26px;padding:0 8px;border:var(--border-default);border-radius:5px;background:var(--bg-panel-soft);color:var(--text);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.live-map-tools button:hover{border-color:var(--accent);color:var(--text-strong)}.live-map-tools button:disabled{cursor:not-allowed;opacity:.45}.live-map-tools button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--text-strong)}.live-map-goal-marker{position:absolute;z-index:3;width:36px;height:22px;pointer-events:none;transform-origin:18% 50%}.live-map-goal-marker.is-draft{opacity:.75}.live-map-goal-marker:before,.live-map-goal-marker:after{position:absolute;top:50%;content:"";box-shadow:0 0 0 1px #0000008c}.live-map-goal-marker:before{left:4px;width:22px;height:3px;border-radius:999px;background:var(--accent);transform:translateY(-50%)}.live-map-goal-marker:after{right:1px;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid var(--accent);background:transparent;box-shadow:none;transform:translateY(-50%)}.live-map-empty{align-items:center;justify-content:center;min-height:180px;padding:18px;border:var(--border-default);border-radius:6px;text-align:center}.live-map-empty p,.live-map-decode-error{margin:0;color:var(--text-soft);font-size:12px}.live-map-decode-error{display:flex;align-items:center;justify-content:center;height:100%}.live-map-meta,.live-map-legend,.live-map-payload{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--text-soft);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:11px}.live-map-payload{padding:8px 10px;border:var(--border-default);border-radius:6px;background:var(--bg-surface)}.live-map-payload span{display:inline-flex;gap:6px;align-items:baseline;white-space:nowrap}.live-map-payload b{color:var(--text);font-weight:800;text-transform:uppercase}.live-map-legend span{display:inline-flex;align-items:center;gap:5px}.live-map-legend i{display:inline-block;width:10px;height:10px;border:var(--border-default)}.live-map-legend .unknown{background:#708986}.live-map-legend .free{background:#fff}.live-map-legend .occupied{background:#000}.live-map-legend .robot{background:#d9dbe8;border-color:var(--text)}.live-map-legend .goal{background:var(--accent)}.live-map-legend .path{background:var(--accent);opacity:.85}.robot-safety-panel{display:grid;gap:12px}.robot-safety-summary{display:grid;gap:5px;border:var(--border-soft);border-radius:var(--radius-sm);padding:10px;background:var(--bg-card)}.robot-safety-summary strong{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}.robot-safety-summary span{color:var(--text-soft);font-size:.76rem;line-height:1.4}.robot-safety-summary.normal{border-left:3px solid #44c67c}.robot-safety-summary.normal strong,.robot-safety-table strong.normal{color:var(--status-normal)}.robot-safety-summary.warning{border-left:3px solid var(--status-warning)}.robot-safety-summary.warning strong,.robot-safety-table strong.warning{color:var(--status-warning)}.robot-safety-summary.critical{border-left:3px solid var(--status-critical-border);background:#61141b4d}.robot-safety-summary.critical strong,.robot-safety-table strong.critical{color:var(--status-critical)}.robot-safety-summary.unknown{border-left:3px solid #71849a}.robot-safety-summary.unknown strong{color:var(--text-soft)}.robot-safety-table{display:grid;gap:7px}.robot-safety-table div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed var(--line-soft);padding-bottom:6px}.robot-safety-table span{color:var(--text-soft);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase}.robot-safety-table strong{color:var(--text-strong);font-family:var(--font-mono);font-size:.72rem;text-align:right}.robot-safety-panel h4{margin:0;color:var(--text-soft);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.robot-motor-joints{display:grid;gap:6px}.robot-motor-joint-row{display:grid;grid-template-columns:28px repeat(3,minmax(0,1fr));align-items:stretch;gap:5px}.robot-motor-leg-label{display:flex;align-items:center;justify-content:center;border-radius:5px;background:var(--bg-panel-soft);color:var(--text-soft);font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.robot-motor-chip{display:grid;gap:3px;padding:5px;border-radius:5px;border:var(--border-soft);background:var(--bg-card)}.robot-motor-chip small{color:var(--text-soft);font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.robot-motor-chip strong{color:var(--text-strong);font-family:var(--font-mono);font-size:.68rem}.robot-motor-chip.warning{border-color:#f2a44499}.robot-motor-chip.warning strong{color:var(--status-warning)}.robot-motor-chip.critical{border-color:#ff5a67b3;background:#61141b4d}.robot-motor-chip.critical strong{color:var(--status-critical)}.robot-safety-note{margin:0;color:var(--text-soft);font-size:.68rem;line-height:1.4}.system-monitoring{display:grid;gap:10px}.monitoring-toolbar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.monitoring-window-buttons,.monitoring-actions{display:inline-flex;flex-wrap:wrap;gap:5px}.monitoring-toolbar button{border:var(--border-soft);border-radius:6px;color:var(--text-soft);background:var(--bg-panel-soft);padding:5px 9px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.monitoring-toolbar button:hover{border-color:var(--accent);color:var(--text-strong)}.monitoring-toolbar button.active{color:var(--text-strong);border-color:var(--accent);background:var(--accent-soft)}.monitoring-health-badge{border:var(--border-soft);border-radius:var(--radius-pill);padding:2px 6px;font-size:.62rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.monitoring-health-badge.normal{color:#cbffe0;border-color:#7fb06980;background:#185a3166}.monitoring-health-badge.warning{color:#ffe5b2;border-color:#f2a44494;background:#82541761}.monitoring-health-badge.critical{color:#ffd8d8;border-color:#ff5a67a6;background:#75222270}.monitoring-health-badge.unknown{color:var(--text-soft);background:var(--bg-panel-soft)}.monitoring-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.monitoring-chart{border:var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-card);padding:8px}.monitoring-chart-header{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--text-soft);font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.monitoring-chart-reading{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px}.monitoring-chart-header strong{color:var(--text-strong);font-family:var(--font-mono);text-transform:none}.monitoring-chart-plot-row{display:grid;grid-template-columns:44px 1fr;align-items:stretch}.monitoring-y-axis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding-right:6px;height:72px;color:var(--text-soft);font-family:var(--font-mono);font-size:.58rem;white-space:nowrap}.monitoring-y-axis span{line-height:1}.monitoring-y-axis-spacer{width:44px}.monitoring-time-axis-row{display:grid;grid-template-columns:44px 1fr;margin-top:6px}.monitoring-chart svg{display:block;width:100%;height:72px;overflow:visible}.monitoring-chart line{stroke:var(--line-soft);stroke-width:1}.monitoring-chart polyline{fill:none;stroke-width:2}.monitoring-chart polygon{opacity:.16}.monitoring-chart.cpu polyline{stroke:#a86062}.monitoring-chart.cpu polygon{fill:#a86062}.monitoring-chart.memory polyline{stroke:#708064}.monitoring-chart.memory polygon{fill:#708064}.monitoring-chart.network polyline{stroke:var(--accent)}.monitoring-chart.network polygon{fill:var(--accent)}.monitoring-chart.temperature polyline{stroke:var(--warn)}.monitoring-chart.temperature polygon{fill:var(--warn)}.monitoring-chart.warning{border-color:#f2a4448a}.monitoring-chart.warning polyline{stroke:var(--status-warning)}.monitoring-chart.warning polygon{fill:var(--status-warning)}.monitoring-chart.critical{border-color:#ff5a6794}.monitoring-chart.critical polyline{stroke:var(--status-critical-border)}.monitoring-chart.critical polygon{fill:var(--status-critical-border)}.monitoring-time-axis{position:relative;height:14px;color:var(--text-soft);font-family:var(--font-mono);font-size:.58rem}.monitoring-time-axis span{position:absolute;transform:translate(-50%);white-space:nowrap}.monitoring-time-axis span.start{transform:none}.monitoring-time-axis span.end{transform:translate(-100%)}@container (max-width: 980px){.monitoring-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width: 560px){.monitoring-grid{grid-template-columns:1fr}}.telemetry-overview{display:grid;gap:10px}.telemetry-overview-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.telemetry-overview-title{color:var(--text-strong);font-size:1rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700}.telemetry-overview-live{border-radius:var(--radius-pill);padding:4px 9px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;border:var(--border-soft)}.telemetry-overview-live.fresh{color:var(--state-ok-text-soft);border-color:var(--state-ok-border);background:#185a3159}.telemetry-overview-live.stale{color:var(--state-warn-text-soft);border-color:#ffba6f66;background:#8458164d}.telemetry-battery-panel{border:var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-card);padding:9px 10px}.telemetry-battery-label{color:var(--text-soft);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin-bottom:6px}.telemetry-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.telemetry-card-block{border:var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-card);padding:8px 10px}.telemetry-card-block h4{margin:0 0 8px;color:var(--text-strong);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}.telemetry-system-block{grid-column:1 / -1}.system-info-table{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:16px}.diag-table{display:grid;gap:6px}.diag-row{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed var(--line-soft);padding-bottom:4px}.diag-row:last-child{border-bottom:0;padding-bottom:0}.diag-row span{color:var(--text-soft);font-size:.74rem;letter-spacing:.04em;text-transform:uppercase}.diag-row strong{color:var(--text-strong);font-family:var(--font-mono);font-size:.8rem;font-weight:700;text-align:right}.battery-display{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.battery-bar{height:22px;border-radius:var(--radius-pill);border:var(--border-soft);background:var(--bg-panel);overflow:hidden}.battery-fill{height:100%;transition:width .2s ease-out}.battery-text{color:var(--text-strong);font-family:var(--font-mono);font-weight:700;font-size:.84rem}.telemetry-no-data{padding:12px;font-size:.86rem}.telemetry-error{border:var(--border-default);border-radius:var(--radius-sm);padding:12px;text-align:center;color:#ffb5b5;border-color:var(--state-danger-border);background:#6417174d}.telemetry-timestamp{color:var(--text-soft);font-size:.76rem;text-align:right;font-family:var(--font-mono)}@container (max-width: 1050px){.system-info-table{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width: 600px){.telemetry-overview-grid,.system-info-table{grid-template-columns:1fr}}.video-stream-panel{min-height:170px;height:100%;border-radius:var(--radius-sm);border:var(--border-soft);background:#080d13eb;position:relative;overflow:hidden}.video-stream-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:none;background-size:18px 18px;z-index:1}.video-stream-element{width:100%;height:100%;object-fit:contain;display:block;opacity:0;transition:opacity .14s ease;background:#05080d}.video-stream-element.visible{opacity:1}.video-stream-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:14px;background:linear-gradient(180deg,#0003,#000000c7)}.video-stream-title{color:var(--text-strong);font-weight:700;letter-spacing:.03em;font-size:1.02rem}.video-stream-overlay p{margin:0;color:var(--text-soft);font-size:.9rem}.video-stream-status-pill{position:absolute;top:12px;right:12px;z-index:3;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--radius-pill);border:1px solid rgba(28,180,106,.7);background:#0b4f319e;color:#ceffe1;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.video-stream-status-pill.no-signal{border-color:#ff717199;background:#7522229e;color:var(--state-danger-text-soft);animation:noSignalPulse 2s ease-in-out infinite}@keyframes noSignalPulse{0%{opacity:1}50%{opacity:.55}to{opacity:1}}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.widget-grid-section{grid-column:1 / -1;border:0;background:transparent;box-shadow:none;padding:0}.widget-grid-toolbar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 2px 12px}.widget-grid-toolbar h2{margin:0;font-size:1.2rem;color:var(--text-strong);letter-spacing:.03em}.widget-grid-toolbar p{margin:0;color:var(--text-soft);font-size:.86rem}.widget-grid-section .react-grid-layout{min-height:260px}.widget-grid-container{width:100%}.widget-grid-section .react-grid-item.react-grid-placeholder{border:1px dashed var(--accent);border-radius:var(--radius-sm);background:var(--bg-panel-soft)}.widget-card{height:100%;border-radius:var(--radius-sm);border:var(--border-soft);background:var(--bg-panel);overflow:hidden;display:grid;grid-template-rows:auto 1fr;min-height:0}.widget-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line-soft);cursor:move}.widget-card-title{display:flex;align-items:center;gap:8px}.widget-card-title h3{margin:0;color:var(--text-strong);font-size:1rem;letter-spacing:.03em}.widget-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--radius-pill);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.widget-badge.live{color:#ceffe1;border:1px solid rgba(28,180,106,.5);background:#0b4f3180}.widget-badge.stale{color:#ffe6b8;border:1px solid var(--state-warn-border);background:#784d1966}.widget-badge.offline{color:var(--state-danger-text-soft);border:1px solid var(--state-danger-border);background:#75222266}.widget-card-actions,.widget-header-map-controls{display:inline-flex;align-items:center;gap:8px;min-width:0}.widget-header-map-buttons{display:inline-flex;align-items:center;gap:6px}.widget-header-map-buttons button{min-height:24px;padding:0 9px;border:var(--border-default);border-radius:5px;background:var(--bg-panel-soft);color:var(--text);font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.widget-header-map-buttons button.primary{border-color:#3a8db5cc;background:var(--accent-soft);color:var(--text-strong)}.widget-header-map-buttons button.danger{border-color:#e05000bf;background:#602711e6;color:var(--text-strong)}.widget-header-map-buttons button:disabled{opacity:.48;cursor:not-allowed}.widget-action{width:24px;height:24px;border-radius:50%;border:var(--border-default);background:var(--bg-panel-soft);color:var(--text-strong);line-height:1;font-size:1rem;font-weight:700;cursor:pointer}.widget-action:hover{filter:brightness(1.1)}.widget-action.close{border-color:#6d363c;color:#ffd7dc;background:#6f242dcc}.widget-card-body{padding:10px;min-height:0;overflow:auto;container-type:inline-size}.media-placeholder{min-height:170px;height:100%;border-radius:var(--radius-sm);border:var(--border-soft);background:var(--bg-card);position:relative;padding:14px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;overflow:hidden}.media-placeholder:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:none;background-size:20px 20px}.media-video:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;top:-90px;right:-70px;opacity:.25;filter:blur(1px)}.media-video:after{background:none}.media-overlay-text{position:relative;z-index:1;color:var(--text-strong);font-weight:700;letter-spacing:.03em;font-size:1.02rem}.media-placeholder p{position:relative;z-index:1;margin:0;color:var(--text-soft);font-size:.9rem}.widget-log-list{display:grid;gap:6px;max-height:100%;overflow-y:auto;padding-right:4px}.widget-log-empty{color:var(--text-soft);font-size:.84rem}.widget-log-item{display:grid;grid-template-columns:auto 1fr;gap:8px;border:var(--border-soft);border-radius:6px;padding:6px 8px;background:var(--bg-card)}.widget-log-item.info{border-left:3px solid var(--accent)}.widget-log-item.warn{border-left:3px solid var(--warn)}.widget-log-item.error{border-left:3px solid var(--danger)}.widget-log-time{color:var(--text-soft);font-size:.74rem;font-family:var(--font-mono)}.widget-log-message{color:var(--text);font-size:.82rem}.widget-hidden-dock{margin-bottom:10px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--bg-panel);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.widget-hidden-dock>span{color:var(--text-soft);font-size:.84rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.widget-hidden-actions{display:inline-flex;gap:8px;flex-wrap:wrap}.media-restore-button{height:30px;padding:0 10px;border-radius:var(--radius-sm);border:var(--border-default);color:var(--text-strong);background:var(--bg-panel-soft);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.media-restore-button:hover{filter:brightness(1.08)}@media(max-width:980px){.widget-grid-toolbar{flex-direction:column;align-items:flex-start}}@media(max-width:760px){.widget-hidden-dock{flex-direction:column;align-items:flex-start}.media-placeholder{min-height:190px}}.robot-control-container{min-height:100vh;position:relative;z-index:1}.robot-notification-toasts{position:fixed;top:92px;right:18px;z-index:90;width:min(420px,calc(100vw - 36px));display:grid;gap:8px;pointer-events:none}.robot-notification-toast{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:11px;border-radius:var(--radius-md);border:var(--border-default);background:var(--bg-panel);box-shadow:var(--shadow-panel)}.robot-notification-toast.warn{border-left:4px solid var(--warn)}.robot-notification-toast.error{border-left:4px solid var(--danger)}.robot-notification-toast-level{min-width:44px;color:var(--text-soft);font-size:.72rem;font-weight:700;letter-spacing:.08em}.robot-notification-toast-body{min-width:0}.robot-notification-toast p{margin:0;color:var(--text);font-size:.86rem;line-height:1.35}.robot-notification-toast button{width:26px;height:26px;border-radius:50%;border:var(--border-default);color:var(--text);background:var(--bg-panel-soft);cursor:pointer;font-weight:700;line-height:1}.error-message{max-width:1240px;margin:16px auto 0}.robot-safety-top-banner{max-width:1240px;margin:16px auto 0;padding:12px 14px}.loading{min-height:100vh}.robot-control-back-button{height:var(--control-height-sm);margin:12px auto 0;padding:0 14px;border-radius:var(--radius-sm);border:var(--border-default);color:var(--text-strong);background:var(--bg-panel-soft);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700;cursor:pointer;display:block}.robot-control-back-button:hover{filter:brightness(1.06)}.control-content{max-width:none;margin:0 auto;padding:24px 20px 32px;display:block}@media(max-width:760px){.robot-notification-toasts{top:132px;right:12px;width:calc(100vw - 24px)}.control-content{padding:16px}}.admin-alerts-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--radius-md);border:var(--border-default);background:var(--bg-panel)}.admin-alerts-list{display:flex;flex-wrap:wrap;gap:10px}.admin-alert-pill{padding:8px 12px;border-radius:var(--radius-pill);border:var(--border-default);font-size:.84rem;font-weight:700}.admin-alert-pill.tone-danger{color:#ffd6d6;border-color:#ff717161;background:#74181852}.admin-alert-pill.tone-warn{color:#ffe5c4;border-color:#ffba6f57;background:#7045144d}.admin-alert-pill.tone-info{color:var(--text);border-color:var(--accent);background:var(--bg-panel-soft)}.admin-alerts-dismiss{width:34px;height:34px;border-radius:var(--radius-pill);border:1px solid rgba(255,113,113,.35);background:#6d1530c7;color:#ffe0e7;font-size:1.2rem;line-height:1;cursor:pointer}.admin-stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.admin-stat-card{padding:16px;border-radius:var(--radius-md);border:var(--border-default);background:var(--bg-panel);box-shadow:var(--shadow-panel)}.admin-stat-card.tone-good{border-color:#61d98a4d}.admin-stat-card.tone-warn{border-color:#ffba6f52}.admin-stat-card.tone-danger{border-color:#ff717157}.admin-stat-label{margin:0 0 8px;color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.admin-stat-value{display:block;color:var(--text-strong);font-size:1.7rem;line-height:1.1}.admin-stat-detail{display:block;margin-top:8px;color:var(--text-soft);font-size:.88rem}.admin-tabs{display:flex;flex-wrap:wrap;gap:10px}.admin-tab-button{min-height:40px;padding:0 14px;border-radius:var(--radius-pill);border:var(--border-default);background:var(--bg-panel-soft);color:var(--text);cursor:pointer;font-weight:700;letter-spacing:.03em}.admin-tab-button.active{color:var(--text-on-accent);border-color:transparent;background:var(--accent)}.admin-panel{border-radius:var(--radius-lg);border:var(--border-default);background:var(--bg-panel);box-shadow:var(--shadow-panel);overflow:hidden}.admin-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line-soft)}.admin-panel-title-group h2{margin:0;color:var(--text-strong);font-size:1.35rem}.admin-panel-title-group p{margin:4px 0 0;color:var(--text-soft);font-size:.9rem}.admin-panel-actions{display:flex;align-items:center;gap:10px}.admin-secondary-button,.admin-danger-button,.admin-inline-button,.admin-inline-button-danger{min-height:var(--control-height-sm);padding:0 14px;border-radius:var(--radius-sm);border:var(--border-default);cursor:pointer;font-weight:700}.admin-secondary-button,.admin-inline-button{color:var(--text-strong);background:var(--bg-panel-soft)}.admin-danger-button,.admin-inline-button-danger{color:#ffe0e5;border-color:#ff717147;background:#761b31c7}.admin-secondary-button:disabled,.admin-danger-button:disabled,.admin-inline-button:disabled,.admin-inline-button-danger:disabled,.admin-select:disabled{cursor:wait;opacity:.7}.admin-table-wrap{overflow-x:auto}.admin-create-robot-form{padding:18px 20px;border-bottom:1px solid var(--line-soft);background:var(--bg-panel-soft)}.admin-form-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px}.admin-form-grid label{display:grid;gap:6px}.admin-form-grid label>span{color:var(--text-soft);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.admin-form-grid input,.admin-form-grid .admin-select{width:100%;min-width:0;min-height:var(--control-height-sm);padding:0 12px;border-radius:var(--radius-sm);border:var(--border-default);color:var(--text-strong);background:var(--bg-panel)}.admin-form-grid input:focus,.admin-form-grid input:focus-visible,.admin-form-grid .admin-select:focus,.admin-form-grid .admin-select:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-inset)}.admin-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.admin-data-table{width:100%;border-collapse:collapse}.admin-data-table th,.admin-data-table td{padding:14px 16px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}.admin-data-table th{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.admin-data-table td{color:var(--text)}.admin-data-table tr:last-child td{border-bottom:0}.admin-empty-state{padding:28px 20px}.admin-stack-list{display:flex;flex-direction:column;gap:8px}.admin-chip-list{display:flex;flex-wrap:wrap;gap:8px}.admin-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-pill);border:var(--border-default);background:var(--bg-panel-soft);font-size:.84rem}.admin-chip button{border:0;background:transparent;color:inherit;cursor:pointer;font-weight:700}.admin-status-pill{display:inline-flex;align-items:center;padding:5px 10px;border-radius:var(--radius-pill);border:var(--border-default);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.admin-status-pill.healthy,.admin-status-pill.active,.admin-status-pill.success{color:var(--state-ok-text);border-color:#61d98a61;background:#1c72384d}.admin-status-pill.inactive,.admin-status-pill.failed,.admin-status-pill.error,.admin-status-pill.degraded{color:#ffd9d9;border-color:#ff717157;background:var(--state-danger-bg-soft)}.admin-status-pill.maintenance,.admin-status-pill.warn{color:#ffe4c0;border-color:#ffba6f57;background:#6e481847}.admin-status-pill.unknown{color:var(--text-soft)}.admin-select{min-height:var(--control-height-sm);padding:0 12px;border-radius:var(--radius-sm);border:var(--border-default);color:var(--text-strong);background:var(--bg-panel-soft)}.admin-field-note{display:block;margin-top:6px;color:var(--text-soft);font-size:.8rem}.admin-monospace{font-family:var(--font-mono)}.admin-cell-title{color:var(--text-strong);font-weight:700}.admin-cell-subtle{display:block;margin-top:4px;color:var(--text-soft);font-size:.85rem}@media(max-width:1180px){.admin-form-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media(max-width:680px){.admin-panel-header,.admin-form-actions{align-items:stretch;flex-direction:column}.admin-panel-actions{justify-content:stretch}.admin-panel-actions>button,.admin-form-actions>button{width:100%}.admin-form-grid{grid-template-columns:1fr}}.admin-notice{margin-bottom:18px}.admin-dashboard-container{min-height:100vh}.admin-dashboard-main{width:min(1520px,calc(100vw - 32px));margin:0 auto;padding:24px 0 40px;display:flex;flex-direction:column;gap:18px}.admin-dashboard-error{margin:0}.admin-dashboard-content-shell{display:flex;flex-direction:column;gap:16px}.admin-dashboard-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.admin-dashboard-toolbar h2{margin:0;color:var(--text-strong);font-size:1.45rem}.admin-dashboard-toolbar p{margin:4px 0 0;color:var(--text-soft)}.admin-dashboard-notice-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-dashboard-notice-dismiss{width:28px;height:28px;border:0;border-radius:var(--radius-pill);background:var(--bg-panel);color:inherit;cursor:pointer;font-size:1rem;line-height:1}@media(max-width:900px){.admin-dashboard-main{width:calc(100vw - 20px);padding-top:18px}.admin-dashboard-toolbar{align-items:stretch;flex-direction:column}}#root{min-height:100vh}@keyframes panelIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
