@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;--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}.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}.rsc-sep{background:var(--border);flex-shrink:0;width:1px;height:20px}.rsc-sep-gap{margin:0 6px}.rsc-sep-wide{margin-left:6px;margin-right:6px}.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)}.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}.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)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:var(--card);overflow:hidden}.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{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:#dc26262e;stroke:#dc2626}.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,.map-robot-marker--emergency .map-robot-status-badge circle{fill:#dc2626}.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,.robot-status-panel--emergency,.furniture-robot-badge--emergency{--status-color:#dc2626}.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}.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;min-width:1438px}.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{width:150px;min-width:150px;max-width:150px;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__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,.robot-status-panel--emergency,.furniture-robot-badge--error,.furniture-robot-badge--emergency,.map-robot-marker--error,.map-robot-marker--emergency,.robot-management-card--error,.robot-management-card--emergency,.robot-status-chip--error,.robot-status-chip--emergency{--robot-status-color:#dc2626}.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--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}}.mock-page{color:#e2e8f0;background:#0b1220;place-items:start center;height:100dvh;padding:18px;font-family:Inter,system-ui,sans-serif;display:grid}.mock-page--fit-width{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;display:block;overflow:hidden auto}.mock-page--fit-width .mock-robot{margin:0 auto 18px}.mock-page--fit-height{overflow:hidden}.mock-page h2,.mock-page h3,.mock-page p{margin:0}.mock-robot{--display-width:min(640px, calc((100dvh - 126px) / 2.4), calc(100vw - 68px));box-sizing:border-box;width:calc(var(--display-width) + 32px);background:#f8fafc;border:3px solid #f8fafc;border-radius:28px;flex-direction:column;align-items:center;padding:0 14px 14px;display:flex;position:relative;box-shadow:0 18px 45px #00000061}.mock-robot--fit-width{--display-width:min(640px, calc(100vw - 68px))}.mock-robot-controls{z-index:5;background:#f8fafc;flex:0 0 44px;align-self:stretch;height:44px;position:relative}.mock-frame{background:#000;border:1px solid #334155;border-radius:12px;position:relative;overflow:hidden;box-shadow:0 15px 35px #0000004d}.mock-head-frame{width:var(--display-width);aspect-ratio:16/10}.mock-body-frame{width:var(--display-width);aspect-ratio:9/16;margin-top:12px}.mock-frame iframe{border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.mock-backend-status{z-index:3;box-sizing:border-box;color:#e2e8f0;background:#0f172a;border:1px solid #475569;border-radius:999px;justify-content:center;align-items:center;gap:5px;width:56px;min-height:24px;padding:0 6px;font-size:10px;font-weight:700;display:flex;position:absolute;top:9px;right:12px}.mock-backend-status span{border-radius:50%;width:7px;height:7px}.mock-backend-status.is-connected span{background:#4ade80;box-shadow:0 0 8px #4ade80}.mock-backend-status.is-disconnected span{background:#f87171;box-shadow:0 0 8px #f87171}.mock-emergency-button,.mock-simulation-button{z-index:3;color:#fff;cursor:pointer;place-items:center;height:34px;display:grid;position:absolute}.mock-emergency-button{background:#dc2626;border:2px solid #fecaca;border-radius:50%;width:34px;top:4px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #7f1d1da6}.mock-simulation-button{box-sizing:border-box;color:#e2e8f0;background:#0f172a;border:1px solid #475569;border-radius:999px;grid-template-columns:auto auto;justify-content:center;gap:5px;width:56px;height:24px;min-height:24px;padding:0 6px;font-size:10px;font-weight:700;top:9px;left:12px}.mock-simulation-button:disabled{cursor:not-allowed}.mock-simulation-button.is-active svg{color:#4ade80}.mock-emergency-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.mock-simulation-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}.mock-fit-toggle{z-index:10;color:#cbd5e1;cursor:pointer;letter-spacing:.02em;background:#0f172af0;border:1px solid #475569;border-radius:999px;align-items:center;gap:7px;height:36px;padding:0 11px;font-size:11px;font-weight:750;display:inline-flex;position:fixed;top:50%;left:calc(50% + min(336px,50vw - 18px) + 16px);transform:translateY(-50%);box-shadow:0 8px 20px #00000047}.mock-fit-toggle:hover{color:#dbeafe;background:#17243a;border-color:#60a5fa}.mock-fit-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.mock-modal-backdrop{z-index:100;background:#020617c7;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.mock-modal{background:#111c2e;border:1px solid #3b4b63;border-radius:14px;width:min(400px,100%);max-height:calc(100vh - 24px);padding:12px;overflow:auto;box-shadow:0 24px 70px #00000073}.mock-modal header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mock-modal header p{color:#93c5fd;letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:800}.mock-modal h2{margin-top:2px;font-size:18px}.mock-icon-button{color:#e2e8f0;cursor:pointer;background:#17243a;border:1px solid #3b4b63;border-radius:7px;width:28px;height:28px;font-size:21px;line-height:1}.mock-control-section{border-top:1px solid #29384d;margin-top:9px;padding-top:9px}.mock-control-section h3{color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;margin:0 0 7px;font-size:11px}.mock-rates{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.mock-rates label,.mock-position label{color:#cbd5e1;gap:3px;font-size:11px;font-weight:650;display:grid}.mock-rates label div,.mock-position label div{align-items:center;gap:6px;display:flex}.mock-rates input,.mock-position output{box-sizing:border-box;color:#f8fafc;font-variant-numeric:tabular-nums;background:#0b1220;border:1px solid #52637e;border-radius:7px;width:100%;min-width:0;height:30px;padding:0 7px;font-size:13px}.mock-rates input:focus{outline-offset:1px;outline:2px solid #3b82f6}.mock-position output{color:#cbd5e1;cursor:default;align-items:center;display:flex}.mock-rates small,.mock-position small{color:#93c5fd;white-space:nowrap;font-size:10px}.mock-control-hint{color:#94a3b8;margin:5px 0 0;font-size:10px}.mock-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.mock-toggle{color:#cbd5e1;cursor:pointer;text-align:left;background:#17243a;border:1px solid #3b4b63;border-radius:8px;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;min-height:46px;padding:6px 8px;display:flex}.mock-toggle:hover{background:#253651}.mock-toggle span{font-size:10px}.mock-toggle strong{color:#94a3b8;font-size:12px}.mock-toggle.is-on{background:#17396f;border-color:#2563eb}.mock-toggle.is-on strong{color:#dbeafe}.mock-toggle--danger.is-on{background:#641d27;border-color:#ef4444}.mock-toggle--warning.is-on{background:#5c4112;border-color:#f59e0b}.mock-toggle--success.is-on{background:#165638;border-color:#22c55e}.mock-battery-control{align-items:center;gap:8px;display:flex}.mock-battery-control input{flex:1}.mock-battery-control output{color:#f8fafc;font-variant-numeric:tabular-nums;width:40px;font-size:14px}.mock-section-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.mock-section-title span{color:#4ade80;margin-bottom:7px;font-size:10px;font-weight:700}.mock-position{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.mock-joystick-wrap{color:#94a3b8;letter-spacing:.06em;text-transform:uppercase;place-items:center;gap:4px;margin-top:9px;font-size:10px;font-weight:700;display:grid}.mock-joystick{cursor:grab;touch-action:none;background:radial-gradient(circle,#233858 0 2px,#0000 3px),#0b1220;border:1px solid #52637e;border-radius:50%;width:72px;height:72px;position:relative}.mock-joystick:before,.mock-joystick:after{content:"";background:#34445d;position:absolute}.mock-joystick:before{height:1px;top:50%;left:8px;right:8px}.mock-joystick:after{width:1px;top:8px;bottom:8px;left:50%}.mock-joystick-knob{pointer-events:none;background:#2563eb;border:2px solid #93c5fd;border-radius:50%;width:24px;height:24px;transition:transform 60ms linear;position:absolute;top:22px;left:22px;box-shadow:0 3px 10px #2563eb80}.mock-error{color:#fca5a5;margin:9px 0 0;font-size:12px}@media (width<=840px){.mock-fit-toggle{display:none}}@media (width<=440px){.mock-modal{padding:10px}.mock-rates,.mock-toggle-grid{grid-template-columns:1fr}}.sv-page{color:#e2e8f0;box-sizing:border-box;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;background:linear-gradient(160deg,#0f172a 0%,#1e293b 55%,#0f172a 100%);justify-content:center;align-items:flex-start;width:100%;height:100dvh;max-height:100dvh;padding:32px 16px 56px;font-family:inherit;display:flex;overflow:hidden auto}.sv-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0a;border:1px solid #ffffff17;border-radius:20px;flex:none;width:100%;max-width:620px;padding:28px 26px 30px;box-shadow:0 24px 60px #00000073}.sv-head{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.sv-project{letter-spacing:.14em;text-transform:uppercase;color:#7dd3fc;font-size:12px;font-weight:700}.sv-title{color:#f8fafc;margin:0;font-size:24px;font-weight:800;line-height:1.3}.sv-intro{color:#94a3b8;margin:0;font-size:14px;line-height:1.7}.sv-langs{flex-wrap:wrap;gap:8px;margin:18px 0 22px;display:flex}.sv-lang-btn{color:#cbd5e1;cursor:pointer;background:#ffffff08;border:1px solid #ffffff24;border-radius:999px;padding:6px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.sv-lang-btn:hover{background:#ffffff17}.sv-lang-btn.active{color:#04202e;background:#0ea5e9;border-color:#0ea5e9}.sv-section{margin-top:4px}.sv-section-title{letter-spacing:.08em;text-transform:uppercase;color:#7ad0ff;margin:22px 0 2px;font-size:13px;font-weight:700}.sv-section:first-of-type .sv-section-title{margin-top:8px}.sv-q{border-top:1px solid #ffffff12;padding:16px 0}.sv-q:first-of-type{border-top:none}.sv-q-text{color:#e2e8f0;margin-bottom:12px;font-size:15px;font-weight:600;line-height:1.6}.sv-q-hint{color:#94a3b8;border-inline-start:2px solid #7dd3fc73;margin:-6px 0 12px;padding-inline-start:10px;font-size:12.5px;line-height:1.65}.sv-req{color:#f87171;margin:0 4px}.sv-stars{align-items:center;gap:8px;display:flex}.sv-star{cursor:pointer;color:#ffffff38;background:0 0;border:none;padding:0;line-height:0;transition:transform .12s,color .12s}.sv-star:hover{transform:scale(1.14)}.sv-star.on{color:#fbbf24}.sv-star-label{color:#94a3b8;margin-inline-start:8px;font-size:12px}.sv-input,.sv-textarea{box-sizing:border-box;color:#f1f5f9;background:#ffffff0d;border:1px solid #ffffff21;border-radius:12px;outline:none;width:100%;padding:11px 13px;font-family:inherit;font-size:14px;transition:border-color .15s,background .15s}.sv-input:focus,.sv-textarea:focus{background:#0ea5e914;border-color:#0ea5e9}.sv-textarea{resize:vertical;min-height:84px}.sv-contact{background:#7dd3fc0d;border:1px solid #7dd3fc38;border-radius:14px;margin-top:22px;padding:18px}.sv-contact-title{color:#e2e8f0;margin-bottom:4px;font-size:14px;font-weight:700}.sv-contact-hint{color:#94a3b8;margin-bottom:14px;font-size:12.5px}.sv-contact-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=520px){.sv-contact-grid{grid-template-columns:1fr}.sv-card{padding:22px 18px 26px}.sv-title{font-size:21px}}.sv-qr{background:#7dd3fc0d;border:1px solid #7dd3fc38;border-radius:14px;align-items:center;gap:16px;margin-bottom:20px;padding:14px 16px;display:flex}.sv-qr-img{box-sizing:border-box;background:#fff;border-radius:10px;flex:none;width:104px;height:104px;padding:6px;display:block}.sv-qr-text{min-width:0}.sv-qr-title{color:#e2e8f0;margin-bottom:4px;font-size:14px;font-weight:700}.sv-qr-hint{color:#94a3b8;font-size:12.5px;line-height:1.65}@media (width<=640px){.sv-page:not(.sv-kiosk) .sv-qr{display:none}}@media (width<=460px){.sv-qr{text-align:center;flex-direction:column;align-items:center;gap:12px}}.sv-page::-webkit-scrollbar{width:10px}.sv-page::-webkit-scrollbar-track{background:0 0}.sv-page::-webkit-scrollbar-thumb{background:#ffffff2e padding-box content-box;border:3px solid #0000;border-radius:999px}.sv-page::-webkit-scrollbar-thumb:hover{background:#ffffff4d padding-box content-box}.sv-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0ea5e9,#2563eb);border:none;border-radius:14px;width:100%;margin-top:24px;padding:14px 18px;font-family:inherit;font-size:16px;font-weight:700;transition:opacity .15s,transform .12s}.sv-submit:hover:not(:disabled){transform:translateY(-1px)}.sv-submit:disabled{opacity:.55;cursor:not-allowed}.sv-error{color:#fca5a5;background:#f871711f;border:1px solid #f8717166;border-radius:12px;margin-top:16px;padding:11px 14px;font-size:13.5px}.sv-center{text-align:center;padding:40px 10px}.sv-check{color:#4ade80;background:#22c55e26;border:2px solid #22c55e8c;border-radius:50%;justify-content:center;align-items:center;width:74px;height:74px;margin:0 auto 20px;display:flex}.sv-thanks{color:#f1f5f9;font-size:19px;font-weight:700;line-height:1.6}.sv-again{color:#cbd5e1;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:999px;margin-top:22px;padding:9px 22px;font-family:inherit;font-size:13px;font-weight:600}.sv-again:hover{background:#ffffff12}.sv-spinner{border:3px solid #ffffff26;border-top-color:#0ea5e9;border-radius:50%;width:32px;height:32px;margin:0 auto;animation:.8s linear infinite sv-spin}@keyframes sv-spin{to{transform:rotate(360deg)}}.sv-kiosk .sv-card{max-width:780px;padding:34px 32px 36px}.sv-kiosk .sv-title{font-size:30px}.sv-kiosk .sv-intro{font-size:16px}.sv-kiosk .sv-q-text{font-size:19px}.sv-kiosk .sv-q-hint{font-size:14.5px}.sv-kiosk .sv-section-title{font-size:15px}.sv-kiosk .sv-star svg{width:42px;height:42px}.sv-kiosk .sv-stars{gap:12px}.sv-kiosk .sv-input,.sv-kiosk .sv-textarea{padding:14px;font-size:17px}.sv-kiosk .sv-lang-btn{padding:10px 18px;font-size:15px}.sv-kiosk .sv-submit{padding:18px;font-size:18px}.sv-kiosk .sv-thanks{font-size:22px}.sv-kiosk .sv-qr-img{width:140px;height:140px}.sv-kiosk .sv-qr-title{font-size:17px}.sv-kiosk .sv-qr-hint{font-size:14.5px}.mobile-app{background:var(--bg);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.mobile-conn-banner{color:#92400e;background:#fef3c7;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:500;display:flex}.mobile-content{-webkit-overflow-scrolling:touch;flex:1;overflow:hidden auto}.mobile-nav{padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--border);flex-shrink:0;justify-content:space-around;align-items:center;display:flex}.mobile-nav-btn{color:var(--muted);border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px 16px;transition:all .15s;display:flex}.mobile-nav-btn svg{width:22px;height:22px}.mobile-nav-btn span{font-size:11px;font-weight:500}.mobile-nav-btn.active{color:var(--brand-blue)}.mobile-nav-btn.active svg{stroke:var(--brand-blue)}.mobile-nav-logout{color:var(--muted)}.mobile-nav-logout:active{color:#ef4444}.mobile-nav-logout:active svg{stroke:#ef4444}.mobile-login{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.mobile-login-card{background:var(--card);border-radius:16px;width:100%;max-width:360px;padding:32px 24px;box-shadow:0 20px 60px #0000004d}.mobile-login-header{text-align:center;margin-bottom:24px}.mobile-login-header h1{color:var(--text);margin-top:12px;font-size:24px;font-weight:700}.mobile-login-tagline{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:12px}.mobile-login-badge{color:var(--brand-blue);background:#3b82f614;border:1px solid #3b82f640;border-radius:10px;margin-top:8px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.mobile-login-error{background:var(--red-dim);color:var(--red);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.mobile-login-form{flex-direction:column;gap:12px;display:flex}.mobile-login-form input{border:1px solid var(--border);background:var(--bg);border-radius:10px;width:100%;padding:14px 16px;font-size:16px;transition:border-color .15s}.mobile-login-form input:focus{border-color:var(--brand-blue);outline:none}.mobile-login-btn{background:var(--brand-blue);color:#fff;border-radius:10px;width:100%;margin-top:8px;padding:14px;font-size:16px;font-weight:600;transition:background .15s}.mobile-login-btn:active{background:var(--brand-blue-d)}.mobile-login-btn:disabled{opacity:.6}.mobile-loading{justify-content:center;align-items:center;height:200px;display:flex}.mobile-floor-selector{flex-shrink:0;gap:8px;padding:12px 16px;display:flex;overflow-x:auto}.mobile-floor-btn{background:var(--bg-2);color:var(--text-2);white-space:nowrap;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:500;transition:all .15s}.mobile-floor-btn.active{background:var(--brand-blue);color:#fff}.mobile-robot-strip{flex-direction:column;flex-shrink:0;gap:4px;padding:6px 12px;display:flex}.mobile-robot-chip{background:var(--card);border:1px solid var(--border);box-sizing:border-box;border-radius:8px;align-items:center;gap:5px;width:100%;padding:5px 8px;display:flex}.mobile-robot-chip.offline{opacity:.65;background:#ef44440f;border-color:#ef44444d}.mobile-robot-chip.emergency{background:#f59e0b14;border-color:#f59e0b66;animation:1.5s ease-in-out infinite emergency-pulse}.mrc-bat{color:var(--muted);text-align:center;background:var(--bg-2);border-radius:4px;min-width:26px;padding:1px 3px;font-size:10px;font-weight:700}.mrc-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.mrc-name{color:var(--text);white-space:nowrap;font-size:12px;font-weight:700}.mrc-mode{letter-spacing:.3px;border-radius:4px;flex-shrink:0;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:700}.mrc-mode-off{color:#f87171;background:#ef44442e;border:1px solid #ef444459}.mrc-loc{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;text-align:right;flex:1;font-size:11px;overflow:hidden}.mrc-loc.task{color:var(--brand-blue);font-weight:600}.mrc-confirm-blink{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:900;animation:.8s ease-in-out infinite confirmBlink;display:inline-flex}.mrc-confirm-blink.warning{color:#f59e0b;background:#fef3c7;border:1.5px solid #f59e0b}.mrc-confirm-blink.danger{color:#ef4444;background:#fee2e2;border:1.5px solid #ef4444}.mrc-confirm-blink.mini{width:14px;height:14px;margin-left:4px;font-size:9px}@keyframes confirmBlink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.85)}}.mobile-workspace-list{padding:8px 12px}.mobile-ws-group{margin-bottom:4px}.mobile-ws-header{background:var(--card);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;width:100%;padding:12px 14px;transition:all .15s;display:flex}.mobile-ws-header.open{background:color-mix(in srgb, var(--ws-color) 15%, var(--card));border-bottom-color:#0000;border-radius:10px 10px 0 0}.mobile-ws-name{color:var(--text);text-align:left;flex:1;font-size:15px;font-weight:600}.mobile-ws-count{background:var(--bg-2);color:var(--muted);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.mobile-ws-chevron{width:18px;height:18px;color:var(--muted);transition:transform .2s}.mobile-ws-header.open .mobile-ws-chevron{transform:rotate(180deg)}.mobile-furniture-list{background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px;margin-bottom:4px;padding:4px 0}.mobile-furniture-item{text-align:left;align-items:center;gap:10px;width:100%;padding:12px 16px;transition:background .1s;display:flex}.mobile-furniture-item:active{background:var(--bg-2)}.mobile-furniture-item-ws{border-bottom:1px solid var(--border)}.mobile-fi-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.mobile-fi-name{color:var(--text);font-size:14px}.mobile-modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.mobile-modal-card{background:var(--card);width:100%;max-width:500px;max-height:85vh;padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;animation:.2s ease-out slideUp;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.mobile-modal-header h2{color:var(--text);font-size:18px;font-weight:700}.mobile-modal-close{background:var(--bg-2);width:32px;height:32px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex}.mobile-poi-list{margin-bottom:12px}.mobile-poi-list-title{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;align-items:baseline;gap:8px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.mobile-poi-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px;display:grid}.mobile-poi-chip{text-align:center;border:1.5px solid var(--border);background:var(--bg);color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:500;transition:all .15s;overflow:hidden}.mobile-poi-chip.selected{border-color:var(--brand-blue);background:var(--accent-dim);color:var(--brand-blue);font-weight:600}.mobile-poi-chip:active{background:var(--bg-2)}.mobile-poi-selected-name{color:var(--text);font-size:13px;font-weight:700}.mobile-tpm-types{grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 0;display:grid}.tpm-star-cell{background:#f59e0b0f!important;border-color:#f59e0b40!important}.tpm-star-cell.active{background:#f59e0b1f!important;border-color:#f59e0b!important}.mobile-modal-error{background:var(--red-dim);color:var(--red);border-radius:8px;margin-top:12px;padding:10px 14px;font-size:13px}.mobile-feedback{background:var(--accent-dim);color:var(--brand-blue);border-radius:8px;margin-bottom:12px;padding:8px 14px;font-size:13px;font-weight:500}.mobile-empty{color:var(--muted);flex-direction:column;align-items:center;gap:8px;padding:40px 20px;font-size:14px;display:flex}.mobile-empty-sm{color:var(--muted);text-align:center;padding:12px;font-size:13px}.mrv-container{padding:12px}.mrv-cards{flex-direction:column;gap:12px;display:flex}.mrv-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:0;overflow:hidden}.mrv-card-waiting{border-color:#f59e0b}.mrv-card-reset{border-color:#ef4444;box-shadow:0 0 0 2px #ef444426}.mrv-card-offline{opacity:.7;background:#ef44440d;border-color:#ef444466}.mrv-card-emergency{background:#f59e0b0d;border-color:#f59e0b80;animation:1.5s ease-in-out infinite emergency-pulse}@keyframes emergency-pulse{0%,to{border-color:#f59e0b80}50%{border-color:#f59e0be6}}.mrv-estop-badge{color:#d97706;letter-spacing:.3px;background:#f59e0b26;border:1px solid #f59e0b66;border-radius:4px;margin-left:auto;padding:1px 5px;font-size:10px;font-weight:700}.mrv-location{background:var(--bg-2);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.mrv-loc-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.mrv-loc-text{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.mrv-loc-text.task{color:var(--brand-blue);font-weight:600}.mrv-header{align-items:center;gap:6px;padding:8px 12px;display:flex}.mrv-bat{color:var(--muted);background:var(--bg-2);border-radius:4px;padding:1px 5px;font-size:11px;font-weight:700}.mrv-name{color:var(--text);flex:1;font-size:15px;font-weight:700}.mrv-mode{border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.mrv-cmd-row{justify-content:center;align-items:stretch;gap:6px;padding:4px 12px;display:flex}.mrv-icon-btn{border:1.5px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-width:52px;min-height:52px;padding:6px 2px;transition:all .15s;display:flex}.mrv-icon-btn:active:not(:disabled){background:var(--bg-2);transform:scale(.93)}.mrv-icon-btn:disabled{opacity:.35}.mrv-icon-label{color:var(--muted);font-size:9px;font-weight:600;line-height:1}.mrv-stop-btn{color:#991b1b;background:#fee2e2;border:1.5px solid #fca5a5;border-radius:10px;flex:1;min-height:52px;padding:6px 12px;font-size:13px;font-weight:700;transition:all .15s}.mrv-stop-btn:active:not(:disabled){background:#fecaca;transform:scale(.93)}.mrv-stop-btn:disabled{opacity:.35}.mrv-mode-toggle{border:2px solid;border-radius:10px;flex:1;justify-content:center;align-items:center;min-width:52px;min-height:52px;font-size:14px;font-weight:800;transition:all .15s;display:flex}.mrv-mode-toggle.auto{color:#166534;background:#dcfce7;border-color:#86efac}.mrv-mode-toggle.manual{color:#ef4444;background:#ffd6001f;border-color:#ffd60040}.mrv-mode-toggle:disabled{opacity:.35}.mrv-confirm-btn{color:#166534;background:#dcfce7;border:2px solid #86efac;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:calc(100% - 24px);margin:6px 12px;padding:10px;font-size:14px;font-weight:700;transition:all .15s;display:flex}.mrv-confirm-btn:active{background:#bbf7d0;transform:scale(.97)}.mrv-reset-btn{color:#b91c1c;background:#fef2f2;border-color:#ef4444;animation:.8s ease-in-out infinite confirmBlink}.mrv-reset-btn:active{background:#fee2e2}.mrv-manual-poi{gap:6px;padding:6px 12px 10px;display:flex}.mrv-manual-poi select{border:1px solid var(--border);background:var(--bg);border-radius:6px;flex:1;padding:8px 10px;font-size:13px}.mrv-send-btn{background:var(--brand-blue);color:#fff;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600}.mrv-send-btn:disabled{opacity:.4}.tablet-home{flex-direction:column;height:100%;display:flex}.tablet-toolbar{background:var(--card);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.tablet-floor-tabs{gap:6px;display:flex}.tablet-floor-tab{background:var(--bg-2);color:var(--text-2);border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:all .15s}.tablet-floor-tab.active{background:var(--brand-blue);color:#fff}.tablet-view-toggle{background:var(--bg-2);border-radius:6px;padding:2px;display:flex}.tablet-view-toggle button{border-radius:4px;justify-content:center;align-items:center;padding:6px 10px;transition:all .15s;display:flex}.tablet-view-toggle button svg{width:18px;height:18px;color:var(--muted)}.tablet-view-toggle button.active{background:var(--card);box-shadow:var(--shadow-sm)}.tablet-view-toggle button.active svg{color:var(--brand-blue)}.tablet-map-view{flex:1;min-height:0;padding:12px}.tablet-map-view svg{border:1px solid var(--border);border-radius:10px;width:100%;height:100%}.tablet-grid-view{flex:1;padding:12px 16px;overflow-y:auto}.tablet-ws-section{margin-bottom:6px}.tablet-ws-header{background:var(--card);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 14px;transition:all .15s;display:flex}.tablet-ws-header.open{background:color-mix(in srgb, var(--ws-color) 12%, var(--card));border-bottom-color:#0000;border-radius:8px 8px 0 0}.tablet-ws-name{color:var(--text);text-align:left;flex:1;font-size:14px;font-weight:600}.tablet-ws-badge{background:var(--bg-2);color:var(--muted);border-radius:8px;padding:2px 7px;font-size:11px;font-weight:600}.tablet-ws-chevron{width:16px;height:16px;color:var(--muted);transition:transform .2s}.tablet-ws-header.open .tablet-ws-chevron{transform:rotate(180deg)}.tablet-furniture-grid{background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;padding:12px;display:grid}.tablet-furniture-cell{text-align:center;background:color-mix(in srgb, var(--cell-color) 20%, var(--bg));border:1px solid color-mix(in srgb, var(--cell-color) 40%, transparent);color:var(--text);border-radius:8px;padding:14px 10px;font-size:13px;font-weight:500;transition:all .15s}.tablet-furniture-cell:active{background:color-mix(in srgb, var(--cell-color) 35%, var(--bg));transform:scale(.96)}.tablet-furniture-cell-ws{border-width:2px;font-weight:700}.mobile-home{flex-direction:column;height:100%;display:flex}.mtv-container{-webkit-overflow-scrolling:touch;height:100%;padding:8px 12px 12px;overflow-y:auto}.mtv-section-header{color:var(--text);align-items:center;gap:8px;margin-bottom:4px;padding:6px 0;font-size:14px;font-weight:700;display:flex}.mtv-count{background:var(--brand-blue);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.mtv-list{flex-direction:column;gap:6px;display:flex}.mtv-card{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:5px;padding:8px 10px;display:flex}.mtv-card.mtv-active{border-left:3px solid var(--brand-blue)}.mtv-card.mtv-history{opacity:.7}.mtv-top-row{align-items:center;gap:6px;display:flex}.mtv-status{text-transform:uppercase;letter-spacing:.3px;border-radius:6px;padding:2px 8px;font-size:10px;font-weight:700}.mtv-priority{color:#f59e0b;font-size:11px;font-weight:600}.mtv-time{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:10px}.mtv-main-row{align-items:center;gap:8px;display:flex}.mtv-poi{color:var(--text);font-size:14px;font-weight:700}.mtv-type{color:var(--muted);background:var(--bg-2);border-radius:4px;padding:1px 6px;font-size:11px}.mtv-bottom-row{align-items:center;gap:6px;display:flex}.mtv-robot{color:var(--muted);font-size:12px}.mtv-actions{gap:6px;margin-left:auto;display:flex}.mtv-confirm-btn{color:#166534;cursor:pointer;background:#dcfce7;border:1px solid #86efac;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600}.mtv-confirm-btn:active{opacity:.7}.mtv-confirm-btn:disabled{opacity:.4;cursor:default}.mtv-abort-btn{color:#991b1b;cursor:pointer;background:#fee2e2;border:1px solid #fca5a5;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600}.mtv-abort-btn:active{opacity:.7}.mtv-abort-btn:disabled{opacity:.4;cursor:default}.mtv-history-toggle{border:none;border-top:1px solid var(--border);width:100%;color:var(--muted);cursor:pointer;background:0 0;align-items:center;gap:6px;margin-top:8px;padding:10px 0 6px;font-size:13px;font-weight:600;display:flex}.mtv-list-history{padding-bottom:20px}
