@charset "UTF-8";:root{--bg-dark: oklch(.84 .005 50);--bg: oklch(.93 .004 50);--bg-light: oklch(.98 .003 50);--text: oklch(.14 .008 45);--text-muted: oklch(.4 .006 50);--text-inverted: var(--bg);--text-inverted-muted: var(--bg-light) ;--primary: oklch(.51 .23 260);--primary-muted: oklch(.72 .12 260);--danger: oklch(.4 .08 30);--warning: oklch(.6 .09 95);--success: oklch(.38 .1 150);--info: oklch(.36 .09 260);--border: oklch(.52 .006 50);--border-muted: oklch(.8 .004 50);--border-card: solid 1px var(--border-muted);--highlight: oklch(.88 .025 260);--highlight-top: inset 0 1px 0 oklch(1 0 0 / .55);--gradient: linear-gradient(0deg, var(--bg) 95%, var(--bg-light));--gradient-hover: linear-gradient(0deg, var(--bg), var(--bg-light));--shadow: 0 2px 6px oklch(.5 .01 50 / .18), 0 10px 24px oklch(.5 .01 50 / .1);--shadow-elevated: 0 1px 2px oklch(.3 .01 45 / .08), 0 2px 4px oklch(.3 .01 45 / .07), 0 4px 8px oklch(.3 .01 45 / .06), 0 8px 16px oklch(.3 .01 45 / .05);--shadow-elevated-drop: drop-shadow(0 1px 2px oklch(.3 .01 45 / .08)) drop-shadow(0 2px 4px oklch(.3 .01 45 / .07)) drop-shadow(0 4px 8px oklch(.3 .01 45 / .06)) drop-shadow(0 8px 16px oklch(.3 .01 45 / .05));--module-card-bg: var(--bg-light);--module-card-border: var(--color-bg-black);--modul-fade-before: 4rem;--modul-fade-after: 8rem;--module-footer-h: 64px;--modal-backdrop: oklch(from var(--bg-dark) l c h / .6);--modal-glass-bg: oklch(from var(--bg) l c h / .82);--space-s: .75rem;--space-m: 1.5rem;--space-l: clamp(1rem, 1vw + 1rem, 2rem);--poi-footer-height: 64px;--poi-footer-gap: 16px;--poi-footer-space: calc(var(--poi-footer-height) + var(--poi-footer-gap));--sidebar-width: clamp(280px, 18vw, 360px);--app-header-height: clamp(60px, 6vh, 72px);--brand-icon-size: 32px;--brand-font-size: .9rem;--poi-row-h: 40px;--control-h: clamp(40px, 4.5vh, 44px);--gap: clamp(16px, 1.5vw, 24px);--radius: 10px;--fs-base: .9rem;--fs-title: 1rem;--page-gutter: 1.25rem;--g: 1.25rem;--rail-toolbar-h: 32px;--modules-rail-w: clamp(480px, 28vw, 560px);--rail-startline: var(--page-gutter);--content-top: calc(var(--app-header-height) + var(--page-gutter));--core-max-h: calc(100vh - var(--rail-startline) - var(--page-gutter));--info-max-h: clamp(220px, 45vh, 520px);--col-min: 220px;--glass-bg: oklch(.93 .004 50 / .42);--glass-blur: blur(12px) saturate(150%);--glass-border: 1px solid oklch(.52 .006 50 / .3);--btn-py-bg: var(--primary);--btn-py-bg-hover: oklch(from var(--primary) calc(l - .03) c h);--btn-py-bg-active: oklch(from var(--primary) calc(l - .06) c h);--btn-py-fg: #fff;--btn-py-border: color-mix(in oklch, var(--primary) 80%, black 20%);--btn-tonal-bg: oklch(from var(--primary) calc(l + .24) calc(c*.35) h);--btn-tonal-bg-hover: oklch(from var(--primary) calc(l + .2) calc(c*.35) h);--btn-tonal-fg: color-mix(in oklch, var(--primary) 70%, black 30%);--btn-tonal-border: oklch(from var(--primary) calc(l + .02) calc(c*.6) h)}:root .stack-xs{display:flex;flex-direction:column;gap:var(--space-xs, .25rem)}:root .stack-s{display:flex;flex-direction:column;gap:var(--space-s, .5rem)}:root .stack-m{display:flex;flex-direction:column;gap:var(--space-m, 1rem)}:root .stack-l{display:flex;flex-direction:column;gap:var(--space-l, 1.5rem)}:root .col{display:flex;flex-direction:column;gap:var(--space-s, .5rem);min-width:0}:root .grid-2,:root .grid-3,:root .grid-4{display:grid;gap:var(--g);min-width:0}:root .grid-2{grid-template-columns:repeat(2,minmax(var(--col-min),1fr))}:root .grid-3{grid-template-columns:repeat(3,minmax(var(--col-min),1fr))}:root .grid-4{grid-template-columns:repeat(4,minmax(var(--col-min),1fr))}:root .grid-4.shrink{display:grid;gap:var(--g, 1.25rem);grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}:root .grid-2.tight{grid-template-columns:repeat(2,minmax(130px,1fr))}:root .grid-3.tight{grid-template-columns:repeat(3,minmax(110px,1fr))}:root .grid-4.tight{grid-template-columns:repeat(4,minmax(90px,1fr))}[data-theme=dark]{--bg-dark: oklch(.1 .004 50);--bg: oklch(.16 .004 50);--bg-light: oklch(.22 .004 50);--text: oklch(.94 .004 60);--text-muted: oklch(.65 .005 55);--text-inverted: var(--bg);--text-inverted-muted: var(--bg-light);--primary: oklch(.72 .2 260);--primary-muted: oklch(.5 .12 260);--danger: oklch(.68 .1 25);--warning: oklch(.78 .1 75);--success: oklch(.68 .12 150);--info: oklch(.7 .1 260);--border: oklch(.34 .005 50);--border-muted: oklch(.21 .004 50);--border-card: solid 1px var(--border-muted);--highlight: oklch(.38 .025 260);--highlight-top: inset 0 1px 0 oklch(1 0 0 / .07);--gradient: linear-gradient(0deg, var(--bg) 95%, var(--bg-light));--gradient-hover: linear-gradient(0deg, var(--bg), var(--bg-light));--shadow: 0 2px 8px oklch(.04 .008 45 / .55), 0 10px 28px oklch(.04 .008 45 / .35);--shadow-elevated: 0 1px 2px oklch(.04 .008 45 / .5), 0 2px 4px oklch(.04 .008 45 / .4), 0 4px 10px oklch(.04 .008 45 / .3), 0 8px 20px oklch(.04 .008 45 / .2), 0 16px 36px oklch(.04 .008 45 / .12);--shadow-elevated-drop: drop-shadow(0 1px 2px oklch(.04 .008 45 / .5)) drop-shadow(0 2px 4px oklch(.04 .008 45 / .4)) drop-shadow(0 4px 10px oklch(.04 .008 45 / .3)) drop-shadow(0 8px 20px oklch(.04 .008 45 / .2));--modal-backdrop: oklch(from var(--bg-dark) l c h / .75);--modal-glass-bg: oklch(from var(--bg) l c h / .85);--glass-bg: oklch(.16 .004 50 / .45);--glass-border: 1px solid oklch(.34 .005 50 / .4)}.btn{--btn-h: 36px;--btn-r: 10px;--btn-pad-x: .9rem;display:inline-flex;align-items:center;gap:.4rem;height:var(--btn-h);padding:0 var(--btn-pad-x);border-radius:var(--btn-r);font-size:.9rem;line-height:1;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;background:transparent;color:var(--color-text);transition:transform .06s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease,color .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus{outline:none}.btn:focus-visible{box-shadow:0 0 0 2px oklch(from var(--brand-500, #88f) calc(l + .05) c h/.35)}.btn .material-symbols-outlined{font-size:1.2em;line-height:0}.btn--xs{--btn-h: 32px;--btn-pad-x: .7rem;font-size:.85rem}.btn--sm{--btn-h: 36px;--btn-pad-x: .9rem;font-size:.9rem}.only-text{background:transparent;border:none;color:var(--primary-muted)}.only-text:hover{color:var(--primary-muted);background:var(--bg-light);border-radius:.75rem}.no-cursor{color:var(--primary-muted)}.btn--ghost{color:var(--color-text-muted);border-color:oklch(from var(--bg) calc(l + .1) c h/.35);background:oklch(from var(--bg) calc(l + .02) c h/.35);backdrop-filter:saturate(110%) blur(2px)}.btn--ghost:hover{color:var(--color-text);border-color:oklch(from var(--bg) calc(l + .15) c h/.5);background:oklch(from var(--bg) calc(l + .04) c h/.5)}.btn--primary{color:var(--on-brand, #fff);background:var(--brand-grad, linear-gradient(90deg, var(--brand-500, #7aa2ff), var(--brand-400, #9ab6ff)));border:0;box-shadow:0 2px 10px oklch(from var(--brand-500, #7aa2ff) l c h/.25)}.btn--primary:hover{filter:brightness(1.05);box-shadow:0 3px 14px oklch(from var(--brand-500, #7aa2ff) l c h/.35)}.material-symbols-outlined{font-size:1.2em;line-height:0}*::-webkit-scrollbar-track{background:var(--bg);border-radius:8px}*::-webkit-scrollbar-thumb{background:linear-gradient(to bottom,var(--bg-light),var(--color-bg-black));border-radius:8px}*{scrollbar-width:thin;scrollbar-color:var(--color-bg-black) var(--bg)}@media (min-width: 1600px){:root{--sidebar-width: clamp(320px, 17vw, 380px)}}@media (max-aspect-ratio: 16/9){:root{--fs-title: clamp(.88rem, .95vw, .98rem);--fs-base: clamp(.8rem, .9vw, .88rem);--poi-row-h: 36px;--brand-icon-size: 16px}.poi-toolbar .poi-brand{gap:.5rem}.poi-toolbar .poi-search{padding:.45rem}.poi-list .poi-item{padding:.5rem .45rem .5rem .65rem;gap:.6rem;font-size:var(--fs-base);min-block-size:var(--poi-row-h)}.poi-section-title{font-size:.66rem;letter-spacing:.07em}}@media (min-aspect-ratio: 21/9){:root{--sidebar-width: clamp(400px, 8vw, 480px);--fs-base: 15px;--fs-title: 16px}}:root,[data-theme=dark]{--mod-gap-s: .5rem;--mod-gap-m: 1rem;--mod-gap-l: 1.5rem;--mod-radius: .5rem;--mod-radius-lg: .75rem;--mod-input-h: 40px;--mod-bg: var(--bg);--mod-bg-elevated: var(--bg-light);--mod-bg-sunken: var(--bg-dark);--mod-text: var(--text);--mod-text-muted: var(--text-muted);--mod-border: var(--border);--mod-border-muted: var(--border-muted);--mod-primary: var(--primary);--mod-shadow: var(--shadow-elevated);--mod-shadow-drop: var(--shadow-elevated-drop)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:38px;padding:0 14px;border-radius:10px;border:1px solid transparent;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .06s ease,box-shadow .2s ease}.btn:active{transform:translateY(1px)}.btn--primary{background:linear-gradient(135deg,var(--mod-primary),oklch(from var(--mod-primary) calc(l - .04) c h));color:var(--text-inverted);border-color:oklch(from var(--mod-primary) l c h/.3);box-shadow:0 1px 4px oklch(from var(--mod-primary) l c h/.2)}.btn--primary:hover{box-shadow:0 2px 8px oklch(from var(--mod-primary) l c h/.3)}.btn--ghost{background:oklch(from var(--primary) l c h/.06);color:var(--mod-text-muted);border-color:oklch(from var(--primary) l c h/.1)}.btn--ghost:hover{background:oklch(from var(--primary) l c h/.12);border-color:oklch(from var(--primary) l c h/.18);color:var(--mod-text)}.btn--outline{background:transparent;color:var(--mod-text);border-color:oklch(from var(--primary) l c h/.15)}.btn--outline:hover{border-color:var(--mod-primary);color:var(--mod-primary);background:oklch(from var(--primary) l c h/.06)}.btn--danger{background:var(--danger);color:var(--text-inverted)}.module-toolbar,.audio-player-editor .controls{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:var(--mod-radius);background:oklch(from var(--primary) l c h/.04);border:1px solid oklch(from var(--primary) l c h/.08)}.module-panel{padding:1rem;border-radius:0;background:transparent;border:none;box-shadow:none}.form-grid{display:grid;gap:var(--mod-gap-m);grid-template-columns:1fr}@media (min-width: 900px){.form-grid--two{grid-template-columns:1fr 1fr}}input[type=text],input[type=url],input[type=number],input[type=email],select{height:var(--mod-input-h);padding:0 .75rem;border-radius:var(--mod-radius);border:1px solid oklch(from var(--primary) l c h/.1);background:oklch(from var(--primary) l c h/.03);color:var(--mod-text);transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}input[type=text]:hover,input[type=url]:hover,input[type=number]:hover,input[type=email]:hover,select:hover{border-color:oklch(from var(--primary) l c h/.18);background:oklch(from var(--primary) l c h/.05)}input[type=text]:focus,input[type=url]:focus,input[type=number]:focus,input[type=email]:focus,select:focus{border-color:var(--mod-primary);background:oklch(from var(--primary) l c h/.06);outline:none;box-shadow:0 0 0 3px oklch(from #fff l c h/0),0 0 0 3px oklch(from #000 l c h/0);box-shadow:0 0 0 3px oklch(from var(--mod-primary) l c h/.22)}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;padding-right:2rem}select option{background:var(--bg, #1a1a1a);color:var(--text, #eee);padding:.4rem .6rem}textarea{min-height:120px;padding:.75rem;border-radius:var(--mod-radius);border:1px solid oklch(from var(--primary) l c h/.1);background:oklch(from var(--primary) l c h/.03);color:var(--mod-text);resize:vertical;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}textarea:hover{border-color:oklch(from var(--primary) l c h/.18);background:oklch(from var(--primary) l c h/.05)}textarea:focus{border-color:var(--mod-primary);background:oklch(from var(--primary) l c h/.06);outline:none;box-shadow:0 0 0 3px oklch(from #fff l c h/0),0 0 0 3px oklch(from #000 l c h/0);box-shadow:0 0 0 3px oklch(from var(--mod-primary) l c h/.22)}.module-editor label:not(.checkbox-inline-label),.audio-player-editor label:not(.checkbox-inline-label),.custom-script-editor label:not(.checkbox-inline-label),.model-editor label:not(.checkbox-inline-label),.panorama360-editor label:not(.checkbox-inline-label),.quiz-editor label:not(.checkbox-inline-label){display:flex;flex-direction:column;gap:.35rem;font-weight:600;color:var(--mod-text)}.input-label-row{display:flex;margin-bottom:.2rem;align-items:baseline;gap:.5rem}.input-label{font-size:.8rem;font-weight:600;color:var(--mod-text-muted);opacity:.75}.input-hint{font-size:.78rem;font-weight:500;color:var(--mod-text-muted);opacity:.45}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:1rem;height:1rem;margin:0;flex:0 0 auto;border-radius:4px;border:1.5px solid oklch(from var(--primary) l c h/.25);background:oklch(from var(--primary) l c h/.04);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}input[type=checkbox]:after{content:"";display:block;width:30%;height:55%;border:solid transparent;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-5%);transition:border-color .12s ease}input[type=checkbox]:hover{border-color:oklch(from var(--primary) l c h/.4);background:oklch(from var(--primary) l c h/.08)}input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 1px oklch(from var(--primary) l c h/.15)}input[type=checkbox]:checked:after{border-color:#fff}input[type=checkbox]:checked:hover{background:oklch(from var(--primary) calc(l + .04) c h);border-color:oklch(from var(--primary) calc(l + .04) c h)}input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 2px oklch(from var(--primary) l c h/.3)}.checkbox-inline-label{padding:.15rem 0;display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:.5rem;font-size:.9rem;font-weight:600;color:var(--mod-text-muted);opacity:.85;white-space:normal;cursor:pointer}.checkbox-inline-label span{display:inline;line-height:1.2}.checkbox-inline-label:hover{opacity:1;color:var(--mod-text)}.checkbox-inline-label:has(input:checked){color:var(--mod-text);opacity:.98}.field-block{display:flex;flex-direction:column;gap:.35rem}.field-block .checkbox-inline-label+.field-block{margin-top:.35rem}.module-file-row{display:flex;align-items:stretch;gap:var(--mod-gap-m)}.module-thumb{width:120px;height:90px;border-radius:var(--mod-radius-lg);overflow:hidden;background:oklch(from var(--primary) l c h/.04);border:1px solid oklch(from var(--primary) l c h/.1);flex:0 0 auto}.module-thumb img{width:100%;height:100%;object-fit:cover;display:block}.module-file-card{display:flex;flex-direction:column;gap:var(--mod-gap-s)}.module-meta-label{font-size:.78rem;font-weight:600;color:var(--mod-text-muted);opacity:.65}.module-meta-value{font-size:.9rem;color:var(--mod-text);opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.module-file-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--mod-gap-s);width:100%}.module-file-toolbar-meta{display:flex;align-items:baseline;gap:.5rem;min-width:0;flex:1}.module-file-inline{display:flex;align-items:center;justify-content:space-between;gap:var(--mod-gap-s);padding:.25rem .1rem}.module-file-inline+.field-block{margin-top:.25rem}.module-file-inline .module-file-toolbar-meta{flex:1;min-width:0}.module-file-toolbar-meta .module-meta-label{font-size:.78rem;font-weight:600;color:var(--mod-text-muted);opacity:.75;white-space:nowrap}.module-file-toolbar-meta .module-meta-value{font-size:.9rem;color:var(--mod-text);opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-file-toolbar .module-filename{color:var(--mod-text-muted)}.module-file-actions{flex:1;display:flex;flex-direction:column;gap:var(--mod-gap-s);justify-content:center}.module-filename-row{display:flex;align-items:center;gap:var(--mod-gap-s)}.module-filename{font-size:.95rem;color:var(--mod-text);opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.code-frame,.custom-script-editor .editor-frame{background:linear-gradient(155deg,oklch(from var(--primary) l c h/.04),oklch(from var(--primary) l c h/.01));border:1px solid oklch(from var(--primary) l c h/.1);border-radius:var(--mod-radius-lg);backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);box-shadow:0 1px 3px #00000014,inset 0 1px #ffffff0a;transition:border-color .15s ease,box-shadow .15s ease;border-radius:var(--mod-radius);overflow:hidden}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--mod-bg);border-radius:8px}*::-webkit-scrollbar-thumb{background:linear-gradient(to bottom,var(--mod-bg-elevated),var(--mod-bg-sunken));border-radius:8px}*{scrollbar-width:thin;scrollbar-color:var(--bg-dark) var(--mod-bg)}.module-editor,.audio-player-editor,.custom-script-editor,.model-editor,.panorama360-editor,.quiz-editor{display:flex;flex-direction:column;gap:var(--mod-gap-m);padding:1rem;color:var(--mod-text)}.module-editor__row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.module-editor__actions{display:flex;justify-content:flex-end;gap:.5rem}.module-editor__card,.quiz-editor .question-card,.audio-player-editor .card{background:linear-gradient(155deg,oklch(from var(--primary) l c h/.04),oklch(from var(--primary) l c h/.01));border:1px solid oklch(from var(--primary) l c h/.1);border-radius:var(--mod-radius-lg);backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);box-shadow:0 1px 3px #00000014,inset 0 1px #ffffff0a;transition:border-color .15s ease,box-shadow .15s ease;padding:1rem}.module-editor__preview,.panorama360-editor .viewer,.model-editor .stage{background:linear-gradient(155deg,oklch(from var(--primary) l c h/.04),oklch(from var(--primary) l c h/.01));border:1px solid oklch(from var(--primary) l c h/.1);border-radius:var(--mod-radius-lg);backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);box-shadow:0 1px 3px #00000014,inset 0 1px #ffffff0a;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.btn--primary:hover{background:linear-gradient(135deg,oklch(from var(--mod-primary) calc(l + .02) c h),var(--mod-primary))}.pin-toggle{display:inline-flex;align-items:center;justify-content:center;gap:2px;background:none;border:1px solid transparent;border-radius:6px;color:var(--mod-text-muted);opacity:.45;cursor:pointer;padding:2px 4px 2px 2px;transition:opacity .15s ease,color .15s ease,border-color .15s ease}.pin-toggle .material-symbols-outlined{font-size:16px}.pin-toggle .pin-lang{font-size:.7rem;font-weight:700;letter-spacing:.03em}.pin-toggle:hover{opacity:.8;border-color:#ffffff1a}.pin-toggle.is-pinned{opacity:.9;color:var(--mod-text);border-color:#ffffff26}.editor-header{display:block;flex-shrink:0;z-index:20}.editor-canvas{height:calc(100dvh - var(--app-header-height));display:grid;grid-template-columns:var(--sidebar-width) 1fr var(--modules-rail-w);grid-template-rows:1fr;gap:.75rem;padding:1.25rem var(--page-gutter) .75rem;background:var(--bg-dark);overflow:hidden;box-sizing:border-box}.editor-canvas>*{min-height:0;min-width:0;box-sizing:border-box}.settings-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:.6rem;border:1px solid var(--bg-light);background:oklch(from var(--bg) calc(l + .02) c h);color:var(--text);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .06s ease}.settings-btn .material-symbols-outlined{font-size:18px;line-height:1;translate:0 .5px}.settings-btn:hover{background:oklch(from var(--bg) calc(l + .04) c h);border-color:var(--primary);color:var(--primary)}.settings-btn:active{transform:translateY(1px)}.settings-btn:focus-visible{outline:2px solid color-mix(in oklch,var(--primary) 55%,transparent);outline-offset:2px}.save-btn{--h: 36px;position:relative;display:inline-flex;align-items:center;gap:.5rem;height:var(--h);padding:0 .7rem;border-radius:.6rem;border:1px solid var(--bg-light);background:oklch(from var(--bg) calc(l + .01) c h);color:var(--text);box-shadow:none;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .06s ease}.save-btn .mi{font-size:18px;line-height:1}.save-btn .kbd{font:11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:.15rem .35rem;border-radius:.35rem;border:1px solid var(--bg-light);color:var(--text-muted);background:oklch(from var(--bg) calc(l + .03) c h);transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease}.save-btn:active{transform:translateY(1px)}.save-btn:disabled{opacity:.6;cursor:default;transform:none}.save-btn:disabled .kbd{opacity:.85;color:color-mix(in oklch,#fff 70%,var(--text-muted));background:oklch(from var(--bg) calc(l + .02) c h);box-shadow:none;border-color:var(--bg-light)}.save-btn.is-dirty{background:var(--primary);border-color:color-mix(in oklch,var(--primary) 90%,black 10%);color:#fff}.save-btn.is-dirty .kbd{background:oklch(from var(--primary) calc(l - .18) c h);border-color:oklch(from var(--primary) calc(l - .28) c h);color:#fff;opacity:1;box-shadow:inset 0 -1px color-mix(in oklch,#fff 18%,transparent),0 0 0 2px color-mix(in oklch,var(--primary) 22%,transparent)}.save-btn.is-dirty:hover{filter:brightness(1.05)}.save-btn{position:relative}.save-btn:after{content:"";position:absolute;right:.6rem;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;border:2px solid transparent;opacity:0;pointer-events:none;z-index:1}.save-btn:not(.is-dirty):after{border-color:color-mix(in oklch,var(--text) 35%,transparent);border-top-color:var(--text)}.save-btn.is-dirty:after{border-color:color-mix(in oklch,#fff 35%,transparent);border-top-color:#fff}.save-btn.is-saving:after{opacity:1;animation:save-spin .8s linear infinite}.save-btn .kbd{transition:margin-right .12s ease}.save-btn.is-saving .kbd{margin-right:1.1rem}@keyframes save-spin{0%{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}.eh-save-split{display:inline-flex;align-items:stretch;border-radius:.6rem;border:1px solid var(--bg-light);background:oklch(from var(--bg) calc(l + .01) c h);overflow:hidden;transition:background .15s,border-color .15s}.eh-save-split.is-dirty{background:var(--primary);border-color:color-mix(in oklch,var(--primary) 90%,black 10%)}.eh-save-split.is-dirty .save-split__main{color:#fff}.eh-save-split.is-dirty .save-split__main .kbd{background:oklch(from var(--primary) calc(l - .18) c h);border-color:oklch(from var(--primary) calc(l - .28) c h);color:#fff;opacity:1;box-shadow:inset 0 -1px color-mix(in oklch,#fff 18%,transparent),0 0 0 2px color-mix(in oklch,var(--primary) 22%,transparent)}.eh-save-split.is-dirty .save-split__arrow{color:#ffffffb3;border-color:#ffffff26}.eh-save-split.is-dirty .save-split__arrow:hover{color:#fff;background:#ffffff1a}.eh-save-split.is-auto{border-color:oklch(from var(--primary) l c h/.25)}.eh-save-split.is-auto .save-split__main{color:var(--text-muted)}.eh-save-split.is-auto .save-split__main .is-saving{color:var(--primary)}.eh-save-split.is-dirty.is-auto{background:oklch(from var(--primary) l c h/.15);border-color:oklch(from var(--primary) l c h/.3)}.eh-save-split.is-dirty.is-auto .save-split__main{color:var(--primary)}.eh-save-split.is-dirty.is-auto .save-split__arrow{color:var(--primary);border-color:oklch(from var(--primary) l c h/.2)}.save-split__main{display:inline-flex;align-items:center;gap:.4rem;height:30px;padding:0 .55rem;border:none;background:none;color:var(--text);font-weight:600;font-size:.78rem;cursor:pointer;transition:color .15s}.save-split__main:disabled{opacity:.6;cursor:default}.save-split__main .kbd{font:10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:.1rem .3rem;border-radius:.3rem;border:1px solid var(--bg-light);color:var(--text-muted);background:oklch(from var(--bg) calc(l + .03) c h)}.save-split__arrow{display:flex;align-items:center;justify-content:center;width:24px;border:none;border-left:1px solid oklch(from var(--primary) l c h/.15);background:oklch(from var(--primary) l c h/.08);color:oklch(from var(--primary) calc(l + .1) c h);cursor:pointer;transition:background .12s,color .12s}.save-split__arrow .material-symbols-outlined{font-size:16px}.save-split__arrow:hover{background:oklch(from var(--primary) l c h/.15);color:var(--primary)}.save-menu-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem;border-radius:calc(var(--mod-radius, .5rem) - 2px);cursor:pointer;white-space:nowrap;font-size:.82rem;font-weight:500;color:var(--text, #eee);transition:background .1s ease}.save-menu-item .material-symbols-outlined{font-size:18px;color:var(--text-muted)}.save-menu-item:hover{background:oklch(from var(--primary) l c h/.1)}.editor-canvas.spatial{display:block;position:relative;padding:0;overflow:visible;--spatial-gutter: 3rem}.editor-canvas.spatial .spatial-center{position:absolute;inset:0;border-radius:0}.editor-canvas.spatial .poi-sidebar{position:absolute;left:var(--spatial-gutter);top:var(--spatial-gutter);bottom:var(--spatial-gutter);width:var(--sidebar-width);height:auto!important;z-index:10;background:var(--glass-bg)!important;backdrop-filter:var(--glass-blur)!important;-webkit-backdrop-filter:var(--glass-blur)!important;border:var(--glass-border)!important;box-shadow:var(--shadow-elevated)!important;overflow:hidden!important;transition:width .25s ease}.editor-canvas.spatial .poi-sidebar .poi-list,.editor-canvas.spatial .poi-sidebar .poi-wrapper{background:transparent!important}.editor-canvas.spatial .poi-sidebar .poi-footer{display:none!important}.editor-canvas.spatial .poi-sidebar .poi-item{padding:.45rem .5rem .45rem .65rem;font-size:.85rem;font-weight:400}.editor-canvas.spatial .poi-sidebar .poi-item:hover{background-color:#0000000d!important}.editor-canvas.spatial .poi-sidebar .poi-item.selected{background:#296cd826!important;border-color:#5a8ee466!important;box-shadow:none!important;transform:none!important}.editor-canvas.spatial .poi-sidebar .poi-section-title{letter-spacing:.06em}.editor-canvas.spatial .poi-sidebar.is-collapsed{width:56px}.editor-canvas.spatial .sidebar-toggle-tab{position:absolute;left:calc(var(--spatial-gutter) + var(--sidebar-width) + 4px);top:50%;transform:translateY(-50%);z-index:11;width:20px;height:44px;padding:0;border-radius:0 8px 8px 0;border:var(--glass-border);border-left:none;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--text-muted);cursor:pointer;display:grid;place-items:center;transition:left .25s ease,background .15s,color .15s}.editor-canvas.spatial .sidebar-toggle-tab .material-symbols-outlined{font-size:14px}.editor-canvas.spatial .sidebar-toggle-tab:hover{color:var(--primary)}.editor-canvas.spatial .sidebar-toggle-tab.is-collapsed{left:calc(var(--spatial-gutter) + 56px + 4px)}.editor-canvas.spatial .spatial-right-panel{position:absolute;right:var(--spatial-gutter);top:var(--spatial-gutter);bottom:var(--spatial-gutter);z-index:10;display:flex;flex-direction:column;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow-elevated);overflow:hidden;width:180px;transition:width .32s cubic-bezier(.22,1,.36,1)}.editor-canvas.spatial .spatial-right-panel.is-expanded{width:var(--modules-rail-w)}.editor-canvas.spatial .spatial-right-panel .srp-tabs{display:flex;flex-shrink:0;border-bottom:var(--glass-border);padding:0 4px;gap:2px}.editor-canvas.spatial .spatial-right-panel .srp-tab{display:inline-flex;align-items:center;gap:5px;padding:10px 12px;border:none;background:transparent;color:var(--text-muted);font-size:.82rem;font-family:inherit;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .15s,border-color .15s}.editor-canvas.spatial .spatial-right-panel .srp-tab .material-symbols-outlined{font-size:15px;flex-shrink:0}.editor-canvas.spatial .spatial-right-panel .srp-tab .srp-tab__label{overflow:hidden}.editor-canvas.spatial .spatial-right-panel .srp-tab:hover{color:var(--text)}.editor-canvas.spatial .spatial-right-panel .srp-tab.is-active{color:var(--primary);border-bottom-color:var(--primary)}.editor-canvas.spatial .spatial-right-panel .srp-hint{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--space-m) var(--space-s);color:var(--text-muted);font-size:.78rem;text-align:center;opacity:.7}.editor-canvas.spatial .spatial-right-panel .srp-hint .material-symbols-outlined{font-size:1.6rem;opacity:.4}.editor-canvas.spatial .spatial-right-panel .srp-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--space-m) var(--space-m) 0;box-sizing:border-box;display:flex;flex-direction:column}.editor-canvas.spatial .spatial-right-panel .srp-body app-poi-core,.editor-canvas.spatial .spatial-right-panel .srp-body app-module-sidebar,.editor-canvas.spatial .spatial-right-panel .srp-body aside,.editor-canvas.spatial .spatial-right-panel .srp-body .sidebar-toolbar,.editor-canvas.spatial .spatial-right-panel .srp-body .poc{background:transparent!important}.editor-canvas.spatial .spatial-right-panel .srp-body app-module-sidebar{flex:1;min-height:0}.editor-canvas.spatial .spatial-right-panel .srp-body .module-list{background:transparent!important}.editor-canvas.spatial .sv-host{background:radial-gradient(ellipse 38% 75% at 0% 50%,oklch(30% .08 282deg / .42),transparent),radial-gradient(ellipse 38% 75% at 100% 50%,oklch(26% .06 230deg / .32),transparent),radial-gradient(ellipse 65% 65% at 50% 42%,#11161e,#030508 80%),radial-gradient(circle,oklch(52% .012 255deg / .1) 1px,transparent 1px);background-size:100% 100%,100% 100%,100% 100%,24px 24px}.editor-canvas.spatial .sv-grid{stroke:#2a2e34;opacity:.65}.editor-canvas.spatial .sv-dev-scatter{background:#0b0d11a6;border-color:#5f646980;color:#7c8186}.editor-canvas.spatial .sv-dev-scatter:hover{background:#0e1217d9}.editor-canvas.spatial .sv-dev-hint{color:#52565a}[data-theme=light] .editor-canvas.spatial .sv-host{background:radial-gradient(ellipse 35% 70% at 0% 50%,oklch(82% .08 290deg / .22),transparent),radial-gradient(ellipse 35% 70% at 100% 50%,oklch(84% .06 195deg / .18),transparent),radial-gradient(ellipse 65% 65% at 50% 42%,#eff6fb,#d7e3ec 80%),radial-gradient(circle,oklch(70% .02 240deg / .22) 1px,transparent 1px);background-size:100% 100%,100% 100%,100% 100%,24px 24px}[data-theme=light] .editor-canvas.spatial .sv-floor{fill:#e5ecf1;opacity:.7}[data-theme=light] .editor-canvas.spatial .sv-border{stroke:#6f7b8b}[data-theme=light] .editor-canvas.spatial .sv-grid{stroke:#9ba6af;opacity:.6}[data-theme=light] .editor-canvas.spatial .sv-marker__circle{fill:#cfd5da;stroke:#89949c}[data-theme=light] .editor-canvas.spatial .sv-marker__initial{fill:#212a35}[data-theme=light] .editor-canvas.spatial .sv-marker:hover .sv-marker__initial,[data-theme=light] .editor-canvas.spatial .sv-marker.is-selected .sv-marker__initial{fill:#fff}[data-theme=light] .editor-canvas.spatial .sv-dev-scatter{background:#eef2f5b8;border-color:#8f99a680;color:#384351}[data-theme=light] .editor-canvas.spatial .sv-dev-scatter:hover{background:#e5ecf1e6}[data-theme=light] .editor-canvas.spatial .sv-dev-scatter.is-active{background:#296cd81a}[data-theme=light] .editor-canvas.spatial .sv-dev-hint{color:#5c646f}[data-theme=dark] .editor-canvas.spatial .poi-sidebar .poi-item{color:#d5d8db}[data-theme=dark] .editor-canvas.spatial .poi-sidebar .poi-item:hover{background-color:#ffffff12!important}[data-theme=dark] .editor-canvas.spatial .poi-sidebar .poi-item.selected{color:#fff}[data-theme=dark] .editor-canvas.spatial .poi-sidebar .poi-section-title{color:#6d7277}.projects-shell .sh,.pd-shell .sh,.tm .sh{background:#07090cc7;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid oklch(32% .012 260deg / .35)}.projects-shell .sh:before,.pd-shell .sh:before,.tm .sh:before{background:linear-gradient(90deg,var(--primary) 0%,oklch(from var(--primary) l c calc(h + 50)) 100%);opacity:.85}[data-theme=light] .projects-shell .sh,[data-theme=light] .pd-shell .sh,[data-theme=light] .tm .sh{background:#f2f6f9d6;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-bottom:1px solid oklch(74% .018 240deg / .38)}[data-theme=light] .projects-shell .sh:before,[data-theme=light] .pd-shell .sh:before,[data-theme=light] .tm .sh:before{background:linear-gradient(90deg,var(--primary) 0%,oklch(from var(--primary) l c calc(h + 50)) 100%);opacity:.75}.editor-page.spatial .editor-header .sh{background:#05070bd1;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid oklch(32% .018 260deg / .38)}.editor-page.spatial .editor-header .sh:before{background:linear-gradient(90deg,color(xyz 0.253 0.207 0.982),color(xyz 0.242 0.218 0.92),color(xyz 0.23 0.23 0.86) 25%,color(xyz 0.208 0.254 0.746) 50%,color(xyz 0.167 0.303 0.541));opacity:.85}[data-theme=light] .editor-page.spatial .editor-header .sh{background:#f1f6f9d6;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-bottom:1px solid oklch(74% .02 240deg / .4)}[data-theme=light] .editor-page.spatial .editor-header .sh:before{background:linear-gradient(90deg,#1c69e3,color(xyz 0.186 0.169 0.704),color(xyz 0.178 0.178 0.659) 25%,color(xyz 0.162 0.197 0.574) 50%,color(xyz 0.132 0.238 0.42));opacity:.7}@keyframes spatialSlideIn{0%{transform:translate(calc(100% + var(--page-gutter)));opacity:0}to{transform:translate(0);opacity:1}}.editor-page{display:flex;flex-direction:column;height:100vh;overflow:hidden}.poi-sidebar{display:flex!important;flex-direction:column;background:var(--bg);border-radius:12px;box-shadow:var(--shadow-elevated);overflow:hidden;height:100%;box-sizing:border-box}.poi-sidebar .poi-toolbar{position:sticky;top:0;z-index:5;padding:.625rem .75rem .5rem;background:linear-gradient(180deg,oklch(from var(--bg) calc(l + .02) c h),var(--bg));backdrop-filter:saturate(120%) blur(4px);display:flex;align-items:center;gap:.5rem}.poi-sidebar .poi-toolbar .poi-search{flex:1;min-width:0}.poi-sidebar .poi-toolbar .poi-brand{position:relative;display:flex;align-items:center;gap:.6rem;height:var(--app-header-height);margin:0 -.75rem;padding:0 .75rem;border-bottom:1px solid var(--bg-light)}.poi-sidebar .poi-toolbar .poi-brand .ghost-icon-btn{--btn: 32px;--icon: 18px;--nudge-y: 3px;--nudge-x: -3px;inline-size:var(--btn);block-size:var(--btn);box-sizing:border-box;display:grid;place-items:center;border-radius:.6rem;border:1px solid var(--bg-light);background:oklch(from var(--bg) calc(l + .02) c h);color:var(--text-muted);transition:background .15s,color .15s,border-color .15s}.poi-sidebar .poi-toolbar .poi-brand .ghost-icon-btn:hover{background:oklch(from var(--bg) calc(l + .04) c h);color:var(--primary);border:1px solid var(--primary)}.poi-sidebar .poi-toolbar .poi-brand .ghost-icon-btn:active{transform:translateY(1px)}.poi-sidebar .poi-toolbar .poi-brand .ghost-icon-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.poi-sidebar .poi-toolbar .poi-brand .back-btn{--back-max: 24ch;inline-size:auto;block-size:var(--btn);min-inline-size:var(--btn);max-inline-size:var(--btn);flex:0 0 auto;display:inline-flex;justify-content:flex-start;align-items:center;gap:.55rem;padding:0 .6rem;overflow:hidden;white-space:nowrap;box-sizing:border-box;transition:max-inline-size .22s ease,background .15s,color .15s,border-color .15s}.poi-sidebar .poi-toolbar .poi-brand .back-btn .icon{inline-size:18px;block-size:18px;display:grid;place-items:center;transform:translateY(var(--nudge-y)) translate(var(--nudge-x));color:var(--text);transition:transform .18s ease,color .18s ease}.poi-sidebar .poi-toolbar .poi-brand .back-btn .material-symbols-outlined{font-size:18px;line-height:1;position:static;transform-origin:center;transition:opacity .18s ease;font-variation-settings:"FILL" 1,"wght" 600,"GRAD" 0,"opsz" 24}.poi-sidebar .poi-toolbar .poi-brand .back-btn .label{opacity:0;transform:translate(-4px);transition:opacity .18s ease,transform .18s ease;font-weight:600;font-size:.9rem;color:var(--text)}.poi-sidebar .poi-toolbar .poi-brand .back-btn:hover,.poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible{max-inline-size:clamp(var(--btn),var(--back-max),260px);border-color:var(--primary)}.poi-sidebar .poi-toolbar .poi-brand .back-btn:hover .icon,.poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible .icon{transform:translateY(var(--nudge-y, .75px)) translate(-6px)}.poi-sidebar .poi-toolbar .poi-brand .back-btn:hover .label,.poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible .label{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.poi-sidebar .poi-toolbar .poi-brand .back-btn,.poi-sidebar .poi-toolbar .poi-brand .back-btn .icon,.poi-sidebar .poi-toolbar .poi-brand .back-btn .label{transition:none}}.poi-sidebar .poi-toolbar .poi-brand .project-title{font-size:var(--fs-title);line-height:1.1;font-weight:600;color:var(--text);letter-spacing:.2px;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poi-sidebar .poi-toolbar .poi-brand .project-title.editing{position:relative;z-index:1000;flex:0 0 auto;width:max-content;max-width:none;white-space:nowrap;outline:2px solid color-mix(in oklch,var(--primary) 40%,transparent);border-radius:.375rem;padding:.1rem .25rem;background:oklch(from var(--bg) calc(l + .03) c h)}.poi-sidebar .poi-toolbar .poi-brand .title-edit-btn{inline-size:28px;block-size:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--bg-light);border-radius:.5rem;background:oklch(from var(--bg) calc(l + .02) c h);color:var(--text-muted);cursor:pointer;opacity:0;transform:scale(.96);pointer-events:none;transition:all .15s ease}.poi-sidebar .poi-toolbar .poi-brand .title-edit-btn .material-symbols-outlined{font-size:18px;line-height:1}.poi-sidebar .poi-toolbar .poi-brand:hover .title-edit-btn{opacity:1;transform:scale(1);pointer-events:auto}.poi-sidebar .poi-toolbar .poi-brand .brand-chevron{margin-left:.25rem;background:transparent;border:0;padding:.2rem;border-radius:.4rem;color:var(--text-muted);cursor:pointer}.poi-sidebar .poi-toolbar .poi-brand .brand-chevron:hover{color:var(--text);background:var(--bg-dark)}.poi-sidebar .poi-toolbar .poi-brand .brand-chevron.editing{display:none}.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:hover) .title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:hover) .brand-chevron,.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:focus-visible) .title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:focus-visible) .brand-chevron{opacity:0;transform:scale(.96);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.poi-sidebar .poi-toolbar .poi-brand .back-btn:hover~.title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible~.title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand .back-btn:hover~.brand-chevron,.poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible~.brand-chevron{opacity:0;transform:scale(.96);pointer-events:none}.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:hover),.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:focus-visible){gap:.4rem}.poi-sidebar .poi-toolbar .poi-brand .project-title{flex:1 1 auto;min-width:0}.poi-sidebar .poi-toolbar .poi-brand .title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand .brand-chevron{flex:0 0 auto}@supports selector(:has(+ *)){.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:hover),.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:focus-visible){gap:.4rem}.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:hover) .title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:hover) .brand-chevron,.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:focus-visible) .title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand:has(.back-btn:focus-visible) .brand-chevron{width:0;flex-basis:0;padding:0;margin:0;border-width:0;opacity:0;overflow:hidden;pointer-events:none}}.poi-sidebar .poi-toolbar .poi-brand .back-btn:hover~.title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible~.title-edit-btn,.poi-sidebar .poi-toolbar .poi-brand .back-btn:hover~.brand-chevron,.poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible~.brand-chevron{width:0;flex-basis:0;padding:0;margin:0;border-width:0;opacity:0;overflow:hidden;pointer-events:none}.poi-sidebar .poi-toolbar .poi-search{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;padding:.5rem;border-radius:.6rem;background:var(--bg-dark);border:1px solid var(--bg-light);margin-top:0;margin-bottom:0;min-block-size:var(--control-h)}.poi-sidebar .poi-toolbar .poi-search .mi{font-size:18px;line-height:1;color:var(--text-muted);margin-left:.25rem;pointer-events:none;-webkit-user-select:none;user-select:none}.poi-sidebar .poi-toolbar .poi-search input[type=search]{background:transparent;border:0;outline:0;color:var(--text);font-size:.9rem;padding:.25rem}.poi-sidebar .poi-toolbar .poi-search input[type=search]::placeholder{color:var(--text-muted)}.poi-sidebar .poi-toolbar .poi-search .kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;padding:.2rem .45rem;border-radius:.4rem;border:1px solid var(--bg-light);color:var(--text-muted);background:oklch(from var(--bg) calc(l + .02) c h)}.poi-sidebar .poi-toolbar .poi-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklch,var(--primary) 22%,transparent)}.poi-sidebar .poi-toolbar .poi-search:focus-within .mi{color:var(--text)}.poi-sidebar .poi-section-title{padding-left:0;font-size:.7rem;font-weight:300;color:var(--text-muted);letter-spacing:.08em}.poi-sidebar .poi-list{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;height:100%}.poi-sidebar .poi-list .poi-wrapper{flex:1;overflow-y:auto;padding:.25rem .75rem;scrollbar-gutter:stable;opacity:0;transform:translateY(.25rem);animation:fadeInList .35s ease-out .25s forwards}@keyframes fadeInList{to{opacity:1;transform:translateY(0)}}.poi-sidebar .poi-list .poi-item{display:flex;align-items:center;gap:.75rem;width:100%;margin-top:.25rem;padding:.6rem .5rem .6rem .75rem;border-radius:.5rem;background:transparent;font-weight:500;color:var(--text);border:1px solid transparent;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease;min-block-size:var(--poi-row-h);font-size:var(--fs-base)}.poi-sidebar .poi-list .poi-item:hover{background-color:var(--bg-light)}.poi-sidebar .poi-list .poi-item.selected{background:linear-gradient(135deg,oklch(from var(--primary) l c h/.12),oklch(from var(--primary) l c h/.05));border-color:oklch(from var(--primary) l c h/.5);transform:translate(2px);box-shadow:0 2px 12px oklch(from var(--primary) l c h/.15)}.poi-sidebar .poi-list .poi-item.dirty:after{content:"*";margin-left:4px;color:var(--primary)}.poi-sidebar .poi-footer{--poi-footer-space: 5rem;position:static;margin-top:auto;padding:.75rem;background:linear-gradient(180deg,transparent,var(--bg) 40%),var(--bg);border-top:1px solid var(--bg-light)}.poi-sidebar .poi-footer .poi-add-btn{width:100%;padding:1rem;border-radius:999px;background-color:oklch(from var(--primary) calc(l - .05) c h);color:#fff;font-weight:700;border:0;cursor:pointer}.poi-sidebar .poi-footer .poi-add-btn:hover{background-color:var(--primary)}.poi-core{display:block;min-width:0;padding-left:var(--space-m);height:100%;scroll-padding-block-end:var(--g);overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.module-panel.info textarea.field{max-block-size:var(--info-max-h);min-block-size:6rem;overflow:auto;resize:vertical}.identity .panel-head{display:flex;align-items:baseline;gap:.75rem}.panel-actions{margin-left:auto;padding-top:1rem;display:inline-flex;align-items:center}.panel-actions .btn .only-text{background:var(--bg)}.poi-core .core-grid{display:grid;grid-template-rows:auto 1fr;row-gap:var(--g);min-width:0;min-height:0}.poi-core .core-header{display:grid;gap:var(--g);grid-template-columns:1fr;min-width:0}@media (min-width: 1600px){.poi-core .core-header:has(.module-panel:nth-child(2)){grid-template-columns:repeat(2,minmax(360px,1fr))}}h3 .section-title{padding-top:0}.section-subtitle{opacity:.7;font-size:.9rem;margin-top:6px}.poi-core .panels{display:grid;grid-template-columns:1fr;gap:var(--g);min-width:0;min-height:0;overflow:visible}@media (min-width: 1200px){.poi-core .panels{grid-template-columns:repeat(2,minmax(360px,1fr))}}@media (min-width: 1680px){.poi-core .panels{grid-template-columns:repeat(3,minmax(360px,1fr))}}.poi-core .panels>.span-1{grid-column:span 1}.poi-core .panels>.span-2{grid-column:span 2}.poi-core .panels>.span-3{grid-column:1/-1}.module-panel,.module-panel *{min-width:0}.module-panel.info .helper-row{display:flex;gap:.5rem;align-items:center;justify-content:space-between;margin-top:.35rem;font-size:.85rem;color:var(--text-muted)}.module-panel.info .label-title{display:block;margin-bottom:.25rem;color:var(--text-muted)}.module-panel+.module-panel{margin-top:var(--g)}.panels>.module-panel{margin-top:0}.poi-core .panels{padding-bottom:var(--poi-footer-space);scroll-padding-bottom:calc(var(--poi-footer-space) + 8px)}.identity .panel-head{display:flex;align-items:baseline;gap:.75rem;background:var(--bg-light)}.identity .panel-head .titles{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;min-width:0}.identity .panel-head .section-title{margin:0}.identity .panel-head .id-subtitle .label{opacity:.8}.id-subtitle{padding-left:1rem}.identity .panel-head .id-subtitle{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted);min-width:0}.section-subtitle{padding-bottom:var(--space-m)}.id-subtitle{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.9rem;min-width:0}.id-subtitle .label{opacity:.8}.id-subtitle .value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg-dark);border:1px solid var(--bg-light);border-radius:.45rem;padding:.25rem .5rem;max-width:48ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.id-subtitle .btn-copy{height:28px;padding:0 .5rem}.identity-grid .label,.identity-grid .field{min-width:0;width:100%}.identity-grid input.mono{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identity .col{min-width:0}@media (max-width: 900px){.identity .identity-grid{grid-template-columns:1fr!important}}.poi-core .module-panel,.poi-core .module-panel .field,.poi-core .module-panel select,.poi-core .module-panel textarea{min-width:0;width:100%}.sidebar-toolbar{display:flex;align-items:center;gap:.5rem;height:var(--rail-toolbar-h, 32px);margin:0 0 var(--g);background:transparent}.toolbar-left{display:flex;gap:.5rem}.toolbar-right{margin-left:auto}.module-sidebar{display:flex!important;flex-direction:column;height:100%;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable both-edges}.module-list{flex:1 1 auto;overflow:visible;display:flex;flex-direction:column;gap:1rem;padding:0}.module-list>*{flex:0 0 auto}.module-list>*{width:100%;box-sizing:border-box}.module,.feature-card,.module-placeholder,.add-feature{width:100%;box-sizing:border-box;border:1px solid var(--bg-light);border-radius:.7rem;background:var(--bg);overflow:hidden}.module-placeholder{flex:1 1 320px;min-width:260px;max-width:520px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--text-muted);background-color:var(--bg-dark);border-radius:.75rem;padding:2rem;text-align:center;filter:var(--shadow-elevated-drop);border:1px solid var(--bg)}.editor.empty,.module-placeholder{font-size:1.5rem;margin-bottom:.5rem}.icon{font-size:1.5rem;margin-bottom:.5rem;opacity:.5}.headline{font-size:1.125rem;font-weight:600;margin-bottom:.25rem;color:var(--text-muted);opacity:.5}.subline{font-size:.875rem;opacity:.8}.module-placeholder-column{display:flex;flex-direction:column;gap:1rem;width:100%;padding:2rem}.skeleton,.skeleton-text,.skeleton-circle{position:relative;overflow:hidden;background:oklch(from var(--bg) calc(l + .04) c h);border-color:var(--bg-light)}.skeleton:after,.skeleton-text:after,.skeleton-circle:after{content:"";position:absolute;inset:0;translate:-100% 0;background:linear-gradient(90deg,transparent,color-mix(in oklch,#fff 10%,transparent),transparent);animation:skeleton-shimmer .55s linear infinite}@keyframes skeleton-shimmer{to{translate:100% 0}}.skeleton-text{display:inline-block;height:1rem;border-radius:.3rem}.poi-item.skeleton{border:1px solid var(--bg-light);background:var(--bg-dark)}.poi-brand .project-title{opacity:0;transform:translateY(2px);transition:opacity .45s ease,transform .45s ease}.poi-brand.ready .project-title,.project-title.editing{opacity:1;transform:none}.poi-brand.ready .project-icon-btn{cursor:pointer}.project-icon-btn{--size: var(--brand-icon-size, 32px);width:var(--size);height:var(--size);min-width:var(--size);min-height:var(--size);flex:0 0 auto;box-sizing:border-box;padding:0;aspect-ratio:1/1;display:inline-grid;place-items:center;border-radius:9px;border:1px solid var(--bg-light);background-color:oklch(from var(--bg) calc(l + .04) c h);background-repeat:no-repeat;background-position:center;background-size:cover;transition:opacity .45s ease,transform .45s ease,border-color .15s,background-color .15s}.project-icon-btn .skeleton-circle{width:var(--brand-icon-size, 32px);height:var(--brand-icon-size, 32px);min-width:var(--brand-icon-size, 32px);min-height:var(--brand-icon-size, 32px);flex:0 0 auto;aspect-ratio:1/1;padding:0}.project-icon-btn.has-icon{background-image:var(--icon-url)}.project-icon-btn.no-image{background-image:none}.project-icon-btn .cam{opacity:.7;color:var(--text-muted);transition:opacity .15s}.project-icon-btn.has-icon .cam,.project-icon-btn.skeleton-circle .cam{opacity:0}.project-icon-btn.dragover{outline:2px dashed var(--primary);outline-offset:2px}.poi-brand .project-icon-btn.skeleton-circle{opacity:1;transform:none;transition:none}.poi-brand .project-icon-btn:not(.skeleton-circle){opacity:0;transform:translateY(2px)}.poi-brand.ready .project-icon-btn.has-icon{opacity:1;transform:none}.poi-brand.ready .project-icon-btn.no-image{opacity:.85;transform:none}.title-skeleton{vertical-align:middle}html,body{margin:0;padding:0}html,body{height:100%}html{box-sizing:border-box;font-family:Roboto,sans-serif;overflow:hidden;background:var(--bg-dark)}*,*:before,*:after{box-sizing:inherit}body{margin:0;min-height:100dvh}#app,app-root,main{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden}.mi,.material-symbols-outlined{font-family:Material Symbols Outlined!important;font-weight:400;font-style:normal;font-size:18px;line-height:1;display:inline-block;letter-spacing:normal;text-transform:none;font-variation-settings:"FILL" 1,"wght" 600,"GRAD" 0,"opsz" 24}.global-context-menu{position:fixed;z-index:100000;background:var(--bg, #1a1a1a);border:1px solid oklch(from var(--primary) l c h/.12);border-radius:var(--mod-radius, .5rem);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;padding:.25rem;list-style:none;margin:0;min-width:160px;opacity:0;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease}.global-context-menu.visible{opacity:1;transform:translateY(0)}.global-context-menu li{display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem;border-radius:calc(var(--mod-radius, .5rem) - 2px);cursor:pointer;white-space:nowrap;font-size:.82rem;font-weight:500;color:var(--text, #eee);transition:background .1s ease}.global-context-menu li .material-symbols-outlined{font-size:18px;color:var(--text-muted)}.global-context-menu li:hover{background:oklch(from var(--primary) l c h/.1)}.global-context-menu li.danger,.global-context-menu li.danger .material-symbols-outlined{color:var(--danger)}.global-context-menu li.danger:hover{background:oklch(from var(--danger) l c h/.1)}.global-context-menu li.disabled{opacity:.35;cursor:default;pointer-events:none}.global-info-tooltip{position:fixed;z-index:100000;background:var(--bg, #222);color:var(--text, #eee);padding:.5rem .75rem;border-radius:.4rem;font-size:.78rem;line-height:1.45;box-shadow:0 4px 16px #00000073;border:1px solid oklch(from var(--primary) l c h/.12);min-width:180px;max-width:300px;white-space:normal;overflow-wrap:break-word;pointer-events:none;opacity:0;transition:opacity .15s ease}.global-info-tooltip.visible{opacity:1}.custom-select-panel{position:fixed;z-index:100000;background:var(--bg, #1a1a1a);border:1px solid oklch(from var(--primary) l c h/.12);border-radius:var(--mod-radius, .5rem);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;padding:0;overflow:hidden;overflow-y:auto;max-height:240px;opacity:0;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease}.custom-select-panel.visible{opacity:1;transform:translateY(0)}.custom-select-option{padding:.5rem .75rem;font-size:.85rem;color:var(--text, #eee);cursor:pointer;transition:background .1s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-select-option:hover{background:oklch(from var(--primary) l c h/.1)}.custom-select-option.selected{color:var(--primary);font-weight:600;background:oklch(from var(--primary) l c h/.06)}@font-face{font-family:codicon;src:local("Arial")}
