@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#0b1324;--panel:#111c30;--panel2:#0e192c;--edge:#24334a;--muted:#8796aa;--text:#e9f0f7;--mint:#47e0b7;--blue:#72bfff;--amber:#ffbd69;--red:#ff777d}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 80% 0,#152740 0,transparent 38%),var(--bg);color:var(--text);font-family:Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.topbar{height:76px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,5vw,78px);border-bottom:1px solid #ffffff0d;background:#0b1324cc}.brand{display:flex;gap:12px;align-items:center;color:var(--text);font-size:13px;font-weight:800;letter-spacing:1px;text-decoration:none}.brand-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#172842;border:1px solid #29425e;color:var(--mint);font-size:19px}.brand-accent{color:var(--mint)}.brand small{display:block;color:#718198;font:500 8px 'DM Mono',monospace;letter-spacing:1.5px;margin-top:2px}.topbar-right{display:flex;gap:17px;align-items:center}.selected-name{color:#a9b7c8;font-size:12px}.icon-button{width:38px;height:38px;border:1px solid var(--edge);border-radius:10px;background:#121e31;color:#b7c5d5;font-size:18px}.icon-button:hover,.icon-button:focus-visible{border-color:var(--mint);color:var(--mint)}.page-shell{max-width:1420px;padding:34px clamp(18px,5vw,78px) 20px}.intro-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:25px}.eyebrow{display:flex;align-items:center;gap:9px;color:#70bcb0;font:500 10px 'DM Mono',monospace;letter-spacing:1.5px}.eyebrow-line{width:19px;height:1px;background:var(--mint)}h1{margin:13px 0 6px;font-size:clamp(26px,3vw,37px);font-weight:800;letter-spacing:-1.4px}.intro-copy,.panel-description{margin:0;color:#8a9ab0;font-size:12px;line-height:1.7}.vehicle-picker{width:min(255px,40%)}.vehicle-picker label,.field-label{display:block;margin:0 0 8px;color:#8292a8;font:500 9px 'DM Mono',monospace;letter-spacing:1px}.form-select,.form-control{min-height:42px;border-color:var(--edge);border-radius:9px;background-color:#101b2d;color:var(--text);font-size:12px}.form-select:focus,.form-control:focus{border-color:#42c9aa;box-shadow:0 0 0 .2rem #47e0b71c;background-color:#101b2d;color:var(--text)}.form-select option{background:#101b2d;color:var(--text)}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:18px}.status-card,.panel{border:1px solid var(--edge);border-radius:13px;background:linear-gradient(145deg,#121e32,#101a2c);box-shadow:0 12px 28px #02081420}.status-card{min-height:109px;padding:15px 17px}.status-label{display:flex;align-items:center;gap:7px;color:#8191a5;font:500 9px 'DM Mono',monospace;letter-spacing:.8px}.status-symbol{font-size:14px}.ws-symbol{color:var(--mint)}.api-symbol{color:var(--blue)}.db-symbol{color:var(--amber)}.info-dot{display:grid;place-items:center;width:14px;height:14px;border:1px solid #63738a;border-radius:50%;font:500 9px Manrope;cursor:help}.status-value{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:13px;font-weight:700}.state-dot{width:7px;height:7px;border-radius:50%;background:#78859a}.state-dot.online{background:var(--mint);box-shadow:0 0 12px #47e0b770}.state-dot.pending{background:var(--amber);box-shadow:0 0 12px #ffbd6960;animation:pulse 1.4s infinite}.state-dot.offline{background:var(--red);box-shadow:0 0 12px #ff777d60}.state-dot.unknown{background:#78859a}.status-caption{display:block;margin:5px 0 0 15px;color:#718198;font-size:9px}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);gap:17px;align-items:start}.panel{padding:20px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.eyebrow-dark{color:#679b9d;font-size:9px}.panel h2{margin:6px 0 0;color:#e7edf5;font-size:16px;font-weight:800;letter-spacing:-.35px}.touch-hint,.count-badge{padding:6px 8px;border:1px solid #283850;border-radius:6px;color:#8193a9;font:500 8px 'DM Mono',monospace;letter-spacing:.6px}.control-panel>.panel-description{margin-top:11px}.joystick-layout{display:grid;grid-template-columns:minmax(200px,1fr) minmax(140px,.62fr);align-items:center;gap:18px;padding:20px 18px 15px}.joystick{display:grid;grid-template-columns:repeat(3,58px);grid-template-rows:repeat(3,54px);gap:7px;justify-content:center;align-content:center;touch-action:none}.joy-key{display:grid;place-items:center;border:1px solid #30415a;border-radius:13px;background:linear-gradient(145deg,#1a2940,#142136);color:#bdcbda;font-size:22px;box-shadow:0 5px 12px #050b15a0;touch-action:none;user-select:none;-webkit-user-select:none}.joy-key:hover,.joy-key:focus-visible{border-color:#53dabc;color:#53dabc;outline:0}.joy-key:active,.joy-key.joy-active{background:#16463f;border-color:var(--mint);color:#75f6d3;transform:scale(.96)}.joy-up{grid-column:2;grid-row:1}.joy-left{grid-column:1;grid-row:2}.joy-center{grid-column:2;grid-row:2;color:var(--amber);font-size:16px}.joy-right{grid-column:3;grid-row:2}.joy-down{grid-column:2;grid-row:3}.move-readout{display:flex;flex-direction:column;gap:7px;padding:16px;border:1px solid #24334b;border-radius:11px;background:#0d1728}.readout-label{color:#718198;font:500 8px 'DM Mono',monospace;letter-spacing:1px}.move-readout strong{min-height:21px;color:#e9f0f7;font-size:14px}.readout-rule{height:1px;margin:5px 0;background:#26364c}.action-status{color:var(--mint);font-size:10px;line-height:1.5}.action-status.error-text{color:var(--red)}.control-divider{height:1px;margin:5px 0 19px;background:#24334a}.command-heading h2{margin-top:5px}.compact{margin-top:7px}.command-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px;margin-top:13px}.command-button{position:relative;display:grid;grid-template-columns:30px 1fr;grid-template-rows:1fr auto;align-items:center;gap:2px 8px;min-height:62px;padding:10px 11px;text-align:left;border:1px solid #2b3c54;border-radius:9px;background:#121f33;color:#e3ebf4;transition:border-color .15s,transform .15s}.command-button:hover:not(:disabled),.command-button:focus-visible{border-color:#51d7b4;outline:0;transform:translateY(-1px)}.command-button:disabled,.joy-key:disabled{opacity:.48;cursor:not-allowed}.command-icon{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#1c3041;color:var(--mint);font-size:13px}.command-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700}.command-button small{color:#71849c;font:500 7px 'DM Mono',monospace;letter-spacing:.6px}.command-button.command-stop{border-color:#694044;background:#251d2a}.command-stop .command-icon{background:#492a32;color:#ff898a}.empty-note{margin:0;padding:12px;color:#8191a5;font-size:10px;line-height:1.6}.side-column{display:grid;gap:15px}.demo-panel{padding-bottom:17px}.demo-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#33281c;color:var(--amber)}.demo-panel>.panel-description{margin:10px 0 15px}.btn-demo{min-height:42px;margin-top:12px;border:1px solid #6b5130;border-radius:9px;background:#382c1e;color:#ffd18f;font-size:11px;font-weight:800}.btn-demo:hover:not(:disabled){border-color:#ffbd69;background:#49351d;color:#ffe0ad}.btn-demo span{margin-right:6px;font-size:9px}.btn-demo:disabled{opacity:.45}.demo-note{min-height:14px;margin:9px 0 0;color:#8392a6;font-size:9px;line-height:1.6}.event-panel{min-height:235px}.clear-button{border:0;background:none;color:#8495aa;font-size:9px}.clear-button:hover{color:var(--mint)}.event-feed{display:grid;gap:0;max-height:275px;overflow:auto;margin-top:11px;scrollbar-color:#30415a transparent;scrollbar-width:thin}.event-item{padding:10px 1px;border-top:1px solid #25354b}.event-meta{display:flex;justify-content:space-between;gap:8px;color:#9aabc0;font:500 9px 'DM Mono',monospace}.event-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-meta time{flex:none;color:#73849a;font-size:8px}.event-item p{margin:5px 0 0;color:#74869b;font-size:9px;line-height:1.5}.page-footer{display:flex;justify-content:space-between;gap:15px;margin-top:26px;padding:15px 1px;border-top:1px solid #ffffff12;color:#718198;font:500 8px 'DM Mono',monospace;letter-spacing:.4px}.page-footer b{color:#9eafc1;font-weight:500}.settings-dialog{width:min(440px,calc(100% - 28px));padding:23px;border:1px solid #344761;border-radius:15px;background:#111c30;color:var(--text);box-shadow:0 25px 80px #0009}.settings-dialog::backdrop{background:#050a14b8;backdrop-filter:blur(3px)}.close-dialog{width:30px;height:30px;font-size:20px}.settings-dialog .field-label{margin-top:21px}.settings-help{margin:9px 0 0;color:#8191a5;font-size:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.dialog-actions .btn{font-size:10px}.btn-primary{border-color:#279e83;background:#167c69}.btn-primary:hover{border-color:#38c9a7;background:#148c74}@keyframes pulse{50%{opacity:.45;box-shadow:none}}@media(max-width:900px){.workspace-grid{grid-template-columns:1fr}.side-column{grid-template-columns:1fr 1fr}.joystick-layout{grid-template-columns:1fr minmax(170px,.6fr)}.command-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media(max-width:600px){.topbar{height:64px;padding:0 16px}.selected-name{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.page-shell{padding:24px 14px 15px}.intro-row{align-items:flex-start;flex-direction:column;margin-bottom:17px}.intro-copy{max-width:360px}.vehicle-picker{width:100%}.status-grid{grid-template-columns:1fr;gap:8px;margin-bottom:12px}.status-card{min-height:77px;padding:11px 13px}.status-value{margin-top:5px}.status-caption{margin-top:2px}.workspace-grid{gap:12px}.panel{padding:15px;border-radius:12px}.panel h2{font-size:15px}.touch-hint{font-size:7px}.joystick-layout{grid-template-columns:1fr;gap:13px;padding:17px 0 13px}.joystick{grid-template-columns:repeat(3,min(20vw,58px));grid-template-rows:repeat(3,51px);gap:7px}.joy-key{border-radius:12px;font-size:20px}.move-readout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4px 9px;padding:11px}.readout-rule{display:none}.move-readout strong{font-size:12px}.action-status{text-align:right}.side-column{grid-template-columns:1fr}.event-panel{min-height:190px}.event-feed{max-height:215px}.page-footer{flex-direction:column;gap:6px;margin-top:18px}.command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
