@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Titillium+Web:wght@400;600;700&display=swap";:root{--bg-base: #171b21;--bg-surface: #20262f;--bg-panel: #262e39;--bg-panel-soft: #2a3441;--line: #3a4658;--line-soft: #2e3847;--text-strong: #ecf2f9;--text: #cbd8e6;--text-soft: #91a3b8;--accent: #54b9ff;--accent-soft: #3f9ce6;--ok: #61d98a;--warn: #ffba6f;--danger: #ff7171;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-panel: 0 12px 28px rgba(0, 0, 0, .35)}*,*: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:Titillium Web,Segoe UI,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 12% 8%,rgba(84,185,255,.14) 0%,transparent 35%),radial-gradient(circle at 88% 10%,rgba(97,217,138,.1) 0%,transparent 34%),linear-gradient(145deg,#171b21,#1c232d 58%,#202933)}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:24px 24px;opacity:.45}button,input,select,textarea{font:inherit}.monospace,code,pre{font-family:JetBrains Mono,ui-monospace,monospace}: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:#3c4d62;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#49617d}.auth-shell{position:relative;min-height:100vh;display:grid;grid-template-columns:minmax(520px,1.45fr) minmax(400px,.75fr);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)) drop-shadow(0 0 38px rgba(84,185,255,.08))}.auth-form-panel{display:flex;align-items:center;justify-content:center;padding:32px 32px 32px 24px}.auth-form-card{width:100%;max-width:520px;padding:32px;border-radius:var(--radius-lg);border:1px solid var(--line);background:linear-gradient(155deg,#262e39f2,#20262ff2);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 rgba(84,185,255,.12)}.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:44px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:#0f1319b8;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:#6f8299}.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:#54b9ff8c;box-shadow:inset 0 0 0 1px #54b9ff47;background:#0f1319ad}.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 rgba(15,19,25,.92) inset,inset 0 0 0 1px rgba(58,70,88,1);box-shadow:0 0 0 1000px #0f1319e6 inset,inset 0 0 0 1px #3a4658;transition:background-color 9999s ease-in-out 0s;caret-color:var(--text-strong)}.field-error{margin:0;color:#ffb0b0;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:999px;background:#3a4658d9}.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:#6dc4ff}.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}.error-message{padding:10px 12px;border:1px solid rgba(255,113,113,.4);border-left-width:4px;border-radius:var(--radius-sm);color:#ffb0b0;background:#781b1b40;font-size:.9rem}.success-message{padding:10px 12px;border:1px solid rgba(97,217,138,.4);border-left-width:4px;border-radius:var(--radius-sm);color:#c8ffd8;background:#12592a3d;font-size:.9rem}.login-button{margin-top:6px;height:46px;border:0;border-radius:var(--radius-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#09121d;background:linear-gradient(135deg,var(--accent) 0%,#8bdcf5 100%);cursor:pointer;transition:transform .15s ease,filter .15s ease}.login-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.04)}.login-button:disabled{opacity:.65;cursor:not-allowed}.demo-info{padding:14px 16px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#12192370;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:#9ad8ff;background:#151f2ccc;border:1px solid #36495f;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:#9ad8ff;text-decoration:none;font-weight:700}.auth-switch-link:hover{text-decoration:underline}@media(max-width:520px){.form-row{grid-template-columns:1fr}}.dashboard-container{min-height:100vh;position:relative;z-index:1}.dashboard-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:#171b21e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dashboard-header-shell{padding:16px 20px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}.dashboard-header-left,.dashboard-header-right{display:flex;align-items:center;gap:12px}.dashboard-header-right{justify-content:flex-end}.dashboard-header-center{text-align:center}.dashboard-fleet-pill{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(145deg,#222e3feb,#1c2532eb);display:inline-flex;align-items:center;justify-content:center}.header-logo{width:30px;height:30px;padding:0;border-radius:0;background:transparent;border:0}.dashboard-header h1{margin:0;color:var(--text-strong);font-size:1.95rem;letter-spacing:.03em}.dashboard-user-name{color:var(--text-strong);font-weight:700;font-size:1rem;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.dashboard-user-chip{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border-radius:999px;border:1px solid rgba(84,185,255,.35);background:#21384e6b}.dashboard-user-role{display:inline-flex;align-items:center;justify-content:center;min-height:26px;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:700;color:#8bd1ff;border-radius:999px;padding:0 6px;background:transparent}.dashboard-header-button{height:42px;padding:0 16px;border-radius:var(--radius-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.dashboard-admin-button{border:1px solid var(--line);background:linear-gradient(145deg,#2d3f56eb,#243144eb);color:var(--text-strong)}.dashboard-logout-button{border:1px solid rgba(141,60,79,.45);background:linear-gradient(145deg,#5a2431eb,#491c27eb);color:#ffd9de}.dashboard-header-button:hover{filter:brightness(1.08)}.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;padding:12px;border-radius:var(--radius-sm);border:1px solid rgba(255,113,113,.45);border-left-width:4px;color:#ffb2b2;background:#6617174d}.loading,.empty-state{border-radius:var(--radius-md);border:1px solid var(--line);background:#262e39d1;color:var(--text);padding:32px;text-align:center}.empty-state p{margin:0 0 16px}.retry-button{height:38px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius-sm);color:#d6ebff;background:linear-gradient(145deg,#2d3f56,#30465f);font-weight:700;cursor:pointer}.robots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px}.robot-card{border-radius:var(--radius-md);border:1px solid var(--line);background:linear-gradient(165deg,#262e39ed,#20262fed);box-shadow:var(--shadow-panel);padding:18px 18px 16px;animation:panelIn .25s ease-out}.robot-card:hover{border-color:#4e6178}.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}.status-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.status-active{color:#c8ffd8;background:#1c72386b;border:1px solid rgba(97,217,138,.45)}.status-inactive,.status-error{color:#ffd5d5;background:#7e1d1d61;border:1px solid rgba(255,113,113,.35)}.status-maintenance,.status-idle{color:#ffe8c7;background:#82541759;border:1px solid rgba(255,186,111,.35)}.dashboard-battery-chip{min-height:32px;border-radius:999px;border:1px solid var(--line-soft);background:#10161fb8;display:inline-flex;align-items:center;gap:8px;padding:0 10px;color:var(--text)}.dashboard-battery-icon{display:inline-flex;align-items:center;gap:2px}.dashboard-battery-shell{width:22px;height:12px;border-radius:3px;border:1px solid #5b6d7f;padding:1px;display:inline-flex;align-items:center;background:#0d1219db;overflow:hidden}.dashboard-battery-fill{height:100%;border-radius:2px;background:#61d98a;transition:width .14s ease-out,background-color .14s ease-out}.dashboard-battery-cap{width:2px;height:6px;border-radius:1px;background:#5b6d7f}.dashboard-battery-value{color:var(--text-strong);font-size:.8rem;font-weight:700;font-family:JetBrains Mono,ui-monospace,monospace}.dashboard-battery-chip.good{border-color:#61d98a73}.dashboard-battery-chip.good .dashboard-battery-fill{background:#61d98a}.dashboard-battery-chip.warn{border-color:#ffba6f73}.dashboard-battery-chip.warn .dashboard-battery-fill{background:#ffba6f}.dashboard-battery-chip.low{border-color:#ff8c4d73}.dashboard-battery-chip.low .dashboard-battery-fill{background:#ff8c4d}.dashboard-battery-chip.critical{border-color:#ff5d5d73}.dashboard-battery-chip.critical .dashboard-battery-fill{background:#ff5d5d;animation:batteryCriticalPulse 1s ease-in-out infinite}.dashboard-battery-chip.unknown{border-color:#7b8fa566}.dashboard-battery-chip.unknown .dashboard-battery-fill{background:#7b8fa5}.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:44px;border-radius:var(--radius-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.control-button{border:0;color:#0b1522;background:linear-gradient(130deg,#54b9ff,#8fe2f6);cursor:pointer}.control-button:hover{filter:brightness(1.04)}.view-button{border:1px solid rgba(84,185,255,.28);color:#d9f3ff;background:linear-gradient(145deg,#1c4160e0,#215076e0);cursor:pointer}.view-button:hover{filter:brightness(1.05)}.control-button-disabled{border:1px solid #485568;color:#8a99ad;background:#2f3a47bf;cursor:not-allowed}@keyframes batteryCriticalPulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.35)}}@media(max-width:900px){.dashboard-header-shell{grid-template-columns:1fr}.dashboard-header-left,.dashboard-header-center,.dashboard-header-right{justify-content:flex-start;text-align:left}.dashboard-header-right{flex-wrap:wrap}.dashboard-header h1{font-size:1.5rem}}@media(max-width:640px){.dashboard-main,.dashboard-header-shell{padding-inline:16px}.robots-grid,.robot-card-actions.dual-action{grid-template-columns:1fr}}.control-header{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:#171b21e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky}.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:inline-flex;align-items:center;justify-content:center;gap:10px;pointer-events:none;z-index:1}.control-header-left{display:flex;align-items:center;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:38px}.back-button,.release-button,.reacquire-button{height:38px;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:1px solid #485566;color:#d8e8fa;background:linear-gradient(140deg,#2f3b4b,#2b3644)}.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)}.release-button:hover{filter:brightness(1.06)}.reacquire-button{border:1px solid #2f5f75;color:#d4f5ff;background:linear-gradient(145deg,#2a6c84,#255a6f)}.reacquire-button:hover{filter:brightness(1.06)}.release-button:disabled,.reacquire-button:disabled{cursor:not-allowed;opacity:.6;filter:none}.header-chip{height:32px;border-radius:999px;border:1px solid var(--line-soft);background:#10161fb8;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:JetBrains Mono,ui-monospace,monospace}.battery-chip{min-width:88px}.battery-icon{display:inline-flex;align-items:center;gap:2px}.battery-shell{width:22px;height:12px;border-radius:3px;border:1px solid #5b6d7f;padding:1px;display:inline-flex;align-items:center;background:#0d1219db;overflow:hidden}.battery-fill{height:100%;border-radius:2px;background:#61d98a;transition:width .14s ease-out,background-color .14s ease-out}.battery-cap{width:2px;height:6px;border-radius:1px;background:#5b6d7f}.battery-chip.good .battery-fill{background:#61d98a}.battery-chip.good{border-color:#61d98a73}.battery-chip.warn .battery-fill{background:#ffba6f}.battery-chip.warn{border-color:#ffba6f73}.battery-chip.low .battery-fill{background:#ff8c4d}.battery-chip.low{border-color:#ff8c4d73}.battery-chip.critical .battery-fill{background:#ff5d5d;animation:batteryCriticalPulse 1s ease-in-out infinite}.battery-chip.critical{border-color:#ff5d5d73}.battery-chip.unknown .battery-fill{background:#7b8fa5}.battery-chip.unknown{border-color:#7b8fa566}.link-chip{min-width:92px}.signal-bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.signal-bar{width:3px;border-radius:999px;background:#7b8fa56b}.signal-bar:nth-child(1){height:4px}.signal-bar:nth-child(2){height:6px}.signal-bar:nth-child(3){height:9px}.signal-bar:nth-child(4){height:12px}.signal-bar.active,.link-chip.good .signal-bar.active{background:#61d98a}.link-chip.good{border-color:#61d98a73}.link-chip.warn .signal-bar.active{background:#ffba6f}.link-chip.warn{border-color:#ffba6f73}.link-chip.bad .signal-bar.active{background:#ff7171}.link-chip.bad{border-color:#ff717173}.link-chip.unknown{border-color:#7b8fa566}.metric-chip{min-width:88px}.metric-chip.good{border-color:#61d98a73}.metric-chip.warn{border-color:#ffba6f73}.metric-chip.bad{border-color:#ff717173}.metric-chip.unknown{border-color:#7b8fa566}.control-state-badge{display:inline-flex;align-items:center;justify-content:center;height:30px;min-width:88px;border-radius:999px;padding:0 10px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-soft)}.control-state-badge.active{color:#cbffe0;border-color:#61d98a73;background:#18603673}.control-state-badge.at-risk{color:#ffe6b8;border-color:#ffba6f73;background:#784d1973}.control-state-badge.control-inactive{color:#d8e8fa;border-color:#5e8cb973;background:#25436073}.control-state-badge.view-only{color:#d4f5ff;border-color:#52bade73;background:#18586e73}.control-state-badge.controlled-by{color:#ffe6b8;border-color:#ffba6f73;background:#784d1973}.control-state-badge.robot-offline{color:#ffd3d3;border-color:#ff717173;background:#75222273;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" "title title";row-gap:10px}.control-header-left{grid-area:back}.control-title-group{position:static;left:auto;transform:none;grid-area:title;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" "title" "status";align-items:center;gap:10px}.control-header h1{font-size:1.55rem}.control-title-group{grid-area:title;justify-content:flex-start;flex-wrap:wrap;gap:8px;justify-self: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:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#0b121b59;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:1px solid var(--line-soft);border-radius:999px;overflow:hidden;width:100%}.input-mode-button{flex:1;border:0;background:#161f2ab3;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}.input-mode-button.active{background:#42a4f547;color:#d5eeff}.run-stop-button{height:40px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;font-weight:800;cursor:pointer}.run-stop-button.run{border-color:#4da26f80;color:#d8ffea;background:linear-gradient(145deg,#226c42f2,#195936f2)}.run-stop-button.stop{border-color:#c2646480;color:#ffe0e0;background:linear-gradient(145deg,#832a2af2,#6c2121f2)}.run-stop-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:999px;padding:3px 8px;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;border:1px solid var(--line-soft)}.joystick-live-badge.connected{color:#d0ffde;border-color:#61d98a73;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-actions-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.motion-actions-header h3{margin:0;font-size:.96rem;color:var(--text)}.motion-actions-hint{margin:4px 0 0;color:var(--text-soft);font-size:.74rem;line-height:1.45}.motion-row{display:grid;grid-template-columns:50px minmax(0,1fr) 32px;gap:8px;align-items:center;padding:8px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#302e1e80,#1d1b1294),radial-gradient(circle at top,rgba(255,255,255,.04),transparent 55%);overflow:hidden}.motion-row-mode{background:linear-gradient(135deg,#2b292285,#19181394),radial-gradient(circle at top,rgba(255,255,255,.04),transparent 55%)}.motion-row-lead,.motion-row-more{display:inline-flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border:0;border-radius:999px;padding:0;background:linear-gradient(145deg,#5f66fff2,#4e78f6f2);color:#f4f8ff;box-shadow:inset 0 0 0 1px #ffffff14}.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:#ffffff80;box-shadow:none;cursor:pointer}.motion-row-lead.active-row{background:linear-gradient(145deg,#768eff,#5694fffa);color:#fff;box-shadow:0 0 0 1px #9eb7ff47,0 0 22px #5f7aff3d,inset 0 0 0 1px #ffffff1f}.motion-row-more.enabled:hover{color:#ffffffe0;background:#ffffff0d}.motion-row-more.inactive{color:#ffffff4d;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:"";position:absolute;top:0;bottom:0;width:28px;z-index:1;pointer-events:none}.motion-row-viewport.has-left-fade:before{left:0;background:linear-gradient(90deg,#191711eb,#19171100)}.motion-row-viewport.has-right-fade:after{right:0;background:linear-gradient(270deg,#191711eb,#19171100)}.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:#f4f5f8d9;cursor:pointer;transition:transform .15s ease,color .15s ease,background .15s ease}.motion-action-button:hover:not(:disabled){background:#ffffff0a;transform:translateY(-1px)}.motion-action-button.active{background:#7080ff1f;color:#eef4ff}.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}}.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:999px;padding:4px 9px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;border:1px solid var(--line-soft)}.telemetry-overview-live.fresh{color:#cbffdb;border-color:#61d98a73;background:#185a3159}.telemetry-overview-live.stale{color:#ffe8ca;border-color:#ffba6f66;background:#8458164d}.telemetry-battery-panel{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#0c121a7a;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:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#090e1494;padding:8px 10px}.telemetry-card-block h4{margin:0 0 8px;color:#cfe7fd;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}.diag-table{display:grid;gap:6px}.diag-row{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed rgba(104,129,157,.25);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:JetBrains Mono,ui-monospace,monospace;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:999px;border:1px solid var(--line-soft);background:#090e149e;overflow:hidden}.battery-fill{height:100%;transition:width .2s ease-out}.battery-text{color:var(--text-strong);font-family:JetBrains Mono,ui-monospace,monospace;font-weight:700;font-size:.84rem}.telemetry-error,.telemetry-no-data{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;text-align:center;font-size:.86rem}.telemetry-error{color:#ffb5b5;border-color:#ff717173;background:#6417174d}.telemetry-no-data{color:var(--text-soft);background:#121a23a3}.telemetry-timestamp{color:var(--text-soft);font-size:.76rem;text-align:right;font-family:JetBrains Mono,ui-monospace,monospace}@media(max-width:900px){.telemetry-overview-grid{grid-template-columns:1fr}}.trajectory-map-widget{height:100%;min-height:180px;display:grid;grid-template-rows:auto 1fr auto;gap:8px}.trajectory-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.trajectory-live-badge{border-radius:999px;padding:3px 8px;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;border:1px solid var(--line-soft)}.trajectory-live-badge.fresh{color:#d0ffde;border-color:#61d98a73;background:#185a3159}.trajectory-live-badge.stale{color:#ffe7c8;border-color:#ffba6f61;background:#8254174d}.trajectory-latest-text{color:var(--text-soft);font-size:.8rem;font-family:JetBrains Mono,ui-monospace,monospace}.trajectory-canvas-container{min-height:180px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);overflow:hidden;background:#080d14b8}.trajectory-canvas-container canvas{display:block;width:100%;height:100%}.trajectory-note,.trajectory-error{font-size:.82rem;color:var(--text-soft)}.trajectory-error{color:#ffb4b4}.video-stream-panel{min-height:170px;height:100%;border-radius:var(--radius-sm);border:1px solid var(--line-soft);background:#080d13eb;position:relative;overflow:hidden}.video-stream-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);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:radial-gradient(circle at top right,rgba(84,185,255,.22),transparent 38%),linear-gradient(180deg,#0a111933,#0a1119c7)}.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:999px;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:#ffd3d3;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 #5689b3;border-radius:var(--radius-sm);background:#4f95cc33}.widget-card{height:100%;border-radius:var(--radius-sm);border:1px solid var(--line-soft);background:linear-gradient(155deg,#1e2630fa,#1a2029fa);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:999px;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 rgba(255,186,111,.45);background:#784d1966}.widget-badge.offline{color:#ffd3d3;border:1px solid rgba(255,113,113,.45);background:#75222266}.widget-card-actions{display:inline-flex;gap:8px}.widget-action{width:24px;height:24px;border-radius:50%;border:1px solid #576a80;background:#121922cc;color:#d3e7fb;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:1px solid var(--line-soft);background:#0a0f15a3;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:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:20px 20px}.media-video:after,.media-lidar:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;top:-90px;right:-70px;opacity:.25;filter:blur(1px)}.media-video:after{background:radial-gradient(circle,rgba(84,185,255,.9),transparent 70%)}.media-lidar:after{background:radial-gradient(circle,rgba(97,217,138,.9),transparent 70%)}.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:1px solid var(--line-soft);border-radius:6px;padding:6px 8px;background:#0b121b59}.widget-log-item.info{border-left:3px solid #58b8ff}.widget-log-item.warn{border-left:3px solid #f3be74}.widget-log-item.error{border-left:3px solid #ff7a7a}.widget-log-time{color:var(--text-soft);font-size:.74rem;font-family:JetBrains Mono,ui-monospace,monospace}.widget-log-message{color:var(--text);font-size:.82rem}.widget-hidden-dock{margin-bottom:10px;border:1px dashed #49617b;border-radius:var(--radius-sm);background:#11182099;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:1px solid #4d647d;color:#d4e9ff;background:#20344ab8;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}.error-message{max-width:1240px;margin:16px auto 0;padding:12px;border-radius:var(--radius-sm);border:1px solid rgba(255,113,113,.4);border-left-width:4px;color:#ffb6b6;background:#6617174d}.loading{min-height:100vh;display:grid;place-items:center;color:var(--text-soft)}.robot-control-back-button{height:38px;margin:12px auto 0;padding:0 14px;border-radius:var(--radius-sm);border:1px solid #485566;color:#d8e8fa;background:linear-gradient(140deg,#2f3b4b,#2b3644);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){.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:1px solid rgba(84,185,255,.22);background:#1d2b39c7}.admin-alerts-list{display:flex;flex-wrap:wrap;gap:10px}.admin-alert-pill{padding:8px 12px;border-radius:999px;border:1px solid var(--line);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:#d8efff;border-color:#54b9ff4d;background:#1d446647}.admin-alerts-dismiss{width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,113,113,.35);background:#6d1530c7;color:#ffe0e7;font-size:1.2rem;line-height:1;cursor:pointer}.admin-console-header{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line);background:#171b21e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-console-header-left,.admin-console-header-right{display:flex;align-items:center;gap:12px}.admin-console-header-right{justify-content:flex-end}.admin-console-header-center{text-align:center}.admin-console-header-center h1{margin:0;color:var(--text-strong);font-size:2rem;letter-spacing:.03em}.admin-console-back-button,.admin-console-refresh-button{height:42px;border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--text-strong);background:linear-gradient(145deg,#2d3f56eb,#243144eb);cursor:pointer;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.admin-console-back-button{display:inline-flex;align-items:center;gap:10px;padding:0 16px}.admin-console-back-chevron{width:10px;height:10px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}.admin-console-refresh-button{min-width:122px;padding:0 16px}.admin-console-refresh-button:disabled{cursor:wait;opacity:.8}.admin-console-user-chip{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border-radius:999px;border:1px solid rgba(84,185,255,.35);background:#21384e6b}.admin-console-user-label{color:#8bd1ff;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:700}.admin-console-user-name{color:var(--text-strong);font-weight:700}@media(max-width:980px){.admin-console-header{grid-template-columns:1fr;justify-items:stretch}.admin-console-header-left,.admin-console-header-center,.admin-console-header-right{justify-content:space-between;text-align:left}}.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:1px solid var(--line);background:linear-gradient(165deg,#262e39f5,#1d242df0);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:999px;border:1px solid var(--line);background:#222b37cc;color:var(--text);cursor:pointer;font-weight:700;letter-spacing:.03em}.admin-tab-button.active{color:#06131f;border-color:transparent;background:linear-gradient(130deg,#54b9ff,#9be5f4)}.admin-panel{border-radius:var(--radius-lg);border:1px solid var(--line);background:linear-gradient(165deg,#262e39f5,#1e252ff0);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:38px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--line);cursor:pointer;font-weight:700}.admin-secondary-button,.admin-inline-button{color:var(--text-strong);background:linear-gradient(145deg,#2d3f56eb,#243144eb)}.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-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;color:var(--text-soft)}.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:999px;border:1px solid var(--line);background:#1f2936d9;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:999px;border:1px solid var(--line);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:#c8ffd8;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:#6e1c1c4d}.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:38px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--text-strong);background:#1d2530eb}.admin-field-note{display:block;margin-top:6px;color:var(--text-soft);font-size:.8rem}.admin-monospace{font-family:JetBrains Mono,ui-monospace,monospace}.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}.admin-notice{margin-bottom:18px;padding:12px 14px;border-radius:var(--radius-sm);border-left:4px solid transparent}.admin-notice.success{border-color:var(--ok);background:#1c72382e;color:#d6ffe2}.admin-notice.warn{border-color:var(--warn);background:#6e481833;color:#ffe8c8}.admin-notice.error{border-color:var(--danger);background:#6e1c1c38;color:#ffd8d8}.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-loading,.admin-dashboard-error{padding:18px;border-radius:var(--radius-md);border:1px solid var(--line);background:#262e39d6}.admin-dashboard-error{color:#ffd7d7;border-color:#ff717157;background:#6e1c1c38}.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:999px;background:#ffffff1a;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)}}
