:root{color-scheme:light;font-family:Roboto,SF Pro Text,Segoe UI,system-ui,-apple-system,sans-serif;--m3-primary: #306a43;--m3-neutral: #f3f4f2;--m3-neutral-variant: #d7d9d5;--m3-error-seed: #b3261e;--m3-radius-base: 12px;--m3-radius-xs: calc(var(--m3-radius-base) * .5);--m3-radius-sm: calc(var(--m3-radius-base) * .75);--m3-radius-md: var(--m3-radius-base);--m3-radius-lg: calc(var(--m3-radius-base) * 1.33);--m3-radius-xl: calc(var(--m3-radius-base) * 1.66);--m3-radius-pill: 999px;--m3-on-primary: #ffffff;--m3-primary-container: color-mix(in srgb, var(--m3-primary) 22%, #ffffff 78%);--m3-on-primary-container: color-mix(in srgb, var(--m3-primary) 24%, #000000 76%);--m3-surface: color-mix(in srgb, var(--m3-neutral) 96%, var(--m3-primary) 4%);--m3-surface-bright: color-mix(in srgb, #ffffff 96%, var(--m3-neutral) 4%);--m3-surface-container: color-mix(in srgb, var(--m3-neutral) 90%, var(--m3-primary) 10%);--m3-surface-container-high: color-mix(in srgb, var(--m3-neutral) 84%, var(--m3-primary) 16%);--m3-surface-variant: color-mix(in srgb, var(--m3-neutral-variant) 88%, var(--m3-primary) 12%);--m3-surface-inverse: color-mix(in srgb, #000000 85%, var(--m3-neutral-variant) 15%);--m3-outline: color-mix(in srgb, var(--m3-neutral-variant) 65%, #000000 35%);--m3-outline-variant: color-mix(in srgb, var(--m3-neutral-variant) 78%, #000000 22%);--m3-text: color-mix(in srgb, #000000 85%, var(--m3-neutral-variant) 15%);--m3-text-subtle: color-mix(in srgb, #000000 60%, var(--m3-neutral-variant) 40%);--m3-text-muted: color-mix(in srgb, #000000 45%, var(--m3-neutral-variant) 55%);--m3-on-inverse-surface: color-mix(in srgb, #ffffff 90%, var(--m3-neutral) 10%);--m3-error: var(--m3-error-seed);--m3-on-error: #ffffff;--m3-error-container: color-mix(in srgb, var(--m3-error-seed) 20%, #ffffff 80%);--m3-on-error-container: color-mix(in srgb, var(--m3-error-seed) 25%, #000000 75%);--m3-shadow: color-mix(in srgb, #000000 22%, transparent);--m3-shadow-strong: color-mix(in srgb, #000000 45%, transparent);--m3-scrim: color-mix(in srgb, #000000 65%, transparent);--m3-scrim-weak: color-mix(in srgb, #000000 42%, transparent);--m3-control-muted: color-mix(in srgb, var(--m3-neutral-variant) 55%, #000000 45%);--m3-accent: color-mix(in srgb, var(--m3-primary) 88%, #000000 12%);--m3-accent-strong: color-mix(in srgb, var(--m3-primary) 78%, #000000 22%);--m3-accent-glow: color-mix(in srgb, var(--m3-primary) 60%, #ffffff 40%)}*{box-sizing:border-box}body{margin:0;background:var(--m3-surface);color:var(--m3-text)}.app{position:relative;display:block;height:100%;min-height:0}@supports (height: 100dvh){.app{height:100dvh}}.ui{position:absolute;left:50%;bottom:20px;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:12px;padding:14px 18px;border-radius:var(--m3-radius-xl);background:color-mix(in srgb,var(--m3-surface-container) 92%,transparent);border:1px solid color-mix(in srgb,var(--m3-outline) 22%,transparent);box-shadow:0 18px 32px var(--m3-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:fit-content;max-width:min(920px,94vw);text-align:center;opacity:1;transition:opacity 1.2s ease}.ui.ui-idle{opacity:.2}.question-note{position:absolute;left:50%;bottom:110px;transform:translate(-50%);z-index:11;padding:10px 16px;border-radius:var(--m3-radius-lg);background:color-mix(in srgb,var(--m3-surface-container) 96%,transparent);border:1px solid color-mix(in srgb,var(--m3-outline) 20%,transparent);box-shadow:0 12px 20px var(--m3-shadow);font-size:13px;color:var(--m3-text);animation:note-fade-in .2s ease-out}.token-overlay{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000059;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}.token-card{width:min(420px,92vw);display:flex;flex-direction:column;gap:16px;padding:24px 22px;border-radius:28px;background:#1416146b;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:0 12px 28px #0003;color:#fffffff5;text-shadow:0 1px 4px rgba(0,0,0,.45)}.token-header{display:flex;flex-direction:column;gap:6px}.token-eyebrow{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffa6}.token-title{margin:0;font-size:20px;font-weight:600;color:#fffffffa}.token-subtitle{margin:0;font-size:13px;color:#ffffffb3}.token-field{display:flex;flex-direction:column;gap:8px}.token-label{font-size:12px;color:#ffffffa6}.token-input{height:48px;padding:0 16px;border-radius:14px;border:1px solid rgba(255,255,255,.22);background:#ffffff0f;color:#fffffff5;font-size:14px;outline:none;width:100%;text-shadow:none}.token-input::placeholder{color:#fff6}.token-input:focus{border-color:#ffffff80;background:#ffffff1a;box-shadow:0 0 0 2px color-mix(in srgb,var(--m3-primary) 35%,transparent)}.token-error{padding:10px 12px;border-radius:14px;font-size:12px;color:#ffdcdcf5;background:#b3261e52;border:1px solid rgba(255,120,110,.35)}.token-row{display:flex;align-items:center;gap:10px}.token-submit{min-width:120px;height:48px;justify-content:center}.token-card .ui-btn{height:48px;padding:0 20px;border-radius:14px;background:#ffffff14;color:#fffffff5;border:1px solid rgba(255,255,255,.22);font-size:14px;font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,.45);transition:background .18s ease,border-color .18s ease,transform .16s ease}.token-card .ui-btn:not(:disabled):hover{background:#ffffff24;border-color:#ffffff52;transform:translateY(-1px)}.token-card .ui-btn:not(:disabled):active{transform:translateY(0) scale(.98)}.token-card .ui-btn-primary{background:var(--m3-primary);color:var(--m3-on-primary);border-color:color-mix(in srgb,var(--m3-primary) 80%,rgba(255,255,255,.4));text-shadow:none}.token-card .ui-btn-primary:not(:disabled):hover{background:color-mix(in srgb,var(--m3-primary) 88%,#fff);border-color:color-mix(in srgb,var(--m3-primary) 70%,rgba(255,255,255,.6))}.token-card .ui-btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:640px){.token-overlay{padding:16px}.token-card{padding:18px 16px;gap:14px}.token-row{flex-direction:column;align-items:stretch}.token-submit{width:100%}}@keyframes note-fade-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.ui-controls{display:flex;gap:12px;flex-wrap:nowrap;justify-content:center;align-items:center}.ui-layout{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--m3-radius-pill);background:color-mix(in srgb,var(--m3-surface) 92%,transparent);border:1px solid color-mix(in srgb,var(--m3-outline) 24%,transparent)}.ui-layout-label{font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--m3-text);max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-media-controls{display:flex;gap:10px;align-items:center;padding:6px 10px;border-radius:var(--m3-radius-pill);background:color-mix(in srgb,var(--m3-surface-container) 92%,transparent);border:1px solid color-mix(in srgb,var(--m3-outline) 20%,transparent)}.ui-media-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--m3-control-muted);color:var(--m3-on-inverse-surface);display:inline-flex;align-items:center;justify-content:center;transition:transform .16s ease,box-shadow .2s ease,background .2s ease,color .2s ease}.ui-media-btn .material-symbols-rounded{font-size:18px}.ui-media-btn.is-on{background:var(--m3-surface-bright);color:var(--m3-text);box-shadow:0 0 0 3px var(--m3-accent-strong),0 0 20px color-mix(in srgb,var(--m3-accent-glow) 70%,transparent)}.ui-select{position:relative;display:inline-flex;align-items:center;height:48px;border-radius:var(--m3-radius-lg);background:var(--m3-surface-container-high);border:1px solid color-mix(in srgb,var(--m3-outline) 24%,transparent);padding:0 10px}.ui-select select{appearance:none;border:none;background:transparent;color:var(--m3-text);border-radius:var(--m3-radius-md);padding:10px 28px 10px 8px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.ui-select:after{content:"expand_more";font-family:Material Symbols Rounded;position:absolute;right:8px;font-size:18px;color:var(--m3-text-subtle);pointer-events:none}.ui-media-btn:not(:disabled):active{transform:scale(.95)}.material-symbols-rounded{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;font-size:22px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-group{display:inline-flex;align-items:center;gap:0;border-radius:var(--m3-radius-lg);background:var(--m3-surface-container-high);border:1px solid color-mix(in srgb,var(--m3-outline) 24%,transparent);overflow:hidden}.ui-group .ui-btn{border-radius:0}.ui-group .ui-btn+.ui-btn{border-left:1px solid color-mix(in srgb,var(--m3-outline) 20%,transparent)}.ui-group .ui-btn:first-child{border-top-left-radius:var(--m3-radius-lg);border-bottom-left-radius:var(--m3-radius-lg)}.ui-group .ui-btn:last-child{border-top-right-radius:var(--m3-radius-lg);border-bottom-right-radius:var(--m3-radius-lg)}.ui-btn{width:48px;height:48px;border-radius:var(--m3-radius-md);border:none;background:transparent;color:var(--m3-text);font-size:22px;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease,transform .16s ease,box-shadow .2s ease}.ui-btn-small{width:44px;height:44px;font-size:20px}.ui-btn:disabled{opacity:.45;cursor:not-allowed}.ui-btn:not(:disabled):hover{transform:translateY(-1px);background:color-mix(in srgb,var(--m3-primary) 12%,transparent)}.ui-btn:not(:disabled):active{transform:translateY(0) scale(.97)}.ui-btn-primary{background:var(--m3-primary);color:var(--m3-on-primary)}.ui-btn-primary:not(:disabled):hover{background:color-mix(in srgb,var(--m3-primary) 92%,var(--m3-text))}.ui-btn-primary.is-active{background:var(--m3-accent-strong);color:var(--m3-on-primary);box-shadow:0 0 12px color-mix(in srgb,var(--m3-accent-glow) 60%,transparent)}.ui-btn-primary.is-active:not(:disabled):hover{background:color-mix(in srgb,var(--m3-accent-strong) 85%,var(--m3-text))}.ui-sep{width:1px;height:36px;background:color-mix(in srgb,var(--m3-outline) 30%,transparent)}.ui-carousel-switcher{display:flex;align-items:center;gap:4px}.ui-carousel-label{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:140px;max-width:260px;padding:0 8px;gap:2px;text-align:center}.ui-carousel-name{font-size:14px;font-weight:600;color:var(--m3-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3}.ui-carousel-counter{font-size:11px;color:var(--m3-text-muted, color-mix(in srgb, var(--m3-text) 55%, transparent));letter-spacing:.06em}.ui-btn-text{width:auto;min-height:48px;padding:0 18px;gap:8px;font-size:14px;font-weight:500}.ui-btn-text .material-symbols-rounded{font-size:20px}.ui-speed{display:flex;align-items:center;gap:8px;color:var(--m3-text-subtle);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.ui-speed input[type=range]{width:150px;height:2px;appearance:none;background:color-mix(in srgb,var(--m3-primary) 28%,transparent);border-radius:999px;outline:none}.ui-speed input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:var(--m3-primary);border:2px solid var(--m3-surface);box-shadow:0 0 0 1px color-mix(in srgb,var(--m3-primary) 40%,transparent)}.ui-speed input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--m3-primary);border:2px solid var(--m3-surface);box-shadow:0 0 0 1px color-mix(in srgb,var(--m3-primary) 40%,transparent)}.ui-speed input[type=range]::-moz-range-track{height:2px;background:color-mix(in srgb,var(--m3-primary) 28%,transparent);border-radius:999px}.ui-speed-value{min-width:34px;text-align:right;font-size:12px;color:var(--m3-text);letter-spacing:.04em;text-transform:none}@media(max-width:640px){.ui{bottom:12px;padding:10px 12px;gap:8px;width:auto}.ui.ui-follow{padding:12px 14px}.ui-controls{flex-wrap:wrap;gap:8px}.ui.ui-follow .ui-controls{gap:12px 14px;width:100%;justify-content:center}.ui-btn{width:44px;height:44px;font-size:20px}.ui-btn-text{min-height:44px;padding:6px 12px;gap:6px;font-size:12px;white-space:nowrap}.ui.ui-follow .ui-btn-text{min-width:110px;justify-content:center}.ui-btn-text .material-symbols-rounded{font-size:18px}.ui-btn-small{width:38px;height:38px;font-size:18px}.ui-sep{height:28px}.ui-speed{gap:6px;font-size:12px}.ui-speed input[type=range]{width:110px}.ui-speed-value{min-width:30px}.ui-speed,.ui-speed+.ui-sep{display:none}}.viewer{position:relative;min-height:0;height:100%}.viewer canvas{display:block;width:100%;height:100%;touch-action:none}.measurement-overlay{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:12}.measurement-line{position:absolute;height:2px;transform-origin:0 50%;background:#fff;box-shadow:0 0 0 1px #ffffff2e}.measurement-dot{position:absolute;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);background:#fff;box-shadow:0 4px 12px #00000038}.measurement-dot-pending{width:14px;height:14px}.measurement-label{position:absolute;min-height:24px;padding:4px 12px;border:none;border-radius:999px;transform:translate(-50%,-50%);background:#fffffff5;color:#111;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap;box-shadow:0 6px 20px #0000002e;cursor:pointer;pointer-events:auto}.measurement-label:hover{background:#fff}.loading-screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:color-mix(in srgb,var(--m3-primary) 32%,#000);color:color-mix(in srgb,var(--m3-primary) 70%,#ffffff);opacity:0;pointer-events:none;transition:opacity .4s ease}.loading-screen.is-active{opacity:1;pointer-events:all}.loading-screen.is-hidden{opacity:0;pointer-events:none}.loading-text{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:currentColor}.follow-transition{position:absolute;inset:0;z-index:20;background:var(--m3-scrim);opacity:0;pointer-events:none;transition:opacity .26s ease}.follow-transition.is-active{opacity:.85}.livekit-panel{position:absolute;top:16px;left:16px;z-index:13;width:auto;max-width:min(980px,92vw);border-radius:calc(var(--m3-radius-base) * 1.66);background:transparent;border:none;box-shadow:none;padding:0;--livekit-gap: 12px}.livekit-stage{width:100%}.livekit-grid{display:flex;flex-wrap:wrap;gap:var(--livekit-gap);align-items:flex-start}.livekit-tile{position:relative;width:min(190px,20vw);aspect-ratio:1 / 1;border-radius:28px;overflow:hidden;background:#1416146b;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:0 12px 28px #0003;transition:border-color .28s ease,box-shadow .28s ease}.livekit-tile.is-speaking{border-color:#78ffaa8c;box-shadow:0 12px 28px #0003,0 0 0 2px #78ffaa80,0 0 0 5px #78ffaa33,0 0 28px 4px #78ffaa52}.livekit-tile-video{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}.livekit-tile-placeholder{width:100%;height:100%;display:grid;place-items:center;background:transparent}.livekit-avatar{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;color:#fffffff5;font-weight:600;font-size:28px;letter-spacing:.02em;border:1.25px solid rgba(255,255,255,.4);background:#ffffff0f;text-shadow:0 1px 4px rgba(0,0,0,.45)}.livekit-name{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:999px;background:#1416146b;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);color:#fffffff5;text-shadow:0 1px 4px rgba(0,0,0,.45);pointer-events:none}.livekit-follow-dot{width:8px;height:8px;border-radius:50%;background:var(--m3-accent-strong);box-shadow:0 0 8px color-mix(in srgb,var(--m3-accent-glow) 60%,transparent)}.livekit-tag{font-size:10px;font-weight:600;letter-spacing:.08em;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--m3-accent) 85%,transparent);color:var(--m3-on-primary)}.livekit-control-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--m3-control-muted);color:var(--m3-on-inverse-surface);display:inline-flex;align-items:center;justify-content:center;transition:transform .16s ease,box-shadow .2s ease,background .2s ease,color .2s ease}.livekit-control-btn .material-symbols-rounded{font-size:18px}.livekit-control-btn.is-on{background:var(--m3-surface-bright);color:var(--m3-text);box-shadow:0 0 0 3px var(--m3-accent-strong),0 0 20px color-mix(in srgb,var(--m3-accent-glow) 70%,transparent)}.livekit-control-btn:not(:disabled):active{transform:scale(.95)}.livekit-local-controls{display:flex;gap:10px;justify-content:center}.livekit-local-controls.is-inside{position:absolute;left:50%;bottom:10px;transform:translate(-50%);z-index:2}.livekit-error{position:absolute;top:8px;left:8px;right:8px;padding:6px 8px;border-radius:8px;font-size:11px;color:var(--m3-on-error-container);background:color-mix(in srgb,var(--m3-error) 70%,transparent);text-align:center}.livekit-policy{margin-top:10px;padding:8px 10px;border-radius:12px;font-size:12px;color:var(--m3-error);background:color-mix(in srgb,var(--m3-error-container) 70%,transparent)}.livekit-placeholder{width:100%;min-height:120px;display:grid;place-items:center;padding:12px;font-size:14px;color:var(--m3-text)}.record-panel{position:absolute;top:16px;right:16px;z-index:12;width:min(420px,92vw);padding:14px;border-radius:calc(var(--m3-radius-base) * 1.66);background:color-mix(in srgb,var(--m3-surface-container) 94%,transparent);border:1px solid color-mix(in srgb,var(--m3-outline) 22%,transparent);box-shadow:0 16px 28px var(--m3-shadow);display:flex;flex-direction:column;gap:12px}@media(max-width:640px){.livekit-panel{top:12px;left:12px;width:calc(100vw - 24px);border-radius:16px;padding:0;--livekit-gap: 8px}.livekit-tile{width:calc((100vw - 48px - (2 * var(--livekit-gap))) / 3);border-radius:12px}.measurement-label{min-height:22px;padding:4px 10px;font-size:11px}.measurement-dot{width:10px;height:10px}.measurement-dot-pending{width:12px;height:12px}}.record-panel-header{display:flex;align-items:baseline;justify-content:space-between;font-size:14px;color:var(--m3-text)}.record-panel-sub{font-size:12px;color:var(--m3-text-subtle)}.record-error{color:var(--m3-error)}.record-panel-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.record-btn{width:40px;height:40px;border-radius:var(--m3-radius-md);border:none;background:var(--m3-surface-container-high);color:var(--m3-text);font-size:18px;display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--m3-outline) 22%,transparent);transition:transform .16s ease,background .2s ease,box-shadow .2s ease}.record-btn .material-symbols-rounded{font-size:20px}.record-btn:disabled{opacity:.5;cursor:not-allowed}.record-btn:not(:disabled):hover{background:color-mix(in srgb,var(--m3-primary) 12%,var(--m3-surface-container-high))}.record-btn:not(:disabled):active{transform:scale(.97)}.record-btn-primary{background:var(--m3-primary);color:var(--m3-on-primary);box-shadow:none}.record-btn-text{width:auto;min-height:40px;padding:0 12px;gap:8px;font-size:13px;font-weight:500}.record-btn-text .material-symbols-rounded{font-size:18px}.record-meta{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--m3-text-subtle)}.record-meta-block{flex:1;flex-direction:column;align-items:flex-start;gap:6px;padding:8px 10px;border-radius:var(--m3-radius-md);background:var(--m3-surface-container-high);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--m3-outline) 22%,transparent)}.record-meta-block code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;color:var(--m3-text);word-break:break-word}.record-label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--m3-text-subtle)}.record-label input[type=text]{min-width:260px;padding:6px 8px;border-radius:12px;border:1px solid color-mix(in srgb,var(--m3-outline) 30%,transparent);background:var(--m3-surface);color:var(--m3-text)}.record-dropzone{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:var(--m3-radius-md);border:1px dashed color-mix(in srgb,var(--m3-outline) 40%,transparent);background:var(--m3-surface-container-high);color:var(--m3-text-subtle);font-size:12px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.record-dropzone.is-drag{border-color:var(--m3-primary);background:color-mix(in srgb,var(--m3-primary) 12%,var(--m3-surface))}.record-dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.hotspot-modal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto;background:var(--m3-scrim-weak);z-index:14;animation:hotspot-fade-in .2s ease-out}.hotspot-modal.is-closing{animation:hotspot-fade-out .18s ease-in forwards}.debug-overlay{position:absolute;inset:0;z-index:40;display:flex;align-items:flex-start;justify-content:center;padding:16px;background:color-mix(in srgb,var(--m3-scrim) 65%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.debug-card{width:min(520px,92vw);border-radius:16px;padding:14px 16px;background:var(--m3-surface-container);border:1px solid color-mix(in srgb,var(--m3-outline) 20%,transparent);box-shadow:0 16px 28px var(--m3-shadow);color:var(--m3-text);display:flex;flex-direction:column;gap:10px}.debug-header{display:flex;align-items:center;justify-content:space-between;font-size:14px}.debug-sub{font-size:11px;color:var(--m3-text-muted)}.debug-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--m3-text-subtle)}.debug-section{display:flex;flex-direction:column;gap:6px}.debug-label{font-size:12px;color:var(--m3-text-muted)}.debug-pre{margin:0;padding:10px;border-radius:12px;background:var(--m3-surface);border:1px solid color-mix(in srgb,var(--m3-outline) 20%,transparent);font-size:11px;line-height:1.4;color:var(--m3-text);max-height:240px;overflow:auto;white-space:pre-wrap;word-break:break-word}.perf-hud{position:absolute;top:16px;left:16px;z-index:45;padding:10px 12px;border-radius:12px;background:#080c12d1;color:#e6f1ff;font-family:SF Mono,JetBrains Mono,monospace;font-size:11px;line-height:1.35;display:flex;flex-direction:column;gap:4px;border:1px solid rgba(125,211,252,.35);box-shadow:0 12px 24px #00000059}.perf-hud canvas{border-radius:8px;border:1px solid rgba(125,211,252,.25)}.perf-hud-row{display:flex;justify-content:space-between;gap:8px}.perf-hud-sub{font-size:10px;color:#e6f1ffa6;text-align:right}.room-indicator{position:absolute;top:16px;right:16px;z-index:45;display:flex;flex-direction:column;gap:6px;width:300px;box-sizing:border-box;padding:14px 18px;border-radius:var(--m3-radius-lg);background:color-mix(in srgb,var(--m3-surface-container) 94%,transparent);border:1px solid color-mix(in srgb,var(--m3-outline) 22%,transparent);box-shadow:0 12px 24px var(--m3-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--m3-text);font-size:13px;line-height:1.35;transform:translateY(-140%);opacity:0;pointer-events:none;transition:transform .32s cubic-bezier(.2,.9,.25,1),opacity .26s ease-out}.room-indicator.is-visible{transform:translateY(0);opacity:1;pointer-events:auto}.room-indicator-name{font-size:22px;font-weight:600;line-height:1.15;color:var(--m3-primary);letter-spacing:-.01em}.room-indicator-description{font-size:13px;line-height:1.45;color:color-mix(in srgb,var(--m3-text) 78%,transparent);white-space:normal;overflow-wrap:anywhere}.room-indicator-carousel{display:flex;align-items:center;gap:4px;margin-top:4px}.room-indicator-carousel-label{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:0 8px;gap:2px;text-align:center}.room-indicator-carousel-name{font-size:13px;font-weight:600;color:var(--m3-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3}.room-indicator-carousel-counter{font-size:11px;color:var(--m3-text-muted, color-mix(in srgb, var(--m3-text) 55%, transparent));letter-spacing:.06em}.hotspot-card{position:relative;width:min(640px,92vw);max-height:85vh;overflow-y:auto;padding:16px;border-radius:calc(var(--m3-radius-base) * 1.66);background:var(--m3-surface-container);border:1px solid color-mix(in srgb,var(--m3-outline) 24%,transparent);box-shadow:0 18px 36px var(--m3-shadow);display:flex;flex-direction:column;gap:12px;animation:hotspot-pop-in .22s ease-out}.hotspot-modal.is-closing .hotspot-card{animation:hotspot-pop-out .18s ease-in forwards}.hotspot-media{width:100%;border-radius:var(--m3-radius-md);overflow:hidden;background:color-mix(in srgb,var(--m3-surface-variant) 60%,transparent);flex-shrink:0}.hotspot-media img{width:100%;height:auto;max-height:60vh;object-fit:contain;display:block}.hotspot-media video{width:100%;height:auto;max-height:55vh;display:block}.hotspot-body h3{margin:0 0 6px;font-size:18px;color:var(--m3-text)}.hotspot-body p{margin:0;color:var(--m3-text-subtle);font-size:14px;line-height:1.5}.hotspot-body textarea{min-height:72px;padding:8px;border-radius:var(--m3-radius-md);border:1px solid color-mix(in srgb,var(--m3-outline) 30%,transparent);background:var(--m3-surface);color:var(--m3-text);resize:vertical}.hotspot-actions{display:flex;justify-content:flex-end;gap:8px}.hotspot-close{align-self:flex-end;width:44px;height:44px;border-radius:var(--m3-radius-md);border:none;background:var(--m3-surface-container-high);color:var(--m3-text);display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--m3-outline) 22%,transparent);transition:transform .16s ease,background .2s ease}.hotspot-close .material-symbols-rounded{font-size:20px}.hotspot-close:not(:disabled):hover{background:color-mix(in srgb,var(--m3-primary) 12%,var(--m3-surface-container-high))}.hotspot-close:not(:disabled):active{transform:scale(.96)}@keyframes hotspot-pop-in{0%{transform:translateY(6px) scale(.98);opacity:.6}to{transform:translateY(0) scale(1);opacity:1}}@keyframes hotspot-fade-in{0%{opacity:0}to{opacity:1}}@keyframes hotspot-pop-out{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(6px) scale(.98);opacity:.6}}@keyframes hotspot-fade-out{0%{opacity:1}to{opacity:0}}.hierarchy-panel{position:absolute;top:20px;right:20px;width:280px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--m3-radius-lg);background:color-mix(in srgb,var(--m3-surface-container) 96%,transparent);border:1px solid color-mix(in srgb,var(--m3-outline) 22%,transparent);box-shadow:0 12px 24px var(--m3-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:100;overflow:hidden}.hierarchy-header{display:flex;justify-content:space-between;align-items:center}.hierarchy-header h3{margin:0;font-size:14px;font-weight:600 var(--m3-text)}.transform-modes{display:flex;gap:4px}.transform-modes button{width:28px;height:28px;border:none;border-radius:var(--m3-radius-xs);background:color-mix(in srgb,var(--m3-surface) 80%,transparent);color:var(--m3-text-muted);cursor:pointer;font-size:14px;transition:all .15s ease}.transform-modes button:hover{background:color-mix(in srgb,var(--m3-primary) 20%,transparent)}.transform-modes button.active{background:var(--m3-primary);color:var(--m3-on-primary)}.hierarchy-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;min-height:100px;max-height:200px}.hierarchy-empty{color:var(--m3-text-muted);font-size:12px;text-align:center;padding:20px}.hierarchy-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:var(--m3-radius-sm);background:color-mix(in srgb,var(--m3-surface) 60%,transparent);cursor:pointer;transition:all .15s ease}.hierarchy-item:hover{background:color-mix(in srgb,var(--m3-primary) 15%,transparent)}.hierarchy-item.selected{background:color-mix(in srgb,var(--m3-primary) 25%,transparent);border:1px solid color-mix(in srgb,var(--m3-primary) 40%,transparent)}.hierarchy-item-name{font-size:13px;color:var(--m3-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hierarchy-item-delete{width:20px;height:20px;border:none;border-radius:calc(var(--m3-radius-base) * .33);background:transparent;color:var(--m3-text-muted);cursor:pointer;font-size:16px;line-height:1;opacity:0;transition:all .15s ease}.hierarchy-item-delete:hover{background:var(--m3-error);color:var(--m3-on-error)}.hierarchy-add{display:flex;flex-direction:column;gap:8px}.hierarchy-input{height:36px;padding:0 12px;border-radius:var(--m3-radius-sm);border:1px solid color-mix(in srgb,var(--m3-outline) 30%,transparent);background:color-mix(in srgb,var(--m3-surface) 92%,transparent);color:inherit;font-size:12px;outline:none}.hierarchy-input:focus{border-color:color-mix(in srgb,var(--m3-primary) 60%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--m3-primary) 25%,transparent)}.hierarchy-add-btn{height:36px;border:none;border-radius:var(--m3-radius-sm);background:var(--m3-primary);color:var(--m3-on-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.hierarchy-add-btn:hover:not(:disabled){background:color-mix(in srgb,var(--m3-primary) 85%,#000)}.hierarchy-add-btn:disabled{opacity:.5;cursor:not-allowed}.hierarchy-footer{padding-top:8px;border-top:1px solid color-mix(in srgb,var(--m3-outline) 20%,transparent)}.hierarchy-export-btn{width:100%;height:36px;border:1px solid color-mix(in srgb,var(--m3-outline) 30%,transparent);border-radius:var(--m3-radius-sm);background:color-mix(in srgb,var(--m3-surface) 80%,transparent);color:var(--m3-text);font-size:12px;cursor:pointer;transition:all .15s ease}.hierarchy-export-btn:hover{background:color-mix(in srgb,var(--m3-primary) 15%,transparent);border-color:color-mix(in srgb,var(--m3-primary) 40%,transparent)}.hierarchy-help{padding-top:8px;border-top:1px solid color-mix(in srgb,var(--m3-outline) 20%,transparent);font-size:11px;color:var(--m3-text-muted)}.hierarchy-help p{margin:4px 0}.model-uploader-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.model-uploader{background:#1e1e1e;border-radius:12px;width:480px;max-width:90vw;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #00000080}.model-uploader-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #333}.model-uploader-header h3{margin:0;color:#fff;font-size:18px}.model-uploader-content{padding:20px}.model-uploader-name{margin-bottom:16px}.model-uploader-name label{display:block;color:#aaa;font-size:13px;margin-bottom:6px}.model-uploader-name input{width:100%;padding:10px 12px;background:#2a2a2a;border:1px solid #444;border-radius:6px;color:#fff;font-size:14px}.model-uploader-name input:focus{outline:none;border-color:#4a9eff}.model-uploader-dropzone{border:2px dashed #444;border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s}.model-uploader-dropzone:hover{border-color:#666;background:#ffffff05}.model-uploader-dropzone.dragging{border-color:#4a9eff;background:#4a9eff1a}.model-uploader-dropzone.has-file{border-style:solid;border-color:#4caf50}.model-uploader-placeholder{color:#888}.model-uploader-placeholder .upload-icon{font-size:36px;display:block;margin-bottom:12px}.model-uploader-placeholder .or-divider{font-size:12px;color:#666;margin-top:8px}.model-uploader-file-info{display:flex;align-items:center;justify-content:center;gap:12px;color:#4caf50}.model-uploader-file-info .file-icon{font-size:24px}.model-uploader-file-info .file-name{font-weight:500}.model-uploader-file-info .file-size{color:#888;font-size:13px}.model-uploader-progress{color:#4a9eff}.model-uploader-progress .spinner{width:32px;height:32px;border:3px solid #333;border-top-color:#4a9eff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 12px}.model-uploader-error{margin-top:12px;padding:10px;background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:6px;color:#f44336;font-size:13px}.model-uploader-info{margin-top:16px;padding:12px;background:#4a9eff0d;border-radius:6px}.model-uploader-info p{margin:0;color:#888;font-size:12px;display:flex;align-items:center;gap:8px}.model-uploader-info p+p{margin-top:6px}.model-uploader-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #333}.model-uploader-footer button{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.model-uploader-footer .cancel-btn{background:transparent;border:1px solid #444;color:#aaa}.model-uploader-footer .cancel-btn:hover{border-color:#666;color:#fff}.model-uploader-footer .upload-btn{background:#4a9eff;border:none;color:#fff}.model-uploader-footer .upload-btn:hover:not(:disabled){background:#5aa8ff}.model-uploader-footer .upload-btn:disabled{background:#333;color:#666;cursor:not-allowed}.model-library-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.model-library-modal{background:#1e1e1e;border-radius:12px;width:700px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.model-library-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #333}.model-library-header h3{margin:0;color:#fff;font-size:18px}.model-library-content{flex:1;overflow-y:auto;padding:20px}.model-library-loading,.model-library-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#888}.model-library-loading .spinner{width:40px;height:40px;border:3px solid #333;border-top-color:#4a9eff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.model-library-empty .empty-icon{font-size:48px;margin-bottom:16px}.model-library-empty .empty-hint{font-size:13px;color:#666;margin-top:8px}.model-library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.model-library-item{aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer;background:#2a2a2a;transition:all .2s;position:relative}.model-library-item:hover{transform:scale(1.03);box-shadow:0 4px 20px #0000004d}.model-thumbnail{width:100%;height:100%}.model-thumbnail img{width:100%;height:100%;object-fit:cover}.model-hover-overlay{position:absolute;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.model-hover-overlay .model-name{color:#fff;font-weight:500;font-size:14px}.model-hover-overlay .add-icon{color:#4a9eff;font-size:24px;font-weight:700}.model-library-footer{padding:12px 20px;border-top:1px solid #333}.model-library-footer .model-count{color:#888;font-size:13px}.hierarchy-add-buttons{padding:0 12px;margin-bottom:12px}.add-dropdown{position:relative}.hierarchy-add-main-btn{width:100%;padding:10px;background:linear-gradient(135deg,#4a9eff,#2979ff);border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.hierarchy-add-main-btn:hover{background:linear-gradient(135deg,#5aa8ff,#3b8aff)}.add-dropdown-menu{position:absolute;bottom:100%;left:0;right:0;margin-bottom:4px;background:#2a2a2a;border:1px solid #444;border-radius:6px;overflow:hidden;box-shadow:0 -4px 20px #0000004d}.add-dropdown-menu button{width:100%;padding:12px 16px;background:transparent;border:none;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .2s}.add-dropdown-menu button:hover{background:#3a3a3a}.add-dropdown-menu .menu-icon{font-size:16px}.close-btn{background:transparent;border:none;color:#888;font-size:24px;cursor:pointer;padding:0;line-height:1}.close-btn:hover{color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.app.app-edit3d{--editor-bg: #1e1e1e;--editor-bg-secondary: #262626;--editor-bg-tertiary: #2d2d2d;--editor-bg-hover: #323232;--editor-border: #404040;--editor-border-strong: #575757;--editor-text: #f0f0f0;--editor-text-muted: #9b9b9b;--editor-accent: #4CAF50;--editor-accent-hover: #66bb6a;--editor-danger: #ef5350;--editor-shadow: rgba(0, 0, 0, .4);--editor-card-radius: 12px;--editor-control-radius: 10px;--editor-scrollbar: #8e8e8e;--editor-scrollbar-track: rgba(255, 255, 255, .06);--editor-section-bg: rgba(255, 255, 255, .035);--editor-section-border: rgba(255, 255, 255, .08);--editor-input-bg: rgba(255, 255, 255, .03);--inspector-width: 320px}.app.app-edit3d .blank-editor-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:14px 20px;border-radius:12px;background:#141414b8;border:1px solid rgba(255,255,255,.08);color:#e6e6e6;font-size:13px;line-height:1.5;letter-spacing:.01em;max-width:420px;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 24px #00000059;pointer-events:none;z-index:50}.app.app-edit3d .blank-editor-hint strong{color:#fff;font-weight:600}.hierarchy-list::-webkit-scrollbar,.media-upload-modal::-webkit-scrollbar{width:10px}.hierarchy-list::-webkit-scrollbar-track,.media-upload-modal::-webkit-scrollbar-track{background:var(--editor-scrollbar-track);border-radius:999px}.hierarchy-list::-webkit-scrollbar-thumb,.media-upload-modal::-webkit-scrollbar-thumb{background:var(--editor-scrollbar);border-radius:999px;border:2px solid transparent;background-clip:padding-box}.hierarchy-list::-webkit-scrollbar-thumb:hover,.media-upload-modal::-webkit-scrollbar-thumb:hover{background:#a9a9a9;background-clip:padding-box}.app.app-edit3d .edit-placement-bar{position:fixed;left:50%;bottom:16px;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;background:#1e1e1ef2;border:1px solid #3d3d3d;color:#e0e0e0;box-shadow:0 8px 24px #00000059;z-index:220}.app.app-edit3d .edit-placement-bar button{border:1px solid #4a4a4a;border-radius:8px;background:#2a2a2a;color:#e0e0e0;padding:6px 10px;cursor:pointer;font-size:12px}.app.app-edit3d .edit-placement-bar button:hover{background:#353535}.hierarchy-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--editor-border)}.hierarchy-header h3{margin:0;font-size:18px;font-weight:700;color:var(--editor-text);letter-spacing:-.02em}.app.app-edit3d .edit3d-view-toolbar{position:fixed;top:120px;right:calc(var(--inspector-width) + 12px);z-index:35;display:flex;flex-direction:column;gap:6px;pointer-events:auto;transition:right .22s cubic-bezier(.4,0,.2,1)}.app.app-edit3d .edit3d-view-toolbar.is-inspector-collapsed{right:12px}.app.app-edit3d .edit3d-view-toolbar-group{display:grid;grid-auto-flow:row;gap:4px;padding:6px;border-radius:var(--editor-control-radius);background:#141414e6;border:1px solid var(--editor-section-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 12px #00000059}.app.app-edit3d .edit3d-view-toolbar-group button{width:34px;height:34px;border:none;border-radius:var(--editor-control-radius);background:var(--editor-bg-secondary);color:var(--editor-text-muted);cursor:pointer;font-size:14px;font-weight:600;transition:all .15s ease;display:flex;align-items:center;justify-content:center;font-family:inherit}.app.app-edit3d .edit3d-view-toolbar-group button:hover{background:var(--editor-bg-hover);color:var(--editor-text)}.app.app-edit3d .edit3d-view-toolbar-group button.active{background:var(--editor-accent);color:#fff}.app.app-edit3d .edit3d-view-gizmo-widget{display:block;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 4px 12px rgba(0,0,0,.35))}.app.app-edit3d .edit3d-view-gizmo-bg{fill:#14141499;stroke:#ffffff0d;stroke-width:1}.app.app-edit3d .edit3d-view-gizmo-axis{cursor:pointer;transition:filter .15s ease}.app.app-edit3d .edit3d-view-gizmo-axis:hover{filter:brightness(1.25)}.hierarchy-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;min-height:150px;max-height:none;flex-grow:1;padding-right:6px;scrollbar-width:thin;scrollbar-color:var(--editor-scrollbar) var(--editor-scrollbar-track)}.hierarchy-list.is-disabled{opacity:.55;pointer-events:none}.hierarchy-empty{color:var(--editor-text-muted);font-size:13px;text-align:center;padding:24px;border-radius:var(--editor-card-radius);background:var(--editor-section-bg);border:1px solid var(--editor-section-border)}.hierarchy-item{display:flex;justify-content:space-between;align-items:center;min-height:64px;padding:14px;border-radius:18px;background:var(--editor-bg-tertiary);cursor:pointer;transition:all .15s ease;border:1px solid var(--editor-border);box-sizing:border-box;color:var(--editor-text)}.hierarchy-item:hover{background:var(--editor-bg-hover);border-color:var(--editor-border-strong)}.hierarchy-item.selected{background:#303030;border-color:#6a6a6a;box-shadow:inset 0 0 0 1px #ffffff0a}.hierarchy-item-name{color:var(--editor-text);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.waypoint-pause-input-wrap{display:flex;align-items:center;gap:4px;margin-left:10px;min-width:90px;justify-content:center;padding:2px 8px;border-radius:999px;background:var(--editor-input-bg);border:1px solid var(--editor-border);color:#7f7f7f;flex-shrink:0}.waypoint-pause-input-wrap.is-active{color:#f2f2f2;border-color:#d9d9d9;background:#ffffff0f}.waypoint-pause-input{width:34px;border:none;background:transparent;color:inherit;font-size:12px;text-align:center;outline:none;appearance:textfield;-moz-appearance:textfield}.waypoint-pause-input::-webkit-outer-spin-button,.waypoint-pause-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.waypoint-list{gap:6px}.waypoint-list .hierarchy-item{min-height:42px;padding:8px 12px;border-radius:14px}.waypoint-list .hierarchy-item-name{font-size:13px;font-weight:600}.hierarchy-item-delete{width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--editor-text-muted);cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s ease}.hierarchy-item:hover .hierarchy-item-delete{opacity:1}.hierarchy-item-delete:hover{background:#ef5350;color:#fff}.hierarchy-add-buttons{display:flex;gap:8px;padding:12px 0;border-top:1px solid var(--editor-border)}.hierarchy-add-buttons button{flex:1;height:42px;padding:0 12px;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.hierarchy-add-buttons .local-btn{background:var(--editor-bg-secondary);color:var(--editor-text);border:1px solid var(--editor-border)}.hierarchy-add-buttons .local-btn:hover{background:var(--editor-bg-hover);border-color:var(--editor-accent)}.hierarchy-add-buttons .library-btn{background:#4caf50;color:#fff}.hierarchy-add-buttons .library-btn:hover{background:#66bb6a}.hierarchy-add{display:none}.hierarchy-footer{padding-top:12px;border-top:1px solid var(--editor-border)}.hierarchy-export-btn{width:100%;padding:14px 16px;border:1px solid var(--editor-border);border-radius:16px;background:var(--editor-bg-tertiary);color:var(--editor-text);cursor:pointer;font-size:15px;font-weight:600;transition:all .2s ease}.hierarchy-export-btn:hover{background:var(--editor-bg-hover);border-color:var(--editor-border-strong)}.hierarchy-upload-link{display:block;margin-top:8px;color:#7fd9ff;font-size:11px;word-break:break-all;text-decoration:none}.hierarchy-upload-link:hover{text-decoration:underline}.app.app-edit3d .editor-menu-bar{position:fixed;top:0;left:0;right:0;height:36px;display:flex;align-items:center;padding:0 8px;background:#141414f7;border-bottom:1px solid var(--editor-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:300;-webkit-user-select:none;user-select:none}.editor-menu-bar-items{display:flex;align-items:center;gap:2px}.editor-menu-entry{position:relative}.editor-menu-entry-trigger{height:26px;padding:0 10px;border-radius:5px;border:none;background:transparent;color:var(--editor-text);font-size:13px;font-weight:400;cursor:pointer;transition:background .12s ease;white-space:nowrap}.editor-menu-entry-trigger:hover,.editor-menu-entry-trigger.open{background:#ffffff1a}.editor-menu-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:210px;background:#1e1e1e;border:1px solid var(--editor-border);border-radius:8px;box-shadow:0 8px 24px #0000008c;padding:4px;z-index:400}.editor-menu-dropdown-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;border-radius:5px;border:none;background:transparent;color:var(--editor-text);font-size:13px;text-align:left;cursor:pointer;transition:background .1s ease;text-decoration:none}.editor-menu-dropdown-item:hover:not(:disabled){background:#ffffff14}.editor-menu-dropdown-item:disabled{opacity:.45;cursor:not-allowed}.editor-menu-dropdown-hint{color:var(--editor-text-muted);font-size:11px}.editor-menu-dropdown-separator{height:1px;background:var(--editor-border);margin:4px 0}.editor-menu-bar-title{position:absolute;left:50%;transform:translate(-50%);font-size:12px;font-weight:500;color:var(--editor-text-muted);pointer-events:none;white-space:nowrap;overflow:hidden;max-width:40%;text-overflow:ellipsis}.editor-rename-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:500;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.editor-rename-panel{width:340px;padding:24px;background:#1e1e1e;border:1px solid var(--editor-border-strong);border-radius:14px;box-shadow:0 20px 60px #0009;display:flex;flex-direction:column;gap:16px}.editor-url-panel{width:440px}.editor-url-hint{font-size:11px;color:var(--editor-text-muted);letter-spacing:.05em;margin-top:-8px}.editor-rename-heading{font-size:14px;font-weight:600;color:var(--editor-text)}.editor-rename-input{width:100%;padding:9px 12px;background:var(--editor-input-bg);border:1px solid var(--editor-border);border-radius:8px;color:var(--editor-text);font-size:13px;outline:none;box-sizing:border-box;transition:border-color .15s ease}.editor-rename-input:focus{border-color:var(--editor-accent)}.editor-rename-input::placeholder{color:var(--editor-text-muted)}.editor-rename-actions{display:flex;justify-content:flex-end;gap:8px}.editor-rename-btn{height:32px;padding:0 16px;border-radius:8px;border:none;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s ease}.editor-rename-btn:hover:not(:disabled){opacity:.85}.editor-rename-btn:disabled{opacity:.4;cursor:not-allowed}.editor-rename-btn-cancel{background:var(--editor-bg-tertiary);color:var(--editor-text-muted)}.editor-rename-btn-confirm{background:var(--editor-accent);color:#fff}.layout-controls{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--editor-section-border);border-radius:18px;background:var(--editor-section-bg)}.layout-controls-row{display:flex;gap:8px}.layout-btn{flex:1;height:34px;border-radius:10px;border:1px solid var(--editor-border);background:var(--editor-bg-secondary);color:var(--editor-text);font-size:12px;font-weight:600;cursor:pointer;transition:all .18s ease}.layout-btn:hover:not(:disabled){background:var(--editor-bg-hover)}.layout-btn-primary{border-color:#4caf50;color:#d8f5df}.layout-select{height:38px;border-radius:12px;border:1px solid var(--editor-border);background:var(--editor-input-bg);color:var(--editor-text);padding:0 10px;font-size:12px;outline:none;transition:border-color .18s ease,background .18s ease}.layout-select:focus{border-color:var(--editor-border-strong)}.layout-status{font-size:11px;color:var(--editor-text-muted)}.layout-list{display:flex;flex-direction:column;gap:2px;max-height:180px;overflow-y:auto;padding:4px;border-radius:10px;background:var(--editor-input-bg);border:1px solid var(--editor-border)}.layout-list-empty{padding:8px 10px;font-size:11px;color:var(--editor-text-muted);font-style:italic;text-align:center}.layout-list-item{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;font-size:12px;color:var(--editor-text);cursor:pointer;transition:background .12s ease,color .12s ease}.layout-list-item:hover{background:var(--editor-bg-hover)}.layout-list-item.selected{background:var(--editor-accent);color:#fff}.layout-list-item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout-list-item-dirty{font-size:16px;line-height:1;color:#ffc857}.layout-room-row{display:flex;align-items:center;gap:8px;margin-top:6px}.layout-room-label{font-size:11px;color:var(--editor-text-muted);flex-shrink:0;min-width:34px}.layout-room-select{flex:1;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--editor-border);background:var(--editor-input-bg);color:var(--editor-text);font-size:12px;cursor:pointer;transition:border-color .15s ease}.layout-room-select:focus{outline:none;border-color:var(--editor-border-strong)}.hierarchy-add-buttons button:disabled,.layout-btn:disabled,.hierarchy-export-btn:disabled{opacity:.45;cursor:not-allowed}.hierarchy-help{padding:16px;background:var(--editor-section-bg);border:1px solid var(--editor-section-border);border-radius:18px;font-size:11px;color:var(--editor-text-muted)}.hierarchy-help p{margin:0 0 10px;line-height:1.45}.hierarchy-help p:last-child{margin-bottom:0}.hierarchy-help strong{color:var(--editor-text);font-size:13px}.tour-tab,.layout-btn,.layout-select,.hierarchy-export-btn,.media-add-btn,.media-upload-modal-header h4,.media-upload-modal-header p,.media-upload-url-group label,.media-upload-url-group input,.media-upload-modal-actions button,.media-inspector-title,.media-inspector-row label,.media-inspector-row input[type=text],.media-inspector-row input[type=number],.media-inspector-checks label,.hierarchy-help,.hierarchy-help p,.hierarchy-item-name,.waypoint-pause-input-wrap,.waypoint-pause-input{color:var(--editor-text)}.tour-tab,.media-upload-modal-header p,.media-inspector-row label,.hierarchy-help,.hierarchy-help p,.layout-status{color:var(--editor-text-muted)}.add-dropdown,.add-dropdown-menu{display:none}.app.app-edit3d .editor-mode-toggle{position:fixed;top:44px;left:50%;transform:translate(-50%);display:flex;gap:4px;padding:4px;border-radius:10px;background:#1e1e1e;border:1px solid #3d3d3d;box-shadow:0 4px 16px #0006;z-index:200}.editor-mode-btn{display:flex;align-items:center;gap:6px;padding:6px 16px;border-radius:7px;border:1px solid transparent;background:transparent;color:#9e9e9e;font-size:13px;font-weight:500;cursor:pointer;transition:all .18s ease;white-space:nowrap}.editor-mode-btn:hover{background:#2a2a2a;color:#e0e0e0}.editor-mode-btn.active{background:#2a2a2a;border-color:#4caf50;color:#e0e0e0}.editor-mode-icon{font-size:12px}.editor-mode-step{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#3a3a3a;color:silver;font-size:10px;font-weight:700;line-height:1}.editor-mode-btn.active .editor-mode-step{background:#4caf50;color:#fff}.tour-tabs{display:flex;gap:4px;padding:4px;background:#ffffff08;border-radius:16px;border:1px solid var(--editor-border)}.tour-tab{flex:1;padding:8px 10px;border-radius:10px;border:none;background:transparent;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;color:var(--editor-text-muted)}.tour-tab:hover{color:var(--editor-text)}.tour-tab.active{background:var(--editor-bg-tertiary);color:var(--editor-text)}.hierarchy-item-icon{margin-right:6px;font-size:14px;flex-shrink:0}.media-add-buttons{display:flex;gap:6px;padding:10px 0 4px;border-top:1px solid var(--editor-border)}.media-add-btn{flex:1;height:36px;border-radius:12px;border:1px solid var(--editor-border);background:var(--editor-bg-secondary);color:var(--editor-text);font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;transition:all .15s ease}.media-add-btn:hover{background:var(--editor-bg-hover)}.media-add-btn--image,.media-upload-primary{border-color:#5c8a4a}.media-add-btn--image:hover,.media-upload-primary:hover{border-color:#4caf50}.media-add-btn--video{border-color:#7b5ea7}.media-add-btn--video:hover{border-color:#9c6dd1}.media-add-btn--audio{border-color:#5e7ea8}.media-add-btn--audio:hover{border-color:#7aafd6}.media-inspector-wrapper{border:1px solid var(--editor-section-border);border-radius:18px;overflow:hidden;flex-shrink:0;background:var(--editor-section-bg)}.media-inspector-title{padding:10px 14px;background:#ffffff08;border-bottom:1px solid var(--editor-section-border);font-size:12px;font-weight:600;color:var(--editor-text)}.media-inspector{padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:transparent}.media-inspector-row{display:flex;flex-direction:column;gap:4px}.media-inspector-row label{font-size:11px;color:var(--editor-text-muted);text-transform:uppercase;letter-spacing:.5px}.media-inspector-row input[type=text],.media-inspector-row input[type=number],.media-inspector-row textarea{height:36px;padding:0 10px;border-radius:12px;border:1px solid var(--editor-border);background:var(--editor-input-bg);color:var(--editor-text);font-size:13px;outline:none;width:100%;box-sizing:border-box;transition:border-color .18s ease,background .18s ease}.media-inspector-row input:focus,.media-inspector-row textarea:focus{border-color:#4caf50}.media-inspector-row--two{flex-direction:row;gap:8px}.media-inspector-row--two>div{flex:1;display:flex;flex-direction:column;gap:4px}.media-inspector-checks{display:flex;flex-wrap:wrap;gap:8px}.media-inspector-checks label{display:flex;align-items:center;gap:5px;font-size:12px;color:#e0e0e0;cursor:pointer}.media-inspector-checks input[type=checkbox]{accent-color:#4CAF50}.media-drop-zone{margin:0;padding:16px;border:1px dashed var(--editor-border-strong);border-radius:16px;background:#ffffff08;transition:all .2s ease;cursor:pointer}.media-drop-zone.dragging{border-color:#6c8eff;background:#6c8eff1a}.media-drop-zone.uploading{border-color:orange;background:#ffa5001a}.media-drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--editor-text-muted);font-size:12px}.media-drop-zone.dragging .media-drop-zone-content{color:#6c8eff}.media-drop-zone .drop-icon{font-size:24px}.media-drop-zone .drop-hint{font-size:10px;color:#6f6f6f}.upload-spinner{font-size:20px}.media-upload-modal-backdrop{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;background:#0000008c}.media-upload-modal{width:min(460px,calc(100vw - 32px));border-radius:18px;border:1px solid var(--editor-border);background:#171717;box-shadow:0 18px 48px #00000073;display:flex;flex-direction:column;gap:14px;padding:16px}.media-upload-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.media-upload-modal-header h4{margin:0 0 4px;font-size:16px;color:#f2f2f2}.media-upload-modal-header p{margin:0;color:#9e9e9e;font-size:12px;line-height:1.45}.media-upload-modal-close{width:32px;height:32px;border:1px solid #3d3d3d;border-radius:8px;background:#242424;color:#e0e0e0;font-size:18px;cursor:pointer}.media-upload-modal-close:hover{background:#303030}.media-upload-modal-divider{position:relative;text-align:center}.media-upload-modal-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#2f2f2f}.media-upload-modal-divider span{position:relative;display:inline-block;padding:0 10px;background:#171717;color:#777;font-size:11px;letter-spacing:.08em}.media-upload-url-group{display:flex;flex-direction:column;gap:6px}.media-upload-url-group label{color:#b3b3b3;font-size:12px;font-weight:500}.media-upload-url-group input,.media-upload-url-group textarea{height:40px;border:1px solid var(--editor-border);border-radius:12px;background:var(--editor-input-bg);color:#f0f0f0;padding:0 10px;font-size:13px;outline:none}.media-upload-url-group input:focus,.media-upload-url-group textarea:focus{border-color:#4caf50}.media-inspector-row textarea,.media-upload-url-group textarea{min-height:76px;padding:10px;resize:vertical;line-height:1.35}.media-display-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px}.media-display-toggle button{min-height:34px;border:1px solid var(--editor-border);border-radius:12px;background:#ffffff0a;color:var(--editor-text-muted);cursor:pointer;font-size:12px;font-weight:600}.media-display-toggle button.active{border-color:#4caf50;background:#4caf5029;color:#f2fff3}.media-upload-hint{color:var(--editor-text-muted);font-size:11px;line-height:1.35}.hierarchy-item-subtitle{display:block;margin-top:2px;color:var(--editor-text-muted);font-size:10px;font-weight:500}.media-upload-modal-actions{display:flex;justify-content:flex-end;gap:8px}.media-upload-modal-actions button{min-width:108px;height:36px;border-radius:12px;border:1px solid var(--editor-border);cursor:pointer;font-size:12px;font-weight:600}.media-upload-secondary{background:#252525;color:#d7d7d7}.media-upload-secondary:hover{background:#303030}.media-upload-primary{background:#2f4d29;color:#f2f2f2}.media-upload-primary:hover{background:#395f32}.media-upload-modal-actions button:disabled,.media-upload-modal-close:disabled{opacity:.6;cursor:default}.app.app-edit3d .inspector-panel{position:fixed;top:36px;right:0;bottom:0;width:var(--inspector-width);display:flex;flex-direction:row;z-index:100;color:var(--editor-text);transition:width .2s ease,transform .2s ease;pointer-events:auto}.app.app-edit3d .inspector-panel.is-collapsed{width:0}.app.app-edit3d .inspector-panel-inner{flex:1;min-width:0;display:flex;flex-direction:column;background:#161616fa;border-left:1px solid var(--editor-border);box-shadow:-8px 0 24px #00000059;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden;transition:transform .2s ease,opacity .2s ease}.app.app-edit3d .inspector-panel.is-collapsed .inspector-panel-inner{transform:translate(100%);pointer-events:none;opacity:0}.app.app-edit3d .inspector-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--editor-border);background:#ffffff05}.app.app-edit3d .inspector-panel-title{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--editor-text);text-transform:uppercase}.app.app-edit3d .inspector-panel-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding:12px 14px 18px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--editor-scrollbar) var(--editor-scrollbar-track)}.app.app-edit3d .inspector-panel-body::-webkit-scrollbar{width:10px}.app.app-edit3d .inspector-panel-body::-webkit-scrollbar-track{background:var(--editor-scrollbar-track);border-radius:999px}.app.app-edit3d .inspector-panel-body::-webkit-scrollbar-thumb{background:var(--editor-scrollbar);border-radius:999px;border:2px solid transparent;background-clip:padding-box}.app.app-edit3d .inspector-collapse-toggle{position:absolute;top:50%;right:100%;transform:translateY(-50%);width:20px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:8px 0 0 8px;border:1px solid var(--editor-border);border-right:none;background:#161616fa;color:var(--editor-text-muted);cursor:pointer;z-index:101;padding:0;transition:background .15s,color .15s}.app.app-edit3d .inspector-collapse-toggle:hover{background:#282828fa;color:var(--editor-text)}.app.app-edit3d .inspector-collapse-toggle-icon{font-size:16px;line-height:1;font-weight:600}.app.app-edit3d .inspector-panel.is-left{left:0;right:auto}.app.app-edit3d .inspector-panel.is-left .inspector-panel-inner{border-left:none;border-right:1px solid var(--editor-border);box-shadow:8px 0 24px #00000059}.app.app-edit3d .inspector-panel.is-left.is-collapsed .inspector-panel-inner{transform:translate(-100%)}.app.app-edit3d .inspector-panel.is-left .inspector-collapse-toggle{right:auto;left:100%;border-radius:0 8px 8px 0;border:1px solid var(--editor-border);border-left:none}.app.app-edit3d .inspector-panel.is-left .inspector-panel-body{overflow:hidden;padding:0;gap:0}.app.app-edit3d .editor-camera-hud{position:fixed;bottom:12px;left:calc(var(--inspector-width) + 12px);z-index:90;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:6px;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.3;pointer-events:none;-webkit-user-select:none;user-select:none;transition:left .2s ease;text-shadow:0 1px 2px rgba(0,0,0,.6)}.app.app-edit3d .editor-camera-hud.is-panel-collapsed{left:12px}.app.app-edit3d .editor-camera-hud-row{display:flex;gap:8px;align-items:baseline}.app.app-edit3d .editor-camera-hud-label{color:#ffffff8c;text-transform:uppercase;letter-spacing:.06em;font-size:10px;min-width:24px}.app.app-edit3d .editor-camera-hud-value{color:#fff;font-variant-numeric:tabular-nums}.hierarchy-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding:12px 14px;gap:12px}.inspector-section{display:flex;flex-direction:column;gap:6px}.inspector-section-flex{flex:1;min-height:0;overflow:hidden}.inspector-section-header{font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--editor-text-muted);display:flex;align-items:center;gap:6px;padding:4px 0 2px;border-bottom:1px solid var(--editor-border)}.inspector-section-count{margin-left:auto;background:var(--editor-bg-tertiary);border-radius:10px;padding:1px 6px;font-size:10px;color:var(--editor-text-muted)}.inspector-section-body{display:flex;flex-direction:column;gap:6px}.inspector-section-body-row{flex-direction:row;gap:6px}.inspector-action-btn{flex:1;padding:7px 10px;border-radius:8px;border:1px solid var(--editor-border);background:var(--editor-bg-secondary);color:var(--editor-text);font-size:12px;cursor:pointer;transition:background .15s,border-color .15s}.inspector-action-btn:hover:not(:disabled){background:var(--editor-bg-hover);border-color:var(--editor-border-strong)}.inspector-action-btn:disabled{opacity:.4;cursor:default}.inspector-action-btn-primary{background:var(--editor-accent);border-color:var(--editor-accent);color:#fff;font-weight:600}.inspector-action-btn-primary:hover:not(:disabled){background:var(--editor-accent-hover);border-color:var(--editor-accent-hover)}.inspector-action-btn-danger{background:transparent;border-color:var(--editor-danger);color:var(--editor-danger)}.inspector-action-btn-danger:hover:not(:disabled){background:#ef53501f}.inspector-action-btn-preview{background:#ffffff0f;border-color:var(--editor-border-strong);color:var(--editor-text);font-weight:600}.inspector-action-btn-preview:hover:not(:disabled){background:#ffffff1f}.inspector-hint{font-size:11px;color:var(--editor-text-muted);padding:2px 0}.inspector-hint-warn{color:#ffa726}.inspector-waypoint-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;max-height:320px;scrollbar-width:thin;scrollbar-color:var(--editor-scrollbar) var(--editor-scrollbar-track)}.inspector-waypoint-row{border-radius:8px;padding:6px 8px;cursor:pointer;background:var(--editor-bg-secondary);border:1px solid transparent;transition:background .12s,border-color .12s;-webkit-user-select:none;user-select:none}.inspector-waypoint-row:hover{background:var(--editor-bg-hover)}.inspector-waypoint-row.selected{border-color:var(--editor-accent);background:#4caf501a}.inspector-waypoint-label{display:flex;align-items:center;gap:8px}.inspector-waypoint-index{font-size:10px;color:var(--editor-text-muted);background:var(--editor-bg-tertiary);border-radius:4px;padding:1px 5px;min-width:20px;text-align:center}.inspector-waypoint-name{font-size:12px;color:var(--editor-text)}.inspector-waypoint-detail{margin-top:8px;display:flex;flex-direction:column;gap:6px}.inspector-field-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--editor-text-muted);gap:8px}.inspector-field-input{width:80px;padding:3px 6px;border-radius:6px;border:1px solid var(--editor-border);background:var(--editor-input-bg);color:var(--editor-text);font-size:11px;text-align:right}.inspector-field-input:focus{outline:none;border-color:var(--editor-accent)}.inspector-waypoint-pos{font-size:10px;color:var(--editor-text-muted);font-family:monospace}.inspector-transform{gap:8px}.inspector-transform-row{display:flex;align-items:center;gap:10px;padding:4px 0}.inspector-transform-row.is-disabled{opacity:.45;pointer-events:none}.inspector-transform-label{display:flex;align-items:baseline;gap:4px;width:64px;flex-shrink:0;font-size:11px;color:var(--editor-text-muted);text-transform:uppercase;letter-spacing:.04em}.inspector-transform-unit{font-size:10px;color:var(--editor-text-muted);opacity:.7}.inspector-transform-axes{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0}.inspector-axis{display:flex;align-items:center;gap:4px;background:var(--editor-input-bg);border:1px solid var(--editor-border);border-radius:6px;padding:2px 4px 2px 6px;min-width:0}.inspector-axis:focus-within{border-color:var(--editor-accent)}.inspector-axis-label{font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--editor-text-muted);flex-shrink:0}.inspector-axis-x .inspector-axis-label{color:#f06363}.inspector-axis-y .inspector-axis-label{color:#6dc26d}.inspector-axis-z .inspector-axis-label{color:#5b9dff}.inspector-axis-input{flex:1;min-width:0;width:100%;border:none;outline:none;background:transparent;color:var(--editor-text);font-size:11px;font-family:inherit;padding:4px 0;text-align:right;-moz-appearance:textfield}.inspector-axis-input::-webkit-outer-spin-button,.inspector-axis-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.inspector-axis-input:disabled{color:var(--editor-text-muted);cursor:not-allowed}.inspector-action-btn.is-active{background:var(--editor-accent);border-color:var(--editor-accent);color:#fff}.inspector-section-action{margin-left:auto;background:transparent;color:var(--editor-text-muted);border:1px solid var(--editor-border);border-radius:6px;padding:2px 8px;font-size:10px;cursor:pointer}.inspector-section-action:hover{background:var(--editor-bg-hover);color:var(--editor-text)}.inspector-selection-name{font-size:13px;font-weight:600;color:var(--editor-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inspector-selection-meta{font-size:10px;color:var(--editor-text-muted);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inspector-field-row{display:flex;align-items:center;gap:8px;margin-top:10px}.inspector-field-label{font-size:11px;color:var(--editor-text-muted);flex-shrink:0;min-width:36px}.inspector-room-select{flex:1;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--editor-border);background:var(--editor-bg-tertiary);color:var(--editor-text);font-size:12px;cursor:pointer;transition:border-color .15s ease}.inspector-room-select:focus{outline:none;border-color:var(--editor-border-strong)}.inspector-placeholder{display:flex;flex-direction:column;gap:8px;padding:16px 4px;color:var(--editor-text-muted);font-size:12px;line-height:1.4}.inspector-field{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--editor-text-muted)}.inspector-field>span{font-weight:600;letter-spacing:.04em}.inspector-field input[type=text],.inspector-field input[type=number],.inspector-field textarea,.inspector-field select{width:100%;padding:6px 8px;border-radius:6px;border:1px solid var(--editor-border);background:var(--editor-bg-secondary);color:var(--editor-text);font-size:12px;font-family:inherit;box-sizing:border-box}.inspector-field textarea{resize:vertical;min-height:52px}.inspector-field input:focus,.inspector-field textarea:focus,.inspector-field select:focus{outline:none;border-color:var(--editor-accent)}.rooms-picking-bar{display:flex;flex-direction:column;gap:6px;padding:10px 12px;margin:8px 12px;border-radius:8px;background:var(--editor-bg-secondary);border:1px solid var(--editor-accent);color:var(--editor-text);font-size:12px;line-height:1.4}.rooms-picking-bar strong{font-size:12px;color:var(--editor-accent)}.rooms-panel .hierarchy-item small{color:var(--editor-text-muted);font-size:10px}.layout-gen-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.layout-gen-panel{display:flex;flex-direction:column;gap:0;width:min(560px,96vw);max-height:92vh;overflow-y:auto;background:var(--editor-bg);border:1px solid var(--editor-border);border-radius:var(--editor-card-radius);box-shadow:0 24px 48px #0009;color:var(--editor-text)}.layout-gen-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--editor-border);flex-shrink:0}.layout-gen-title{font-size:15px;font-weight:600;color:var(--editor-text)}.layout-gen-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--editor-text-muted);cursor:pointer;font-size:18px;transition:background .15s,color .15s}.layout-gen-close:hover{background:var(--editor-bg-hover);color:var(--editor-text)}.layout-gen-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:20px}.layout-gen-preset-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;border-radius:var(--editor-control-radius);border:1px solid var(--editor-border);background:var(--editor-bg-secondary);color:var(--editor-text);cursor:pointer;text-align:center;transition:background .15s,border-color .15s}.layout-gen-preset-card:hover{background:var(--editor-bg-hover);border-color:var(--editor-accent)}.layout-gen-preset-icon{font-size:32px;color:var(--editor-accent)}.layout-gen-preset-name{font-size:14px;font-weight:600}.layout-gen-preset-desc{font-size:11px;color:var(--editor-text-muted);line-height:1.4}.layout-gen-form{display:flex;flex-direction:column;gap:10px;padding:16px 20px 0}.layout-gen-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.layout-gen-field{display:flex;flex-direction:column;gap:4px}.layout-gen-field-full{grid-column:1 / -1}.layout-gen-label{font-size:11px;color:var(--editor-text-muted);letter-spacing:.03em}.layout-gen-input,.layout-gen-select{padding:6px 10px;border-radius:6px;border:1px solid var(--editor-border);background:var(--editor-input-bg);color:var(--editor-text);font-family:inherit;font-size:13px;outline:none;transition:border-color .15s}.layout-gen-input:focus,.layout-gen-select:focus{border-color:var(--editor-accent)}.layout-gen-input.is-error{border-color:var(--editor-danger)}.layout-gen-select{cursor:pointer}.layout-gen-count-badge{font-size:12px;color:var(--editor-text-muted);text-align:center;padding:12px 20px 0}.layout-gen-count-badge strong{color:var(--editor-accent)}.layout-gen-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--editor-border);margin-top:12px}.layout-gen-btn{padding:8px 18px;border-radius:var(--editor-control-radius);border:none;cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s}.layout-gen-btn-back{background:var(--editor-bg-secondary);color:var(--editor-text);border:1px solid var(--editor-border)}.layout-gen-btn-back:hover{background:var(--editor-bg-hover)}.layout-gen-btn-generate{background:var(--editor-accent);color:#fff}.layout-gen-btn-generate:hover:not(:disabled){background:var(--editor-accent-hover)}.layout-gen-btn-generate:disabled{opacity:.4;cursor:not-allowed}.inspector-label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--editor-text-muted)}.inspector-input{width:100%;padding:5px 8px;border-radius:6px;border:1px solid var(--editor-border);background:var(--editor-bg-secondary);color:var(--editor-text);font-size:12px;font-family:inherit;box-sizing:border-box}.inspector-input:focus{outline:none;border-color:var(--editor-accent)}.inspector-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inspector-url-display{font-size:10px;color:var(--editor-text-muted);word-break:break-all;padding:4px 6px;background:var(--editor-bg-secondary);border-radius:4px;border:1px solid var(--editor-border);-webkit-user-select:all;user-select:all}.hierarchy-item-theater{border-left:2px solid var(--editor-accent)}.hierarchy-item-badge{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--editor-accent);color:#fff;border-radius:3px;padding:1px 4px;flex-shrink:0;margin-right:4px}.hierarchy-item-meta{font-size:10px;color:var(--editor-text-muted);margin-left:6px;font-weight:400}.layout-create-row{display:flex;align-items:center;gap:6px}.layout-create-input{flex:1;height:34px;padding:0 10px;border-radius:10px;border:1px solid var(--editor-accent);background:var(--editor-input-bg);color:var(--editor-text);font-size:12px;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s}.layout-create-input:focus{border-color:var(--editor-accent);box-shadow:0 0 0 2px rgba(var(--editor-accent-rgb, 99, 102, 241),.18)}.layout-gen-hint{font-size:11px;color:var(--editor-text-muted);padding:6px 10px;background:var(--editor-bg-secondary);border-radius:6px;border:1px solid var(--editor-border);line-height:1.4;grid-column:1 / -1}.layout-gen-target-badge{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--editor-text-primary, #e0e0e0);padding:8px 12px;background:var(--editor-bg-secondary);border-radius:6px;border:1px solid var(--editor-border);border-left:3px solid var(--editor-accent, #4caf8a);line-height:1.4;grid-column:1 / -1}.layout-gen-target-icon{font-size:18px!important;color:var(--editor-accent, #4caf8a);flex-shrink:0}.layout-gen-origin-badge{font-size:11px;font-family:ui-monospace,Cascadia Code,Source Code Pro,monospace;color:var(--editor-accent, #4caf8a);padding:6px 10px;background:color-mix(in srgb,var(--editor-accent, #4caf8a) 8%,var(--editor-bg-secondary));border-radius:6px;border:1px solid color-mix(in srgb,var(--editor-accent, #4caf8a) 30%,transparent);line-height:1.4;grid-column:1 / -1}.editor-about-panel{width:520px;max-height:80vh;overflow-y:auto}.editor-about-table{width:100%;border-collapse:collapse;font-size:12px}.editor-about-table tr+tr td{border-top:1px solid var(--editor-border)}.editor-about-table td{padding:7px 8px;vertical-align:middle;color:var(--editor-text)}.editor-about-key{font-family:ui-monospace,SF Mono,monospace;font-size:11px;font-weight:600;white-space:nowrap;color:var(--editor-accent);background:var(--editor-bg-secondary);border:1px solid var(--editor-border);border-radius:4px;padding:2px 6px;width:1%}:root{--pb-primary: var(--m3-primary, #306a43);--pb-on-primary: var(--m3-on-primary, #ffffff);--pb-text: var(--m3-text, #1a1d1b);--pb-text-muted: var(--m3-text-muted, #6a716d);--pb-surface: rgba(255, 255, 255, .92);--pb-divider: rgba(0, 0, 0, .1);--pb-shadow: 0 8px 24px rgba(0, 0, 0, .18);--pb-hover: rgba(0, 0, 0, .06)}.playback{--pb-bottom: 40px;--pb-peek: 22px;--pb-hidden-y: calc(100% + var(--pb-bottom) - var(--pb-peek));--pb-droplet-half: 38px;position:absolute;left:50%;bottom:var(--pb-bottom);transform:translate(-50%);z-index:5;display:inline-flex;align-items:center;gap:6px;padding:6px;border-radius:999px;clip-path:inset(0 0 0 0 round 999px);background:var(--pb-surface);backdrop-filter:blur(12px) saturate(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.1);box-shadow:var(--pb-shadow);pointer-events:auto;-webkit-user-select:none;user-select:none;opacity:1;will-change:transform,clip-path;transition:transform .62s cubic-bezier(.34,1.56,.64,1),clip-path .62s cubic-bezier(.34,1.56,.64,1),box-shadow .32s ease}.playback-hit-zone{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:var(--pb-hit-w, 360px);height:var(--pb-hit-h, 90px);z-index:4;background:transparent;pointer-events:auto}.playback-wrapper{position:absolute;inset:0;pointer-events:none;z-index:5}.playback-wrapper>.playback,.playback-wrapper>.playback-hit-zone{pointer-events:auto}.playback.is-idle.pb-mode-fade{opacity:.2;transition:opacity 1.2s ease}.playback.pb-mode-peek>button,.playback.pb-mode-peek>.pb-select,.playback.pb-mode-peek>.pb-layout-label,.playback.pb-mode-peek>.sep{transition:opacity .2s ease .36s}.playback.pb-mode-peek.is-idle>button,.playback.pb-mode-peek.is-idle>.pb-select,.playback.pb-mode-peek.is-idle>.pb-layout-label,.playback.pb-mode-peek.is-idle>.sep{opacity:0;pointer-events:none;transition:opacity .18s ease 0ms}.pb-droplet-icon{position:absolute;top:4px;left:50%;transform:translate(-50%);font-size:18px;line-height:1;color:var(--pb-text-muted);pointer-events:none;opacity:0;transition:opacity .18s ease 0ms}.playback.pb-mode-peek.is-idle .pb-droplet-icon{opacity:.85;transition:opacity .2s ease .36s}.playback[data-playback-theme=dark] .pb-droplet-icon{color:#ffffffb3}.playback.pb-mode-peek.is-idle{transform:translate(-50%,var(--pb-hidden-y));clip-path:inset(0 calc(50% - var(--pb-droplet-half)) 0 calc(50% - var(--pb-droplet-half)) round 999px);box-shadow:none}.playback button{width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--pb-text);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:background .15s ease,transform .15s ease,color .15s ease}.playback button:hover:not(:disabled){background:var(--pb-hover)}.playback button:active:not(:disabled){transform:scale(.94)}.playback button:disabled{opacity:.4;cursor:not-allowed}.playback button.with-label{width:auto;min-width:36px;height:36px;padding:0 14px 0 10px;border-radius:999px;gap:6px;display:inline-flex;align-items:center;font-size:13px;font-weight:500;color:var(--pb-text);white-space:nowrap}.playback button.with-label>.material-symbols-rounded{font-size:18px}.playback button.with-label.is-primary,.playback button.with-label.play{color:var(--pb-on-primary)}.playback button.pb-laser-btn{background:#141614c7;color:#fffffff5;border:1px solid rgba(255,255,255,.18);text-shadow:0 1px 4px rgba(0,0,0,.45);touch-action:none}.playback button.pb-laser-btn:hover:not(:disabled),.playback button.pb-laser-btn:active:not(:disabled){background:#141614e6}@media(hover:hover)and (pointer:fine)and (min-width:769px){.pb-touch-only{display:none!important}}.playback button>.material-symbols-rounded{font-size:20px;line-height:1}.playback button.is-primary,.playback button.play{background:var(--pb-primary);color:var(--pb-on-primary)}.playback button.is-primary:hover:not(:disabled),.playback button.play:hover:not(:disabled){background:color-mix(in srgb,var(--pb-primary) 88%,#000)}.playback .sep{width:1px;height:22px;background:var(--pb-divider);margin:0 4px;flex-shrink:0}.playback .pb-select{position:relative;display:inline-flex;align-items:center;height:32px}.playback .pb-select select{appearance:none;-webkit-appearance:none;border:none;background:transparent;color:var(--pb-text);padding:0 24px 0 10px;font:inherit;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border-radius:999px}.playback .pb-select select:hover{background:var(--pb-hover)}.playback .pb-select:after{content:"expand_more";font-family:Material Symbols Rounded;position:absolute;right:6px;font-size:16px;color:var(--pb-text-muted);pointer-events:none}.playback .pb-layout-label{font-size:12px;font-weight:600;color:var(--pb-text);max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.playback[data-playback-theme=dark]{background:#14161499;box-shadow:0 10px 26px #00000073}.playback[data-playback-theme=dark] button{color:#ffffffeb}.playback[data-playback-theme=dark] button:hover:not(:disabled){background:#ffffff1a}.playback[data-playback-theme=dark] .sep{background:#ffffff2e}.playback[data-playback-theme=dark] .pb-select select{color:#ffffffeb}.playback[data-playback-theme=dark] .pb-select:after{color:#fff9}.playback[data-playback-theme=dark] .pb-layout-label{color:#ffffffeb}@media(max-width:640px){.playback{gap:4px;padding:4px}.playback button{width:34px;height:34px}.playback button>.material-symbols-rounded{font-size:18px}.playback .sep{height:20px;margin:0 2px}}.settings-fab-wrapper{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);z-index:6;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none;font:13px/1.4 system-ui,-apple-system,Helvetica Neue,sans-serif}.settings-fab{pointer-events:auto;width:40px;height:40px;border:none;border-radius:999px;background:#14161cd9;color:#f3f4f6;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px #00000047;backdrop-filter:blur(12px) saturate(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.1);transition:background .16s ease,transform .16s ease}.settings-fab:hover{background:#222630e6}.settings-fab:active{transform:scale(.96)}.settings-fab.is-open{background:#222630f2}.settings-fab .material-symbols-rounded{font-size:22px;color:#f3f4f6}.settings-panel{pointer-events:auto;min-width:220px;max-width:calc(100vw - 24px);padding:12px 14px;border-radius:14px;background:#14161ceb;color:#f3f4f6;box-shadow:0 12px 36px #00000059;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);display:flex;flex-direction:column;gap:10px;transform-origin:top right;animation:settings-panel-in .18s cubic-bezier(.2,.8,.2,1)}@keyframes settings-panel-in{0%{opacity:0;transform:scale(.92) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.settings-panel-header{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#f3f4f68c}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-row-label{display:flex;flex-direction:column;gap:2px;font-size:13px}.settings-row-sub{font-size:11px;color:#f3f4f68c}.settings-toggle{--w: 38px;--h: 22px;--pad: 2px;--knob: calc(var(--h) - var(--pad) * 2);position:relative;width:var(--w);height:var(--h);border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;cursor:pointer;flex-shrink:0;padding:0;transition:background .18s ease,border-color .18s ease}.settings-toggle:after{content:"";position:absolute;top:var(--pad);left:var(--pad);width:var(--knob);height:var(--knob);border-radius:999px;background:#f3f4f6;box-shadow:0 1px 3px #0000004d;transition:transform .18s cubic-bezier(.2,.8,.2,1)}.settings-toggle.is-on{background:#5b8cff;border-color:#5b8cff}.settings-toggle.is-on:after{transform:translate(calc(var(--w) - var(--knob) - var(--pad) * 2))}.settings-toggle:disabled{opacity:.5;cursor:default}.settings-error{font-size:12px;color:#ffb4b4}:root{--agent-primary: #306a43;--agent-primary-glow: #7ed7a0;--agent-text: #1a1d1b;--agent-text-muted: #6a716d}.agent-quick-destinations-wrap{position:relative;pointer-events:auto}.agent-quick-popup-anchor{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:10}.agent-quick-popup{width:max-content;max-width:calc(100vw - 32px);display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:4px;padding:6px;border-radius:999px;background:#1416146b;border:1px solid rgba(255,255,255,.22);box-shadow:0 12px 28px #0003;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);z-index:10}.agent-quick-popup-item{border:none;background:transparent;text-align:center;padding:8px 14px;border-radius:999px;font:inherit;font-size:13px;font-weight:500;color:#fffffff0;cursor:pointer;white-space:nowrap;transition:background .12s ease;text-shadow:0 1px 4px rgba(0,0,0,.35)}.agent-quick-popup-item:hover{background:#ffffff1f}.agent-composer{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:4px;padding:6px;border-radius:999px;background:#fffffff2;box-shadow:0 12px 28px #0000002e;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);width:92px;transition:width .32s cubic-bezier(.4,0,.2,1),box-shadow .22s ease,background .22s ease}.agent-composer.is-expanded{width:380px;max-width:calc(100vw - 44px)}.agent-composer.is-listening{box-shadow:0 12px 28px #306a4347,0 0 0 2px #7ed7a073}.agent-composer-input{flex:1 1 0;min-width:0;width:0;padding:0;margin:0;border:none;outline:none;background:transparent;font:inherit;font-size:13px;color:var(--agent-text);height:36px;opacity:0;pointer-events:none;transition:padding .32s cubic-bezier(.4,0,.2,1),opacity .22s ease}.agent-composer.is-expanded .agent-composer-input{padding:0 8px;opacity:1;pointer-events:auto}.agent-composer-input::placeholder{color:var(--agent-text-muted)}.agent-composer-icon{width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--agent-text);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:transform .12s ease,background .15s ease,color .15s ease,opacity .15s ease}.agent-composer-icon:hover:not(:disabled){background:#0000000f}.agent-composer-icon:active:not(:disabled){transform:scale(.94)}.agent-composer-icon:disabled{opacity:.4;cursor:not-allowed}.agent-composer-icon .material-symbols-rounded{font-size:20px}.agent-composer-keyboard{color:var(--agent-text)}.agent-composer-keyboard.is-active{background:#00000014}.agent-composer-mic{background:var(--agent-primary);color:#fff;box-shadow:0 4px 12px #306a4352}.agent-composer-mic:hover:not(:disabled){background:color-mix(in srgb,var(--agent-primary) 88%,#000)}.agent-composer-mic.is-on{background:#c0392b;color:#fff;box-shadow:0 4px 12px #c0392b66;animation:agent-mic-pulse 1.2s infinite}.agent-composer-mic.is-on:hover:not(:disabled){background:#c0392b}.agent-composer-send{background:var(--agent-primary);color:#fff;box-shadow:0 4px 12px #306a4359}.agent-composer-send:hover:not(:disabled){background:color-mix(in srgb,var(--agent-primary) 88%,#000)}@keyframes agent-mic-pulse{0%,to{box-shadow:0 4px 12px #c0392b66}50%{box-shadow:0 4px 12px #c0392b66,0 0 0 6px #c0392b2e}}.agent-reply-anchor{position:fixed;left:0;right:0;bottom:180px;display:flex;justify-content:center;z-index:29;pointer-events:none}.agent-reply-wrap{position:relative;display:inline-flex;pointer-events:none}.agent-reply{position:relative;z-index:1;display:inline-flex;align-items:center;gap:12px;padding:10px 14px 10px 12px;border-radius:999px;background:#1416146b;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);color:#fff;font-size:14.5px;font-weight:400;line-height:1.4;box-shadow:0 12px 28px #0003;text-shadow:0 1px 4px rgba(0,0,0,.45);max-width:min(760px,calc(100vw - 60px));pointer-events:auto}.agent-reply-mark{width:22px;height:22px;border-radius:50%;border:1.25px solid rgba(255,255,255,.85);display:grid;place-items:center;flex-shrink:0;background:transparent}.agent-reply-mark svg{width:11px;height:11px;stroke:#fffffff2;stroke-width:1.4;fill:none;stroke-linecap:round;stroke-linejoin:round}.agent-reply-body{position:relative;white-space:normal;overflow:hidden;word-break:break-word}.agent-reply-text{color:#fffffff5}.agent-reply-caret{display:inline-block;width:1.5px;height:.95em;background:var(--agent-primary-glow);margin:0 1px -2px 3px;vertical-align:middle;animation:agent-caret-blink .85s steps(1) infinite;box-shadow:0 0 6px var(--agent-primary-glow)}@keyframes agent-caret-blink{50%{opacity:0}}.agent-reply-stop{display:inline;background:none;border:none;padding:0;margin:0;font:inherit;color:#ff8a7a;font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;text-decoration-color:#ff8a7a8c;cursor:pointer;text-shadow:0 1px 4px rgba(0,0,0,.35);transition:color .15s ease,text-decoration-color .15s ease;animation:agent-stop-in .28s ease backwards}.agent-reply-stop:hover{color:#ffa89b;text-decoration-color:#ffa89b}@keyframes agent-stop-in{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:blur(0)}}.agent-chip-row-anchor{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);z-index:2;pointer-events:none}.agent-chip-row{display:flex;gap:8px;pointer-events:auto;white-space:nowrap}.agent-chip-row button{border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#1416146b;color:#fffffff5;padding:8px 14px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:0 8px 20px #0000002e;text-shadow:0 1px 4px rgba(0,0,0,.45);transition:background .15s ease,border-color .15s ease}.agent-chip-row button:hover{background:#1416148f;border-color:#ffffff52}.agent-chip-row .agent-quick-destinations-wrap>button{background:#50b47852;border-color:#ffffff47}.agent-chip-row .agent-quick-destinations-wrap>button:hover{background:#50b47875;border-color:#ffffff6b}.agent-error-toast{position:fixed;left:50%;bottom:80px;transform:translate(-50%);z-index:31;padding:8px 14px;border-radius:999px;background:#c0392beb;color:#fff;font-size:12px;font-weight:600;box-shadow:0 8px 20px #00000038}@media(max-width:640px){.agent-composer{bottom:12px}.agent-composer.is-expanded{width:calc(100vw - 24px)}.agent-reply{font-size:13.5px;max-width:calc(100vw - 24px)}}.agent-debug-overlay{position:fixed;left:16px;top:16px;bottom:16px;z-index:31;width:min(360px,calc(100vw - 24px));display:flex;overflow:hidden}.agent-debug-card{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:#121915e0;color:#f2f6f1;box-shadow:0 16px 40px #00000047;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font-size:11px;line-height:1.35;flex:1 1 auto;min-height:0;overflow-y:auto}.agent-debug-header,.agent-debug-metric,.agent-debug-state-row{display:flex;align-items:center;justify-content:space-between}.agent-debug-section{display:flex;flex-direction:column;gap:4px}.agent-debug-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#e5eee5b8}.agent-debug-state-graph{width:100%;height:auto;overflow:visible}.agent-debug-graph-edge{fill:none;stroke:#c0d6c56b;stroke-width:3}.agent-debug-graph-edge.is-active{stroke:#53d28af2;stroke-width:4}.agent-debug-graph-node{fill:#ffffff0d;stroke:#a7bcae57;stroke-width:2}.agent-debug-graph-node.is-active{fill:#24663eb8;stroke:#53d28a;stroke-width:3}.agent-debug-graph-node.is-previous{fill:#52635852;stroke:#cddfd1ad}.agent-debug-graph-label{fill:#f7fbf7;font-size:11px;font-weight:700;letter-spacing:.02em}.agent-debug-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.agent-debug-metric{padding:5px 8px;border-radius:8px;background:#ffffff0d;font-size:10px;line-height:1.25;gap:6px}.agent-debug-metric span{color:#e5eee5b3}.agent-debug-metric strong{color:#fff;font-size:11px;text-align:right;word-break:break-word}.agent-debug-plan,.agent-debug-telemetry{padding:6px 8px;border-radius:8px;background:#ffffff0d;font-size:10px;line-height:1.35}.agent-debug-telemetry>div+div{margin-top:2px}.agent-debug-pre{margin:0;white-space:pre-wrap;word-break:break-word;font:inherit}@media(max-width:768px){.agent-debug-overlay{left:12px;right:12px;top:12px;width:auto}.agent-debug-grid{grid-template-columns:1fr}}.lcc-demo-root{width:100vw;height:100vh;overflow:hidden;margin:0;padding:0;background:#000;position:relative}.lcc-demo-root canvas{display:block}.lcc-demo-hud{position:fixed;left:12px;top:12px;z-index:10;background:#0009;color:#e2e8f0;font-size:12px;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;padding:8px 10px;border-radius:8px;line-height:1.4;pointer-events:none}:root{--conf-bg: #ffffff;--conf-accent: #1a1a1a;--conf-text: #333333;--conf-text-muted: #888888;--conf-btn-bg: #1a1a1a;--conf-btn-text: #ffffff;--conf-btn-bg-hover: #333333;--conf-btn-radius: 8px;--conf-btn-padding: 10px 20px;--conf-btn-font-size: 14px;--conf-btn-gap: 8px;--conf-loader-color: #555555;--conf-error-bg: #fff3f3;--conf-error-text: #cc0000;--conf-error-radius: 8px;--conf-modal-bg: rgba(0, 0, 0, .55);--conf-modal-card-bg: #ffffff;--conf-modal-radius: 16px;--conf-modal-padding: 32px;--conf-modal-shadow: 0 8px 40px rgba(0, 0, 0, .18);--conf-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--conf-font-size-base: 14px;--conf-font-size-sm: 12px;--conf-font-size-lg: 16px}.conf-root{position:relative;width:100%;height:100%;background:var(--conf-bg);font-family:var(--conf-font);overflow:hidden}.conf-canvas{display:block;width:100%;height:100%}.conf-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--conf-bg);color:var(--conf-loader-color);font-size:var(--conf-font-size-base);pointer-events:none}.conf-loader__spinner{width:36px;height:36px;border:3px solid #e0e0e0;border-top-color:var(--conf-accent);border-radius:50%;animation:conf-spin .8s linear infinite}@keyframes conf-spin{to{transform:rotate(360deg)}}.conf-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px}.conf-error__card{background:var(--conf-error-bg);color:var(--conf-error-text);border-radius:var(--conf-error-radius);padding:20px 24px;font-size:var(--conf-font-size-base);max-width:320px;text-align:center}.conf-ar-btn{position:absolute;top:calc(env(safe-area-inset-top,0px) + var(--conf-vv-top-offset, 0px) + 16px);right:calc(env(safe-area-inset-right,0px) + var(--conf-vv-right-offset, 0px) + 16px);z-index:20;display:inline-flex;align-items:center;justify-content:center;gap:var(--conf-btn-gap);padding:var(--conf-btn-padding);background:var(--conf-btn-bg);color:var(--conf-btn-text);border:none;border-radius:var(--conf-btn-radius);font-family:var(--conf-font);font-size:var(--conf-btn-font-size);font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s ease;-webkit-tap-highlight-color:transparent;max-width:min(calc(100% - 32px),220px);box-shadow:0 8px 24px #00000029}.conf-ar-btn:hover{background:var(--conf-btn-bg-hover)}.conf-ar-btn:disabled{opacity:.55;cursor:default}.conf-qr-overlay{position:fixed;inset:0;background:var(--conf-modal-bg);display:flex;align-items:center;justify-content:center;z-index:1000;animation:conf-fade-in .15s ease}@keyframes conf-fade-in{0%{opacity:0}to{opacity:1}}.conf-qr-card{background:var(--conf-modal-card-bg);border-radius:var(--conf-modal-radius);padding:var(--conf-modal-padding);box-shadow:var(--conf-modal-shadow);display:flex;flex-direction:column;align-items:center;gap:16px;max-width:320px;width:90vw}.conf-qr-card__title{font-family:var(--conf-font);font-size:var(--conf-font-size-lg);font-weight:600;color:var(--conf-accent);margin:0}.conf-qr-card__hint{font-family:var(--conf-font);font-size:var(--conf-font-size-sm);color:var(--conf-text-muted);margin:0;text-align:center;line-height:1.5}.conf-qr-card__close{margin-top:4px;padding:8px 24px;background:transparent;color:var(--conf-text-muted);border:1px solid #e0e0e0;border-radius:var(--conf-btn-radius);font-family:var(--conf-font);font-size:var(--conf-font-size-sm);cursor:pointer;transition:border-color .15s ease,color .15s ease}.conf-qr-card__close:hover{border-color:var(--conf-accent);color:var(--conf-accent)}.conf-status-page,.conf-upload-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top left,rgba(26,26,26,.06),transparent 28%),linear-gradient(180deg,#fafafa,#f1f1f1);font-family:var(--conf-font)}.conf-status-card,.conf-upload-card{width:min(100%,560px);background:#fffffff0;border:1px solid rgba(26,26,26,.08);border-radius:20px;box-shadow:0 20px 50px #00000014;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.conf-status-card{padding:28px;text-align:center}.conf-status-card__title,.conf-upload-card__title{margin:0;color:var(--conf-accent);font-size:28px;line-height:1.15}.conf-status-card__body,.conf-upload-card__body{margin:0;color:var(--conf-text);line-height:1.6}.conf-upload-card{padding:32px}.conf-upload-card__header{display:flex;flex-direction:column;gap:12px}.conf-upload-card__eyebrow{margin:0;color:var(--conf-text-muted);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.conf-upload-form{display:flex;flex-direction:column;gap:16px;margin-top:28px}.conf-upload-field{display:flex;flex-direction:column;gap:8px}.conf-upload-field__label,.conf-upload-result__label{color:var(--conf-accent);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.conf-upload-field__input{width:100%;padding:12px 14px;border:1px solid rgba(26,26,26,.14);border-radius:12px;background:#fff;color:var(--conf-text);font:inherit;box-sizing:border-box}.conf-upload-field__input:focus{outline:2px solid rgba(26,26,26,.12);outline-offset:1px}.conf-upload-form__error{margin:0;padding:12px 14px;border-radius:12px;background:#fff2f2;color:#b42318;font-size:13px;line-height:1.5}.conf-upload-form__submit,.conf-upload-result__copy{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 18px;border:none;border-radius:12px;background:var(--conf-btn-bg);color:var(--conf-btn-text);font:inherit;font-weight:600;cursor:pointer}.conf-upload-form__submit:disabled{opacity:.6;cursor:default}.conf-upload-result{display:flex;flex-direction:column;gap:10px;margin-top:24px;padding-top:24px;border-top:1px solid rgba(26,26,26,.08)}.conf-upload-result__link{color:var(--conf-accent);font-weight:600;line-height:1.5;overflow-wrap:anywhere}@media(max-width:640px){.conf-status-page,.conf-upload-page{padding:16px}.conf-upload-card,.conf-status-card{padding:22px}.conf-status-card__title,.conf-upload-card__title{font-size:24px}}html,body,#root{height:100%;width:100%;overflow:hidden}#root{min-height:0}body{overscroll-behavior:none}html.gallery-route,body.gallery-route,body.gallery-route #root{height:auto;min-height:100%;overflow:auto}body.gallery-route{overscroll-behavior:auto}
