@import "https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700;800&family=Rajdhani:wght@500;600&display=swap";:root{--brand-green:#4caf50;--brand-green-d:#43a047;--brand-blue:#1a56db;--brand-blue-d:#1240a8;--logo-blue:#1a56db;--logo-gray:#8c909d;--amber:#f5a623;--amber-dim:#fff8e1;--red:#e53935;--red-dim:#ffebee;--bg:#f5f5f5;--bg-2:#ebebeb;--sidebar:#1a1a1a;--sidebar-text:#ccc;--card:#fff;--card-hover:#fafafa;--surface:#fff;--border:#e0e0e0;--accent:#1a56db;--accent-dim:#dce9ff;--blue:#1a56db;--blue-dim:#dce9ff;--text:#333;--text-2:#555;--muted:#777;--muted-2:#aaa;--sidebar-w:230px;--radius:6px;--radius-sm:4px;--radius-lg:8px;--radius-pill:99px;--transition:.15s ease;--shadow-sm:0 1px 2px #0000000f, 0 1px 3px #0000000a;--shadow:0 2px 6px #00000014, 0 1px 3px #0000000d;--shadow-md:0 4px 16px #0000001a, 0 2px 6px #0000000f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.6;overflow:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}input,select,textarea{font:inherit;color:var(--text);background:0 0}ul{list-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--muted-2);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--sidebar);z-index:1000;flex-shrink:0;align-items:center;gap:0;height:58px;min-height:58px;padding:0 0 0 8px;display:flex;position:fixed;top:0;left:0;right:0;overflow:visible;box-shadow:0 2px 8px #00000080}.topbar-brand{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition);flex-shrink:0;align-items:center;gap:10px;padding:0 12px 0 6px;text-decoration:none;display:flex}.topbar-brand:hover{background:#ffffff0f}.brand-logo-wrap{transition:box-shadow var(--transition);background:#fff;border-radius:8px;flex-shrink:0;align-items:center;padding:3px;display:flex;box-shadow:0 3px 8px #0000008c,0 1px 3px #00000059,inset 0 1px #ffffffe6}.topbar-brand:hover .brand-logo-wrap{box-shadow:0 4px 12px #1a56db80,0 2px 4px #0006,inset 0 1px #ffffffe6}.brand-text{flex-direction:column;width:136px;line-height:1.15;display:flex}.brand-hybot{color:#fff;letter-spacing:4px;text-transform:uppercase;background:linear-gradient(135deg,#fff 0%,#b8d4ff 40%,#fff 60%,#8aaee8 100%);-webkit-text-fill-color:transparent;text-shadow:none;-webkit-background-clip:text;background-clip:text;width:100%;font-family:Orbitron,monospace;font-size:18px;font-weight:800;display:block}.brand-sub{color:#ffffff73;letter-spacing:1.5px;word-spacing:3px;text-transform:uppercase;font-family:Rajdhani,Segoe UI,sans-serif;font-size:14px;font-weight:600;display:block}.topbar-divider{background:#ffffff1f;flex-shrink:0;width:1px;height:28px;margin:0 4px}.topbar-nav{flex:1;align-items:stretch;min-width:0;height:100%;display:flex;overflow:hidden}.nav-link{color:#ffffffb8;transition:background var(--transition), color var(--transition);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;gap:7px;min-height:44px;padding:0 18px;font-size:15px;font-weight:500;display:flex}.nav-link:hover{color:#fff;background:#ffffff0f}.nav-link.active{color:#fff;border-bottom-color:var(--logo-blue);background:#ffffff14}.nav-link svg{flex-shrink:0;width:18px;height:18px}.nav-link-locked{opacity:.38;cursor:not-allowed;pointer-events:none;-webkit-user-select:none;user-select:none}.topbar-user{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;padding:0 14px 0 0;display:flex}.server-status{align-items:center;gap:6px;display:flex}.server-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:background .3s,box-shadow .3s}.server-dot.connected{background:#4caf50;box-shadow:0 0 6px #4caf50b3}.server-dot.disconnected{background:var(--red);box-shadow:0 0 6px #e5393599}.server-status-label{letter-spacing:.3px;color:#ffffff8c;font-size:11px;font-weight:600}.user-avatar-wrap{flex-shrink:0;position:relative}.user-avatar-img{object-fit:cover;width:100%;height:100%}.user-avatar-icon{color:#fffc;justify-content:center;align-items:center;display:flex}.user-avatar-icon svg{width:20px;height:20px}.user-avatar{background:var(--logo-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:flex}.user-info{flex:1;min-width:0}.user-info .username{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.user-info .role-badge{display:none}.btn-logout{border-radius:var(--radius-sm);color:#fff9;transition:background var(--transition), color var(--transition);padding:5px 7px}.btn-logout:hover{color:#ff6b6b;background:#e539352e}.info-bar{background:var(--card);border-bottom:1px solid var(--border);z-index:999;flex-shrink:0;grid-template-columns:auto 1fr auto;justify-content:space-between;align-items:center;gap:10px;height:42px;min-height:42px;padding:0 6px 0 14px;display:grid;position:fixed;top:58px;left:0;right:0;box-shadow:0 1px 4px #0000000f}.info-bar-left{align-items:center;gap:10px;display:flex}.info-restaurant-name{color:var(--text);letter-spacing:.3px;white-space:nowrap;font-size:18px;font-weight:600}.info-restaurant-loc{color:var(--muted);white-space:nowrap;font-size:13px;font-style:italic}.info-bar-right{justify-content:flex-end;align-items:center;gap:0;display:flex}.info-bar-right>*{margin-left:17px;position:relative}.info-bar-right>:before{content:"";background:var(--border);pointer-events:none;width:1px;height:20px;position:absolute;top:50%;left:-9px;transform:translateY(-50%)}.robot-status-strip{align-items:center;gap:6px;height:100%;padding:0;display:flex}.robot-chip-wrap{width:192px;min-width:192px;max-width:192px}.robot-status-chip{text-align:left;justify-content:flex-start;align-items:center;gap:5px;height:100%;padding:0 10px;display:flex}.robot-status-chip--small{width:192px!important;min-width:192px!important;max-width:192px!important;padding:3px 7px 3px 3px!important}.rsc-bat{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:30px;font-size:11px;font-weight:700}.rsc-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.rsc-confirm-flag{color:#a16207;background:#fff3cd;border:1px solid #facc15;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;font-weight:800;line-height:1;animation:1s step-end infinite rsc-blink;display:inline-flex}.rsc-confirm-flag.warning{color:#92400e;background:#fef08a;border-color:#eab308}.rsc-confirm-flag.danger{color:#7f1d1d;background:#fecaca;border-color:#ef4444}.rsc-confirm-flag.mini{width:12px;height:12px;margin-left:4px;font-size:9px}.rsc-name{color:var(--text);white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:600}.rsc-mode{color:var(--muted);border:1px solid var(--border);text-align:center;border-radius:3px;flex-shrink:0;min-width:20px;padding:1px 4px;font-size:10px;font-weight:700;line-height:1.3}.rsc-loc{white-space:nowrap;text-overflow:ellipsis;text-align:left;flex:1;min-width:0;font-size:11px;overflow:hidden}.rsc-loc.location{color:var(--muted);font-weight:500}.rsc-loc.task{color:#1e3a8a;font-weight:600}.rsc-grow{flex:1;min-width:0}.rsc-loc-marker{width:14px;height:14px;color:var(--muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.rsc-loc-marker svg{width:12px;height:12px}.robot-chip-menu{z-index:1100;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;width:min(192px,100vw - 16px);min-width:min(192px,100vw - 16px);padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 10px 24px #0000002e}.robot-chip-menu__content{flex-direction:column;gap:6px;display:flex}.robot-control-popover{z-index:900;box-sizing:border-box;width:192px;min-width:192px;position:fixed;overflow:hidden}@media (width<=208px){.robot-control-popover{width:calc(100vw - 16px);min-width:0}}.robot-menu-icon-btn:hover:not(:disabled),.robot-menu-confirm-large:hover:not(:disabled){filter:brightness(.96)}.robot-menu-icon-btn:focus-visible,.robot-menu-confirm-large:focus-visible,.robot-menu-select:focus-visible{outline:2px solid var(--brand-blue);outline-offset:2px}.robot-chip-menu-row{align-items:center;gap:6px;display:flex}.robot-chip-menu-grid{grid-template-columns:26px 26px 36px 26px 26px;grid-auto-rows:26px;justify-content:center;gap:6px;display:grid}.robot-menu-icon-btn,.robot-menu-confirm-large{border:1px solid var(--border);background:var(--bg);color:var(--text-2);border-radius:8px;justify-content:center;align-items:center;gap:5px;font-weight:800;display:inline-flex}.robot-menu-icon-btn{letter-spacing:0;width:100%;height:26px;padding:0;font-size:9px}.robot-menu-icon-btn svg{width:18px;height:18px}.robot-menu-icon-btn--charge{color:#0e7490;background:#ecfeff;border-color:#67e8f9}.robot-menu-icon-btn--standby{color:#475569;background:#f1f5f9;border-color:#cbd5e1}.robot-menu-icon-btn--future{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.robot-menu-icon-btn:disabled,.robot-menu-confirm-large:disabled,.robot-menu-select:disabled{opacity:.45;cursor:not-allowed}.robot-menu-icon-btn--stop{color:#dc2626;text-transform:uppercase;background:#fef2f2;border-color:#fca5a5;font-size:11.5px;font-weight:800}.robot-menu-mode-toggle{font-size:11px}.robot-menu-confirm-large{color:#9a3412;background:#fff7ed;border-color:#fdba74;width:100%;height:30px;font-size:11px}.robot-menu-confirm-large--reset{color:#fff;background:#dc2626;border-color:#b91c1c}.robot-control-menu-error{color:var(--red);font-size:11px;line-height:1.35}.robot-menu-ctl{border:1px solid var(--border);background:var(--bg);height:24px;color:var(--text-2);width:var(--robot-menu-wide-w);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.robot-menu-ctl:hover:not(:disabled){background:var(--bg-2)}.robot-menu-confirm{width:var(--robot-menu-wide-w)}.robot-menu-pill{width:var(--robot-menu-pill-w);min-width:var(--robot-menu-pill-w);max-width:var(--robot-menu-pill-w);border:1px solid var(--border);background:var(--bg);height:24px;color:var(--text-2);border-radius:8px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:700}.robot-menu-pill:hover:not(:disabled){filter:brightness(.98)}.robot-menu-pill-stop{color:#fff;background:#dc2626;border-color:#b91c1c}.robot-menu-pill-auto{color:#166534;background:#dcfce7;border-color:#86efac}.robot-menu-pill-manual{color:#9a3412;background:#ffedd5;border-color:#fdba74}.task-next-chip{color:#1f3b73;background:#eef4ff;border:1px solid #c7d7f6;border-radius:8px;align-items:center;gap:8px;width:173px;height:30px;padding:0 10px;display:flex}.task-next-chip-label{white-space:nowrap;font-size:11px;font-weight:700}.task-next-chip-value{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.task-next-wrap{width:173px;position:relative}.task-next-menu{z-index:1100;background:var(--card);border:1px solid var(--border);border-radius:8px;width:100%;min-width:0;max-height:260px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 10px 24px #0000002e}.task-next-item{border-radius:6px;padding:6px 8px;display:block}.task-next-item:hover{background:var(--bg)}.queue-chip-wrap{flex-shrink:0;position:relative}.diag-icon-btn{justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.queue-chip{border:1px solid var(--border);background:var(--card);height:30px;color:var(--text-2);white-space:nowrap;cursor:pointer;transition:background var(--transition), border-color var(--transition), box-shadow var(--transition);border-radius:8px;align-items:center;gap:7px;padding:0 10px 0 8px;font-size:11px;font-weight:600;display:inline-flex}.queue-chip:hover,.queue-chip.is-open{box-shadow:var(--shadow-sm)}.queue-chip-icon{width:15px;height:15px;display:inline-flex}.queue-chip-icon svg{width:100%;height:100%}.queue-chip-count{background:var(--bg-2);min-width:20px;height:18px;color:var(--muted);border-radius:9px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.queue-chip-orders{color:#9a3412;background:#fff7ed;border-color:#fcd9b6}.queue-chip-requests{color:#075985;background:#f0f9ff;border-color:#c4e3f7}.queue-chip-tables{color:#5b21b6;background:#f5f3ff;border-color:#ddd6fe;flex-shrink:0}.queue-chip-tables:hover{border-color:#a78bfa}.queue-chip-tables .queue-chip-count.has-items{color:#fff;background:#7c3aed}.queue-chip-tables.is-urgent{border-color:#a78bfa;animation:1.1s ease-in-out infinite queue-chip-blink;box-shadow:0 0 0 3px #7c3aed2e}.queue-chip-motion{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe;flex-shrink:0}.queue-chip-motion:hover{border-color:#60a5fa}.queue-chip-motion .queue-chip-count.has-items{color:#fff;background:#2563eb}.queue-chip-motion.is-running{color:#fff;background:#3b82f6;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f638}.queue-chip-motion.is-running .queue-chip-count.has-items{color:#1d4ed8;background:#fff}@keyframes queue-chip-blink{0%,to{background:#f5f3ff}50%{background:#ddd6fe}}.queue-chip-orders .queue-chip-count.has-items{color:#fff;background:#f97316}.queue-chip-requests .queue-chip-count.has-items{color:#fff;background:#0ea5e9}.queue-chip.is-urgent .queue-chip-count{animation:1.4s ease-in-out infinite queue-chip-pulse}.queue-chip-orders.is-urgent{border-color:#fb923c;box-shadow:0 0 0 3px #f9731626}.queue-chip-requests.is-urgent{border-color:#38bdf8;box-shadow:0 0 0 3px #0ea5e926}@keyframes queue-chip-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.queue-chip-panel{z-index:1100;background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;max-height:min(70vh,560px);display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 12px 28px #0000002e}.queue-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:10px;padding:10px 12px;font-size:13px;display:flex}.queue-panel-sub{color:var(--muted);white-space:nowrap;font-size:11px}.queue-panel-new{white-space:nowrap;margin-inline-start:auto;padding:2px 10px;font-size:12px}.queue-panel-error{background:var(--red-dim);color:var(--red);border-radius:6px;margin:8px 12px 0;padding:6px 8px;font-size:12px}.queue-panel-empty{text-align:center;color:var(--muted);padding:18px 12px;font-size:13px}.queue-panel-list{flex-direction:column;gap:8px;padding:8px;display:flex;overflow-y:auto}.queue-order{border:1px solid var(--border);background:var(--bg);border-radius:8px;gap:6px;padding:8px 10px;font-size:12px;display:grid}.queue-order.is-new{background:#fffaf3;border-color:#fdba74}.queue-order.is-change{background:#fffbeb;border-color:#fcd34d}.queue-order-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.queue-order-where{color:var(--text);font-weight:700}.queue-order-meta{color:var(--muted);font-size:11px}.queue-order-items{color:var(--text);line-height:1.5}.queue-order-note{color:var(--accent);white-space:pre-wrap;word-break:break-word;font-style:italic}.queue-order-note--line{padding-left:26px;font-size:12px}.queue-order-customer{color:var(--text-2);margin-top:4px;font-size:12px}.queue-order-total{margin-right:auto;font-weight:700}.queue-order-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.cr-alert-host{z-index:3000;pointer-events:none;position:fixed;top:64px;right:16px}.cr-alert{pointer-events:auto;background:var(--card);border:2px solid;border-radius:12px;width:min(340px,100vw - 32px);padding:12px 14px 10px;animation:.25s cubic-bezier(.2,.9,.3,1.2) crSlide;position:relative;box-shadow:0 12px 32px #00000038}@keyframes crSlide{0%{opacity:0;transform:translate(24px)}}.cr-alert-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:18px;line-height:1;position:absolute;top:4px;right:8px}.cr-alert-row{align-items:center;gap:12px;display:flex}.cr-alert-icon{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.cr-alert-body{min-width:0}.cr-alert-kind{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.cr-alert-poi{font-size:18px;font-weight:800;line-height:1.2}.cr-alert-type{color:var(--text);font-size:13px}.cr-alert-note{color:var(--muted);margin-top:2px;font-size:11px}.cr-alert-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-top:10px;display:flex}@media (width<=1024px){.cr-alert-host{justify-content:center;display:flex;inset:auto 16px 16px}.cr-alert{width:min(420px,100%)}.cr-alert-poi{font-size:22px}.cr-alert-actions .btn{min-height:40px;padding:0 16px;font-size:14px}}.robot-menu-select{border-radius:8px;width:100%;min-width:100%;max-width:100%;height:28px;font-size:11px}@keyframes rsc-blink{0%,50%{opacity:1}50.01%,to{opacity:.35}}@keyframes robot-dot-ping{0%{transform:scale(1);box-shadow:0 0 #4ade80e6}40%{transform:scale(1.6);box-shadow:0 0 0 6px #4ade8066}80%{transform:scale(1);box-shadow:0 0 0 10px #4ade8000}to{transform:scale(1);box-shadow:0 0 #4ade8000}}.robot-dot-pinging{animation:.5s ease-out forwards robot-dot-ping}.main-content{background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:100px 0 0;overflow:hidden}.page-header{border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex;box-shadow:0 1px 3px #0000000f}.page-header h1{color:var(--text);font-size:16px;font-weight:600}.page-header .subtitle{color:var(--muted);margin-top:1px;font-size:12px}.page-body{flex:1;padding:20px 24px;overflow-y:auto}.fp-toolbar{align-items:center;gap:10px;display:flex}.fp-toolbar-group{border:1px solid var(--border);background:var(--card);border-radius:8px;align-items:center;gap:2px;padding:3px;display:inline-flex}.fp-save-group{gap:8px;padding:3px 4px 3px 10px}.fp-save-status{color:var(--text-2);align-items:center;gap:7px;min-width:96px;font-size:12px;font-weight:500;display:inline-flex}.fp-save-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.fp-save-saving .fp-save-dot,.fp-save-dirty .fp-save-dot{animation:1.1s ease-in-out infinite fp-pulse}.fp-save-error{color:var(--red)}@keyframes fp-pulse{0%,to{opacity:1}50%{opacity:.35}}.fp-switch{cursor:pointer;-webkit-user-select:none;user-select:none;border-left:1px solid var(--border);align-items:center;gap:6px;padding:0 6px 0 8px;display:inline-flex}.fp-switch input{opacity:0;width:0;height:0;position:absolute}.fp-switch-track{background:var(--muted-2,#b5b5b5);width:30px;height:17px;transition:background var(--transition);border-radius:99px;position:relative}.fp-switch-thumb{width:13px;height:13px;transition:transform var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.fp-switch input:checked+.fp-switch-track{background:var(--brand-blue)}.fp-switch input:checked+.fp-switch-track .fp-switch-thumb{transform:translate(13px)}.fp-switch input:disabled~*{opacity:.5;cursor:not-allowed}.fp-switch-label{letter-spacing:.3px;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:600}.fp-switch input:checked~.fp-switch-label{color:var(--brand-blue)}.fp-icon-btn{min-width:32px;height:30px;color:var(--text-2);transition:background var(--transition), color var(--transition);border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 7px;display:inline-flex;position:relative}.fp-icon-btn:hover:not(:disabled){background:var(--bg-2);color:var(--text)}.fp-icon-btn:disabled{opacity:.35;cursor:not-allowed}.fp-icon-btn svg{display:block}.fp-count{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.fp-issue-badge{background:var(--red);color:#fff;text-align:center;min-width:16px;height:16px;box-shadow:0 0 0 2px var(--card);border-radius:99px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-5px;right:-5px}.fp-items-btn.has-issues{color:var(--red)}.fp-toolbar{grid-template-columns:auto 1fr auto;align-items:center;width:100%;display:grid}.fp-toolbar-group{position:relative}.fp-editor-header{gap:6px;min-height:42px;padding:4px 10px;overflow:visible}.fp-editor-header .fp-toolbar{flex:1;gap:8px;min-width:0}.fp-editor-header .fp-toolbar-group{flex:none;height:34px}.fp-points-group{grid-area:1/1;justify-self:start;gap:4px}.fp-save-group{grid-area:1/3;justify-self:end;margin-left:0}.fp-editor-header .fp-save-status{white-space:nowrap;min-width:0;font-size:11px}.fp-editor-header .fp-group-label{padding-inline:4px;font-size:8px}.fp-floor-select{flex:none;align-items:center;gap:4px;width:238px;min-width:170px;display:flex}.fp-floor-picker{flex:1;min-width:0;position:relative}.fp-floor-picker-trigger{cursor:pointer;border:1px solid var(--border);background:var(--card);white-space:nowrap;border-radius:7px;justify-content:space-between;align-items:center;gap:6px;width:100%;height:34px;padding:0 8px;list-style:none;display:flex}.fp-floor-picker-trigger strong{text-overflow:ellipsis;text-align:left;max-width:190px;font-size:11px;font-weight:600;overflow:hidden}.fp-floor-picker-chevron{color:var(--muted);font-size:12px}.fp-floor-picker.is-open .fp-floor-picker-chevron{transform:rotate(180deg)}.fp-floor-picker-menu{z-index:30;border:1px solid var(--border);background:var(--card);border-radius:9px;width:100%;max-height:50vh;padding:5px;position:absolute;top:calc(100% + 5px);left:0;overflow:auto;box-shadow:0 10px 30px #0000002e}.fp-floor-picker-row{border-radius:6px;align-items:center;gap:2px;padding:2px;display:flex}.fp-floor-picker-row.is-active{background:#2563eb1a}.fp-floor-picker-name{text-align:left;min-width:0;color:var(--text);cursor:pointer;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:8px;padding:5px 6px;display:flex}.fp-floor-picker-name span{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.fp-floor-picker-name small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);overflow:hidden}.fp-floor-picker-empty{color:var(--muted);padding:10px;font-size:12px}.fp-floor-action.is-danger{color:var(--red)}.fp-floor-add{border:1px solid var(--border);background:var(--card);width:30px;height:30px;color:var(--brand-blue);cursor:pointer;border-radius:7px;font-size:20px;line-height:1}.fp-floor-add:hover{background:var(--bg-2)}.fp-editor-body.page-body{padding:0}.fp-editor-body .fp-canvas-wrap{min-width:0}.fp-canvas-bar{border-bottom:1px solid var(--border);background:#ffffffd9;flex:none;align-items:center;gap:10px;height:38px;padding:0 10px;display:flex}.fp-canvas-arrange .fp-canvas-bar{background:#dbe7fd;border-bottom-color:#93b4ea}.fp-canvas-bar-hint{color:var(--muted);font-size:11px}.fp-canvas-arrange .fp-canvas-bar-hint{color:#1d4ed8}.fp-canvas-bar .fp-mode-badge{position:static}.fp-group-label{letter-spacing:.6px;text-transform:uppercase;color:var(--muted);-webkit-user-select:none;user-select:none;padding:0 4px 0 6px;font-size:9px;font-weight:700}.fp-btn-text{font-size:12px;font-weight:500}.fp-mode-switch .fp-icon-btn{padding:0 10px;font-size:12px;font-weight:600}.fp-mode-switch .fp-icon-btn.is-active{background:var(--bg-2);color:var(--text)}.fp-mode-switch.fp-mode-arrange{background:#eef4ff;border-color:#93b4ea}.fp-mode-switch .fp-arrange-active{color:#fff!important;background:#2563eb!important}.fp-mode-switch.fp-mode-design .fp-icon-btn.is-active{color:#fff;background:#1f2937}.fp-canvas-wrap{background:#fff;transition:background .2s}.fp-canvas-arrange{background:#e8f0fe;box-shadow:inset 0 0 0 2px #93b4ea}.fp-mode-badge{z-index:5;background:#fffffff0;border:1px solid #cbd5e1;border-radius:99px;gap:2px;padding:3px;font-size:10px;font-weight:700;display:inline-flex;position:absolute;top:16px;left:12px;box-shadow:0 1px 3px #0000001f}.fp-mode-badge button{color:#475569;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:99px;padding:4px 9px}.fp-mode-badge-design button[aria-pressed=true]{color:#fff;background:#1f2937}.fp-mode-badge-arrange{background:#eff6fff5;border-color:#93b4ea}.fp-mode-badge-arrange button[aria-pressed=true]{color:#fff;background:#2563eb}.fp-block-list{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;max-height:min(52vh,440px);display:grid;overflow-y:auto}.fp-block-row{border:1px solid var(--border);cursor:pointer;background:var(--card);border-radius:8px;flex-direction:column;gap:5px;padding:6px;display:flex;position:relative}.fp-block-row:hover{background:#2563eb0f}.fp-block-row.is-selected{background:#2563eb1a;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.fp-block-row.is-disabled{opacity:.6;cursor:not-allowed}.fp-block-preview{border:1px solid var(--border);background:#f8fafc;border-radius:8px;height:72px;position:relative;overflow:hidden}.fp-block-preview svg{width:100%;height:100%;display:block}.fp-block-delete{color:#b91c1c;cursor:pointer;background:#fff;border:1px solid #dc262666;border-radius:99px;width:18px;height:18px;font-size:12px;line-height:1;position:absolute;top:4px;right:4px}.fp-block-delete:hover{background:#fee2e2}.fp-block-info{text-align:center;flex-direction:column;gap:1px;min-width:0;display:flex}.fp-block-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.fp-block-info span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.fp-sidebar{border-right:1px solid var(--border);background:var(--card);flex-direction:column;flex-shrink:0;width:256px;min-height:0;display:flex}.fp-sidebar-scroll{flex:1;min-height:0;padding:8px 8px 12px;overflow-y:auto}.fp-sidebar-error{color:var(--red);background:#dc262614;border-radius:6px;margin-bottom:8px;padding:6px 8px;font-size:11px;line-height:1.4}.fp-toolbox{border:1px solid var(--border);background:var(--card);border-radius:8px;margin-bottom:6px;overflow:hidden}.fp-toolbox-head{background:var(--bg-2);width:100%;color:var(--text);cursor:pointer;text-align:left;border:0;align-items:center;gap:6px;padding:6px 8px;display:flex}.fp-toolbox-head:hover{background:var(--bg-3,var(--bg-2))}.fp-toolbox-chevron{color:var(--muted);width:10px;font-size:9px;transition:transform .15s}.fp-toolbox.is-open .fp-toolbox-chevron{transform:rotate(90deg)}.fp-toolbox-icon{text-align:center;width:16px;color:var(--text-2);font-size:12px}.fp-toolbox-title{letter-spacing:.5px;text-transform:uppercase;flex:1;font-size:11px;font-weight:700}.fp-toolbox-badge{text-overflow:ellipsis;white-space:nowrap;max-width:110px;color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:99px;padding:1px 6px;font-size:10px;font-weight:600;overflow:hidden}.fp-toolbox-body{flex-direction:column;gap:6px;padding:8px;display:flex}.fp-quick-tools{border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0;align-items:center;gap:3px;padding:4px 6px;display:flex}.fp-tool{background:var(--card);min-width:38px;min-height:34px;color:var(--text-2);cursor:pointer;font:inherit;transition:background var(--transition), color var(--transition), border-color var(--transition);border:1px solid #0000;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:2px 4px;display:flex}.fp-tool:hover:not(:disabled){background:var(--bg-2);color:var(--text);border-color:var(--border)}.fp-tool.is-active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.fp-tool:disabled{opacity:.35;cursor:not-allowed}.fp-tool-danger:hover:not(:disabled){color:var(--red);border-color:#dc262666}.fp-tool-icon{font-size:15px;line-height:1}.fp-tool-label{white-space:nowrap;font-size:9px;line-height:1.1}.fp-quick-tools .fp-tool{flex:1 1 0}.fp-canvas-pan-tool{flex-direction:row;justify-content:flex-start;width:100%;min-height:32px;padding:4px 8px}.fp-tool-grid{grid-template-columns:repeat(2,1fr);gap:4px;display:grid}.fp-tool-grid-3{grid-template-columns:repeat(3,1fr)}.fp-tool-grid-4{grid-template-columns:repeat(4,1fr)}.fp-tool-grid-3 .fp-tool,.fp-tool-grid-4 .fp-tool{min-height:38px}.fp-subhead{letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:10px;font-weight:700}.fp-hint{color:var(--muted);font-size:11px;line-height:1.4}.fp-hint strong{color:var(--text-2);font-weight:600}.fp-hint-arrange{color:#2563eb;font-weight:600}.fp-prop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 6px;display:grid}.fp-prop-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.fp-prop-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.fp-prop{flex-direction:column;gap:2px;min-width:0;display:flex}.fp-prop>span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.fp-prop .form-input{width:100%;min-width:0;padding:3px 5px;font-size:12px}.fp-color{cursor:pointer;height:26px;padding:1px 2px!important}.fp-btn-danger{color:var(--red);background:0 0;border:1px solid #dc262659}.fp-btn-danger:hover{background:#dc262614}.fp-floor-row{cursor:pointer;background:var(--bg-2);border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;padding:5px 6px;display:flex}.fp-floor-row:hover{border-color:var(--border)}.fp-floor-row.is-active{background:#2563eb1a;border-color:#2563eb73}.fp-floor-action{cursor:pointer;color:var(--text-2);background:0 0;border:0;border-radius:4px;padding:1px 3px;font-size:11px}.fp-floor-action:hover:not(:disabled){background:var(--card)}.fp-floor-action:disabled{cursor:default}.fp-props{border-top:1px solid var(--border);background:var(--bg-2);flex-direction:column;flex-shrink:0;gap:6px;min-height:180px;max-height:58%;padding:8px;display:flex;overflow-y:auto}.fp-item-search{align-items:center;gap:6px;display:flex}.fp-item-search .fp-props-title{flex:1}.fp-item-search .form-input{width:55%;min-width:0;padding:4px 6px;font-size:11px}.fp-item-warning{color:#b45309;font-size:10px;line-height:1.3}.fp-item-results{border:1px solid var(--border);background:var(--card);border-radius:6px;max-height:110px;overflow:auto}.fp-item-result{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;align-items:center;gap:5px;padding:4px 6px;font-size:10px;display:flex}.fp-item-result:hover,.fp-item-result.is-selected{background:#3b82f61f}.fp-item-result span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fp-item-result-kind{color:var(--muted);flex:0 0 42px;font-size:9px}.fp-props-head{align-items:center;gap:6px;display:flex}.fp-props-title{font-size:12px;font-weight:700}.fp-props-kind{letter-spacing:.5px;text-transform:uppercase;background:var(--card);border:1px solid var(--border);color:var(--muted);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:700}.fp-props-name{min-width:0;font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:6px;flex:1;padding:3px 6px;font-size:13px;font-weight:600}.fp-props-name:focus{border-color:var(--brand-blue);outline:none}.fp-props-actions{flex-wrap:wrap;gap:4px;display:flex}@media (width<=1100px){.fp-editor-header{gap:4px;padding-inline:6px}.fp-floor-select{width:228px;min-width:135px}.fp-floor-picker-trigger{gap:4px;padding-inline:5px}.fp-floor-picker-trigger strong{max-width:90px}.fp-editor-header .fp-toolbar-group{gap:1px;padding-inline:2px}.fp-editor-header .fp-save-status,.fp-group-label{display:none}.fp-sidebar{width:228px}}@media (width<=760px){.fp-editor-header{min-height:40px}.fp-floor-select,.fp-sidebar{width:190px}.fp-quick-tools{flex-wrap:wrap}}.fp-sheet{flex-direction:column;gap:12px;display:flex}.fp-sheet-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:0 28px;display:grid}.fp-col{flex-direction:column;gap:12px;min-width:0;display:flex}.fp-sheet-cols .fp-col+.fp-col{border-left:1px solid var(--border);padding-left:28px}.fp-sheet-modal .modal-header{padding:12px 18px 10px}.fp-sheet-modal .modal-body{padding:14px 18px}.fp-sheet-modal .modal-footer{padding:10px 18px}.fp-sheet-modal{max-height:94vh}@media (width<=900px){.fp-sheet-cols{grid-template-columns:1fr}.fp-sheet-cols .fp-col+.fp-col{border-left:0;border-top:1px solid var(--border);padding-top:12px;padding-left:0}}.fp-sec{flex-direction:column;gap:8px;display:flex}.fp-sec+.fp-sec{border-top:1px solid var(--border);padding-top:12px}.fp-sec-title{letter-spacing:.7px;text-transform:uppercase;color:var(--muted);align-items:baseline;gap:8px;margin:0;font-size:10.5px;font-weight:700;display:flex}.fp-sec-title em,.fp-field>span em{text-transform:none;letter-spacing:0;color:var(--muted-2);font-size:10.5px;font-style:normal;font-weight:500}.fp-field>span em{margin-left:6px}.fp-row{align-items:end;gap:8px 10px;display:grid}.fp-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.fp-row-pose{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(150px,1.7fr)}.fp-row-pose .fp-input-group .fp-input{min-width:64px}.fp-chips.fp-chips-row{flex-wrap:nowrap;gap:4px;overflow-x:auto}.fp-chips.fp-chips-row .fp-chip{flex:none;gap:4px;padding:0 7px;font-size:11px}.fp-row-5{grid-template-columns:repeat(5,minmax(0,1fr))}.fp-row-name{grid-template-columns:minmax(0,1fr) auto;align-items:center}.fp-row-font{grid-template-columns:minmax(0,1fr) 80px}.fp-field{flex-direction:column;gap:4px;min-width:0;display:flex}.fp-field>span{color:var(--muted);letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.fp-input{width:100%;height:30px;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);transition:border-color var(--transition), box-shadow var(--transition);border-radius:7px;padding:0 9px;font-size:12.5px}select.fp-input{cursor:pointer}.fp-input:focus{border-color:var(--brand-blue);outline:none;box-shadow:0 0 0 3px #2196f324}.fp-input:disabled{opacity:.55;cursor:not-allowed;background:var(--bg-2)}.fp-input-lg{height:36px;font-size:14px;font-weight:600}.fp-mono{font-variant-numeric:tabular-nums}.fp-input-group{gap:4px;display:flex}.fp-input-group .fp-input{flex:1;min-width:0}.fp-mini-btn{min-width:30px;height:30px;font:inherit;color:var(--text-2);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:0 8px;font-size:12px;font-weight:600}.fp-mini-btn:hover{background:var(--bg-2);color:var(--text)}.fp-mini-btn.is-active{background:var(--text);color:var(--card);border-color:var(--text)}.fp-code{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.fp-meta{color:var(--muted);font-size:11.5px;line-height:1.5}.fp-meta strong{color:var(--text-2);font-weight:600}.fp-meta-accent{color:#2563eb}.fp-preview{border:1px solid var(--border);background:var(--bg-2);border-radius:8px;flex-shrink:0;place-items:center;width:72px;height:50px;display:grid}.fp-preview-poi{border-radius:50%;width:50px;height:50px}.fp-shape-pick{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.fp-shape-tile{font:inherit;color:var(--muted);background:var(--card);border:1px solid var(--border);cursor:pointer;transition:border-color var(--transition), background var(--transition), color var(--transition);border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:5px 4px 4px;font-size:10.5px;display:flex}.fp-shape-tile:hover{border-color:var(--muted-2);color:var(--text)}.fp-shape-tile.is-active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.fp-swatches{flex-wrap:wrap;gap:6px;display:flex}.fp-swatch{cursor:pointer;width:24px;height:24px;transition:transform var(--transition), box-shadow var(--transition);border:1px solid #00000014;border-radius:6px;padding:0;position:relative;box-shadow:inset 0 0 0 1px #ffffff59}.fp-swatch:hover{transform:scale(1.08)}.fp-swatch.is-active{box-shadow:0 0 0 2px var(--card), 0 0 0 4px var(--accent)}.fp-swatch-custom{place-items:center;display:grid;overflow:hidden}.fp-swatch-custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.fp-swatch-custom span{color:#0000008c;mix-blend-mode:difference;pointer-events:none;font-size:14px;font-weight:700}.fp-color-field{align-items:center;gap:6px;height:30px;display:flex}.fp-color-well{cursor:pointer;border:1px solid var(--border);background-image:linear-gradient(45deg,#e5e7eb 25%,#0000 25% 75%,#e5e7eb 75%),linear-gradient(45deg,#e5e7eb 25%,#0000 25% 75%,#e5e7eb 75%);background-position:0 0,4px 4px;background-size:8px 8px;border-radius:7px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid;position:relative;overflow:hidden}.fp-color-well input{opacity:0;cursor:pointer;position:absolute;inset:0}.fp-color-none{color:var(--red);pointer-events:none;font-size:18px;font-weight:700}.fp-range{width:100%;height:30px;accent-color:var(--accent);cursor:pointer;margin:0}.fp-seg{background:var(--bg-2);box-sizing:border-box;border-radius:8px;flex-wrap:wrap;gap:2px;max-width:100%;min-height:30px;padding:2px;display:inline-flex}.fp-seg-block{width:100%;display:flex}.fp-seg>button{min-width:max-content;height:26px;font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;transition:background var(--transition), color var(--transition);background:0 0;border:0;border-radius:6px;flex:auto;padding:0 10px;font-size:12px;font-weight:500}.fp-seg>button:hover{color:var(--text)}.fp-seg>button.is-active{background:var(--card);color:var(--text);box-shadow:0 1px 2px #0000001f}.fp-chips{flex-wrap:wrap;gap:6px;display:flex}.fp-chip{height:26px;font:inherit;background:var(--card);border:1px solid var(--border);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition);border-radius:99px;align-items:center;gap:5px;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.fp-chip i{border-radius:50%;width:8px;height:8px}.fp-chip:hover{background:var(--bg-2)}.fp-chip-plain{color:var(--text-2)}.fp-chip-plain.is-active{background:var(--text);color:var(--card);border-color:var(--text)}.fp-chip-plain.is-dim{color:var(--muted);border-style:dashed}.fp-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;display:inline-flex}.fp-toggle input{opacity:0;width:0;height:0;position:absolute}.fp-toggle-track{background:var(--muted-2,#b5b5b5);width:34px;height:20px;transition:background var(--transition);border-radius:99px;flex-shrink:0;position:relative}.fp-toggle-thumb{width:16px;height:16px;transition:transform var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.fp-toggle input:checked+.fp-toggle-track{background:var(--accent)}.fp-toggle input:checked+.fp-toggle-track .fp-toggle-thumb{transform:translate(14px)}.fp-toggle input:focus-visible+.fp-toggle-track{box-shadow:0 0 0 3px #2196f340}.fp-toggle-text{color:var(--text);font-size:12.5px}.fp-toggle-boxed{border:1px solid var(--border);background:var(--card);border-radius:7px;height:30px;padding:0 9px}.fp-toggle-boxed .fp-toggle-text{font-size:12.5px}.fp-image-row{align-items:center;gap:12px;display:flex}.fp-image-row img{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:100px;height:56px}.fp-image-actions{gap:6px;display:flex}.fp-dropzone{width:100%;font:inherit;color:var(--muted);background:var(--bg-2);border:1px dashed var(--muted-2);cursor:pointer;transition:border-color var(--transition), color var(--transition);border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:10px;font-size:12.5px;display:flex}.fp-dropzone:hover{border-color:var(--accent);color:var(--accent)}.fp-dropzone-icon{font-size:16px}.fp-sheet-footer{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.fp-sheet-footer-actions{gap:8px;margin-left:auto;display:flex}.fp-sheet-footnote{color:var(--muted);font-size:11px}.fp-robot-list{flex-direction:column;gap:4px;display:flex}.fp-robot-row{font:inherit;text-align:left;color:var(--text);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:8px;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:grid}.fp-robot-row:hover{background:var(--bg-2)}.fp-robot-row.is-active{border-color:var(--accent);background:var(--accent-dim)}.fp-robot-dot{background:#22c55e;border-radius:50%;width:8px;height:8px}.fp-robot-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.fp-robot-pose,.fp-robot-dist{color:var(--muted);font-size:12px}.fp-pose-diff{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.fp-pose-diff strong{color:var(--text)}.fp-pose-arrow{color:var(--accent);font-weight:700}.fp-progress{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2);margin-bottom:12px;padding:10px 12px}.fp-progress-label{color:var(--text-2);align-items:center;gap:8px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.fp-progress .spinner-sm{border-color:#3b82f640;border-top-color:var(--brand-blue);width:14px;height:14px}.fp-progress-track{background:var(--border);border-radius:99px;height:6px;position:relative;overflow:hidden}.fp-progress-bar{background:var(--brand-blue);border-radius:99px;width:38%;animation:1.2s ease-in-out infinite fp-progress-slide;position:absolute;top:0;bottom:0}@keyframes fp-progress-slide{0%{left:-38%}to{left:100%}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.card-title{color:var(--muted);margin-bottom:8px;font-size:13px;font-weight:500}.card-hover:hover{background:var(--card-hover)}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-align:center;flex-direction:column;align-items:center;padding:20px 18px 16px;display:flex}.stat-card .stat-label{color:var(--muted);align-self:flex-start;font-size:12px;font-weight:400}.stat-card .stat-value{color:var(--text);margin-top:6px;font-size:36px;font-weight:300;line-height:1}.stat-card .stat-sub{color:var(--muted);margin-top:4px;font-size:11px}.btn{border-radius:var(--radius-sm);transition:filter var(--transition), box-shadow var(--transition);white-space:nowrap;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:500;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:not(:disabled):hover{filter:brightness(1.08)}.btn:not(:disabled):active{filter:brightness(.94)}.btn-primary{background:var(--brand-blue);color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 2px 8px #2196f359}.btn-success{background:var(--brand-green);color:#fff}.btn-success:hover:not(:disabled){box-shadow:0 2px 8px #4caf5059}.btn-secondary{background:var(--card);border:1px solid var(--border);color:var(--text-2)}.btn-secondary:hover:not(:disabled){background:var(--bg-2);border-color:var(--muted-2);filter:none}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){box-shadow:0 2px 8px #e5393559}.btn-warning{background:var(--amber);color:#fff}.btn-warning:hover:not(:disabled){box-shadow:0 2px 8px #f5a62359}.btn-ghost{color:var(--muted)}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--bg-2);filter:none}.btn-sm{padding:5px 12px;font-size:12px}.btn-icon{border-radius:var(--radius-sm);padding:6px}.badge{text-transform:uppercase;letter-spacing:.4px;border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-green{background:var(--accent-dim);color:var(--logo-blue)}.badge-blue{background:var(--blue-dim);color:var(--brand-blue)}.badge-amber{background:var(--amber-dim);color:var(--amber)}.badge-red{background:var(--red-dim);color:var(--red)}.badge-muted{background:var(--bg-2);color:var(--muted)}.online-dot{background:var(--logo-blue,#4caf50);vertical-align:1px;width:8px;height:8px;box-shadow:0 0 0 2px color-mix(in srgb, var(--logo-blue,#4caf50) 25%, transparent);border-radius:50%;margin-right:7px;display:inline-block}.online-dot.off{background:var(--border);box-shadow:none}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:var(--card);overflow:hidden}.users-table-wrap{width:100%;max-width:none;margin:0;overflow-x:auto}.users-table{width:100%;min-width:1360px}.users-table th,.users-table td{white-space:nowrap}.users-table-actions{justify-content:center;gap:6px;display:flex}.data-table{border-collapse:collapse;width:100%}.data-table thead th{background:var(--surface);text-align:left;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-size:12px;font-weight:600}.data-table tbody tr{border-top:1px solid var(--border);transition:background var(--transition)}.data-table tbody tr:hover{background:var(--surface)}.data-table tbody td{color:var(--text);padding:9px 12px;font-size:13px}table{border-collapse:collapse;width:100%}thead th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);background:#f9f9f9;padding:10px 14px;font-size:12px;font-weight:600}tbody tr{border-top:1px solid var(--border);transition:background var(--transition);background:var(--card)}tbody tr:hover{background:#f9f9f9}tbody td{color:var(--text);padding:11px 14px;font-size:13px}.form-group{margin-bottom:16px}.form-label{color:var(--muted);letter-spacing:.3px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-input,.form-select,.form-textarea{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);transition:border-color var(--transition), box-shadow var(--transition);padding:10px 14px;font-size:14px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--brand-blue);outline:none;box-shadow:0 0 0 3px #2196f31f}.form-input::placeholder{color:var(--muted-2)}.form-select option{background:var(--card);color:var(--text)}.form-textarea{resize:vertical;min-height:80px}.form-error{color:var(--red);margin-top:4px;font-size:12px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.advert-loading{margin:48px auto}.advert-page{flex-direction:column;gap:16px;max-width:1440px;margin:0 auto;display:flex}.advert-header{justify-content:space-between;align-items:center;gap:20px;display:flex}.advert-header h2{font-size:18px;line-height:1.3}.advert-header p{color:var(--muted);margin-top:3px;font-size:12px}.advert-header__actions{align-items:center;gap:14px;display:flex}.advert-quota{width:180px;color:var(--text-2);font-size:11px}.advert-quota>div:first-child{justify-content:flex-end;display:flex}.advert-quota small{text-align:right;color:var(--muted);margin-top:2px;display:block}.advert-quota__track{background:var(--bg-2);border-radius:99px;height:5px;margin-top:4px;overflow:hidden}.advert-quota__track span{border-radius:inherit;background:var(--brand-blue);height:100%;display:block}.advert-notice,.advert-error{border-radius:var(--radius);padding:9px 12px;font-size:12px}.advert-notice{background:var(--amber-dim);color:#8a5a00;border:1px solid #f4d386}.advert-layout{grid-template-columns:minmax(440px,1.25fr) minmax(340px,.75fr);gap:16px;min-height:0;display:grid}.advert-library,.advert-editor{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);min-width:0;box-shadow:var(--shadow-sm)}.advert-library{padding:14px}.advert-editor{align-self:start;padding:14px}.advert-section-heading,.advert-preview-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.advert-section-heading>div{align-items:baseline;gap:8px;display:flex}.advert-section-heading span{color:var(--muted);font-size:11px}.advert-section-heading label{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.advert-section-heading .form-select{width:130px;padding:6px 9px;font-size:12px}.advert-brand-card{border-radius:var(--radius);background:#f6f8fd;border:1px dashed #b8c9ec;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.advert-brand-card>div{flex:1;min-width:0}.advert-brand-card strong,.advert-brand-card small{display:block}.advert-brand-card small{color:var(--muted);font-size:10px}.advert-status-dot{background:var(--muted-2);border-radius:50%;width:9px;height:9px}.advert-status-dot.is-active{background:var(--brand-green);box-shadow:0 0 0 3px #4caf5024}.advert-list{gap:7px;max-height:calc(100vh - 330px);padding-right:2px;display:grid;overflow-y:auto}.advert-item{border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition), background var(--transition);cursor:pointer;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:11px;padding:8px;display:grid}.advert-item:hover{background:var(--card-hover)}.advert-item.is-active{border-color:var(--brand-blue);background:var(--blue-dim)}.advert-thumb{background:#090d16;border-radius:5px;width:72px;height:54px;position:relative;overflow:hidden}.advert-thumb img,.advert-thumb video{object-fit:cover;width:100%;height:100%;display:block}.advert-thumb span{color:#fff;text-transform:uppercase;background:#000000b8;border-radius:3px;padding:1px 4px;font-size:8px;position:absolute;bottom:3px;right:3px}.advert-item__body{min-width:0}.advert-item__body>strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.advert-item__body>small{color:var(--muted);font-size:10px;display:block}.advert-item__checks{flex-wrap:wrap;gap:12px;margin-top:5px;display:flex}.advert-item__checks label{cursor:pointer;align-items:center;gap:4px;font-size:11px;display:flex}.advert-item__checks input{accent-color:var(--brand-blue)}.advert-item__actions{gap:3px;display:flex}.advert-item__actions .btn-icon{justify-content:center;width:28px;height:28px;padding:0}.advert-delete{color:var(--red);font-size:18px}.advert-empty{min-height:150px;color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;display:flex}.advert-empty span{margin-top:4px;font-size:11px}.advert-player{aspect-ratio:9/12;border-radius:var(--radius);color:#64748b;background:#020617;justify-content:center;align-items:center;width:100%;max-height:430px;display:flex;position:relative;overflow:hidden}.advert-player img,.advert-player video{object-fit:contain;width:100%;height:100%;display:block}.advert-player--empty{border:1px dashed #334155}.advert-player__overlay{z-index:2;overflow-wrap:anywhere;text-shadow:0 2px 6px #000,0 0 2px #000;max-width:90%;padding:.12em .35em;font-weight:700;line-height:1.2;position:absolute}.advert-player__overlay--blink{animation:1s step-end infinite advert-blink}.advert-player__counter{color:#fff;background:#00000094;border-radius:99px;padding:2px 7px;font-size:10px;position:absolute;top:8px;right:8px}.advert-player--kiosk{aspect-ratio:auto;border-radius:0;width:100%;height:100%;max-height:none;position:absolute;inset:0}@keyframes advert-blink{50%{opacity:.15}}.advert-controls{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.advert-controls h3{margin-bottom:10px;font-size:13px}.advert-controls .form-group{margin-bottom:10px}.advert-controls .form-textarea{min-height:58px}.advert-controls__grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.advert-controls__grid .form-input,.advert-controls__grid .form-select{padding:7px 9px;font-size:12px}.advert-color-field{align-items:center;gap:8px;height:34px;display:flex}.advert-color-field input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);width:42px;height:34px;padding:2px}.advert-color-field code{color:var(--muted);font-size:10px}.advert-preview-help{color:var(--muted);margin-top:9px;font-size:11px}.advert-page button:focus-visible,.advert-page input:focus-visible,.advert-page select:focus-visible,.advert-page textarea:focus-visible{outline-offset:2px;outline:3px solid #1a56db40}@media (width<=900px){.advert-header{flex-direction:column;align-items:flex-start}.advert-header__actions{justify-content:space-between;width:100%}.advert-layout{grid-template-columns:1fr}.advert-list{max-height:none}}@media (width<=560px){.advert-header__actions{flex-direction:column;align-items:stretch}.advert-quota{width:100%}.advert-quota>div:first-child,.advert-quota small{text-align:left;justify-content:flex-start}.advert-item{grid-template-columns:58px minmax(0,1fr)}.advert-thumb{width:58px;height:48px}.advert-item__actions{grid-column:1/-1;justify-content:flex-end}.advert-controls__grid{grid-template-columns:1fr}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#2d374873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-backdrop.modal-backdrop--peek{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;justify-content:flex-end}.modal-backdrop.modal-backdrop--peek .modal{pointer-events:auto;max-width:440px;box-shadow:var(--shadow-lg,0 20px 50px #00000059)}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-md);flex-direction:column;display:flex}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 22px 16px;display:flex}.modal-header h2{color:var(--text);font-size:15px;font-weight:700}.modal-body{flex:1;padding:20px 22px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);background:var(--bg);border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.toggle-group{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;display:flex}.toggle-btn{border-radius:var(--radius-sm);color:var(--muted);transition:background var(--transition), color var(--transition);align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;display:flex}.toggle-btn.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}.toggle-btn svg{width:14px;height:14px}.battery-bar{background:var(--bg-2);border-radius:99px;width:60px;height:5px;overflow:hidden}.battery-fill{border-radius:99px;height:100%;transition:width .5s}.robot-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.robot-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color var(--transition), box-shadow var(--transition);padding:16px}.robot-card.active-task{border-color:var(--brand-green);box-shadow:0 0 0 2px #3cb05e1f}.robot-card.waiting-confirm{border-color:var(--amber);box-shadow:0 0 0 2px #f5a6231f}.robot-card.error-state{border-color:var(--red);box-shadow:0 0 0 2px #e539351f}.robot-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.robot-name{color:var(--text);font-size:14px;font-weight:700}.robot-stats{flex-direction:column;gap:6px;margin-top:12px;display:flex}.robot-stat-row{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.robot-stat-row .val{color:var(--text);font-weight:600}.login-modal{max-width:340px}.login-modal-header{border-bottom:1px solid var(--border);flex-direction:column;align-items:center;gap:4px;padding:20px 20px 14px;display:flex}.login-modal-brand{color:var(--text);letter-spacing:-.3px;margin-top:2px;font-size:20px;font-weight:700}.login-modal-tagline{color:var(--muted);letter-spacing:.5px;text-transform:uppercase;font-size:10px}.login-form{flex-direction:column;gap:0;width:100%;padding-top:2px;display:flex}.login-form .form-input{background:#fff;border:1px solid #d0d5dd;border-radius:0;padding:10px 14px;font-size:13px}.login-form .form-input:first-of-type{border-bottom:none;border-radius:8px 8px 0 0}.login-form .form-input:last-of-type{border-radius:0 0 8px 8px}.login-form .form-input:focus{border-color:var(--amber);box-shadow:none;z-index:1;position:relative}.login-btn{background:var(--brand-green);color:#fff;width:100%;transition:background var(--transition), box-shadow var(--transition);border-radius:8px;justify-content:center;margin-top:14px;padding:10px;font-size:13px;font-weight:600}.login-btn:hover:not(:disabled){background:var(--brand-green-d);box-shadow:0 4px 14px #4caf5066}.login-btn:disabled{opacity:.65;cursor:not-allowed}.login-error{background:var(--red-dim);color:var(--red);border:1px solid #ffcdd2;border-radius:8px;width:100%;margin-bottom:16px;padding:11px 14px;font-size:13px}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wsLoadBar{0%{width:0%;margin-left:0}50%{width:55%;margin-left:20%}to{width:0%;margin-left:100%}}.full-page-spinner{background:var(--bg);justify-content:center;align-items:center;height:100vh;display:flex}.ws-dot{background:var(--muted-2);border-radius:50%;width:8px;height:8px;transition:background .3s}.ws-dot.connected{background:var(--logo-blue);box-shadow:0 0 6px #1a56db99}.ws-dot.disconnected{background:var(--red)}.map-wrap{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex:1;position:relative;overflow:hidden}.map-wrap canvas{width:100%;height:100%;display:block}.map-robot-marker{cursor:pointer;outline:none}.map-robot-status-halo{fill:#1a56db14;stroke:#1a56db;stroke-width:1.8px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px #0f172a3d);transition:stroke-width .15s,filter .15s}.map-robot-marker--offline .map-robot-status-halo{fill:#dc26261f;stroke:#dc2626}.map-robot-marker--emergency .map-robot-status-halo{fill:#f59e0b2e;stroke:#f59e0b}.map-robot-marker--confirmation .map-robot-status-halo{fill:#f59e0b26;stroke:#d97706}.map-robot-marker--reset .map-robot-status-halo,.map-robot-marker--stuck .map-robot-status-halo{fill:#ea580c24;stroke:#ea580c}.map-robot-marker--sleep .map-robot-status-halo{fill:#64748b24;stroke:#64748b}.map-robot-marker:hover .map-robot-status-halo,.map-robot-marker:focus .map-robot-status-halo,.map-robot-marker.is-selected .map-robot-status-halo{stroke-width:3px;filter:drop-shadow(0 0 4px #1a56db73)}.map-robot-status-badge circle{fill:#1a56db;stroke:#fff;stroke-width:1.1px}.map-robot-marker--offline .map-robot-status-badge circle{fill:#dc2626}.map-robot-marker--emergency .map-robot-status-badge circle{fill:#f59e0b}.map-robot-marker--confirmation .map-robot-status-badge circle{fill:#d97706}.map-robot-marker--reset .map-robot-status-badge circle,.map-robot-marker--stuck .map-robot-status-badge circle{fill:#ea580c}.map-robot-marker--sleep .map-robot-status-badge circle{fill:#64748b}.map-robot-status-badge text{fill:#fff;pointer-events:none;font:700 7px system-ui,sans-serif}.plan-robot-status-panel,.furniture-robot-status-panel{z-index:30;width:min(360px,100% - 24px);position:absolute;bottom:12px;left:12px}.robot-status-panel{--status-color:#1a56db;border:1px solid color-mix(in srgb, var(--status-color) 34%, #cbd5e1);border-left:4px solid var(--status-color);color:#1e293b;background:#fffffff7;border-radius:12px;padding:12px;box-shadow:0 10px 28px #0f172a33}.robot-status-panel--offline,.furniture-robot-badge--offline{--status-color:#dc2626}.robot-status-panel--emergency,.furniture-robot-badge--emergency{--status-color:#f59e0b}.robot-status-panel--confirmation,.furniture-robot-badge--confirmation{--status-color:#d97706}.robot-status-panel--reset,.furniture-robot-badge--reset,.robot-status-panel--stuck,.furniture-robot-badge--stuck{--status-color:#ea580c}.robot-status-panel--sleep,.furniture-robot-badge--sleep{--status-color:#64748b}.robot-status-panel__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.robot-status-panel__eyebrow{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.robot-status-panel h2{margin-top:1px;font-size:15px;line-height:1.25}.robot-status-panel__close{color:#475569;border-radius:7px;place-items:center;width:28px;height:28px;font-size:21px;line-height:1;display:inline-grid}.robot-status-panel__close:hover{color:#0f172a;background:#f1f5f9}.robot-status-panel__close:focus-visible,.robot-status-panel__primary:focus-visible,.robot-status-panel__secondary:focus-visible,.robot-status-panel__danger:focus-visible,.furniture-robot-badge:focus-visible{outline-offset:2px;outline:3px solid #1a56db}.robot-status-panel__status{grid-template-columns:24px 1fr;gap:8px;margin-top:10px;display:grid}.robot-status-panel__dot{background:var(--status-color);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:13px;font-weight:800;display:inline-grid}.robot-status-panel__status strong{color:var(--status-color);font-size:13px}.robot-status-panel__status p,.robot-status-panel__error{color:#475569;margin-top:1px;font-size:12px;line-height:1.4}.robot-status-panel__error{color:#b91c1c;background:#fff1f2;border-radius:6px;padding:6px 8px}.robot-status-panel__actions{flex-wrap:wrap;gap:7px;margin-top:12px;display:flex}.robot-status-panel__primary,.robot-status-panel__secondary,.robot-status-panel__danger{border-radius:6px;min-height:32px;padding:6px 10px;font-size:12px;font-weight:700}.robot-status-panel__primary{background:var(--status-color);color:#fff}.robot-status-panel__primary:disabled{cursor:wait;opacity:.7}.robot-status-panel__primary--reset{background:#dc2626}.robot-status-panel__secondary{color:#1e3a5f;background:#fff;border:1px solid #cbd5e1}.robot-status-panel__secondary:hover{background:#f8fafc;border-color:#94a3b8}.robot-status-panel__danger{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca}.robot-status-panel__danger:hover:not(:disabled){background:#fee2e2;border-color:#f87171}.robot-status-panel__danger:disabled,.robot-status-panel__secondary:disabled{cursor:not-allowed;opacity:.55}.furniture-robot-badge{--status-color:#1a56db;border:2px solid var(--status-color);box-shadow:0 2px 8px color-mix(in srgb, var(--status-color) 28%, transparent);color:#0f2f5c;background:#fffffff0;border-radius:999px;align-items:center;gap:3px;padding:2px 4px;display:flex}.furniture-robot-badge--emergency,.furniture-robot-badge--confirmation,.furniture-robot-badge--reset,.furniture-robot-badge--stuck{animation:1.25s ease-in-out infinite robot-badge-pulse}@keyframes robot-badge-pulse{50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--status-color) 25%, transparent), 0 3px 10px #0f172a33}}.furniture-robot-status-badge{background:var(--status-color);color:#fff;border:1px solid #fff;border-radius:50%;place-items:center;width:14px;height:14px;margin-top:-13px;margin-left:-5px;font-size:9px;font-weight:800;display:inline-grid}@media (width<=600px){.plan-robot-status-panel,.furniture-robot-status-panel{width:calc(100% - 16px);bottom:8px;left:8px}}.tabs{border-bottom:2px solid var(--border);gap:0;margin-bottom:20px;display:flex}.tab-btn{color:var(--muted);transition:color var(--transition), border-color var(--transition);border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 20px;font-size:13px;font-weight:600}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--logo-blue);border-bottom-color:var(--logo-blue)}.empty-state{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:60px 20px;display:flex}.empty-state svg{opacity:.4;width:40px;height:40px}.task-list{flex-direction:column;gap:8px;display:flex}.task-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:12px 16px;display:flex}.task-info{flex:1;min-width:0}.task-poi{color:var(--text);font-size:13px;font-weight:600}.task-meta{color:var(--muted);margin-top:2px;font-size:11px}.task-actions{flex-shrink:0;gap:6px;display:flex}.section-header{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.section-title{color:var(--text);align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.section-count{background:var(--bg-2);color:var(--muted);border-radius:var(--radius-pill);padding:1px 7px;font-size:11px;font-weight:600}.section-hint{color:var(--muted-2);font-size:11px}.task-table-wrap{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow-x:auto}.task-table{border-collapse:collapse;background:var(--card);width:100%;font-size:13px}.task-table thead tr{background:var(--bg-2);border-bottom:1px solid var(--border)}.task-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:9px 12px;font-size:11px;font-weight:600}.task-table td{border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:9px 12px}.task-table tbody tr:last-child td{border-bottom:none}.task-table tbody tr:hover{background:var(--card-hover)}.task-row-active{background:#f0f7ff!important}.task-row-active:hover{background:#e6f1ff!important}.task-seq{color:var(--muted);width:36px;font-size:11px}.task-poi-cell strong{font-weight:600}.mono-cell{font-variant-numeric:tabular-nums;color:var(--text-2)}.muted-text{color:var(--muted-2)}.priority-cell{text-align:center;width:32px}.high-priority-icon{color:var(--amber);justify-content:center;align-items:center;display:inline-flex}.completed-by-badge{border-radius:var(--radius-sm);white-space:nowrap;padding:2px 7px;font-size:11px;font-weight:600;display:inline-block}.completed-by-robot{color:#2e7d32;background:#e8f5e9}.completed-by-server{background:var(--blue-dim);color:var(--brand-blue)}.form-group-inline{align-items:center;padding-top:22px;display:flex}.checkbox-label{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--amber)}.sortable-th{cursor:pointer}.sortable-th:hover{color:var(--accent)}.sort-icon{margin-left:4px;font-size:10px}.sort-icon-idle{color:var(--muted-2)}.sort-icon-active{color:var(--accent)}.history-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.status-filters{flex-wrap:wrap;gap:6px;display:flex}.status-filter-chip{cursor:pointer;opacity:.45;transition:opacity var(--transition);align-items:center;gap:4px;display:flex}.status-filter-chip input{display:none}.status-filter-chip.active{opacity:1}.chip-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.history-search{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);flex:1;min-width:180px;max-width:300px;padding:6px 10px;font-size:12px}.conn-banner{background:var(--red-dim);color:var(--red);border-bottom:1px solid #ffcdd2;align-items:center;gap:8px;padding:8px 16px;font-size:12px;font-weight:500;display:flex}@keyframes poiPulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}@keyframes bubbleFadeIn{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.welcome-screen{background:radial-gradient(circle at 18% 16%,#1a56db29,#0000 24%),radial-gradient(circle at 84% 24%,#4caf5026,#0000 20%),linear-gradient(135deg,#eef3fb 0%,#f7f9fc 46%,#eef5ec 100%);flex-direction:column;min-height:100%;display:flex;overflow-y:auto}.welcome-content-row{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:44px;padding:34px 42px 28px;display:flex}.welcome-brand-side{flex-direction:column;flex:560px;gap:18px;max-width:660px;display:flex}.welcome-brand-card{background:linear-gradient(155deg,#ffffffeb,#fffc);border:1px solid #ffffffbf;border-radius:28px;gap:24px;padding:30px 32px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 70px #28406629}.welcome-brand-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#1a56db2e,#0000 68%);width:240px;height:240px;position:absolute;inset:-30% auto auto -10%}.welcome-brand-mark{align-items:center;gap:15px;display:flex}.welcome-brand-logo-wrap{background:#fff;border-radius:12px;flex-shrink:0;align-items:center;padding:4px;display:flex;box-shadow:0 3px 8px #0000002e,0 1px 3px #0000001a,inset 0 1px #ffffffe6}.welcome-brand-text{flex-direction:column;line-height:1.15;display:flex}.welcome-brand-hybot{letter-spacing:6px;text-transform:uppercase;background:linear-gradient(135deg,#0f172a 0%,#1a56db 45%,#0d2d6b 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Orbitron,monospace;font-size:27px;font-weight:800;display:block}.welcome-brand-sub{color:var(--muted);letter-spacing:2.25px;text-transform:uppercase;font-family:Rajdhani,Segoe UI,sans-serif;font-size:21px;font-weight:600;display:block}.welcome-tagline{color:var(--brand-blue);letter-spacing:.03em;font-size:19px;font-style:italic;font-weight:700}.welcome-footer-contact-item{color:var(--text-2);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.welcome-footer-contact-icon{color:var(--brand-blue);flex-shrink:0;align-items:center;display:flex}.welcome-desc{color:var(--text-2);max-width:620px;font-size:15px;line-height:1.8}.welcome-highlight-grid{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid;position:relative}.welcome-highlight-card{background:linear-gradient(#f2f6fff2,#ffffffe0);border:1px solid #1a56db1a;border-radius:18px;padding:16px 18px}.welcome-highlight-value{color:var(--brand-blue);letter-spacing:.04em;font-family:Orbitron,monospace;font-size:24px;font-weight:800}.welcome-highlight-label{color:var(--muted);margin-top:6px;font-size:12px}.welcome-version-row{z-index:1;flex-wrap:wrap;align-items:center;gap:14px;display:flex;position:relative}.welcome-version-badge{color:var(--brand-blue);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--radius-pill);background:#1a56db14;border:1px solid #1a56db1f;padding:8px 14px;font-size:11px;font-weight:700}.welcome-robot-side{flex:420px;justify-content:center;align-items:center;display:flex}.welcome-robot-stage{background:linear-gradient(#f2f6ff80,#f8fcf866);border:1px dashed #1a56db1f;border-radius:20px;width:min(100%,500px);height:380px;position:relative;overflow:visible}.welcome-robot-container{z-index:2;transition:left 2.2s cubic-bezier(.4,0,.2,1),top 2.2s cubic-bezier(.4,0,.2,1);position:absolute;transform:translate(-50%,-50%)}.welcome-robot-img{object-fit:contain;filter:drop-shadow(0 10px 22px #0003);width:auto;max-width:130px;height:150px;display:block}.welcome-poi-marker{pointer-events:none;z-index:1;flex-direction:column;align-items:center;gap:5px;transition:opacity .6s;display:flex;position:absolute;transform:translate(-50%,-50%)}.welcome-poi-dot{border-radius:50%;width:14px;height:14px;animation:1.4s ease-in-out infinite poiPulse}.welcome-poi-label{white-space:nowrap;background:#fff;border:1.5px solid;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}.welcome-speech-bubble{color:#fff;white-space:nowrap;pointer-events:none;z-index:10;background:#0f172a;border-radius:10px;padding:7px 12px;font-size:12px;font-weight:600;animation:.35s forwards bubbleFadeIn;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.welcome-speech-bubble:after{content:"";border:5px solid #0000;border-top-color:#0f172a;border-bottom:none;position:absolute;top:100%;left:50%;transform:translate(-50%)}@media (width<=700px){.welcome-content-row{flex-direction:column;gap:28px;padding:22px 18px 20px}.welcome-brand-card{gap:18px;padding:24px 20px}.welcome-highlight-grid{grid-template-columns:1fr}.welcome-robot-stage{width:100%;height:280px}.welcome-robot-img{height:110px}}.help-page-shell{gap:16px;max-width:980px;display:grid}.help-hero-card{color:#fff;background:linear-gradient(135deg,#0f172a 0%,#1d4ed8 58%,#38bdf8 100%);border-radius:24px;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:18px;padding:24px;display:grid;position:relative;overflow:hidden}.help-hero-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff40,#0000 70%);width:260px;height:260px;position:absolute;inset:auto -8% -20% auto}.help-hero-copy{z-index:1;gap:16px;display:grid;position:relative}.help-hero-badge{letter-spacing:.14em;text-transform:uppercase;background:#ffffff29;border-radius:999px;width:fit-content;padding:7px 12px;font-size:11px;font-weight:800;display:inline-flex}.help-hero-brand{grid-template-columns:auto 1fr;align-items:center;gap:16px;display:grid}.help-hero-logo{background:#ffffffeb;border-radius:22px;justify-content:center;align-items:center;width:78px;height:78px;display:flex;box-shadow:0 14px 30px #0f172a38}.help-hero-title{margin:0;font-size:clamp(28px,4.4vw,42px);line-height:1.02}.help-hero-subtitle{color:#ffffffdb;max-width:560px;margin-top:8px;font-size:15px;line-height:1.8}.help-hero-pills{flex-wrap:wrap;gap:8px;display:flex}.help-pill{background:#ffffff1f;border:1px solid #ffffff29;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700}.help-hero-visual{justify-content:center;align-items:flex-end;display:flex;position:relative}.help-hero-image-wrap{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#ffffff47,#ffffff14);border-radius:28px;justify-content:center;align-items:center;width:min(100%,320px);min-height:280px;padding:18px;display:flex}.help-hero-image{object-fit:contain;filter:drop-shadow(0 18px 30px #0f172a40);max-width:100%;max-height:250px}.help-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.help-quick-card{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:linear-gradient(#fff,#f8fafc);border-radius:18px;gap:8px;padding:18px;display:grid}.help-quick-card p{color:var(--muted)}.help-quick-card--blue{background:linear-gradient(#eff6ff,#ecfeff)}.help-quick-label{color:var(--brand-blue);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:800}.help-step-row{grid-template-columns:30px 1fr;align-items:flex-start;gap:10px;display:grid}.help-step-no{color:#fff;background:linear-gradient(135deg,#1d4ed8,#38bdf8);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:800;display:inline-flex;box-shadow:0 8px 18px #1d4ed833}.help-task-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.help-task-card{border:1px solid #0000;border-radius:14px;gap:6px;padding:14px;display:grid}.help-task-name{font-size:14px;font-weight:800}.help-callout-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;gap:5px;padding:14px 16px;display:grid}.help-callout-box--warm{background:#fff7ed;border-color:#fdba74}.help-support-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.help-support-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:18px;gap:6px;padding:18px;display:grid}.help-support-label{color:var(--brand-blue);text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800}.help-support-value{color:var(--text);font-size:22px;font-weight:800}.help-support-hint{color:var(--muted);font-size:13px}@media (width<=820px){.help-hero-card,.help-quick-grid,.help-support-grid,.help-task-grid,.help-hero-brand{grid-template-columns:1fr}}.user-avatar-btn{all:unset;cursor:pointer;width:34px;height:34px;transition:border-color var(--transition);background:#ffffff1a;border:2px solid #fff3;border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden}.user-avatar-btn:hover{border-color:#ffffff80}.msg-bell-btn{all:unset;cursor:pointer;color:#ffffffd9;width:34px;height:34px;transition:background var(--transition);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.msg-bell-btn:hover{background:#ffffff1a}.msg-bell-btn svg{width:18px;height:18px}.msg-bell-btn.has-unread{color:#ff5252}.msg-bell-btn.has-unread svg{transform-origin:50% 2px;filter:drop-shadow(0 0 4px #ff525299);animation:2.2s ease-in-out infinite msg-bell-ring}@keyframes msg-bell-ring{0%,60%,to{transform:rotate(0)}5%{transform:rotate(16deg)}10%{transform:rotate(-14deg)}15%{transform:rotate(12deg)}20%{transform:rotate(-10deg)}25%{transform:rotate(7deg)}30%{transform:rotate(-4deg)}35%{transform:rotate(0)}}.msg-bell-badge{color:#1a1a1a;background:#ffd600;border:1.5px solid #1e1e1e;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:800;line-height:1;animation:2.2s ease-out infinite msg-badge-pulse;display:flex;position:absolute;top:0;right:0;box-shadow:0 0 #ffd60099}@keyframes msg-badge-pulse{0%{box-shadow:0 0 #ffd60099}50%{box-shadow:0 0 0 5px #ffd60000}to{box-shadow:0 0 #ffd60000}}@media (prefers-reduced-motion:reduce){.msg-bell-btn.has-unread svg,.msg-bell-badge{animation:none}}.msg-menu{width:520px;max-width:calc(100vw - 24px)}.msg-menu .user-menu-header{justify-content:space-between;padding:10px 14px}.msg-mark-all-btn{all:unset;cursor:pointer;color:var(--accent,#4c8bf5);font-size:12px}.msg-menu-list{overscroll-behavior:contain;max-height:min(60vh,520px);overflow-y:auto}.msg-menu-empty{color:var(--muted);text-align:center;padding:16px 14px;font-size:13px}.msg-menu-item{all:unset;cursor:pointer;box-sizing:border-box;align-items:flex-start;gap:8px;width:100%;max-height:400px;padding:10px 14px;transition:opacity .35s,transform .35s,max-height .35s;display:flex;overflow:hidden}.msg-menu-item:hover{background:#ffffff0f}.msg-menu-item.unread{background:#4c8bf514}.msg-menu-item.fading{opacity:0;pointer-events:none;max-height:0;padding-top:0;padding-bottom:0;transform:translate(24px)}.msg-menu-item-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.msg-menu-item-title{font-size:13px;font-weight:600}.msg-menu-item-body{color:var(--muted);white-space:pre-wrap;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.msg-menu-item:hover .msg-menu-item-body{-webkit-line-clamp:unset;display:block}.msg-menu-footer{padding:10px 14px;display:flex}.msg-menu-inbox-btn{text-align:center;flex:1;justify-content:center;text-decoration:none}.msg-type-dot{background:#4c8bf5;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.msg-type-dot.msg-type-update{background:#4c8bf5}.msg-type-dot.msg-type-feature{background:#43a047}.msg-type-dot.msg-type-maintenance{background:#fb8c00}.msg-type-dot.msg-type-reward{background:#fdd835}.msg-type-dot.msg-type-warning{background:#e53935}.msg-type-dot.msg-type-info{background:#78909c}.msg-actions{align-items:center;gap:6px;margin-top:10px;display:flex}.msg-react{all:unset;cursor:pointer;border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;display:inline-flex}.msg-react:hover{color:var(--text);background:#ffffff0f}.msg-react.active{color:#4c8bf5;background:#4c8bf51f;border-color:#4c8bf5}.msg-comments{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;font-size:13px;display:flex}.msg-comment{background:#ffffff0a;border-radius:6px;padding:6px 10px}.msg-comment-head{color:var(--muted);align-items:center;gap:8px;margin-bottom:2px;font-size:11px;display:flex}.msg-comment-head strong{color:var(--text);font-size:12px}.msg-comment-del{all:unset;cursor:pointer;color:var(--muted);margin-left:auto;padding:0 4px}.msg-comment-del:hover{color:#e53935}.msg-comment-form{gap:6px;display:flex}.msg-comment-form input{flex:1;min-width:0}.msg-comment-form.reply{margin-left:22px}.msg-thread{flex-direction:column;gap:4px;display:flex}.msg-comment.reply{border-left:2px solid #ffffff1f;margin-left:22px}.msg-comment.platform{background:#4c8bf51a}.msg-comment.new{background:#4c8bf52e;border-left-color:#4c8bf5}.msg-comment-new{color:#4c8bf5;text-transform:uppercase;font-size:10px;font-weight:700}.msg-comment-reply-btn{all:unset;cursor:pointer;color:#4c8bf5;margin-left:auto;font-size:11px;font-weight:600}.msg-comment-reply-btn:hover{text-decoration:underline}.msg-comment-reply-btn+.msg-comment-del{margin-left:0}.msg-reply-pill{color:#fff;white-space:nowrap;background:#4c8bf5;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.platform-msg-banner{border-bottom:1px solid var(--border);background:#4c8bf524;align-items:center;gap:10px;padding:8px 16px;font-size:13px;display:flex}.platform-msg-banner-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.platform-msg-banner-link{color:var(--accent,#4c8bf5);flex-shrink:0;font-weight:600;text-decoration:none}.platform-msg-banner-close{all:unset;cursor:pointer;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.user-menu{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);z-index:1100;min-width:180px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000059}.user-menu-header{align-items:center;gap:2px;padding:12px 14px 10px;display:flex}.user-menu-header-btn{all:unset;cursor:pointer;box-sizing:border-box;width:100%;transition:background var(--transition);border-radius:var(--radius) var(--radius) 0 0;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px 10px;display:flex}.user-menu-header-btn:hover{background:#ffffff0f}.tpm-overlay{z-index:300;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.tpm-card{background:var(--card);border-radius:var(--radius-lg);flex-direction:column;width:500px;max-width:100%;height:420px;max-height:calc(100dvh - 32px);display:flex;overflow:hidden auto;box-shadow:0 8px 32px #0000004d}.tpm-card>*{flex-shrink:0}.tpm-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 18px 12px;display:flex}.tpm-title{color:var(--text);align-items:baseline;gap:0;font-size:16px;font-weight:700;display:flex}.tpm-title-count{color:var(--muted);font-size:12px;font-weight:500}.tpm-close{width:28px;height:28px;color:var(--muted);transition:background var(--transition), color var(--transition);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.tpm-close:hover{background:var(--bg-2);color:var(--text)}.tpm-map{background:var(--bg-2,#f8fafc);border-bottom:1px solid var(--border);flex:0 0 240px;height:240px;min-height:240px;max-height:240px;position:relative;overflow:hidden}.tpm-map-empty{height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:13px;font-style:italic;display:flex}.poi-table{table-layout:fixed;width:100%}.poi-table th,.poi-table td{text-overflow:ellipsis;white-space:nowrap;padding:4px 6px;overflow:hidden}.poi-table thead th{font-size:11px}.poi-table tbody td{vertical-align:middle;height:26px;padding:1px 6px;line-height:1.2}.poi-table tbody select{padding-top:1px!important;padding-bottom:1px!important}.poi-table select,.poi-table input[type=search]{max-width:100%}.poi-bulk-row th{background:color-mix(in srgb, var(--accent) 7%, var(--card));border-top:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));border-bottom:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));text-align:left;padding:5px 6px}.poi-bulk-count{background:var(--accent);color:#fff;border-radius:99px;place-items:center;min-width:22px;height:22px;padding:0 5px;font-size:11px;display:inline-grid}.poi-bulk-count.is-empty{background:var(--surface);color:var(--muted);box-shadow:inset 0 0 0 1px var(--border)}.poi-short-label-cell{overflow:hidden}.poi-filter-input{border:1px solid var(--border);background:var(--bg);width:100%;min-width:0;color:var(--text);border-radius:3px;padding:2px 5px;font-size:11px}.poi-bulk-select{border:1px solid var(--border);background:var(--bg);width:100%;min-width:0;color:var(--text);border-radius:4px;padding:3px 4px;font-size:11px}.poi-bulk-select:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:1px;border-color:var(--accent)}.poi-bulk-text{gap:3px;width:100%;display:flex}.poi-bulk-text input{border:1px solid var(--border);background:var(--bg);width:0;min-width:0;color:var(--text);border-radius:4px;flex:1 1 0;padding:3px 4px;font-size:11px}.poi-bulk-text button{border:1px solid var(--border);background:var(--surface);width:22px;color:var(--muted);cursor:pointer;border-radius:4px;flex:0 0 22px;padding:0;font-size:9px}.poi-bulk-text button:disabled{opacity:.4;cursor:default}.poi-bulk-unchanged,.poi-bulk-hint{color:var(--muted);font-size:10px;font-weight:500}.tpm-poi-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:52px;max-height:110px;padding:12px 18px;display:flex;overflow-y:auto}.tpm-no-pois{color:var(--muted);align-self:center;font-size:13px;font-style:italic}.tpm-poi-chip{border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;transition:all var(--transition);white-space:nowrap;align-items:center;gap:6px;padding:5px 14px;font-size:12px;font-weight:500;display:inline-flex}.tpm-poi-chip:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.tpm-poi-chip.active{border-color:var(--accent);background:var(--accent);color:#fff}.tpm-poi-type{opacity:.75;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700}.tpm-types{border-bottom:1px solid var(--border);grid-template-columns:44px repeat(5,minmax(72px,1fr));align-items:stretch;gap:6px;padding:10px 14px;display:grid}.tpm-types-row{gap:8px;display:flex}.tpm-type-btn{border-radius:var(--radius);border:2px solid color-mix(in srgb, var(--tbt-c,var(--border)) 60%, transparent);background:color-mix(in srgb, var(--tbt-c,var(--border)) 10%, transparent);color:var(--tbt-c,var(--text));cursor:pointer;text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:46px;padding:6px 4px;font-size:11px;font-weight:700;transition:all .15s;display:flex}.tpm-type-btn:hover:not(:disabled){background:var(--tbt-c,var(--border));border-color:var(--tbt-c,var(--border));color:#fff}.tpm-type-btn:disabled{opacity:.5;cursor:not-allowed}.tpm-star-row{justify-content:center;display:flex}.tpm-star-btn{border:2px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:all .15s;display:inline-flex}.tpm-star-btn:hover{background:#f59e0b12;border-color:#f59e0b}.tpm-star-btn.active{background:#f59e0b1f;border-color:#f59e0b}.tpm-star-label{color:var(--muted);font-size:13px;font-weight:600;transition:color .15s}.tpm-star-btn.active .tpm-star-label{color:#f59e0b}@media (width<=640px){.tpm-types{grid-template-columns:44px repeat(2,minmax(0,1fr))}}.tpm-error-bar{color:var(--red);background:#ef444414;border-top:1px solid #ef444433;padding:8px 18px;font-size:12px}.tpm-sel-poi{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:8px;min-height:32px;padding:6px 14px;display:flex}.tpm-sel-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:11px;font-weight:600}.tpm-sel-name{color:#0f2f5c;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.tpm-sel-hint{color:var(--muted);font-size:12px;font-style:italic}.tpm-sel-raw{color:#22c55e;white-space:nowrap;font-size:13px;font-weight:600}.user-menu-header-btn:hover .user-menu-edit-icon{opacity:1}.user-menu-header-text{flex-direction:column;gap:2px;display:flex}.user-menu-edit-icon{width:14px;height:14px;color:var(--muted);opacity:0;transition:opacity var(--transition);flex-shrink:0}.user-menu-name{color:var(--text);font-size:13px;font-weight:700}.user-menu-role{color:var(--muted);text-transform:capitalize;font-size:11px}.user-menu-divider{background:var(--border);height:1px;margin:0}.user-menu-item{all:unset;cursor:pointer;box-sizing:border-box;width:100%;color:var(--text);transition:background var(--transition);align-items:center;gap:9px;padding:9px 14px;font-size:13px;display:flex}.user-menu-item svg{flex-shrink:0;width:15px;height:15px}.user-menu-item:hover{background:#ffffff0f}.user-menu-item-danger{color:#ff6b6b!important}.user-menu-item-danger:hover{background:#e539351f!important}.furniture-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:16px;display:grid}.furniture-cell{aspect-ratio:4/3;border-radius:var(--radius);background:var(--cell-color,#bfdbfe);flex-direction:column;justify-content:center;align-items:center;gap:4px;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 2px 8px #0000002e}.furniture-cell:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000040}.furniture-cell-ws{box-shadow:none;opacity:.9;border:4px double #00000059}.furniture-cell-ws:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.furniture-grid-break{grid-column:1/-1;height:0;margin:0;padding:0}.furniture-cell-name{text-align:center;color:#000000bf;word-break:break-word;padding:6px;font-family:Rajdhani,sans-serif;font-size:15px;font-weight:600;line-height:1.2}.furniture-cell-ws .furniture-cell-name{letter-spacing:.04em;text-transform:uppercase;color:#000000d9;font-size:17px;font-weight:700}.furniture-robot-badge{--status-color:#1a56db;border:2px solid var(--status-color);color:#0f2f5c;box-shadow:0 2px 8px color-mix(in srgb, var(--status-color) 28%, transparent);background:#fffffff0;border-radius:999px;align-items:center;gap:3px;padding:2px 4px;display:flex}.furniture-robot-badge-fly{pointer-events:auto;will-change:transform;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:transform .55s cubic-bezier(.4,0,.2,1)}.furniture-robot-badge:hover,.furniture-robot-badge.is-selected{box-shadow:0 0 0 3px color-mix(in srgb, var(--status-color) 24%, transparent), 0 3px 10px #0f172a33}.furniture-robot-img{width:var(--home-robot-icon-size,28px);height:var(--home-robot-icon-size,28px);object-fit:contain;flex-shrink:0}.appearance-setting-heading{color:var(--text);margin-bottom:12px;font-size:13px;font-weight:600}.appearance-label-compact{display:none}.appearance-range-row{align-items:center;gap:12px;display:flex}.appearance-range-row input[type=range]{cursor:pointer;min-width:100px;height:6px;accent-color:var(--brand-green);flex:1}@media (width<=520px){.appearance-label-wide{display:none}.appearance-label-compact{display:inline}.appearance-range-row{gap:8px}}.furniture-robot-name{color:#0f2f5c;white-space:nowrap;text-overflow:ellipsis;max-width:72px;font-size:10px;font-weight:700;overflow:hidden}.full-page-spinner{justify-content:center;align-items:center;height:100%;min-height:200px;display:flex}.account-modal{width:min(620px,100vw - 28px);max-width:620px;max-height:min(760px,100dvh - 28px);overflow:hidden}.account-modal-subtitle{color:var(--muted);margin-top:2px;font-size:12px;font-weight:400}.account-summary{border-bottom:1px solid var(--border);background:linear-gradient(135deg, var(--bg), var(--card));padding:16px 20px}.account-identity{align-items:center;gap:13px;margin-bottom:14px;display:flex}.account-identity div{gap:1px;display:grid}.account-identity strong{font-size:16px}.account-identity span{color:var(--muted);text-transform:capitalize;font-size:12px}.account-avatar{border:2px solid var(--card);object-fit:cover;box-shadow:0 0 0 1px var(--border), var(--shadow-sm);border-radius:50%;flex:none;display:inline-flex}.account-avatar-initial{color:#fff;justify-content:center;align-items:center;font-size:22px;font-weight:700}.account-stats{grid-template-columns:.8fr 1.15fr 1.55fr;gap:8px;display:grid}.account-stats div{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);min-width:0;padding:9px 10px}.account-stats dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:700}.account-stats dd{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;font-weight:650;overflow:hidden}.account-modal-body{gap:13px;padding:18px 20px 20px;display:grid;overflow-y:auto}.account-modal-body .form-group{min-width:0}.account-save{width:100%;margin-top:2px}.account-avatar-editor{align-items:center;gap:16px;display:flex}.account-avatar-editor p{color:var(--muted);font-size:12px;line-height:1.5}.account-avatar-actions{gap:6px;margin-top:8px;display:flex}.account-colors{flex-wrap:wrap;gap:9px;padding:2px;display:flex}.account-colors button{border:2px solid var(--card);width:28px;height:28px;box-shadow:0 0 0 1px var(--border);border-radius:50%}.account-colors button:hover,.account-colors button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;transform:scale(1.08)}.account-colors button.selected{box-shadow:0 0 0 2px var(--text)}.modal-title{color:var(--text);font-size:15px;font-weight:700}.profile-tabs{border-bottom:1px solid var(--border);display:flex}.profile-tab{color:var(--muted);transition:color var(--transition), border-color var(--transition);text-align:center;border-bottom:2px solid #0000;flex:1;padding:11px 0;font-size:13px;font-weight:600}.profile-tab.active{color:var(--logo-blue);border-bottom-color:var(--logo-blue)}.profile-tab:hover:not(.active){color:var(--text)}.profile-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.form-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;font-size:12px;font-weight:600;display:block}.form-input{box-sizing:border-box;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);transition:border-color var(--transition), box-shadow var(--transition);padding:8px 12px;font-size:13px}.form-input:focus{border-color:var(--logo-blue);outline:none;box-shadow:0 0 0 2px #1a56db2e}.form-error{color:#ff6b6b;border-radius:var(--radius-sm);background:#e539351a;margin-top:8px;padding:7px 10px;font-size:12px}.form-success{color:#4caf50;border-radius:var(--radius-sm);background:#4caf501a;margin-top:8px;padding:7px 10px;font-size:12px}@media (width<=560px){.account-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.account-summary{padding:13px 14px}.account-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.account-stats div:last-child{grid-column:1/-1}.account-modal-body{padding:15px 14px 18px}.account-modal-body .form-row{grid-template-columns:1fr}}.robot-status-panel{--status-color:var(--robot-status-color,#1a56db)}.robot-status-panel__status--no-icon{grid-template-columns:1fr}.robot-status-panel__dot{color:var(--status-color);background:0 0}.robot-status-panel__dot svg{width:16px;height:16px}.robot-status-panel__dot.is-blinking{animation:1s ease-in-out infinite robot-status-blink}@keyframes robot-status-blink{50%{opacity:.38}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.robot-status-chip{--robot-status-color:#1a56db;transition:border-color var(--transition), background var(--transition), box-shadow var(--transition)}.robot-status-chip.is-open{border-color:var(--brand-blue)!important}.robot-status-chip.is-inactive{border-color:var(--red)!important}.robot-status-chip--error,.robot-status-chip--emergency,.robot-status-chip--reset,.robot-status-chip--offline,.robot-status-chip--server_offline,.robot-status-chip--sleep,.robot-status-chip--stuck,.robot-status-chip--confirmation,.robot-status-chip--confirmation_attention{border-color:color-mix(in srgb, var(--robot-status-color) 48%, var(--border))!important;background:color-mix(in srgb, var(--robot-status-color) 7%, var(--bg))!important}.rsc-status-indicator{width:16px;height:16px;color:var(--robot-status-color);flex:0 0 16px;place-items:center;display:inline-grid;position:relative}.rsc-status-indicator svg{z-index:1;width:16px;height:16px;position:relative}.rsc-status-indicator.has-halo:before{content:"";background:color-mix(in srgb, var(--robot-status-color) 22%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--robot-status-color) 70%, transparent);border-radius:50%;position:absolute;inset:-4px}.rsc-status-indicator.is-blinking,.rsc-status-indicator.is-blinking:before{animation:1s ease-in-out infinite robot-status-blink}.map-robot-status-halo{fill:color-mix(in srgb, var(--robot-status-color,#1a56db) 14%, transparent);stroke:var(--robot-status-color,#1a56db)}.map-robot-marker--error .map-robot-status-halo,.map-robot-marker--emergency .map-robot-status-halo,.map-robot-marker--reset .map-robot-status-halo,.map-robot-marker--confirmation .map-robot-status-halo,.map-robot-marker--confirmation_attention .map-robot-status-halo,.map-robot-marker--offline .map-robot-status-halo,.map-robot-marker--server_offline .map-robot-status-halo,.map-robot-marker--sleep .map-robot-status-halo,.map-robot-marker--stuck .map-robot-status-halo{fill:color-mix(in srgb, var(--robot-status-color) 14%, transparent);stroke:var(--robot-status-color)}.map-robot-status-badge{color:var(--robot-status-color,#1a56db);pointer-events:none}.map-robot-status-badge circle,.map-robot-status-badge text{display:none}.map-robot-popover-anchor{pointer-events:none;fill:#0000}.map-robot-manual-badge{pointer-events:none}.map-robot-manual-badge rect{fill:#fef3c7;stroke:#0000}.map-robot-manual-badge text{fill:#ef4444;font:700 9px system-ui,sans-serif}.furniture-robot-badge{--status-color:var(--robot-status-color,#1a56db)}.furniture-robot-manual-badge{color:#ef4444;background:#fef3c7;border:0;border-radius:3px;place-items:center;width:14px;min-width:14px;height:14px;padding:0;font-size:9px;font-weight:700;line-height:1;display:inline-grid}.furniture-robot-status-badge{z-index:0;color:#fff;background:var(--robot-status-color,#1a56db);position:relative}.furniture-robot-status-badge svg{z-index:1;width:11px;height:11px;display:block;position:relative}.furniture-robot-status-badge.is-blinking{animation:1s ease-in-out infinite robot-status-blink}.furniture-robot-badge--charging .furniture-robot-status-badge{color:var(--robot-status-color);background:0 0;border-color:#0000}.furniture-robot-badge--error .furniture-robot-status-badge:before,.furniture-robot-badge--emergency .furniture-robot-status-badge:before,.furniture-robot-badge--reset .furniture-robot-status-badge:before,.furniture-robot-badge--offline .furniture-robot-status-badge:before,.furniture-robot-badge--server_offline .furniture-robot-status-badge:before,.furniture-robot-badge--sleep .furniture-robot-status-badge:before,.furniture-robot-badge--stuck .furniture-robot-status-badge:before{content:"";z-index:-1;background:color-mix(in srgb, var(--robot-status-color) 28%, transparent);border-radius:50%;animation:1s ease-in-out infinite robot-status-blink;position:absolute;inset:-4px}.furniture-robot-badge--server_offline .furniture-robot-status-badge:before{animation:none}.robot-management-card{--robot-status-color:#1a56db}.robot-management-card__name{letter-spacing:.04em;color:var(--text);font-family:Rajdhani,Orbitron,Inter,system-ui,sans-serif;font-size:22px;font-weight:600;line-height:1.15}.robot-management-card__serial{letter-spacing:.02em;max-width:55%;color:var(--muted);background:var(--bg-2);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;flex-shrink:0;padding:2px 6px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:11px;overflow:hidden}.robot-management-card__visual{isolation:isolate}.robot-management-card__halo{z-index:1;border:2px solid var(--robot-status-color);background:color-mix(in srgb, var(--robot-status-color) 12%, transparent);box-shadow:0 0 12px color-mix(in srgb, var(--robot-status-color) 48%, transparent);pointer-events:none;border-radius:50%;position:absolute;inset:8px}.robot-management-card__halo.is-blinking,.robot-management-card__status-icon.is-blinking{animation:1s ease-in-out infinite robot-status-blink}.robot-management-card__status-icon{z-index:2;width:28px;height:28px;color:var(--robot-status-color);filter:drop-shadow(0 1px 2px #0f172a59);place-items:center;display:grid;position:absolute;top:10px;right:10px}.robot-management-card__status-icon svg{width:100%;height:100%}.robot-status-panel--error,.furniture-robot-badge--error,.map-robot-marker--error,.robot-management-card--error,.robot-status-chip--error{--robot-status-color:#dc2626}.robot-status-panel--emergency,.furniture-robot-badge--emergency,.map-robot-marker--emergency,.robot-management-card--emergency,.robot-status-chip--emergency{--robot-status-color:#f59e0b}.robot-status-panel--reset,.furniture-robot-badge--reset,.map-robot-marker--reset,.robot-management-card--reset,.robot-status-chip--reset{--robot-status-color:#f97316}.robot-status-panel--confirmation,.furniture-robot-badge--confirmation,.map-robot-marker--confirmation,.robot-management-card--confirmation,.robot-status-chip--confirmation{--robot-status-color:#16a34a}.robot-status-panel--confirmation_attention,.furniture-robot-badge--confirmation_attention,.map-robot-marker--confirmation_attention,.robot-management-card--confirmation_attention,.robot-status-chip--confirmation_attention{--robot-status-color:#eab308}.robot-status-panel--offline,.furniture-robot-badge--offline,.map-robot-marker--offline,.robot-management-card--offline,.robot-status-chip--offline{--robot-status-color:#dc2626}.robot-status-panel--server_offline,.furniture-robot-badge--server_offline,.map-robot-marker--server_offline,.robot-management-card--server_offline,.robot-status-chip--server_offline{--robot-status-color:#64748b}.robot-status-panel--sleep,.furniture-robot-badge--sleep,.map-robot-marker--sleep,.robot-management-card--sleep,.robot-status-chip--sleep{--robot-status-color:#8b5cf6}.robot-status-panel--wakeup,.furniture-robot-badge--wakeup,.map-robot-marker--wakeup,.robot-management-card--wakeup,.robot-status-chip--wakeup{--robot-status-color:#a78bfa}.robot-status-panel--stuck,.furniture-robot-badge--stuck,.map-robot-marker--stuck,.robot-management-card--stuck,.robot-status-chip--stuck{--robot-status-color:#ec4899}.robot-status-panel--charging,.furniture-robot-badge--charging,.map-robot-marker--charging,.robot-management-card--charging,.robot-status-chip--charging{--robot-status-color:#0891b2}@media (prefers-reduced-motion:reduce){.rsc-status-indicator.is-blinking,.rsc-status-indicator.is-blinking:before,.furniture-robot-status-badge.is-blinking,.furniture-robot-badge--error .furniture-robot-status-badge:before,.furniture-robot-badge--emergency .furniture-robot-status-badge:before,.furniture-robot-badge--reset .furniture-robot-status-badge:before,.furniture-robot-badge--offline .furniture-robot-status-badge:before,.furniture-robot-badge--server_offline .furniture-robot-status-badge:before,.furniture-robot-badge--sleep .furniture-robot-status-badge:before,.furniture-robot-badge--stuck .furniture-robot-status-badge:before,.robot-management-card__halo.is-blinking,.robot-management-card__status-icon.is-blinking,.robot-status-panel__dot.is-blinking{animation:none}}
