@charset "UTF-8";@font-face{font-family:Roboto;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-greek.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url(/fonts/material-symbols-outlined.woff2) format("woff2")}: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);--brand: var(--primary);--interactive: var(--primary);--tint-subtle: oklch(from var(--interactive) l c h / .04);--tint-soft: oklch(from var(--interactive) l c h / .08);--tint-strong: oklch(from var(--interactive) l c h / .12);--danger: oklch(.4 .08 30);--warning: oklch(.5 .09 95);--success: oklch(.38 .1 150);--info: oklch(.36 .09 260);--border: oklch(.52 .006 50);--border-muted: oklch(.76 .004 50);--border-card: solid 1px var(--border-muted);--highlight: oklch(.88 .025 260);--highlight-top: inset 0 8px 8px -8px oklch(from var(--highlight) l c h / .55);--skeleton-bg: oklch(.88 .005 50);--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 / .12), 0 2px 5px oklch(.3 .01 45 / .1), 0 6px 12px oklch(.3 .01 45 / .09), 0 12px 24px oklch(.3 .01 45 / .08);--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(--border-muted);--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-3xs: .125rem;--space-2xs: .25rem;--space-xs: .375rem;--space-s: .5rem;--space-m: .75rem;--space-l: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 3rem;--poi-footer-height: 64px;--poi-footer-gap: var(--space-l);--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-s: 6px;--radius-m: 10px;--radius-l: 16px;--radius-pill: 999px;--radius-circle: 50%;--radius: var(--radius-m);--fs-base: .9rem;--fs-title: 1rem;--fs-note: .8rem;--lh-note: 1.55;--measure-note: 62ch;--fs-h1: 1.5rem;--fs-h2: 1.3rem;--fs-h3: 1.1rem;--tracking-tight: -.02em;--tracking-snug: -.01em;--tracking-normal: 0;--tracking-wide: .05em;--lh-tight: 1.15;--lh-heading: 1.25;--dur-instant: 80ms;--dur-fast: .12s;--dur-base: .15s;--dur-slow: .3s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.64, 0, .78, 0);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-overshoot: cubic-bezier(.34, 1.28, .64, 1);--press-dim: brightness(.93);--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(.96 .004 50 / .58);--glass-thin: blur(6px) saturate(140%);--glass-blur: blur(12px) saturate(150%);--glass-thick: blur(16px) saturate(140%);--glass-veil: blur(8px) saturate(120%);--glass-border-color: oklch(.52 .006 50 / .45);--glass-border: 1px solid var(--glass-border-color);--glass-rim-edges: inset 0 -1px 0 oklch(.3 .01 45 / .2), inset 1px 0 0 oklch(.3 .01 45 / .09), inset -1px 0 0 oklch(.3 .01 45 / .09);--glass-rim-edges-joined-left: inset 0 -1px 0 oklch(.3 .01 45 / .2), inset -1px 0 0 oklch(.3 .01 45 / .09);--glass-rim: var(--highlight-top), var(--glass-rim-edges);--glass-hover: oklch(0 0 0 / .05);--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)}:root .stack-s{display:flex;flex-direction:column;gap:var(--space-s)}:root .stack-m{display:flex;flex-direction:column;gap:var(--space-m)}:root .stack-l{display:flex;flex-direction:column;gap:var(--space-l)}:root .col{display:flex;flex-direction:column;gap:var(--space-s);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, var(--space-l));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);--press-dim: brightness(1.14);--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 8px 8px -8px oklch(from var(--highlight) l c h / .55);--skeleton-bg: oklch(.27 .005 50);--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-color: oklch(.34 .005 50 / .4);--glass-border: 1px solid var(--glass-border-color);--glass-hover: oklch(1 0 0 / .07);--glass-rim-edges: inset 0 -1px 0 oklch(1 0 0 / .06), inset 1px 0 0 oklch(1 0 0 / .1), inset -1px 0 0 oklch(1 0 0 / .1);--glass-rim-edges-joined-left: inset 0 -1px 0 oklch(1 0 0 / .06), inset -1px 0 0 oklch(1 0 0 / .1);--glass-rim: var(--highlight-top), var(--glass-rim-edges), inset 0 0 18px oklch(1 0 0 / .13)}.btn{--btn-h: 36px;--btn-r: var(--radius-m);--btn-pad-x: .9rem;display:inline-flex;align-items:center;gap:var(--space-xs);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(--text);transition:transform var(--dur-instant) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus{outline:none}.btn:focus-visible{box-shadow:0 0 0 2px oklch(from var(--interactive) 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:var(--radius-m)}.no-cursor{color:var(--primary-muted)}.btn--ghost{color:var(--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:var(--glass-thin)}.btn--ghost:hover{color:var(--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(--text-inverted);background:linear-gradient(90deg,var(--brand),oklch(from var(--brand) calc(l - .05) c h));border:0;box-shadow:0 2px 10px oklch(from var(--interactive) l c h/.25)}.btn--primary:hover{filter:brightness(1.05);box-shadow:0 3px 14px oklch(from var(--interactive) l c h/.35)}.material-symbols-outlined{font-size:1.2em;line-height:0}*::-webkit-scrollbar-track{background:var(--bg);border-radius:var(--radius-m)}*::-webkit-scrollbar-thumb{background:linear-gradient(to bottom,var(--border-muted),var(--border));border-radius:var(--radius-m)}*{scrollbar-width:thin;scrollbar-color:var(--border) 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);--fs-note: clamp(.72rem, .82vw, .8rem);--poi-row-h: 36px;--brand-icon-size: 16px}.poi-toolbar .poi-brand{gap:var(--space-s)}.poi-toolbar .poi-search{padding:var(--space-s)}.poi-list .poi-item{padding:var(--space-s) var(--space-s) var(--space-s) var(--space-m);gap:var(--space-s);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;--fs-note: 13px}}:root,[data-theme=dark]{--mod-gap-s: var(--space-s);--mod-gap-m: var(--space-l);--mod-gap-l: var(--space-xl);--mod-radius: var(--radius-m);--mod-radius-lg: var(--radius-l);--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:var(--space-s);height:38px;padding:0 var(--space-m);border-radius:var(--radius-m);border:1px solid transparent;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-instant) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.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:var(--tint-soft);color:var(--mod-text-muted);border-color:oklch(from var(--primary) l c h/.1)}.btn--ghost:hover{background:var(--tint-strong);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:var(--tint-soft)}.btn--danger{background:var(--danger);color:var(--text-inverted)}.module-panel{padding:var(--space-l);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 var(--space-m);border-radius:var(--mod-radius);border:1px solid oklch(from var(--primary) l c h/.1);background:var(--tint-subtle);color:var(--mod-text);transition:border-color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}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:var(--tint-soft)}input[type=text]:focus,input[type=url]:focus,input[type=number]:focus,input[type=email]:focus,select:focus{border-color:var(--mod-primary);background:var(--tint-strong);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:var(--space-2xl)}select option{background:var(--bg, #1a1a1a);color:var(--text, #eee);padding:var(--space-xs) var(--space-s)}textarea{min-height:120px;padding:var(--space-m);border-radius:var(--mod-radius);border:1px solid oklch(from var(--primary) l c h/.1);background:var(--tint-subtle);color:var(--mod-text);resize:vertical;transition:border-color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}textarea:hover{border-color:oklch(from var(--primary) l c h/.18);background:var(--tint-soft)}textarea:focus{border-color:var(--mod-primary);background:var(--tint-strong);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),.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:var(--space-xs);font-weight:600;color:var(--mod-text)}.input-label-row{display:flex;margin-bottom:var(--space-2xs);align-items:baseline;gap:var(--space-s)}.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:var(--radius-s);border:1.5px solid oklch(from var(--primary) l c h/.25);background:var(--tint-subtle);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}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 var(--dur-fast) var(--ease-out)}input[type=checkbox]:hover{border-color:oklch(from var(--primary) l c h/.4);background:var(--tint-soft)}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:var(--space-3xs) 0;display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--space-s);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:var(--space-xs)}.field-block .checkbox-inline-label+.field-block{margin-top:var(--space-xs)}.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:var(--space-s);min-width:0;flex:1}.module-file-inline{display:flex;align-items:center;justify-content:space-between;gap:var(--mod-gap-s);padding:var(--space-2xs) var(--space-3xs)}.module-file-inline+.field-block{margin-top:var(--space-2xs)}.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}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--mod-bg);border-radius:var(--radius-m)}*::-webkit-scrollbar-thumb{background:linear-gradient(to bottom,var(--mod-bg-elevated),var(--mod-bg-sunken));border-radius:var(--radius-m)}*{scrollbar-width:thin;scrollbar-color:var(--bg-dark) var(--mod-bg)}.module-editor,.model-editor,.panorama360-editor,.quiz-editor{display:flex;flex-direction:column;gap:var(--mod-gap-m);padding:var(--space-l);color:var(--mod-text)}.module-editor__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-l)}.module-editor__actions{display:flex;justify-content:flex-end;gap:var(--space-s)}.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:var(--space-3xs);background:none;border:1px solid transparent;border-radius:var(--radius-s);color:var(--mod-text-muted);opacity:.45;cursor:pointer;padding:var(--space-3xs) var(--space-2xs) var(--space-3xs) var(--space-3xs);transition:opacity var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.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:var(--space-m);--spatial-gutter: var(--space-3xl);padding:var(--spatial-gutter);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:var(--radius-m);border:1px solid var(--bg-light);background:oklch(from var(--bg) calc(l + .02) c h);color:var(--text);cursor:pointer;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.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:var(--space-s);height:var(--h);padding:0 var(--space-m);border-radius:var(--radius-m);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 var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.save-btn .mi{font-size:18px;line-height:1}.save-btn .kbd{font:11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-s);border:1px solid var(--bg-light);color:var(--text-muted);background:oklch(from var(--bg) calc(l + .03) c h);transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease-out)}.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:var(--radius-circle);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 var(--dur-fast) var(--ease-out)}.save-btn.is-saving .kbd{margin-right:var(--space-l)}@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:var(--radius-m);border:1px solid var(--bg-light);background:oklch(from var(--bg) calc(l + .01) c h);overflow:hidden;transition:background var(--dur-base),border-color var(--dur-base)}.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:var(--space-xs);height:30px;padding:0 var(--space-s);border:none;background:none;color:var(--text);font-weight:600;font-size:.78rem;cursor:pointer;transition:color var(--dur-base)}.save-split__main:disabled{opacity:.6;cursor:default}.save-split__main .kbd{font:10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:var(--space-3xs) var(--space-2xs);border-radius:var(--radius-s);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:var(--tint-soft);color:oklch(from var(--primary) calc(l + .1) c h);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.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:var(--space-s);padding:var(--space-s) var(--space-m);border-radius:calc(var(--mod-radius) - 2px);cursor:pointer;white-space:nowrap;font-size:.82rem;font-weight:500;color:var(--text, #eee);transition:background var(--dur-fast) var(--ease-out)}.save-menu-item .material-symbols-outlined{font-size:18px;color:var(--text-muted)}.save-menu-item:hover{background:var(--tint-strong)}.editor-canvas.spatial{display:block;position:relative;padding:0;overflow:visible}.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);backdrop-filter:var(--lg-ref, var(--glass-blur));-webkit-backdrop-filter:var(--lg-ref, var(--glass-blur));border:var(--glass-border);box-shadow:var(--glass-rim),var(--shadow-elevated);overflow:hidden!important;transition:width var(--dur-slow) var(--ease-in-out)}.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));top:50%;transform:translateY(-50%);z-index:11;width:20px;height:44px;padding:0;border-radius:0 var(--radius-m) var(--radius-m) 0;background:var(--glass-bg);backdrop-filter:var(--lg-ref, var(--glass-blur));-webkit-backdrop-filter:var(--lg-ref, var(--glass-blur));border:var(--glass-border);box-shadow:var(--glass-rim),var(--shadow-elevated);border-left:none;margin-left:-1px;box-shadow:var(--highlight-top),var(--glass-rim-edges-joined-left);color:var(--text-muted);cursor:pointer;display:grid;place-items:center;transition:left var(--dur-slow) var(--ease-in-out),background var(--dur-base),color var(--dur-base)}.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)}.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(--lg-ref, var(--glass-blur));-webkit-backdrop-filter:var(--lg-ref, var(--glass-blur));border:var(--glass-border);box-shadow:var(--glass-rim),var(--shadow-elevated);border-radius:var(--radius);overflow:hidden;width:180px;transition:width var(--dur-slow) var(--ease-in-out)}.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 var(--space-2xs);gap:var(--space-3xs)}.editor-canvas.spatial .spatial-right-panel .srp-tab{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-s) var(--space-m);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 var(--dur-base),border-color var(--dur-base)}.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:var(--space-xs);padding:var(--space-xl) var(--space-m);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-xl) var(--space-xl) 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 .spatial-right-panel .srp-skeleton{gap:var(--space-s)}.editor-canvas.spatial .spatial-right-panel .srp-skeleton .module-skel{height:44px;border-radius:var(--radius-l);flex:0 0 auto}.editor-canvas.spatial .spatial-right-panel .srp-skeleton .add-card-skel{height:40px;border-radius:var(--radius-m);margin-top:var(--space-xs);opacity:.7;flex:0 0 auto}.editor-canvas{--spatial-backdrop: radial-gradient(ellipse 38% 75% at 0% 50%, oklch(.3 .08 282 / .42), transparent), radial-gradient(ellipse 38% 75% at 100% 50%, oklch(.26 .06 230 / .32), transparent), radial-gradient(ellipse 65% 65% at 50% 42%, oklch(.2 .018 255), oklch(.11 .012 255) 80%), radial-gradient(circle, oklch(.52 .012 255 / .1) 1px, transparent 1px);background:var(--spatial-backdrop);background-size:100% 100%,100% 100%,100% 100%,24px 24px}.editor-canvas .sv-host{background:var(--spatial-backdrop);background-size:100% 100%,100% 100%,100% 100%,24px 24px}.editor-canvas .sv-grid{stroke:#2a2e34;opacity:.65}.editor-canvas .sv-dev-scatter{background:#0b0d11a6;border-color:#5f646980;color:#7c8186}.editor-canvas .sv-dev-scatter:hover{background:#0e1217d9}.editor-canvas .sv-dev-hint{color:#52565a}[data-theme=light] .editor-canvas{--spatial-backdrop: radial-gradient(ellipse 35% 70% at 0% 50%, oklch(.8 .08 290 / .24), transparent), radial-gradient(ellipse 35% 70% at 100% 50%, oklch(.82 .06 195 / .2), transparent), radial-gradient(ellipse 65% 65% at 50% 42%, oklch(.9 .012 240), oklch(.85 .02 240) 80%), radial-gradient(circle, oklch(.66 .02 240 / .3) 1px, transparent 1px)}[data-theme=light] .editor-canvas .sv-floor{fill:#dee6ec;opacity:.75}[data-theme=light] .editor-canvas .sv-border{stroke:#586474}[data-theme=light] .editor-canvas .sv-grid{stroke:#88949d;opacity:.65}[data-theme=light] .editor-canvas .sv-marker__circle{fill:#c7cfd5;stroke:#76828b}[data-theme=light] .editor-canvas .sv-marker__initial{fill:#1b2532}[data-theme=light] .editor-canvas .sv-marker:hover .sv-marker__initial,[data-theme=light] .editor-canvas .sv-marker.is-selected .sv-marker__initial{fill:#fff}[data-theme=light] .editor-canvas .sv-dev-scatter{background:#eef2f5b8;border-color:#8f99a680;color:#384351}[data-theme=light] .editor-canvas .sv-dev-scatter:hover{background:#e5ecf1e6}[data-theme=light] .editor-canvas .sv-dev-scatter.is-active{background:#296cd81a}[data-theme=light] .editor-canvas .sv-dev-hint{color:#5c646f}[data-theme=light] .module-header__icon{color:color-mix(in oklch,var(--module-accent, var(--primary)),black 28%);opacity:1}[data-theme=dark] .editor-canvas .poi-sidebar .poi-list .poi-item{color:#d5d8db}[data-theme=dark] .editor-canvas .poi-sidebar .poi-list .poi-item:hover{background-color:#ffffff12!important}[data-theme=dark] .editor-canvas .poi-sidebar .poi-list .poi-item.selected{color:#fff}[data-theme=dark] .editor-canvas .poi-sidebar .poi-section-title{color:#6d7277}.editor-canvas:not(.spatial) .poi-sidebar,.editor-canvas:not(.spatial) .classic-panel{background:var(--glass-bg);backdrop-filter:var(--lg-ref, var(--glass-blur));-webkit-backdrop-filter:var(--lg-ref, var(--glass-blur));border:var(--glass-border);box-shadow:var(--glass-rim),var(--shadow-elevated);border-radius:var(--radius)}.editor-canvas:not(.spatial) .classic-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.editor-canvas:not(.spatial) .classic-panel .classic-panel__head{display:flex;flex-shrink:0;padding:0 var(--space-2xs);border-bottom:var(--glass-border)}.editor-canvas:not(.spatial) .classic-panel .classic-panel__tab{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-s) var(--space-m);border-bottom:2px solid var(--primary);margin-bottom:-1px;color:var(--primary);font-size:.82rem;font-weight:500;white-space:nowrap}.editor-canvas:not(.spatial) .classic-panel .classic-panel__tab .material-symbols-outlined{font-size:15px;flex-shrink:0}.editor-canvas:not(.spatial) .classic-panel .classic-panel__body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--space-xl) var(--space-xl) 0;box-sizing:border-box;display:flex;flex-direction:column}.editor-canvas:not(.spatial) .classic-panel .poi-core,.editor-canvas:not(.spatial) .classic-panel .module-sidebar{flex:1;min-height:0;background:transparent;border:none;box-shadow:none;border-radius:0}.editor-canvas:not(.spatial) .classic-panel .module-sidebar{overflow:visible;scrollbar-gutter:auto}.editor-canvas:not(.spatial) .classic-panel .poc,.editor-canvas:not(.spatial) .classic-panel aside,.editor-canvas:not(.spatial) .classic-panel .sidebar-toolbar,.editor-canvas:not(.spatial) .classic-panel .module-list{background:transparent}.editor-canvas .poi-sidebar .poi-list,.editor-canvas .poi-sidebar .poi-wrapper{background:transparent!important}.editor-canvas .poi-sidebar .poi-footer{display:none!important}.editor-canvas .poi-sidebar .poi-list .poi-item{padding:var(--space-s) var(--space-s) var(--space-s) var(--space-m);font-size:.85rem;font-weight:400}.editor-canvas .poi-sidebar .poi-list .poi-item:hover{background-color:#0000000d!important}.editor-canvas .poi-sidebar .poi-list .poi-item.selected{background:#296cd826!important;border-color:#5a8ee466!important;box-shadow:none!important;translate:none!important}.editor-canvas .poi-sidebar .poi-section-header{display:flex;flex-shrink:0;padding:0 var(--space-2xs);border-bottom:var(--glass-border);align-items:center;justify-content:space-between;padding-right:var(--space-s);margin-bottom:0}.editor-canvas .poi-sidebar .poi-section-tab{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-s) var(--space-m);border-bottom:2px solid var(--primary);margin-bottom:-1px;color:var(--primary);font-size:.82rem;font-weight:500;white-space:nowrap}.editor-canvas .poi-sidebar .poi-section-tab .material-symbols-outlined{font-size:15px;flex-shrink:0}.editor-canvas .poi-sidebar .poi-section-tab .poi-section-title{margin:0;padding-left:0;font-size:.82rem;font-weight:500;letter-spacing:normal;color:inherit}.projects-shell .sh,.pd-shell .sh,.tm .sh{background:#07090cc7;backdrop-filter:var(--lg-ref, var(--glass-thick));-webkit-backdrop-filter:var(--lg-ref, var(--glass-thick));border-bottom:1px solid oklch(32% .012 260deg / .35);box-shadow:var(--highlight-top)}.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:var(--lg-ref, var(--glass-thick));-webkit-backdrop-filter:var(--lg-ref, var(--glass-thick));border-bottom:1px solid oklch(74% .018 240deg / .38);box-shadow:var(--highlight-top)}[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 .editor-header .sh{background:#05070bd1;backdrop-filter:var(--lg-ref, var(--glass-thick));-webkit-backdrop-filter:var(--lg-ref, var(--glass-thick));border-bottom:1px solid oklch(32% .018 260deg / .38);box-shadow:var(--highlight-top)}.editor-page .editor-header .sh:before{background:linear-gradient(90deg,oklch(60% .22 260deg),oklch(65% .2 200deg),oklch(60% .22 260deg));opacity:.85}[data-theme=light] .editor-page .editor-header .sh{background:#f1f6f9d6;backdrop-filter:var(--lg-ref, var(--glass-thick));-webkit-backdrop-filter:var(--lg-ref, var(--glass-thick));border-bottom:1px solid oklch(74% .02 240deg / .4);box-shadow:var(--highlight-top)}[data-theme=light] .editor-page .editor-header .sh:before{background:linear-gradient(90deg,#1c69e3,oklch(60% .18 200deg),#1c69e3);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;position:relative}.editor-load-error{position:absolute;top:var(--app-header-height);left:0;right:0;bottom:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-s);text-align:center;padding:var(--space-2xl);background:var(--bg)}.editor-load-error__icon{font-size:3rem;color:var(--text-muted);opacity:.4;margin-bottom:var(--space-xs)}.editor-load-error__title{margin:0;font-size:1.05rem;font-weight:700;color:var(--text)}.editor-load-error__text{margin:0;font-size:.875rem;line-height:1.6;color:var(--text-muted);max-width:34rem}.editor-load-error-actions{display:flex;gap:var(--space-s);flex-wrap:wrap;justify-content:center;margin-top:var(--space-l)}.editor-save-error{display:flex;align-items:center;gap:var(--space-s);padding:var(--space-s) var(--space-l);background:oklch(from var(--danger) l c h/.14);border-bottom:1px solid oklch(from var(--danger) l c h/.35);color:var(--danger);font-size:.82rem;font-weight:600;flex:none}.editor-save-error .material-symbols-outlined{font-size:19px}.editor-save-error .msg{flex:1;color:var(--text)}.editor-save-error button{flex:none;border:1px solid oklch(from var(--danger) l c h/.4);background:transparent;color:var(--danger);padding:var(--space-2xs) var(--space-m);border-radius:var(--radius-s);font-weight:600;cursor:pointer}.editor-save-error button:hover:not(:disabled){background:oklch(from var(--danger) l c h/.1)}.editor-save-error button:disabled{opacity:.6;cursor:default}.edo-veil{position:absolute;inset:0;z-index:60;pointer-events:none;display:flex;align-items:center;justify-content:center;background:oklch(from var(--bg) l c h/.55);backdrop-filter:blur(2px);animation:edo-fade .12s ease-out}@keyframes edo-fade{0%{opacity:0}to{opacity:1}}.edo-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-l) var(--space-xl);border-radius:var(--radius-l);border:2px dashed var(--primary);background:var(--bg);box-shadow:0 12px 40px #00000059;text-align:center}.edo-icon{font-size:34px;color:var(--primary)}.edo-title{font-size:.95rem;font-weight:650;color:var(--text)}.edo-hint{font-size:.8rem;color:var(--text-muted)}.edo-hint--targets{margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--border-muted);color:var(--primary)}.editor-page.is-file-dragging .poi-sidebar,.editor-page.is-file-dragging .spatial-right-panel,.editor-page.is-file-dragging .editor-canvas:not(.spatial) .classic-panel--modules{z-index:70}@media(prefers-reduced-motion:reduce){.edo-veil{animation:none}}.poi-sidebar{display:flex!important;flex-direction:column;background:var(--bg);border-radius:var(--radius-m);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:var(--space-s) var(--space-m) var(--space-s) var(--space-m);background:linear-gradient(180deg,oklch(from var(--bg) calc(l + .02) c h),var(--bg));backdrop-filter:var(--glass-thin);display:flex;align-items:center;gap:var(--space-s)}.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:var(--space-s);height:var(--app-header-height);margin:0 -.75rem;padding:0 var(--space-m);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:var(--radius-m);border:1px solid var(--bg-light);background:oklch(from var(--bg) calc(l + .02) c h);color:var(--text-muted);transition:background var(--dur-base),color var(--dur-base),border-color var(--dur-base)}.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:var(--space-s);padding:0 var(--space-s);overflow:hidden;white-space:nowrap;box-sizing:border-box;transition:max-inline-size var(--dur-base) var(--ease-out),background var(--dur-base),color var(--dur-base),border-color var(--dur-base)}.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 var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}.poi-sidebar .poi-toolbar .poi-brand .back-btn .material-symbols-outlined{font-size:18px;line-height:1;position:static;transform-origin:center;transition:opacity var(--dur-base) var(--ease-out);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 var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);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 .back-btn:hover .icon,.poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible .icon{transform:translateY(var(--nudge-y, .75px))}}:root[data-motion=reduce] .poi-sidebar .poi-toolbar .poi-brand .back-btn{transition:none}:root[data-motion=reduce] .poi-sidebar .poi-toolbar .poi-brand .back-btn .icon,:root[data-motion=reduce] .poi-sidebar .poi-toolbar .poi-brand .back-btn .label{transition:none}:root[data-motion=reduce] .poi-sidebar .poi-toolbar .poi-brand .back-btn:hover .icon,:root[data-motion=reduce] .poi-sidebar .poi-toolbar .poi-brand .back-btn:focus-visible .icon{transform:translateY(var(--nudge-y, .75px))}.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:var(--radius-s);padding:var(--space-3xs) var(--space-2xs);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:var(--radius-m);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 var(--dur-base) var(--ease-out)}.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:var(--space-2xs);background:transparent;border:0;padding:var(--space-2xs);border-radius:var(--radius-s);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 var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.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:var(--space-xs)}.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:var(--space-xs)}.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:var(--space-s);padding:var(--space-s);border-radius:var(--radius-m);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:var(--space-2xs);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:var(--space-2xs)}.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:var(--space-2xs) var(--space-s);border-radius:var(--radius-s);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:var(--space-2xs) var(--space-m);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:var(--space-m);width:100%;margin-top:var(--space-2xs);padding:var(--space-s) var(--space-s) var(--space-s) var(--space-m);border-radius:var(--radius-m);background:transparent;font-weight:500;color:var(--text);border:1px solid transparent;cursor:pointer;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),translate var(--dur-base) var(--ease-out);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);translate:2px 0;box-shadow:0 2px 12px oklch(from var(--primary) l c h/.15)}.poi-sidebar .poi-list .poi-item.dirty:after{content:"*";margin-left:var(--space-2xs);color:var(--primary)}.poi-sidebar .poi-footer{--poi-footer-space: 5rem;position:static;margin-top:auto;padding:var(--space-m);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:var(--space-l);border-radius:var(--radius-pill);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-xl);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:var(--space-m)}.panel-actions{margin-left:auto;padding-top:var(--space-l);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:var(--space-xs)}.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:var(--space-s);align-items:center;justify-content:space-between;margin-top:var(--space-xs);font-size:.85rem;color:var(--text-muted)}.module-panel.info .label-title{display:block;margin-bottom:var(--space-2xs);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) + var(--space-s))}.identity .panel-head{display:flex;align-items:baseline;gap:var(--space-m);background:var(--bg-light)}.identity .panel-head .titles{display:flex;align-items:baseline;gap:var(--space-m);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:var(--space-l)}.identity .panel-head .id-subtitle{display:inline-flex;align-items:center;gap:var(--space-s);font-size:.85rem;color:var(--text-muted);min-width:0}.section-subtitle{padding-bottom:var(--space-xl)}.id-subtitle{display:flex;align-items:center;gap:var(--space-s);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:var(--radius-s);padding:var(--space-2xs) var(--space-s);max-width:48ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.id-subtitle .btn-copy{height:28px;padding:0 var(--space-s)}.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:var(--space-s);height:var(--rail-toolbar-h, 32px);margin:0 0 var(--g);background:transparent}.toolbar-left{display:flex;gap:var(--space-s)}.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:var(--space-l);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:var(--radius-m);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:var(--radius-m);padding:var(--space-2xl);text-align:center;filter:var(--shadow-elevated-drop);border:1px solid var(--bg)}.editor.empty,.module-placeholder{font-size:1.5rem;margin-bottom:var(--space-s)}.icon{font-size:1.5rem;margin-bottom:var(--space-s);opacity:.5}.headline{font-size:1.125rem;font-weight:600;margin-bottom:var(--space-2xs);color:var(--text-muted);opacity:.5}.subline{font-size:.875rem;opacity:.8}.module-placeholder-column{display:flex;flex-direction:column;gap:var(--space-l);width:100%;padding:var(--space-2xl)}.skel-block,.skel-line,.skel-icon{background:var(--skeleton-bg);border-radius:var(--radius-s);animation:skeleton-pulse 1.5s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.skel-block,.skel-line,.skel-icon{animation:none}}.skel-line{height:12px;border-radius:var(--radius-s)}.skel-icon{width:20px;height:20px;border-radius:var(--radius-circle);flex:0 0 auto}@keyframes skeleton-pulse{0%,to{opacity:.55}50%{opacity:1}}.poi-item.skeleton{background:transparent;border-color:transparent;cursor:default;pointer-events:none}.poi-brand .project-title{opacity:0;transform:translateY(2px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}.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:var(--radius-m);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 var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out),border-color var(--dur-base),background-color var(--dur-base)}.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 var(--dur-base)}.project-icon-btn.has-icon .cam{opacity:0}.project-icon-btn.dragover{outline:2px dashed var(--primary);outline-offset:2px}.poi-brand .project-icon-btn{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}.note{margin:0;max-width:var(--measure-note);font-size:var(--fs-note);line-height:var(--lh-note);color:var(--text-muted)}.note--full{max-width:none}.note--section{margin-bottom:var(--space-l)}.status-pill{display:inline-block;flex:0 0 auto;padding:var(--space-3xs) var(--space-s);border:1px solid var(--border-muted);border-radius:var(--radius-pill);background:transparent;color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:var(--tracking-wide);text-transform:uppercase;white-space:nowrap;--pill-fill: .08}.status-pill--on{border-color:oklch(from var(--success) l c h/.5);background:oklch(from var(--success) l c h/var(--pill-fill));color:var(--success)}.status-pill--warn{border-color:oklch(from var(--warning) l c h/.5);background:oklch(from var(--warning) l c h/var(--pill-fill));color:var(--warning)}.status-pill--bad{border-color:oklch(from var(--danger) l c h/.45);background:oklch(from var(--danger) l c h/var(--pill-fill));color:var(--danger)}[data-theme=dark] .status-pill{--pill-fill: .06}@keyframes overlay-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes overlay-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(6px) scale(.98)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.cdk-overlay-container{z-index:100001}.cdk-overlay-pane,.modal-root.active .modal-content-wrap{animation:overlay-in var(--dur-base) var(--ease-out) both}.cdk-overlay-pane.is-closing,.modal-root.is-closing .modal-content-wrap{animation:overlay-out var(--dur-base) var(--ease-in) forwards}.cdk-overlay-pane.is-closing,.modal-root.is-closing{pointer-events:none}.cdk-overlay-pane.ap-popover-pane{animation-duration:var(--dur-fast);transform-origin:left center}.cdk-overlay-pane.ap-popover-pane.is-closing{animation-duration:var(--dur-fast)}button:active:not(:disabled):not([aria-disabled=true]),[role=button]:active:not(:disabled):not([aria-disabled=true]),summary:active:not(:disabled):not([aria-disabled=true]),.pressable:active:not(:disabled):not([aria-disabled=true]){filter:var(--press-dim)}.reorder-lifted{cursor:grabbing;box-shadow:0 18px 40px #00000052,0 2px 6px #0000002e;transition:none!important}.reorder-gap{border:1px dashed var(--border-muted);border-radius:var(--radius-m);box-sizing:border-box}html.is-reordering{cursor:grabbing}html.is-reordering body *{pointer-events:none!important}.reorder-shifting{transition:none!important}button:focus-visible,[role=button]:focus-visible,summary:focus-visible,a[href]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.rm-fade,.rm-fade:before,.rm-fade:after{transition-property:opacity!important;transition-duration:var(--dur-base)!important}html{scroll-behavior:auto!important}}:root[data-motion=reduce]{scroll-behavior:auto!important}:root[data-motion=reduce] *,:root[data-motion=reduce] *:before,:root[data-motion=reduce] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}:root[data-motion=reduce] .rm-fade,:root[data-motion=reduce] .rm-fade:before,:root[data-motion=reduce] .rm-fade:after{transition-property:opacity!important;transition-duration:var(--dur-base)!important}@media(prefers-reduced-transparency:reduce){:root{--glass-bg: var(--bg-light);--glass-blur: none;--modal-glass-bg: var(--bg);--glass-rim-edges: 0 0 0 0 transparent;--glass-rim-edges-joined-left: 0 0 0 0 transparent;--glass-rim: var(--highlight-top)}:root,:root *,:root *:before,:root *:after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}:root[data-transparency=reduce]{--glass-bg: var(--bg-light);--glass-blur: none;--modal-glass-bg: var(--bg);--glass-rim-edges: 0 0 0 0 transparent;--glass-rim-edges-joined-left: 0 0 0 0 transparent;--glass-rim: var(--highlight-top)}:root[data-transparency=reduce],:root[data-transparency=reduce] *,:root[data-transparency=reduce] *:before,:root[data-transparency=reduce] *:after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}@media(prefers-contrast:more){:root{--glass-bg: var(--bg-light);--glass-border-color: var(--text-muted);--border-muted: var(--text-muted);--glass-rim-edges: 0 0 0 0 transparent;--glass-rim-edges-joined-left: 0 0 0 0 transparent;--glass-rim: 0 0 0 0 transparent}:root .status-pill{border-color:currentColor}}:root[data-contrast=more]{--glass-bg: var(--bg-light);--glass-border-color: var(--text-muted);--border-muted: var(--text-muted);--glass-rim-edges: 0 0 0 0 transparent;--glass-rim-edges-joined-left: 0 0 0 0 transparent;--glass-rim: 0 0 0 0 transparent}:root[data-contrast=more] .status-pill{border-color:currentColor}.setting-section{padding:var(--space-m) 0}.setting-section+.setting-section{border-top:1px solid var(--border-muted)}.setting-label{font-weight:600;font-size:.875rem;margin-bottom:var(--space-3xs)}.setting-desc{font-size:.8rem;opacity:.55;margin-bottom:var(--space-s)}.option-cards{display:flex;gap:var(--space-s)}.option-cards--stacked{flex-direction:column;gap:var(--space-xs)}.option-cards--stacked .option-card{flex:0 0 auto;justify-content:flex-start;padding:var(--space-s) var(--space-m);text-align:left}.option-card{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-s);padding:var(--space-m) var(--space-l);border:1px solid var(--border-muted);border-radius:var(--radius-m);background:var(--bg-light);color:inherit;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.option-card:hover:not(.active){border-color:oklch(from var(--primary) l c h/.35);background:color-mix(in oklch,var(--primary) 5%,var(--bg-light))}.option-card.active{border-color:var(--primary);background:color-mix(in oklch,var(--primary) 10%,var(--bg-light));box-shadow:0 0 0 1px var(--primary)}.option-icon{font-size:20px;opacity:.7}.active .option-icon{opacity:1;color:var(--primary)}.option-code{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.45}.active .option-code{opacity:.8;color:var(--primary)}.option-name{font-size:.8rem;font-weight:600}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-m);padding:var(--space-s) 0;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-row--child{padding-left:var(--space-m);font-size:.82rem;opacity:.85}.toggle-text{flex:1 1 auto;font-size:.85rem}input[type=checkbox].toggle-switch{appearance:none;-webkit-appearance:none;position:relative;width:36px;height:20px;border-radius:var(--radius-m);background:var(--bg-dark);border:1px solid var(--border-muted);cursor:pointer;transition:background .15s,border-color .15s;flex-shrink:0}input[type=checkbox].toggle-switch:after{content:none}input[type=checkbox].toggle-switch:hover{background:var(--bg-dark);border-color:var(--border-muted)}input[type=checkbox].toggle-switch:before{content:"";position:absolute;top:1px;left:1px;width:16px;height:16px;border-radius:var(--radius-circle);background:var(--text-muted);transition:transform .15s,background .15s}input[type=checkbox].toggle-switch:checked,input[type=checkbox].toggle-switch:checked:hover{background:var(--primary);border-color:var(--primary);box-shadow:none}input[type=checkbox].toggle-switch:checked:before,input[type=checkbox].toggle-switch:checked:hover:before{transform:translate(16px);background:var(--text-inverted)}input[type=checkbox].toggle-switch:focus-visible,input[type=checkbox].toggle-switch:checked:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input[type=checkbox].toggle-switch:disabled{opacity:.4;cursor:not-allowed}input.setting-input{flex:1;min-width:0;height:38px;padding:0 var(--space-m);border-radius:var(--radius-m);border:1px solid var(--border-muted);background:var(--bg-light);color:inherit;font-size:.875rem;outline:none;transition:border-color .15s}input.setting-input::placeholder{color:var(--text-muted);opacity:.45}input.setting-input:focus{border-color:var(--primary)}html[data-env=local]{--env-accent: var(--info);--env-label: "LOKAL"}html[data-env=staging]{--env-accent: var(--warning);--env-label: "STAGING"}html[data-env=local] body:after,html[data-env=staging] body:after{content:"";position:fixed;inset:0;z-index:60;pointer-events:none;box-shadow:inset 0 0 0 2px var(--env-accent)}#env-marker{display:none;position:fixed;bottom:0;left:0;z-index:61;align-items:center;gap:0;padding:var(--space-2xs) var(--space-s) var(--space-2xs) var(--space-s);border-top-right-radius:var(--radius);background:var(--env-accent);color:var(--text-inverted);box-shadow:0 0 0 2px var(--env-accent);transition:opacity var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}@media(prefers-reduced-motion:reduce){#env-marker{transition:none}}:root[data-motion=reduce] #env-marker{transition:none}html[data-env=local] #env-marker,html[data-env=staging] #env-marker{display:flex}#env-flag:after{content:var(--env-label);font-size:var(--fs-note);font-weight:700;line-height:1.2;letter-spacing:var(--tracking-wide)}#env-eye{appearance:none;margin:0;padding:0;border:0;background:none;color:inherit;display:flex;cursor:pointer;overflow:hidden;width:0;opacity:0;transition:width var(--dur-fast) var(--ease-out),margin var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}@media(prefers-reduced-motion:reduce){#env-eye{transition:none}}:root[data-motion=reduce] #env-eye{transition:none}#env-eye:focus-visible{outline:2px solid var(--text-inverted);outline-offset:2px}#env-eye svg{display:block;width:15px;height:15px;flex:none}#env-eye .env-eye-slash{opacity:0}#env-marker:hover #env-eye,#env-marker:focus-within #env-eye{width:15px;margin-left:var(--space-xs);opacity:.75}#env-marker:hover #env-eye:hover,#env-marker:hover #env-eye:focus-visible,#env-marker:focus-within #env-eye:hover,#env-marker:focus-within #env-eye:focus-visible{opacity:1}html[data-env-hidden] body:after{box-shadow:none}html[data-env-hidden] #env-flag{display:none}html[data-env-hidden] #env-eye .env-eye-slash{opacity:1}html[data-env-hidden] #env-marker:hover #env-eye,html[data-env-hidden] #env-marker:focus-within #env-eye{margin-left:0}html[data-env-hidden] #env-marker{opacity:0;padding:var(--space-s);background:transparent;box-shadow:none}html[data-env-hidden] #env-marker:hover,html[data-env-hidden] #env-marker:focus-within{opacity:1;background:var(--env-accent);box-shadow:0 0 0 2px var(--env-accent)}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;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;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);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;padding:var(--space-2xs);list-style:none;margin:0;min-width:160px;opacity:0;transform-origin:top left;transform:translateY(-4px) scale(.98);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.global-context-menu.visible{opacity:1;transform:translateY(0) scale(1)}.global-context-menu li{display:flex;align-items:center;gap:var(--space-s);padding:var(--space-s) var(--space-m);border-radius:calc(var(--mod-radius) - 2px);cursor:pointer;white-space:nowrap;font-size:.82rem;font-weight:500;color:var(--text, #eee);transition:background var(--dur-fast) var(--ease-out)}.global-context-menu li .material-symbols-outlined{font-size:18px;color:var(--text-muted)}.global-context-menu li:hover{background:var(--tint-strong)}.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:var(--space-s) var(--space-m);border-radius:var(--radius-s);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 var(--dur-base) var(--ease-out)}.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);box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;padding:0;overflow:hidden;overflow-y:auto;max-height:240px;opacity:0;transform-origin:top center;transform:translateY(-4px) scale(.98);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.custom-select-panel.visible{opacity:1;transform:translateY(0) scale(1)}.custom-select-option{padding:var(--space-s) var(--space-m);font-size:.85rem;color:var(--text, #eee);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-select-option:hover{background:var(--tint-strong)}.custom-select-option.selected{color:var(--primary);font-weight:600;background:var(--tint-soft)}@font-face{font-family:codicon;src:local("Arial")}
