.map-card[data-v-434ef4c0]{min-height:420px}.header-left[data-v-434ef4c0]{display:flex;align-items:center;font-weight:700;color:#1f2937}.header-right[data-v-434ef4c0]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.btn-mini[data-v-434ef4c0]{background:#ffffffeb;border:1px solid rgba(203,213,225,.95);color:#334155;padding:5px 10px;border-radius:999px;font-size:12px;cursor:pointer;transition:all .2s}.btn-mini[data-v-434ef4c0]:hover:not(:disabled){background:#eef2ff;border-color:#818cf859}.btn-mini[data-v-434ef4c0]:disabled{opacity:.5;cursor:not-allowed}.btn-mini-save[data-v-434ef4c0]{background:#34d39926;border-color:#34d39966;color:#15803d}.btn-mini-save[data-v-434ef4c0]:hover:not(:disabled){background:#34d3994d}.btn-mini-pbstream[data-v-434ef4c0]{background:#a855f726;border-color:#a855f766;color:#7e22ce}.btn-mini-pbstream[data-v-434ef4c0]:hover:not(:disabled){background:#a855f74d}.btn-mini-pose[data-v-434ef4c0]{background:#fbbf2426;border-color:#fbbf2466;color:#b45309}.btn-mini-pose[data-v-434ef4c0]:hover{background:#fbbf244d}.btn-mini-pose.active[data-v-434ef4c0]{background:#fbbf244d;border-color:#b45309;animation:pose-pulse-434ef4c0 1.2s ease-in-out infinite}.btn-mini-room[data-v-434ef4c0]{background:#60a5fa26;border-color:#60a5fa66;color:#1d4ed8}.btn-mini-room[data-v-434ef4c0]:hover:not(:disabled){background:#60a5fa4d}.btn-mini-room.active[data-v-434ef4c0]{background:#60a5fa4d;border-color:#1d4ed8;animation:pose-pulse-434ef4c0 1.2s ease-in-out infinite}@keyframes pose-pulse-434ef4c0{0%,to{box-shadow:0 0 #fbbf2466}50%{box-shadow:0 0 0 4px #fbbf2400}}.nav-status-mini[data-v-434ef4c0]{color:#15803d;font-size:11px;font-weight:700;margin-right:4px}.map-card[data-v-434ef4c0] .card-body{padding:0;display:flex;flex-direction:column;position:relative}.map-canvas-container[data-v-434ef4c0]{width:100%;flex:1;min-height:0;position:relative;overflow:hidden;background:linear-gradient(180deg,#f8fbff,#eef4fb);cursor:grab}.map-canvas-container[data-v-434ef4c0]:active{cursor:grabbing}canvas[data-v-434ef4c0]{display:block}.map-info[data-v-434ef4c0]{position:absolute;top:12px;left:12px;background:#ffffffe0;padding:6px 10px;border-radius:999px;border:1px solid rgba(203,213,225,.9);font-family:var(--font-mono);font-size:.7rem;color:var(--text-secondary);pointer-events:none}.map-overlay-hint[data-v-434ef4c0]{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:6px 14px;border-radius:20px;font-size:.8rem;font-weight:500;pointer-events:none;animation:fadein-down-434ef4c0 .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hint-goal[data-v-434ef4c0]{color:#2563eb;background:#6366f140;border:1px solid rgba(99,102,241,.4)}.hint-pose[data-v-434ef4c0]{color:#b45309;background:#fbbf2440;border:1px solid rgba(251,191,36,.4)}.map-overlay-feedback[data-v-434ef4c0]{position:absolute;top:56px;right:12px;display:flex;flex-direction:column;gap:6px;min-width:150px;padding:10px 12px;border-radius:10px;border:1px solid rgba(99,102,241,.2);background:#ffffffe6;box-shadow:0 10px 24px #0f172a14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5}@media (max-width: 800px){.map-card[data-v-434ef4c0]{min-height:min(68svh,560px)}.header-right[data-v-434ef4c0]{gap:4px}.btn-mini[data-v-434ef4c0]{padding:4px 8px;font-size:11px}.map-info[data-v-434ef4c0]{top:auto;bottom:10px;left:10px;font-size:.64rem;padding:5px 8px}.map-overlay-hint[data-v-434ef4c0]{top:auto;bottom:44px;left:50%;max-width:calc(100% - 24px);padding:5px 10px;font-size:.72rem;text-align:center}.map-overlay-feedback[data-v-434ef4c0]{top:10px;right:10px;min-width:132px;padding:8px 10px}.fb-label[data-v-434ef4c0],.fb-waiting[data-v-434ef4c0]{font-size:.68rem}.fb-value[data-v-434ef4c0]{font-size:.72rem}}.feedback-item[data-v-434ef4c0]{display:flex;align-items:center;justify-content:space-between;gap:12px}.fb-label[data-v-434ef4c0]{font-size:.72rem;color:var(--text-secondary)}.fb-value[data-v-434ef4c0]{font-size:.78rem;font-family:var(--font-mono);color:var(--text-primary)}.fb-waiting[data-v-434ef4c0]{font-size:.72rem;color:var(--text-muted);text-align:right}@keyframes fadein-down-434ef4c0{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.save-toast[data-v-434ef4c0]{position:absolute;bottom:12px;left:50%;transform:translate(-50%);padding:7px 18px;border-radius:20px;font-size:13px;font-weight:500;pointer-events:none;animation:fadein-434ef4c0 .2s ease;white-space:nowrap;z-index:10}.save-toast-ok[data-v-434ef4c0]{background:#10b981d9;color:#fff}.save-toast-err[data-v-434ef4c0]{background:#ef4444d9;color:#fff}@keyframes fadein-434ef4c0{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modal-overlay[data-v-434ef4c0]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a3d;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-box[data-v-434ef4c0]{background:#fff;border:1px solid #cfd6df;border-radius:14px;padding:28px 32px;min-width:340px;box-shadow:0 18px 48px #0f172a2e;animation:modal-in-434ef4c0 .18s ease}@keyframes modal-in-434ef4c0{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.modal-title[data-v-434ef4c0]{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0 0 8px}.modal-desc[data-v-434ef4c0]{font-size:.85rem;color:var(--text-muted);margin:0 0 14px}.modal-input[data-v-434ef4c0]{width:100%;box-sizing:border-box;background:#f8fafc;border:1px solid #cfd6df;border-radius:8px;padding:10px 12px;color:var(--text-primary);font-size:.95rem;outline:none;transition:border-color .2s}.modal-input[data-v-434ef4c0]:focus{border-color:#6366f1}.modal-actions[data-v-434ef4c0]{display:flex;gap:10px;margin-top:16px;justify-content:flex-end}.btn-modal-cancel[data-v-434ef4c0]{background:#f8fafc;border:1px solid #cfd6df;color:var(--text-muted);padding:8px 18px;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .2s}.btn-modal-cancel[data-v-434ef4c0]:hover{background:#e2e8f0}.btn-modal-confirm[data-v-434ef4c0]{background:#2563eb;border:none;color:#fff;padding:8px 20px;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s}.btn-modal-confirm[data-v-434ef4c0]:hover:not(:disabled){background:#1d4ed8}.btn-modal-confirm[data-v-434ef4c0]:disabled{opacity:.4;cursor:not-allowed}.empty-text[data-v-3b1bd56b]{color:var(--text-muted);font-size:.85rem;text-align:center;padding:10px 0}.telemetry-grid[data-v-3b1bd56b]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.data-group[data-v-3b1bd56b]{background:#f8fafc;padding:8px;border-radius:var(--radius-sm);border:1px solid #d7dee8;text-align:center}.data-label[data-v-3b1bd56b]{font-size:.7rem;color:var(--text-muted);margin-bottom:4px}.data-value[data-v-3b1bd56b]{font-family:var(--font-mono);font-size:.95rem;color:var(--accent-primary);font-weight:500}.mapping-controls[data-v-d697b8f4]{display:flex;justify-content:center}.mapping-btn[data-v-d697b8f4]{width:100%;font-weight:600;padding:12px}.mt-2[data-v-d697b8f4]{margin-top:8px}.text-sm[data-v-d697b8f4]{font-size:.85rem}.text-gray-400[data-v-d697b8f4]{color:#9ca3af}.text-green-400[data-v-d697b8f4]{color:#34d399}.nav-section[data-v-76f62848]{margin-bottom:12px}.nav-label[data-v-76f62848]{display:block;font-size:.78rem;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}.map-select-group[data-v-76f62848]{display:flex;gap:6px;align-items:center}.map-select[data-v-76f62848]{flex:1;padding:8px 10px;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:.8rem;outline:none;cursor:pointer;transition:var(--transition)}.map-select[data-v-76f62848]:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f126}.map-select[data-v-76f62848]:disabled{opacity:.5;cursor:not-allowed}.map-select option[data-v-76f62848]{background:#fff;color:#0f172a}.btn-icon[data-v-76f62848]{width:34px;height:34px;background:#6366f11a;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);flex-shrink:0}.btn-icon[data-v-76f62848]:hover{background:#6366f133;color:var(--text-primary)}.btn-icon[data-v-76f62848]:disabled{opacity:.45;cursor:not-allowed}.btn-icon-danger[data-v-76f62848]{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#dc2626}.btn-icon-danger[data-v-76f62848]:hover:not(:disabled){background:#ef444440;color:#dc2626}.refresh-icon[data-v-76f62848]{display:inline-block;transition:transform .5s ease}.refresh-icon.spinning[data-v-76f62848]{animation:spin-76f62848 .8s linear infinite}.mt-2[data-v-76f62848]{margin-top:10px}.pose-display[data-v-76f62848]{padding:8px 10px;background:#6366f10f;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.pose-values[data-v-76f62848]{display:flex;flex-wrap:wrap;gap:10px;font-family:var(--font-mono);font-size:.82rem;color:var(--text-primary)}.nav-btn[data-v-76f62848]{width:100%}.btn-relocalize[data-v-76f62848]{background:#10b9811f;border:1px solid rgba(16,185,129,.4);color:#059669;padding:10px 12px;border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;transition:var(--transition)}.btn-relocalize[data-v-76f62848]:hover:not(:disabled){background:#10b98138}.btn-relocalize[data-v-76f62848]:disabled{opacity:.55;cursor:not-allowed}.save-section[data-v-76f62848]{padding:8px 10px;background:#94a3b814;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.save-row[data-v-76f62848]{display:flex;gap:6px;align-items:center}.save-name-input[data-v-76f62848]{flex:1;padding:8px 10px;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:.8rem;outline:none;transition:var(--transition)}.save-name-input[data-v-76f62848]:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f126}.save-name-input[data-v-76f62848]:disabled{opacity:.5;cursor:not-allowed}.btn-save[data-v-76f62848]{width:auto;min-width:120px;padding:0 12px;font-size:.78rem;white-space:nowrap}.save-error[data-v-76f62848]{color:#dc2626}@keyframes spin-76f62848{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.nav-btn[data-v-76f62848]{width:100%;font-weight:600;padding:12px}.nav-status[data-v-76f62848]{margin-top:4px;font-size:.82rem}.status-nav-active[data-v-76f62848]{color:#15803d}.status-nav-idle[data-v-76f62848]{color:#64748b}.nav-hint[data-v-76f62848]{margin-top:6px;font-size:.78rem;color:var(--text-muted)}.goal-hint[data-v-76f62848]{color:#2563eb;background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-sm);padding:6px 10px}.pose-hint[data-v-76f62848]{color:#b45309;background:#fbbf2414;border:1px solid rgba(251,191,36,.25);border-radius:var(--radius-sm);padding:6px 10px}.btn-pose[data-v-76f62848]{width:100%;padding:10px;font-weight:600;font-size:.82rem;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:#b45309;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.btn-pose[data-v-76f62848]:hover{background:#fbbf2433}.btn-pose-active[data-v-76f62848]{width:100%;padding:10px;font-weight:600;font-size:.82rem;background:#fbbf2440;border:1px solid #d97706;color:#b45309;border-radius:var(--radius-sm);cursor:pointer;animation:pose-pulse-76f62848 1.2s ease-in-out infinite}.btn-waypoint[data-v-76f62848]{width:100%;padding:10px;font-weight:600;font-size:.82rem;background:#22c55e1f;border:1px solid rgba(34,197,94,.35);color:#15803d;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.btn-waypoint[data-v-76f62848]:hover{background:#22c55e33}.btn-waypoint-active[data-v-76f62848]{width:100%;padding:10px;font-weight:600;font-size:.82rem;background:#22c55e40;border:1px solid #16a34a;color:#15803d;border-radius:var(--radius-sm);cursor:pointer}.waypoint-row[data-v-76f62848]{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.waypoint-count[data-v-76f62848]{font-size:.78rem;color:var(--text-secondary)}.btn-clear-waypoints[data-v-76f62848]{padding:4px 10px;font-size:.75rem;border-radius:6px;border:1px solid rgba(239,68,68,.35);background:#ef444426;color:#dc2626;cursor:pointer}.btn-clear-waypoints[data-v-76f62848]:disabled{opacity:.45;cursor:not-allowed}@keyframes pose-pulse-76f62848{0%,to{box-shadow:0 0 #fbbf2466}50%{box-shadow:0 0 0 6px #fbbf2400}}.mt-2[data-v-76f62848]{margin-top:8px}.mapping-controls[data-v-691f487a]{display:flex;justify-content:center}.mapping-btn[data-v-691f487a]{width:100%;font-weight:600;padding:12px}.mt-2[data-v-691f487a]{margin-top:8px}.text-sm[data-v-691f487a]{font-size:.85rem}.text-gray-400[data-v-691f487a]{color:#9ca3af}.text-green-400[data-v-691f487a]{color:#34d399}.tm-status-row[data-v-6920c60a]{display:flex;justify-content:center;margin-bottom:12px}.tm-state-badge[data-v-6920c60a]{padding:4px 14px;border-radius:999px;font-size:.85rem;font-weight:600}.tm-state-idle[data-v-6920c60a]{background:#9ca3af26;color:#9ca3af}.tm-state-nav[data-v-6920c60a]{background:#2563eb26;color:#60a5fa}.tm-state-follow[data-v-6920c60a]{background:#34d39926;color:#34d399}.tm-empty-hint[data-v-6920c60a]{text-align:center;color:#9ca3af;font-size:.85rem;padding:16px 8px}.tm-room-grid[data-v-6920c60a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-bottom:12px}.tm-room-btn[data-v-6920c60a]{padding:10px 6px;font-size:.9rem;font-weight:600}.tm-room-btn.active[data-v-6920c60a]{outline:2px solid #60a5fa}.tm-room-btn-wrap[data-v-6920c60a]{position:relative}.tm-room-btn-wrap .tm-room-btn[data-v-6920c60a]{width:100%}.tm-room-del-btn[data-v-6920c60a]{position:absolute;top:-6px;right:-6px;width:18px;height:18px;line-height:16px;border-radius:50%;border:none;background:#ef4444d9;color:#fff;font-size:.75rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2}.tm-room-del-btn[data-v-6920c60a]:hover{background:#ef4444}.tm-actions[data-v-6920c60a]{display:flex;justify-content:center}.tm-stop-btn[data-v-6920c60a]{width:100%;font-weight:600;padding:12px}.mt-2[data-v-6920c60a]{margin-top:8px}:root{--bg-primary: #eef3ff;--bg-secondary: #f8fbff;--bg-card: #ffffff;--bg-card-hover: #f5f8ff;--border-color: #d8e2f0;--border-glow: #b7c7df;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--accent-primary: #4f46e5;--accent-secondary: #2563eb;--accent-gradient: linear-gradient(135deg, #4f46e5 0%, #2563eb 55%, #06b6d4 100%);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--font-main: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--shadow-card: 0 12px 30px rgba(37, 99, 235, .08);--shadow-glow: 0 12px 36px rgba(79, 70, 229, .16);--transition: .3s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:var(--font-main);background:radial-gradient(circle at top left,rgba(79,70,229,.08),transparent 28%),radial-gradient(circle at top right,rgba(6,182,212,.1),transparent 24%),linear-gradient(180deg,#f7fbff,#eef3ff,#f4f7fb);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:transparent;pointer-events:none;z-index:0}#app{height:100%;position:relative;z-index:1}.console-layout{display:grid;grid-template-rows:auto auto auto 1fr;height:100vh;gap:14px;padding:18px}.console-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:#ffffffe0;border-bottom:1px solid var(--border-color);border:1px solid rgba(216,226,240,.9);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10}.header-main{display:flex;align-items:center;gap:14px}.brand-mark{width:48px;height:48px;border-radius:16px;background:var(--accent-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.08em;box-shadow:var(--shadow-glow)}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-primary);font-weight:700}.console-header h1{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.console-subtitle{margin-top:4px;font-size:.92rem;color:var(--text-muted)}.header-status{display:flex;align-items:center;gap:10px}.header-pill{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#4f46e514;border:1px solid rgba(79,70,229,.14);font-size:.84rem;font-weight:600;color:var(--accent-primary)}.header-pill.connected{color:#047857;background:#10b9811a;border-color:#10b9812e}.header-pill.connecting{color:#b45309;background:#f59e0b1f;border-color:#f59e0b33}.header-pill.error,.header-pill.disconnected{color:var(--text-secondary);background:#94a3b81f;border-color:#94a3b82e}.header-pill.neutral{color:var(--text-secondary);background:#0f172a0a;border-color:#94a3b829}.simple-status-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.simple-status-card{padding:14px 16px;border-radius:var(--radius-md);background:#ffffffd1;border:1px solid rgba(216,226,240,.9);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.simple-status-card.primary{background:#4f46e51a;border-color:#4f46e529}.simple-status-label{display:block;font-size:.74rem;color:var(--text-muted);margin-bottom:8px}.simple-status-card strong{color:var(--text-primary);font-size:1rem}.console-banner{padding:12px 16px;border-radius:var(--radius-md);background:#4f46e51a;border:1px solid rgba(79,70,229,.14);color:var(--accent-primary);font-size:.9rem;font-weight:600;box-shadow:var(--shadow-card)}.experience-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.mobile-bottom-nav{display:none}.experience-tab{display:flex;align-items:center;justify-content:center;padding:12px 16px;background:#ffffffbf;border:1px solid rgba(216,226,240,.9);border-radius:var(--radius-md);box-shadow:var(--shadow-card);cursor:pointer;transition:var(--transition);text-align:left;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.experience-tab:hover{transform:translateY(-1px);border-color:#4f46e52e}.experience-tab.active{background:#4f46e51a;border-color:#4f46e52e;box-shadow:var(--shadow-glow)}.experience-tab-title{font-size:.88rem;font-weight:700;color:var(--text-primary)}.experience-page{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding-right:4px}.experience-page::-webkit-scrollbar{width:6px}.experience-page::-webkit-scrollbar-thumb{background:#64748b33;border-radius:999px}.provisioning-shell{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.provisioning-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px}.provisioning-hero h1{font-size:1.7rem;font-weight:700;color:var(--text-primary)}.provisioning-badge{padding:12px 16px;border-radius:999px;background:#4f46e51a;border:1px solid rgba(79,70,229,.14);color:var(--accent-primary);font-weight:700}.provisioning-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:16px;min-height:0}.provisioning-card,.provisioning-body{display:flex;flex-direction:column;gap:16px}.provisioning-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.network-hint{color:var(--text-muted);font-size:.92rem;line-height:1.6}.wifi-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto;padding-right:4px}.wifi-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--radius-md);border:1px solid rgba(216,226,240,.9);background:#ffffffd1;cursor:pointer;text-align:left;transition:var(--transition)}.wifi-item:hover,.wifi-item.active{border-color:#4f46e52e;background:#4f46e514}.wifi-item strong{display:block;color:var(--text-primary);margin-bottom:4px}.wifi-item p{color:var(--text-muted);font-size:.84rem}.provisioning-form{display:grid;gap:12px}.form-field{display:flex;flex-direction:column;gap:8px}.form-field span{color:var(--text-secondary);font-size:.88rem;font-weight:600}.form-field input{width:100%;border-radius:14px;border:1px solid rgba(203,213,225,.95);background:#fffffff5;padding:12px 14px;font:inherit;color:var(--text-primary);transition:var(--transition)}.form-field input:focus{outline:none;border-color:#4f46e559;box-shadow:0 0 0 4px #4f46e514}.provisioning-submit{width:100%}.provisioning-message{padding:12px 14px;border-radius:var(--radius-md);font-size:.92rem;line-height:1.6}.provisioning-message.success{background:#10b9811a;border:1px solid rgba(16,185,129,.16);color:#047857}.provisioning-message.error{background:#ef444414;border:1px solid rgba(239,68,68,.14);color:#b91c1c}.provisioning-actions{display:flex;justify-content:flex-end}.experience-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px}.experience-hero-copy h2,.page-header-strip h2{font-size:1.6rem;font-weight:700;color:var(--text-primary)}.experience-hero-copy p,.page-header-strip p{margin-top:10px;color:var(--text-muted);line-height:1.7;font-size:.95rem}.hero-mini-status{min-width:220px;padding:16px;border-radius:var(--radius-md);background:#4f46e514;border:1px solid rgba(79,70,229,.14);display:flex;flex-direction:column;gap:6px}.hero-mini-status span{font-size:.78rem;color:var(--text-muted)}.hero-mini-status strong{font-size:1.05rem;color:var(--text-primary)}.home-primary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.home-action-card{padding:20px;border-radius:var(--radius-lg);border:1px solid rgba(216,226,240,.9);background:#ffffffdb;box-shadow:var(--shadow-card);text-align:left;cursor:pointer;transition:var(--transition)}.home-action-card:hover{transform:translateY(-2px)}.home-action-card-primary{background:var(--accent-gradient);border:none;box-shadow:var(--shadow-glow)}.home-action-label{display:block;margin-bottom:12px;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.home-action-card-primary .home-action-label,.home-action-card-primary strong,.home-action-card-primary small{color:#fff}.home-action-card strong{display:block;font-size:1.1rem;margin-bottom:8px;color:var(--text-primary)}.home-action-card small{color:var(--text-secondary);line-height:1.55}.experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.quick-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.quick-action{display:flex;flex-direction:column;gap:6px;min-height:132px;padding:18px;border:1px solid rgba(216,226,240,.9);border-radius:var(--radius-md);background:linear-gradient(180deg,#fffffff2,#f4f7fff2);cursor:pointer;transition:var(--transition);text-align:left}.quick-action:hover{transform:translateY(-2px);border-color:#4f46e52e;box-shadow:var(--shadow-glow)}.quick-action-title{font-size:1rem;font-weight:700;color:var(--text-primary)}.quick-action-desc{color:var(--text-muted);line-height:1.55;font-size:.86rem}.setup-progress{display:flex;align-items:center;gap:12px;margin-bottom:16px}.setup-progress span{font-size:.82rem;font-weight:700;color:var(--accent-primary)}.setup-progress-bar{flex:1;height:10px;border-radius:999px;background:#94a3b829;overflow:hidden}.setup-progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--accent-gradient)}.setup-step-list{display:flex;flex-direction:column;gap:12px}.setup-step-list.compact .setup-step{grid-template-columns:auto 1fr}.setup-entry-btn{width:100%;margin-top:14px}.setup-step{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;border-radius:var(--radius-md);border:1px solid rgba(216,226,240,.9);background:#ffffffc7}.setup-step.done{border-color:#10b98138;background:#10b98114}.setup-step.current{border-color:#4f46e52e;background:#4f46e50f}.setup-step-index{width:34px;height:34px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:#4f46e51f;color:var(--accent-primary);font-weight:700;flex-shrink:0}.setup-step.done .setup-step-index{background:#10b98129;color:#047857}.setup-step-content strong{display:block;color:var(--text-primary);margin-bottom:4px}.setup-step-content p{color:var(--text-muted);line-height:1.55;font-size:.86rem}.room-chip-grid{display:flex;flex-wrap:wrap;gap:10px}.room-chip{min-width:140px;padding:14px 16px;border-radius:18px;border:1px solid rgba(79,70,229,.14);background:#4f46e514;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:var(--transition);text-align:left}.room-chip:hover{transform:translateY(-1px);box-shadow:var(--shadow-card)}.room-chip span{font-weight:700;color:var(--accent-primary)}.room-chip small{color:var(--text-secondary)}.empty-hint{padding:18px;border-radius:var(--radius-md);background:#94a3b814;color:var(--text-muted);line-height:1.7}.stacked-cards{display:grid;gap:16px}.page-header-strip{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:6px 4px 0}.simple-page-header{padding-top:0}.page-header-actions{display:flex;gap:10px;flex-wrap:wrap}.map-mobile-shortcuts{display:none}.map-shortcut-chip{white-space:nowrap}.map-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;min-height:0}.map-main-column,.map-side-column,.follow-side{display:flex;flex-direction:column;gap:16px;min-height:0}.map-side-column{overflow-y:auto;padding-right:2px}.room-list{display:flex;flex-direction:column;gap:12px}.compact-info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mini-info-card .card-body{display:flex;flex-direction:column;gap:8px}.mini-info-value{font-size:1.08rem;color:var(--text-primary)}.mini-info-card p{color:var(--text-muted);line-height:1.55;font-size:.86rem}.connection-shortcut{align-items:flex-start}.settings-advanced-entry{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-advanced-entry p{color:var(--text-muted);line-height:1.6}.room-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-radius:var(--radius-md);background:#ffffffd1;border:1px solid rgba(216,226,240,.9)}.room-list-item strong{display:block;color:var(--text-primary);margin-bottom:4px}.room-list-item p{color:var(--text-muted);font-size:.84rem}.follow-grid{align-items:start}.hint-list{display:flex;flex-direction:column;gap:10px;padding-left:18px;color:var(--text-secondary);line-height:1.6}.summary-list{display:flex;flex-direction:column;gap:12px}.summary-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px dashed rgba(216,226,240,.9);color:var(--text-secondary)}.summary-row:last-child{border-bottom:none;padding-bottom:0}.summary-row strong{color:var(--text-primary)}.monospace{font-family:var(--font-mono);font-size:.75rem;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.console-body{display:grid;grid-template-columns:320px minmax(0,1fr) 340px;gap:16px;overflow:hidden;min-height:0}.card{background:#ffffffe0;border-radius:var(--radius-lg);border:1px solid rgba(216,226,240,.92);box-shadow:var(--shadow-card);transition:var(--transition);overflow:hidden;flex-shrink:0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.card:hover{border-color:#c6d4e6;transform:translateY(-1px)}.card-header{display:flex;align-items:center;gap:8px;padding:16px 18px;border-bottom:1px solid rgba(216,226,240,.8);font-size:.88rem;font-weight:700;color:var(--text-secondary)}.card-header .icon{font-size:1rem}.card-body{padding:16px}.left-panel{display:flex;flex-direction:column;gap:16px;min-height:0;overflow-y:auto;padding-right:2px}.joystick-container{display:flex;flex-direction:column;align-items:center}.joystick-canvas-wrapper{position:relative;width:220px;height:220px;margin:8px auto}.joystick-canvas-wrapper canvas{display:block;cursor:grab;border-radius:50%}.joystick-canvas-wrapper canvas:active{cursor:grabbing}.velocity-display{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:12px}.velocity-item{background:#6366f114;border:1px solid rgba(99,102,241,.15);border-radius:var(--radius-sm);padding:8px 10px;text-align:center}.velocity-item .label{display:block;font-size:.7rem;color:var(--text-muted);margin-bottom:4px}.velocity-item .value{font-family:var(--font-mono);font-size:1rem;font-weight:500;color:var(--accent-primary)}.camera-card{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.camera-card .card-body{flex:1;min-height:0}.camera-body{display:flex;flex-direction:column;gap:10px}.camera-frame{position:relative;flex:1;min-height:260px;overflow:hidden;background:#f8fbff;border:1px solid rgba(79,70,229,.12);border-radius:var(--radius-sm)}.camera-stream{width:100%;height:100%;display:block;object-fit:cover}.camera-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:12px;color:var(--text-muted);font-size:.78rem;text-align:center}.camera-controls{display:grid;grid-template-columns:1fr auto auto;gap:8px}.camera-url-input{min-width:0;font-size:.72rem}.camera-btn{padding:8px 10px;background:var(--accent-primary);color:#fff;white-space:nowrap}.camera-btn-secondary{background:#6366f124;color:var(--text-primary);border:1px solid rgba(99,102,241,.22)}.center-panel{display:flex;flex-direction:column;min-height:0;gap:12px}.map-card{flex:1;display:flex;flex-direction:column;min-height:0}.map-card .card-body{flex:1;display:flex;align-items:center;justify-content:center;position:relative;min-height:0;overflow:hidden}.map-canvas-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.map-canvas-container canvas{max-width:100%;max-height:100%;image-rendering:pixelated;border-radius:var(--radius-sm)}.map-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-muted)}.map-placeholder .icon{font-size:3rem;opacity:.3}.map-placeholder p{font-size:.85rem}.map-info{position:absolute;bottom:8px;left:8px;background:#ffffffe6;padding:4px 10px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.7rem;color:var(--text-secondary)}.right-panel{display:flex;flex-direction:column;gap:16px;min-height:0;overflow-y:auto;padding-right:4px}.panel-caption{display:flex;flex-direction:column;gap:4px;padding:4px 4px 0}.panel-caption-map{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.panel-caption-title{font-size:1rem;font-weight:700;color:var(--text-primary)}.panel-caption-desc{font-size:.84rem;color:var(--text-muted)}.map-summary-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.summary-chip{padding:8px 12px;border-radius:999px;background:#ffffffc2;border:1px solid rgba(216,226,240,.9);color:var(--text-secondary);font-size:.78rem;font-weight:600}.summary-chip.active{background:#4f46e51f;color:var(--accent-primary);border-color:#4f46e529}.right-panel::-webkit-scrollbar{width:6px}.right-panel::-webkit-scrollbar-track{background:transparent}.right-panel::-webkit-scrollbar-thumb{background:#64748b29;border-radius:10px}.right-panel::-webkit-scrollbar-thumb:hover{background:#64748b42}.connection-controls{display:flex;flex-direction:column;gap:10px}.url-input-group{display:flex;gap:8px}.url-input{flex:1;padding:8px 12px;background:#f8fafc;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:.8rem;outline:none;transition:var(--transition)}.url-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f126}.btn{padding:10px 16px;border:none;border-radius:var(--radius-sm);font-family:var(--font-main);font-size:.8rem;font-weight:600;cursor:pointer;transition:var(--transition)}.btn-connect{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-glow)}.btn-connect:hover{filter:brightness(1.02)}.btn-secondary{background:#4f46e514;color:var(--accent-primary);border:1px solid rgba(79,70,229,.16)}.btn-secondary:hover,.btn-ghost:hover{transform:translateY(-1px)}.btn-ghost{background:#fffc;color:var(--text-secondary);border:1px solid rgba(216,226,240,.9)}.btn-connect:active{transform:translateY(0)}.btn-disconnect{background:#ef444426;color:var(--danger);border:1px solid rgba(239,68,68,.3)}.btn-disconnect:hover{background:#ef444440}.status-indicator{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:.8rem}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.disconnected{background:var(--text-muted)}.status-dot.connecting{background:var(--warning);animation:pulse 1s ease-in-out infinite}.status-dot.connected{background:var(--success);box-shadow:0 0 8px #10b98180}.status-dot.error{background:var(--danger);box-shadow:0 0 8px #ef444480}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.battery-gauge{position:relative;width:100%;height:32px;background:#f8fafc;border-radius:var(--radius-sm);border:1px solid var(--border-color);overflow:hidden}.battery-gauge-fill{height:100%;border-radius:var(--radius-sm);transition:width .8s cubic-bezier(.4,0,.2,1),background .8s ease;position:relative}.battery-gauge-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);animation:shimmer 2s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.battery-gauge-fill.high{background:linear-gradient(90deg,#10b981,#34d399)}.battery-gauge-fill.medium{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.battery-gauge-fill.low{background:linear-gradient(90deg,#ef4444,#f87171)}.battery-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(15,23,42,.25);z-index:1}.battery-voltage{margin-top:8px;font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-align:center}.topic-list{list-style:none;max-height:200px;overflow-y:auto}.topic-list::-webkit-scrollbar{width:4px}.topic-list::-webkit-scrollbar-track{background:transparent}.topic-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.topic-item{display:flex;align-items:center;gap:6px;padding:5px 0;font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary);border-bottom:1px solid rgba(71,85,105,.08)}.topic-item .dot{width:5px;height:5px;border-radius:50%;background:var(--accent-primary);flex-shrink:0}.error-message{padding:8px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);color:var(--danger);font-size:.78rem;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.layer-controls{display:flex;flex-direction:column;gap:12px}.layer-item{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--text-secondary)}.switch{position:relative;display:inline-block;width:40px;height:20px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#94a3b847;transition:.4s;border-radius:20px}.slider:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background:var(--accent-primary)}input:focus+.slider{box-shadow:0 0 1px var(--accent-primary)}input:checked+.slider:before{transform:translate(20px)}@media (max-width: 1024px){.console-layout{padding:14px}.experience-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.provisioning-grid{grid-template-columns:1fr}.simple-status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.experience-hero,.experience-grid,.map-page-layout{grid-template-columns:1fr}.home-primary-actions,.compact-info-grid,.quick-action-grid{grid-template-columns:1fr 1fr}.console-body{grid-template-columns:260px minmax(0,1fr) 280px;gap:12px}}@media (max-width: 800px){html,body{height:auto;overflow:auto}.console-layout{padding:10px 10px 84px;gap:10px;min-height:100svh;height:auto}.console-header{padding:12px 14px;height:auto;flex-direction:row;align-items:center;gap:10px}.console-header h1{font-size:1.05rem}.provisioning-shell{gap:12px}.provisioning-hero{padding:18px 16px;align-items:flex-start;flex-direction:column}.provisioning-hero h1{font-size:1.3rem}.provisioning-shell .console-subtitle{display:block!important;margin-top:8px;font-size:.88rem;line-height:1.6}.provisioning-badge{padding:10px 12px;font-size:.84rem}.provisioning-toolbar,.provisioning-actions{flex-direction:column;align-items:stretch}.wifi-list{max-height:240px}.console-subtitle,.simple-status-strip,.hero-mini-status,.setup-card,.mobile-secondary-section,.page-header-strip p{display:none!important}.brand-mark{width:40px;height:40px;border-radius:12px}.header-main{gap:10px;min-width:0}.header-main>div:last-child{min-width:0}.eyebrow{font-size:.66rem}.header-status{margin-left:auto;width:auto;flex-wrap:nowrap;gap:8px}.header-pill{flex:0 0 auto;justify-content:center;padding:8px 10px;font-size:.76rem}.experience-tabs{display:none}.mobile-bottom-nav{position:fixed;left:10px;right:10px;bottom:10px;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:8px;background:#ffffffeb;border:1px solid rgba(216,226,240,.95);border-radius:22px;box-shadow:0 18px 36px #0f172a1f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-bottom-nav-item{border:none;background:transparent;color:var(--text-muted);font-size:.72rem;font-weight:700;padding:8px 4px;border-radius:14px}.mobile-bottom-nav-item.active{background:#4f46e51a;color:var(--accent-primary)}.experience-page{gap:10px;overflow-y:visible}.provisioning-shell{overflow-y:visible}.experience-hero{padding:16px;min-height:0}.experience-hero-copy h2,.page-header-strip h2{font-size:1.2rem}.experience-hero-copy p{margin-top:6px;font-size:.86rem;line-height:1.55}.experience-grid,.quick-action-grid,.map-page-layout,.home-primary-actions,.compact-info-grid{grid-template-columns:1fr}.map-mobile-shortcuts{position:sticky;top:0;z-index:8;display:flex;gap:8px;padding:2px 0 0;background:linear-gradient(180deg,#eef3fff5,#eef3ffe0 72%,#eef3ff00)}.map-shortcut-chip{flex:1;min-height:40px}.setup-step{grid-template-columns:auto 1fr}.setup-step .btn{grid-column:1 / -1;width:100%}.page-header-strip{flex-direction:column;gap:6px;padding:0}.experience-map-page{gap:8px}.experience-map-page .simple-page-header{display:none}.console-body{grid-template-columns:1fr;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.left-panel{order:3;overflow:visible}.center-panel{order:1;min-height:400px}.right-panel{order:2;display:flex;flex-direction:column;gap:12px;overflow:visible}.panel-caption-map{flex-direction:column;align-items:flex-start}.card-header{padding:10px 12px;font-size:.85rem}.card-body{padding:12px}.joystick-container{padding:15px 0}.velocity-display{margin-top:10px}.camera-frame{min-height:180px}.monospace{max-width:180px}.home-primary-actions{gap:10px}.home-action-card{padding:16px}.home-action-card strong{font-size:1rem}.room-chip-grid{display:grid;grid-template-columns:1fr 1fr}.room-chip{min-width:0;padding:12px 14px}.map-page-layout{display:flex;flex-direction:column;gap:10px}.map-main-column{min-height:calc(100svh - 180px)}.map-main-column .map-card{min-height:min(68svh,560px)}.map-main-column .panel-caption{padding:0}.map-main-column .panel-caption-desc,.map-main-column .map-summary-chips{display:none}.map-side-column{gap:10px}.map-primary-panel{flex-shrink:0}.map-secondary-panel{display:none}.settings-advanced-entry{flex-direction:column;align-items:flex-start}}@media (max-height: 600px) and (orientation: landscape){.console-layout{overflow:hidden;padding:8px}.simple-status-strip,.experience-tabs,.console-banner{display:none!important}.console-body{display:grid!important;grid-template-columns:200px 1fr 220px!important;grid-template-rows:1fr!important;gap:8px!important;height:100%;overflow:hidden}.left-panel{order:1!important}.center-panel{order:2!important;min-height:unset!important;height:100%}.right-panel{order:3!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;min-height:0!important;height:100%!important;max-height:100%!important;padding-right:4px;display:block!important;padding-bottom:12px!important}.right-panel>*{margin-bottom:8px!important}.card-header{padding:6px 10px;font-size:.8rem}.card-body{padding:8px}.joystick-container{padding:5px 0!important;transform:scale(.85);transform-origin:top center}.camera-frame{min-height:120px}.camera-controls{grid-template-columns:1fr 48px 48px}}.topic-list{display:none}
