@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff)format("woff")}:root{--color-bg:#fafaf8;--color-surface:#fff;--color-surface-2:#f3f2ef;--color-border:#e4e2dd;--color-border-strong:#c9c6bf;--color-text:#26241f;--color-text-muted:#6e6a63;--color-header:#23221f;--color-on-dark:#f5f4f1;--color-brand-50:#eaf5f2;--color-brand-100:#d3eae4;--color-brand-600:#10756a;--color-brand-700:#0b5d54;--color-brand-800:#084a43;--color-accent-100:#fdeed3;--color-accent-700:#b45309;--color-danger-50:#fdf1f0;--color-danger-600:#dc2626;--color-danger-700:#b91c1c;--color-focus:#10756a;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:22px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:999px;--shadow-sm:0 1px 2px #14120c14;--shadow-md:0 4px 12px #14120c1f;--shadow-lg:0 12px 40px #14120c40;--z-sticky:100;--z-overlay:1000;--z-dialog:1500;--z-toast:2000;--z-tooltip:2500;--transition:.15s ease-out}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);margin:0;line-height:1.45}h1,h2,h3,h4{line-height:1.2}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.icon{flex-shrink:0;width:16px;height:16px}.num{font-variant-numeric:tabular-nums}.btn{height:32px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--transition), border-color var(--transition), color var(--transition);justify-content:center;align-items:center;gap:6px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-surface-2)}.btn:disabled{opacity:.45;cursor:default}.btn:disabled:hover{background:var(--color-surface)}.btn-primary{background:var(--color-brand-600);border-color:var(--color-brand-600);color:#fff}.btn-primary:hover{background:var(--color-brand-700);border-color:var(--color-brand-700)}.btn-primary:disabled:hover{background:var(--color-brand-600);border-color:var(--color-brand-600)}.btn-danger{background:var(--color-danger-600);border-color:var(--color-danger-600);color:#fff}.btn-danger:hover{background:var(--color-danger-700);border-color:var(--color-danger-700)}.btn-sm{height:26px;padding:0 var(--space-2);font-size:var(--text-sm)}.btn-block{width:100%;display:flex}.icon-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn.sm{width:26px;height:26px}.icon-btn .icon{width:18px;height:18px}.icon-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.icon-btn.destructive:hover{background:var(--color-danger-50);color:var(--color-danger-600)}.icon-btn:disabled{opacity:.45;cursor:default}.on-dark .icon-btn{color:#f5f4f1bf}.on-dark .icon-btn:hover{color:var(--color-on-dark);background:#ffffff1f}.ui-tooltip{z-index:var(--z-tooltip);border-radius:var(--radius-sm);background:var(--color-header);max-width:320px;color:var(--color-on-dark);font-size:var(--text-xs);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition), transform var(--transition);padding:3px 8px;line-height:1.45;position:fixed;transform:translateY(2px)}.ui-tooltip.visible{opacity:1;transform:translateY(0)}.input,input[type=text],input[type=search],input[type=number],select{height:32px;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-base);transition:border-color var(--transition)}input[type=text]:focus-visible,input[type=search]:focus-visible,input[type=number]:focus-visible,select:focus-visible{border-color:var(--color-brand-600)}.field{margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);display:block}.field>input,.field>select{width:100%;margin-top:var(--space-1);color:var(--color-text);display:block}input.inline-edit{height:32px;padding:0 var(--space-2);border-radius:var(--radius-md);font-size:inherit;font-weight:inherit;transition:background var(--transition), border-color var(--transition);background:0 0;border:1px solid #0000}input.inline-edit:hover{background:var(--color-surface-2)}input.inline-edit:focus{background:var(--color-surface);border-color:var(--color-brand-600)}.on-dark input.inline-edit{color:var(--color-on-dark)}.on-dark input.inline-edit:hover{background:#ffffff1f}.on-dark input.inline-edit:focus{border-color:var(--color-brand-600);color:var(--color-on-dark);background:#ffffff29}.dialog{border-radius:var(--radius-lg);padding:var(--space-6);width:min(440px,90vw);box-shadow:var(--shadow-lg);color:var(--color-text);border:none}.dialog::backdrop{background:#14120c66}.dialog h2{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:600}.dialog p{margin:0 0 var(--space-3)}.dialog .consequences{margin:0 0 var(--space-3);padding-left:var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm)}.dialog-buttons{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);display:flex}.shortcut-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.shortcut-table td{padding:var(--space-1) 0;vertical-align:top}.shortcut-table td:first-child{white-space:nowrap;padding-right:var(--space-4);color:var(--color-text-muted)}kbd{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-2);min-width:20px;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-xs);text-align:center;font-variant-numeric:tabular-nums;border-bottom-width:2px;padding:1px 6px;font-weight:500;display:inline-block}.address-row{gap:var(--space-3);display:flex}.address-row .grow{flex:1}.address-row .narrow{flex:0 0 110px}.toast{left:50%;bottom:var(--space-6);align-items:center;gap:var(--space-2);max-width:min(640px,100vw - 32px);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-header);color:var(--color-on-dark);font-size:var(--text-sm);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;z-index:var(--z-toast);transition:opacity .2s ease-out,transform .2s ease-out;display:flex;position:fixed;transform:translate(-50%)translateY(8px)}.toast.visible{opacity:1;transform:translate(-50%)translateY(0)}.toast.success .icon{color:#34d399}.toast.error .icon{color:#f87171}.toast.info .icon{color:var(--color-on-dark)}.banner{gap:var(--space-1);margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-accent-100);color:var(--color-accent-700);font-size:var(--text-sm);flex-direction:column;max-height:140px;display:flex;overflow-y:auto}#warnings-banner{margin:var(--space-2) var(--space-3) 0}.banner-row{align-items:center;gap:var(--space-2);display:flex}.banner-row .banner-text{flex:1;min-width:0}.mode-bar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-accent-100);color:var(--color-accent-700);font-size:var(--text-sm);font-weight:500;display:flex}.mode-bar .mode-text{flex:1;min-width:0}.chip{align-items:center;gap:var(--space-1);height:18px;padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--color-accent-100);color:var(--color-accent-700);font-size:var(--text-xs);white-space:nowrap;display:inline-flex}.chip .icon{width:11px;height:11px}.chip.chip-icon{border:none;flex-shrink:0;justify-content:center;width:18px;padding:0}button.chip-icon{cursor:pointer;transition:background var(--transition), color var(--transition)}button.chip-icon:hover{background:var(--color-accent-700);color:var(--color-on-dark)}.menu{z-index:var(--z-dialog);min-width:180px;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);position:fixed}.menu-item{align-items:center;gap:var(--space-2);width:100%;padding:6px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-base);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.menu-item:hover{background:var(--color-surface-2)}.menu-item.destructive{color:var(--color-danger-600)}.menu-item.destructive:hover{background:var(--color-danger-50)}.menu-item:disabled{opacity:.45;cursor:default}.menu-item .icon{color:var(--color-text-muted)}.menu-item.destructive .icon{color:inherit}.menu-separator{height:1px;margin:var(--space-1) 0;background:var(--color-border)}.link-popover{z-index:60;width:240px;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);animation:.2s ease-out popover-in;position:absolute}@keyframes popover-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.link-popover .popover-title{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.link-popover input[type=search]{width:calc(100% - 2 * var(--space-1));margin:0 var(--space-1) var(--space-1);height:28px}.link-popover .popover-list{max-height:220px;overflow-y:auto}.link-popover .popover-group{padding:var(--space-1) var(--space-2) 2px;font-size:var(--text-xs);color:var(--color-text-muted);font-weight:600}.autocomplete{position:relative}.autocomplete-list{left:0;right:0;top:calc(100% - var(--space-2));z-index:1;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-height:220px;box-shadow:var(--shadow-md);margin:0;list-style:none;animation:.2s ease-out popover-in;position:absolute;overflow-y:auto}.autocomplete-item{width:100%;padding:6px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:left;cursor:pointer;color:var(--color-text);background:0 0;border:none;display:block}.autocomplete-item:hover,.autocomplete-item.active{background:var(--color-surface-2)}.autocomplete-item .muted{color:var(--color-text-muted)}.autocomplete-empty{padding:6px var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.app-header{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-header);color:var(--color-on-dark);z-index:var(--z-sticky);display:flex}.app-header .spacer{flex:1}.page-title{font-size:var(--text-md);margin:0;font-weight:600}.tour-title{font-size:var(--text-md);color:var(--color-on-dark);white-space:nowrap;text-overflow:ellipsis;max-width:32ch;margin:0;font-weight:600;overflow:hidden}.header-address{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:#f5f4f1a6;white-space:nowrap;text-overflow:ellipsis;max-width:320px;display:inline-flex;overflow:hidden}.save-status{font-size:var(--text-xs);color:#f5f4f1a6;white-space:nowrap}.save-status.dirty{color:var(--color-accent-100)}.header-divider{background:#fff3;width:1px;height:20px}.editor-page{height:100vh}.page-screen{flex-direction:column;height:100%;display:flex}.picker-body{width:100%;max-width:900px;padding:var(--space-5) var(--space-4);flex:1;margin:0 auto;overflow-y:auto}.picker-toolbar{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.picker-search{padding:0 var(--space-3);flex:1}.tour-list{margin:0;padding:0;list-style:none}.tour-card{align-items:center;gap:var(--space-4);padding:var(--space-3);margin-bottom:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--transition), border-color var(--transition);display:flex}.tour-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.tour-thumb{border-radius:var(--radius-md);background:var(--color-surface-2);width:96px;height:60px;color:var(--color-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tour-thumb .icon{width:24px;height:24px}.tour-thumb img{object-fit:cover;width:100%;height:100%}.tour-info{min-width:0;font-size:var(--text-sm);flex-direction:column;flex:1;gap:2px;display:flex}.tour-info strong{font-size:var(--text-md);font-weight:600}.tour-meta{color:var(--color-text-muted);font-size:var(--text-xs)}.tour-actions{gap:var(--space-1);align-items:center;display:flex}.empty-state{align-items:center;gap:var(--space-3);padding:var(--space-8);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);flex-direction:column;display:flex}.empty-state .icon{width:24px;height:24px}.empty-state p{margin:0}.editor-body{flex:1;min-height:0;display:flex}.sidebar{width:300px;padding:var(--space-3);background:var(--color-surface);border-right:1px solid var(--color-border);flex-shrink:0;overflow-y:auto}.sidebar-section{margin-bottom:var(--space-5)}.sidebar-section h2{margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:600}.hint{font-size:var(--text-xs);color:var(--color-text-muted);margin:0 0 var(--space-2)}.workspace{gap:var(--space-3);padding:var(--space-3);flex:1;grid-template-columns:1fr 1fr;min-width:0;min-height:0;display:grid}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:0;min-height:0;padding:var(--space-3);flex-direction:column;display:flex}.panel-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);min-height:32px;display:flex}.panel-head h3{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;font-weight:600}.panel .empty-state{flex:1;justify-content:center}.floor-tabs{align-items:center;gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.floor-tab{align-items:center;gap:var(--space-1);height:28px;padding:0 var(--space-2);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:1px solid #0000;font-weight:500;display:inline-flex}.floor-tab:hover{background:var(--color-surface-2);color:var(--color-text)}.floor-tab.active{background:var(--color-brand-50);border-color:var(--color-brand-100);color:var(--color-brand-800)}.floor-tab .icon-btn{width:20px;height:20px;margin-right:-4px}.floor-tab .icon-btn .icon{width:14px;height:14px}.floor-tab input.inline-edit{width:110px;height:22px}.room-list{margin:var(--space-2) 0 0;padding:0;list-style:none}.room-group-head{align-items:center;gap:var(--space-1);width:100%;padding:var(--space-1) var(--space-1);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;font-weight:600;display:flex}.room-group-head:hover{background:var(--color-surface-2)}.room-group-head .chevron{transition:transform var(--transition)}.room-group-head.collapsed .chevron{transform:rotate(-90deg)}.room-item{align-items:center;gap:var(--space-1);min-height:40px;padding:var(--space-1) var(--space-1) var(--space-1) var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition);border-left:2px solid #0000;margin-bottom:2px;display:flex}.room-item:hover{background:var(--color-surface-2)}.room-item.selected{background:var(--color-brand-50);border-left-color:var(--color-brand-600)}.room-item .room-name{cursor:pointer;flex:1;min-width:0;height:28px}.room-item .room-chips{gap:var(--space-1);display:flex}.room-item.skeleton{color:var(--color-text-muted);font-size:var(--text-sm);cursor:default}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-brand-600);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dropzone{border:2px dashed var(--color-border-strong);border-radius:var(--radius-md);transition:border-color var(--transition), background var(--transition)}.drop-target.drag-over,.dropzone.drag-over{border-color:var(--color-brand-600);background:var(--color-brand-50)}.plan-wrap{border-radius:var(--radius-md);flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.plan-wrap.positioning,.plan-wrap.positioning img{cursor:crosshair}.plan-inner{line-height:0;display:inline-block;position:relative}.plan-wrap img{-webkit-user-select:none;user-select:none;display:block}.plan-links{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.plan-link{stroke:var(--color-brand-600);stroke-width:2.5px;opacity:.75}.plan-link.oneway{stroke:var(--color-danger-600);stroke-dasharray:7 5}.plan-link-arrow{fill:var(--color-danger-600);opacity:.9}.direction-ray{stroke:var(--color-brand-600);stroke-width:2px;opacity:.6}.plan-marker{border-radius:var(--radius-full);background:var(--color-brand-600);color:#fff;cursor:grab;width:28px;height:28px;box-shadow:var(--shadow-sm);text-transform:uppercase;transition:box-shadow var(--transition);touch-action:none;border:2px solid #fff;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%)}.plan-marker:hover{box-shadow:var(--shadow-md)}.plan-marker.dragging{cursor:grabbing;box-shadow:var(--shadow-md)}.plan-marker.selected{background:var(--color-accent-700);width:34px;height:34px}.start-label{pointer-events:none;flex-direction:column;align-items:center;margin-top:20px;display:flex;position:absolute;transform:translate(-50%)}.start-label .start-arrow{border-left:5px solid #0000;border-right:5px solid #0000;border-bottom:6px solid var(--color-brand-800);width:0;height:0}.start-label .start-pill{border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-brand-800);font-size:var(--text-xs);box-shadow:var(--shadow-sm);margin-top:1px;padding:1px 8px;font-weight:600}.link-tags{gap:var(--space-1);margin-bottom:var(--space-2);flex-wrap:wrap;min-height:26px;display:flex}.link-tag{align-items:center;gap:var(--space-1);height:26px;padding:0 var(--space-1) 0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-2);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition), background var(--transition);display:inline-flex}.link-tag:hover{border-color:var(--color-border-strong);background:var(--color-surface)}.link-tag.hover{border-color:var(--color-brand-600)}.link-tag .icon{width:12px;height:12px;color:var(--color-text-muted)}.link-tag .backlink-missing-dot{background:var(--color-accent-700);border-radius:50%;flex-shrink:0;width:7px;height:7px}.link-tag .icon-btn{width:20px;height:20px}.link-tag .icon-btn .icon{width:12px;height:12px}.pano-preview{border-radius:var(--radius-md);background:var(--color-header);flex:1;min-height:200px;position:relative;overflow:hidden}.pano-preview .empty-state{color:var(--color-on-dark)}.link-marker-dot{background:var(--color-brand-600);opacity:.9;width:100%;height:100%;box-shadow:var(--shadow-md);transition:transform var(--transition);border:3px solid #fff;border-radius:50%}.link-marker-dot:hover,.link-marker-dot.highlight{transform:scale(1.2)}.link-marker-dot.pulse{animation:.9s ease-out 2 marker-pulse}@keyframes marker-pulse{0%{box-shadow:0 0 #10756a99}to{box-shadow:0 0 0 16px #10756a00}}.preview-overlay{z-index:var(--z-overlay);background:#000;position:fixed;inset:0}#preview-viewer{width:100%;height:100%}.preview-close{top:var(--space-3);right:var(--space-3);z-index:10;position:absolute}.landing{max-width:52rem;padding:clamp(var(--space-8), 8vw, 96px) var(--space-6);color:var(--color-text);margin:0 auto}.landing__hero{margin-bottom:var(--space-8)}.landing h1{margin:0 0 var(--space-3);letter-spacing:-.02em;color:var(--color-header);font-size:clamp(28px,6vw,44px);font-weight:700}.landing__lead{max-width:40rem;font-size:var(--text-lg);color:var(--color-text-muted);margin:0;line-height:1.6}.landing__cards{margin:0 0 var(--space-8);gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));padding:0;list-style:none;display:grid}.landing__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.landing__card h2{margin:0 0 var(--space-2);font-size:var(--text-md);color:var(--color-header);font-weight:600}.landing__card p{font-size:var(--text-base);color:var(--color-text-muted);margin:0;line-height:1.6}.landing__card a{color:var(--color-brand-700);font-weight:500}.landing code{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em}.landing__badge{margin-left:var(--space-1);border-radius:var(--radius-full);background:var(--color-accent-100);color:var(--color-accent-700);font-size:var(--text-xs);vertical-align:middle;padding:1px 8px;font-weight:500;display:inline-block}.landing__footer{max-width:40rem;font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6}#viewer{width:100%;height:100%}.load-error{padding:var(--space-8);color:var(--color-danger-700)}.floor-switcher{z-index:45;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e1e1eb3;display:flex;position:absolute;overflow:hidden}.floor-switcher button{color:#ffffffbf;font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;padding:4px 10px;font-weight:500}.floor-switcher button.active{background:var(--color-brand-600);color:#fff}.psv-button.psv-floorplan-button{width:20px}.psv-container.floorplan-hidden .psv-map,.psv-container.floorplan-hidden .floor-switcher{display:none}@media (width<=900px){.workspace{grid-template-columns:1fr;overflow-y:auto}.panel{min-height:320px}.editor-body{flex-direction:column;overflow-y:auto}.sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%;max-height:40vh}}.auth-page{background:var(--color-bg);justify-content:center;align-items:center;display:flex}.auth-card{width:min(380px,92vw);padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.auth-brand{margin:0 0 var(--space-6);font-size:var(--text-md);color:var(--color-brand-700);text-align:center;font-weight:600}.auth-card h2{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:600}.auth-card .hint{margin-top:var(--space-3)}.auth-error{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-danger-50);color:var(--color-danger-700);font-size:var(--text-sm)}.header-user{font-size:var(--text-xs);color:#f5f4f1a6;white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.user-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;font-size:var(--text-sm);overflow:hidden}.user-table th,.user-table td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.user-table th{background:var(--color-surface-2);font-weight:600;font-size:var(--text-xs);color:var(--color-text-muted)}.user-table tr:last-child td{border-bottom:none}.user-table td .chip{margin-left:var(--space-2)}.user-table .user-actions{text-align:right;width:40px}.chip.warn{background:var(--color-accent-100);color:var(--color-accent-700)}.copy-row{gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.copy-row input{min-width:0;font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:1}#share-access-section h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-base);font-weight:600}.access-list{border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:200px;margin:0;padding:0;list-style:none;overflow-y:auto}.access-list li+li{border-top:1px solid var(--color-border)}.access-list label{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--text-sm);display:flex}.access-list label:hover{background:var(--color-surface-2)}.embed-code{resize:vertical;width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs);line-height:1.5}
