:root{--bg:#0b1020;--surface:#12192c;--surface-2:#171f35;--border:#2c3853;--text:#e7ecfa;--muted:#98a7c3;--accent:#898bff;--accent-soft:#28294c;--green:#59d6a6;--danger:#fa8096;--shadow:0 18px 55px #0004; font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-size:13px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}input,textarea,select{outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent)!important;box-shadow:0 0 0 2px #898bff22}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hidden{display:none!important}
#app{height:100%;display:flex;flex-direction:column}.app-topbar{height:68px;min-height:68px;background:#10172a;display:flex;align-items:center;padding:0 24px;gap:23px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:850;letter-spacing:1.2px;white-space:nowrap}.brand-secondary{color:#7787a7}.brand-mark{width:28px;height:28px;background:linear-gradient(140deg,#aea5ff,#6d72e9);border-radius:8px;display:flex;align-items:center;justify-content:center;gap:3px;transform:rotate(-8deg)}.brand-mark i{width:4px;background:#fff;border-radius:2px;display:block;height:9px}.brand-mark i:nth-child(2){height:16px}.brand-mark i:nth-child(3){height:12px}.header-sep{height:26px;border-left:1px solid var(--border)}.project-area{display:flex;flex-direction:column;gap:3px;min-width:180px;flex:1}.project-area input{border:1px solid transparent;background:transparent;color:#f1f4ff;font-size:14px;font-weight:650;padding:3px 5px;max-width:390px;min-width:100px}.save-status{font-size:10px;color:#8f9db9;padding-left:5px}.top-actions{display:flex;align-items:center;gap:8px}.top-actions button{white-space:nowrap}.icon-btn,.subtle-btn,.primary-btn,.tool-icon,.tiny-icon{border:1px solid var(--border);color:var(--text);background:#172039;border-radius:8px;height:34px;padding:0 13px}.icon-btn{font-size:21px;padding:0 10px}.subtle-btn:hover,.icon-btn:hover,.tool-icon:hover,.tiny-icon:hover{background:#28334e}.primary-btn{border-color:#7878ed;background:linear-gradient(140deg,#898cff,#686ce4);font-weight:720;box-shadow:0 4px 18px #7377fb25}.primary-btn:hover{filter:brightness(1.12)}.toolbar-divider{height:24px;border-left:1px solid var(--border);margin:0 6px}.app-body{display:flex;flex:1;min-height:0}.rail{width:73px;background:#0e1528;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:19px 8px;gap:10px}.rail-button{border:1px solid transparent;background:transparent;color:#8b9ab7;font-size:10px;height:63px;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:5px;flex-direction:column}.rail-button span{font-size:23px;line-height:24px}.rail-button:hover,.rail-button.active{background:#262b4d;color:#c9c9ff}.rail-button.active{border-color:#4e4d83}.left-panel{width:262px;min-width:262px;background:#121b30;border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .15s}.left-panel.collapsed{width:0;min-width:0;overflow:hidden}.panel-topline,.right-heading{padding:25px 19px 17px;border-bottom:1px solid var(--border)}.panel-topline{display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:850;color:#8c91ff}.panel-topline h2,.right-heading h2{font-size:18px;letter-spacing:-.4px;margin:6px 0 0}.right-heading p{color:var(--muted);font-size:12px;margin:9px 0 0;line-height:1.5}.tiny-icon{border:0;padding:0 8px;font-size:18px;background:transparent}.left-scroll,.property-scroll{overflow:auto;flex:1;min-height:0;padding:15px}.left-scroll::-webkit-scrollbar,.property-scroll::-webkit-scrollbar{width:6px}.left-scroll::-webkit-scrollbar-thumb,.property-scroll::-webkit-scrollbar-thumb{background:#374462;border-radius:5px}.workspace{flex:1;min-width:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at center,#1d2944 0%,#151d33 42%,#10182d 100%)}.editing-toolbar{height:56px;min-height:56px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#131c32;gap:10px}.tool-group{display:flex;align-items:center;gap:7px;white-space:nowrap}.editing-context{font-weight:760;font-size:11px;color:#b2baff;letter-spacing:1px}.muted{color:var(--muted)}.tiny-label{font-size:11px}.mini-separator{border-left:1px solid var(--border);height:20px;margin:0 10px}.tool-icon{width:32px;height:32px;font-size:17px;padding:0;background:transparent;border-color:transparent}.zoom-label{min-width:38px;text-align:center;color:var(--muted);font-size:11px}.workspace-scroller{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;padding:32px;min-height:0}.canvas-holder{position:relative;flex-shrink:0;border-radius:5px;background:#10162b;box-shadow:0 27px 70px #0009,0 0 0 1px #7f8ab833}.slide-canvas,.present-slide,.standalone-slide{width:1280px;height:720px;position:relative;transform-origin:0 0;overflow:hidden;background:#10162b;isolation:isolate}.slide-canvas{cursor:default}.workspace-bottom{height:38px;min-height:38px;border-top:1px solid var(--border);background:#10192d;display:flex;justify-content:space-between;align-items:center;padding:0 22px;color:#8997b5;font-size:11px}.workspace-bottom-left,.workspace-bottom-right{display:flex;gap:10px;align-items:center}.status-dot{width:6px;height:6px;background:#66d8ae;border-radius:50%}.bottom-sep{color:#506181}.right-panel{width:278px;min-width:278px;background:#111a2e;border-left:1px solid var(--border);display:flex;flex-direction:column}
.panel-button{width:100%;background:#232f4e;border:1px solid #364564;color:#e2e9ff;padding:11px;border-radius:9px;font-weight:620}.panel-button:hover{background:#303e5f}.panel-button.strong{background:#6769d4;border-color:#8c8dff}.section-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:#9aa8c4;font-weight:850;margin:17px 0 11px}.slide-card{padding:9px 9px 6px;border:1px solid transparent;border-radius:10px;margin:7px 0;cursor:pointer}.slide-card:hover{background:#202a46}.slide-card.active{background:#24274c;border-color:#7776dc}.slide-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:#a4b2cc;font-size:10px}.slide-card.active .slide-card-head{color:#d8d7ff}.mini-slide{width:100%;aspect-ratio:16/9;position:relative;border-radius:6px;overflow:hidden;background:#111a30;border:1px solid #50608066}.mini-slide-title{position:absolute;left:9%;top:19%;font-size:11px;font-weight:800;color:#f0f3ff;max-width:85%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mini-slide-accent{position:absolute;left:9%;bottom:20%;width:43%;height:7%;border-radius:3px;background:#898bff}.slide-card-title{margin:8px 2px 1px;color:#e3e9fb;font-weight:630;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.left-note{font-size:11px;color:#9caac6;line-height:1.65;margin:7px 0 13px}.insert-grid,.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.insert-card,.template-card{padding:14px 8px;border-radius:10px;border:1px solid #34415e;background:#1a2741;color:#e2e9f8;display:flex;flex-direction:column;align-items:center;gap:9px;min-height:85px}.insert-card:hover,.template-card:hover{border-color:#8788fc;background:#252e50}.insert-glyph{font-size:25px;color:#b2b4ff}.insert-card span:last-child,.template-card span:last-child{font-size:11px;font-weight:650}.template-card{min-height:125px}.template-preview{width:100%;height:56px;border-radius:4px;background:#111a30;display:flex;align-items:center;justify-content:center;gap:4px;padding:8px}.template-preview i{height:28px;flex:1;border-radius:3px;background:#3c5174}.template-preview i:first-child{background:#7c80ff}.template-preview.cover i:first-child{flex:3;height:9px}.template-preview.cover i:last-child{flex:1;height:6px}.template-preview.two i:first-child{flex:2}.template-preview.two i:last-child{flex:2}.template-preview.metrics i{height:18px}.layer-item{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid transparent;border-radius:8px;cursor:pointer;color:#cdd8ee}.layer-item:hover{background:#1d2b47}.layer-item.active{background:#292a4f;border-color:#51569b}.layer-icon{font-size:16px;color:#9caffc;width:23px;text-align:center}.layer-name{font-size:11px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:1}.data-item{background:#1b2842;border:1px solid #34405a;border-radius:10px;padding:12px;margin-top:9px;cursor:pointer}.data-item.active{border-color:#8a87fb;background:#282e53}.data-name{font-size:12px;font-weight:700}.data-meta{color:#9aa9c4;font-size:10px;margin-top:5px}.field-tag{display:inline-block;padding:4px 7px;margin:3px;border-radius:5px;border:1px solid #3c4a67;color:#b3c1db;font-size:10px}.file-drop{padding:18px 12px;text-align:center;border:1px dashed #58688c;border-radius:11px;background:#1a2843;cursor:pointer}.file-drop strong{display:block;margin-top:7px}.file-drop small{display:block;color:#a2b1cc;line-height:1.6;margin-top:6px}.file-drop:hover{border-color:var(--accent)}.color-pick{width:100%;height:37px;border:1px solid var(--border);border-radius:8px;background:#202c46;padding:4px}.theme-swatch{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #425170;border-radius:8px;margin:8px 0;cursor:pointer}.swatch-dot{height:28px;width:28px;border-radius:8px}.theme-swatch:hover{background:#28344f}
.property-section{border-bottom:1px solid #2b3852;padding:0 0 17px;margin-bottom:18px}.property-section-title{font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:1.3px;color:#a4b1c9;margin:1px 0 13px}.prop-field{display:flex;flex-direction:column;gap:6px;margin:11px 0}.prop-field label{font-size:11px;color:#aab7ce}.prop-field input,.prop-field select,.prop-field textarea,.modal input,.modal textarea{width:100%;border:1px solid #3a4969;border-radius:7px;padding:9px 10px;color:#eaf0fc;background:#1d2a44;min-width:0}.prop-field textarea{min-height:82px;resize:vertical;line-height:1.5}.prop-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.prop-field input[type=checkbox]{width:auto;accent-color:#8b8cff}.prop-field input[type=color]{padding:3px;height:35px}.property-actions{display:flex;gap:7px;margin:13px 0}.property-actions button{flex:1;background:#243252;border:1px solid #3b4d6b;color:#dfe7f9;padding:9px;border-radius:7px}.property-actions button:hover{background:#303f60}.empty-properties{border:1px dashed #3c4b69;border-radius:12px;padding:26px 14px;color:#a4b1c9;text-align:center;line-height:1.6}.property-help{color:#8e9cb7;line-height:1.65;font-size:11px;margin:13px 0}.mini-form-button{background:#313b66;color:#e0e0ff;border:1px solid #54599e;border-radius:6px;padding:8px;width:100%;margin:7px 0}.measure-row{border:1px solid #3b4966;border-radius:8px;padding:8px;margin-top:8px}.measure-row input,.measure-row select{width:100%;background:#202c46;color:#fff;border:1px solid #465471;border-radius:5px;padding:6px;margin:3px 0}
/* Rendered slide components */
.slide-element{position:absolute;min-width:15px;min-height:15px;overflow:hidden}.slide-element.editable{cursor:move;touch-action:none}.slide-element.editable.selected{outline:2px solid #a3a8ff;outline-offset:1px;z-index:8}.slide-element.editable.selected:after{content:'';position:absolute;pointer-events:none;inset:0;border:1px dashed #898bff88}.resize-handle{position:absolute;width:12px;height:12px;border-radius:3px;background:#f1f0ff;border:2px solid #7279fb;z-index:20;cursor:nwse-resize;right:-7px;bottom:-7px;box-shadow:0 1px 6px #0007}.slide-element.selected{overflow:visible}.slide-element.selected>.chart-plot{overflow:hidden}.widget-element{border-radius:16px;padding:20px 22px}.chart-element{display:flex;flex-direction:column}.chart-plot{flex:1;min-height:0;min-width:0;width:100%;position:relative}.widget-title{font-size:19px;font-weight:760;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-element{display:flex;flex-direction:column;justify-content:center}.kpi-label{font-size:16px;color:#adb9d3}.kpi-value{font-size:43px;font-weight:780;letter-spacing:-1px;margin:11px 0 3px;line-height:1}.kpi-foot{font-size:11px;color:#9cabc9;letter-spacing:.5px}.table-element{display:flex;flex-direction:column}.table-scroll{overflow:auto;margin-top:17px;min-height:0;flex:1}.table-scroll table{width:100%;border-collapse:collapse;font-size:13px}.table-scroll td,.table-scroll th{padding:12px 10px;border-bottom:1px solid #ffffff1a;text-align:left;white-space:nowrap}.table-scroll th{color:#b8c7e2;font-size:12px;position:sticky;top:0;background:#202c48}.table-scroll tr:hover td{background:#ffffff09;cursor:pointer}.filter-element{display:flex;flex-direction:column;gap:7px;justify-content:center;padding:12px 17px}.filter-element label{font-size:14px;color:#adbad7}.filter-element select{color:inherit;width:100%;height:38px;border:1px solid #8390b05c;background:#142039;border-radius:7px;padding:0 12px;font-size:15px}.slide-action{width:100%;height:100%;border:0;border-radius:9px;font-size:19px;font-weight:700}.image-element{background:#29354f}.text-element{word-break:break-word;pointer-events:auto}.text-element[contenteditable=true]{outline:2px solid #b7b4ff!important;cursor:text;z-index:99}
/* Notifications & dialogs */
.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%) translateY(20px);background:#2c3858;border:1px solid #59658a;border-radius:10px;padding:12px 18px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;z-index:10000;color:#f4f7ff}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.error{border-color:#b45c74}.modal-shade{position:fixed;inset:0;background:#040917c7;z-index:5000;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:#151e35;border:1px solid #435172;border-radius:15px;width:min(640px,96vw);max-height:85vh;overflow-y:auto;padding:26px;box-shadow:0 25px 100px #0009}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #2d3850;padding-bottom:19px;margin-bottom:19px}.modal-header h2{margin:7px 0 0;font-size:23px}.modal-list{display:flex;flex-direction:column;gap:8px}.modal-list-item{display:flex;align-items:center;justify-content:space-between;padding:13px;background:#1c2944;border:1px solid #3a4969;border-radius:9px;gap:12px}.modal-list-item strong{font-size:13px}.modal-list-item small{display:block;color:#9eabc7;margin-top:5px}.modal-list-item button,.modal-action{background:#343d72;border:1px solid #6369a3;color:#f4f5ff;border-radius:7px;padding:9px 13px}.modal-actions{display:flex;gap:10px;flex-wrap:wrap}.modal-hint{color:#a4b0cc;font-size:12px;line-height:1.6}.modal-option{padding:15px;border:1px solid #465575;background:#1b2842;margin-bottom:10px;border-radius:9px;cursor:pointer}.modal-option:hover{border-color:#8b8cff;background:#28365b}.modal-option strong{display:block;margin-bottom:5px}.modal-option small{color:#aab8cf}
/* Full-screen presentation mode */
.presentation-overlay,.player-only #playerRoot{position:fixed;inset:0;z-index:2000;background:#050912;overflow:hidden}.present-slide,.standalone-slide{position:absolute;top:0;left:0}.present-controls{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#0c142bdc;border:1px solid #68739288;border-radius:22px;display:flex;align-items:center;gap:8px;padding:7px 13px;z-index:2200;opacity:.75;transition:opacity .2s}.present-controls:hover{opacity:1}.present-controls button{border:0;color:#fff;background:#2d3a5b;padding:6px 13px;border-radius:10px;font-size:20px}.present-controls span{color:#c8d2e7;min-width:64px;text-align:center;font-size:13px}.present-filters{position:fixed;right:20px;top:20px;z-index:2250;display:flex;gap:7px;flex-wrap:wrap;max-width:50vw;justify-content:flex-end}.present-filter-pill{padding:9px 12px;border:1px solid #6f75a8;border-radius:18px;background:#1a2555e9;color:#fff;font-size:12px;cursor:pointer}.player-only .present-controls{z-index:9000}.player-only .present-filters{z-index:9000}
@media(max-width:1250px){.right-panel{width:242px;min-width:242px}.left-panel{width:225px;min-width:225px}.app-topbar{gap:11px;padding:0 13px}.top-actions{gap:4px}.editing-toolbar{padding:0 11px}.project-area{min-width:125px}.project-area input{max-width:170px}}@media(max-width:1050px){.right-panel{display:none}.top-actions .subtle-btn{padding:0 8px}.rail{width:56px}.left-panel{width:205px;min-width:205px}.rail-button{font-size:9px}.rail-button span{font-size:19px}}@media(max-height:690px){.app-topbar{height:53px;min-height:53px}.editing-toolbar{height:45px;min-height:45px}.workspace-bottom{height:29px;min-height:29px}}
@media print{html,body,.player-only #playerRoot{height:100%;overflow:visible;background:#fff!important} .present-controls,.present-filters{display:none!important}.standalone-slide,.present-slide{transform:none!important;left:0!important;top:0!important;position:absolute!important;transform-origin:0 0;zoom:0.8} @page{size:landscape;margin:0}}

/* V0.2 — HTML embed, advanced widgets, typography, RTL controls, motion scenes */
.ui-direction-toggle{display:inline-flex;align-items:center;gap:6px;color:#adbadd;font-size:11px;white-space:nowrap;padding:4px 9px;border:1px solid #354461;border-radius:7px}.ui-direction-toggle input{accent-color:#898bff}
#app[dir="rtl"] .left-panel,#app[dir="rtl"] .right-panel{text-align:right}
#app[dir="rtl"] .brand,#app[dir="rtl"] .top-actions,#app[dir="rtl"] .workspace-bottom{direction:rtl}
#app[dir="rtl"] .panel-topline,#app[dir="rtl"] .right-heading{direction:rtl}
#app[dir="rtl"] .slide-card,#app[dir="rtl"] .layer-item{direction:rtl}
.slide-canvas,.present-slide,.standalone-slide{direction:ltr}
.slide-element[dir="rtl"]{text-align:right}
.slide-element[dir="ltr"]{text-align:left}
.slide-element.text-element{unicode-bidi:plaintext}
.motion-scene{position:absolute;inset:0;width:1280px;height:720px;overflow:hidden;transform-origin:center center;isolation:isolate}
.present-slide,.standalone-slide{width:1280px;height:720px;transform-origin:top left;perspective:1600px}
.html-element{border-radius:9px;background:#111b30}
.html-element iframe{display:block;width:100%;height:100%;border:0}
.html-element.editable:before{content:'HTML';position:absolute;right:9px;top:9px;z-index:2;font-size:10px;letter-spacing:1px;color:#dfeaff;background:#2d3a65d8;padding:3px 6px;border-radius:5px;pointer-events:none}
.slide-element.editable select,.slide-element.editable .slide-action,.slide-element.editable video{pointer-events:none}
.progress-element{display:flex;flex-direction:column;justify-content:center;gap:10px}
.progress-caption{font-size:15px;color:#b5c8e8;font-weight:650}.progress-number{font-size:43px;font-weight:800;line-height:1.1}
.progress-track{height:17px;min-height:17px;background:#41526e;border-radius:999px;overflow:hidden}.progress-fill{height:100%;border-radius:inherit;transition:width .5s ease}.progress-detail{font-size:12px;color:#a6b8d4}
.quote-element{display:flex;flex-direction:column;justify-content:center;padding:20px 38px;border-radius:15px;gap:4px}
.quote-mark{font-size:70px;line-height:.6;font-family:Georgia,serif;color:#a2a6ff}.quote-text{font-weight:570;line-height:1.35;white-space:pre-wrap}.quote-author{font-size:16px;color:#aebbd9;margin-top:15px}
.icon-element{display:flex;align-items:center;justify-content:center}.icon-element svg{display:block;max-width:100%;max-height:100%}
.divider-element{display:block}.video-element{background:#101829;border-radius:10px}.video-element video{width:100%;height:100%;object-fit:contain}
.html-code-editor{width:100%;height:320px;min-height:200px;resize:vertical;background:#081022;color:#b8eaf6;border:1px solid #4b5f87;border-radius:9px;padding:14px;font:12px/1.5 Consolas,'Courier New',monospace;tab-size:2;direction:ltr;text-align:left}
.html-code-preview{display:block;width:100%;height:185px;border:1px solid #4b5f87;border-radius:9px;margin:12px 0;background:#14213a}
.modal:has(.html-code-editor){width:min(880px,96vw)}
@media(max-width:1140px){.ui-direction-toggle{font-size:0;gap:0;padding:5px}.ui-direction-toggle input{margin:0}}
@media(prefers-reduced-motion:reduce){.progress-fill{transition:none}}

.slide-element[dir="rtl"] .table-scroll table,.slide-element[dir="rtl"] .table-scroll th,.slide-element[dir="rtl"] .table-scroll td{text-align:right}
.slide-element[dir="rtl"] .kpi-element,.slide-element[dir="rtl"] .widget-title{direction:rtl}
/* Coordinate plane must remain LTR even when the editor chrome is RTL. */
#workspaceScroller,.workspace-scroller,.canvas-holder{direction:ltr!important}
#themeFontControls input,.prop-field input[data-key="customFontName"]{direction:ltr;text-align:left}

/* Product model and face-view element (v0.3) */
.pack-scene { position: relative; width: 100%; height: 100%; perspective: 760px; perspective-origin: 50% 43%; overflow: hidden; user-select: none; touch-action: none; cursor: grab; outline: none; }
.pack-scene:focus-visible { box-shadow: inset 0 0 0 3px rgba(63,81,181,.35); }
.pack-scene.dragging { cursor: grabbing; }
.pack-3d { position: absolute; left: 50%; top: 48%; width: 0; height: 0; transform-style: preserve-3d; transition: transform .08s linear; will-change: transform; }
.pack-face { position: absolute; left: 0; top: 0; background-size: 100% 100%; background-position: center; background-repeat: no-repeat; backface-visibility: hidden; box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
.pack-face { overflow: hidden; }
.pack-face.front, .pack-face.back { width: var(--pack-w); height: var(--pack-h); margin-left: calc(var(--pack-w) / -2); margin-top: calc(var(--pack-h) / -2); }
.pack-face.left, .pack-face.right { width: var(--pack-d); height: var(--pack-h); margin-left: calc(var(--pack-d) / -2); margin-top: calc(var(--pack-h) / -2); }
.pack-face.top, .pack-face.bottom { width: var(--pack-w); height: var(--pack-d); margin-left: calc(var(--pack-w) / -2); margin-top: calc(var(--pack-d) / -2); }
.pack-face.front { transform: translateZ(calc(var(--pack-d) / 2)); }
.pack-face.back { transform: rotateY(180deg) translateZ(calc(var(--pack-d) / 2)); }
.pack-face.right { transform: rotateY(90deg) translateZ(calc(var(--pack-w) / 2)); }
.pack-face.left { transform: rotateY(-90deg) translateZ(calc(var(--pack-w) / 2)); }
.pack-face.top { transform: rotateX(90deg) translateZ(calc(var(--pack-h) / 2)); }
.pack-face.bottom { transform: rotateX(-90deg) translateZ(calc(var(--pack-h) / 2)); }
.pack-shadow { position: absolute; width: 145px; height: 24px; left: calc(50% - 72px); bottom: 18px; border-radius: 50%; background: rgba(30,33,45,.20); filter: blur(11px); transition: transform .08s linear; }
.pack-fillet{position:absolute;left:0;top:0;pointer-events:none;backface-visibility:hidden;background-repeat:no-repeat;}
.pack-faces { position: absolute; inset: 0; box-sizing: border-box; padding: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.pack-faces-main { flex: 1 1 0; min-height: 0; width: 100%; display: flex; align-items: center; justify-content: center; }
.pack-faces-main { position: relative; }
.pack-faces-main img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 6px; filter: drop-shadow(0 10px 18px rgba(30,33,45,.22)); padding: 25px; box-sizing: border-box; }
.pack-faces-main img { transition: opacity .12s ease; }
.pack-faces-caption { flex: 0 0 auto; color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pack-faces-strip { flex: 0 0 auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pack-faces-thumb { width: 56px; height: 56px; padding: 3px; border: 2px solid transparent; border-radius: 10px; background: var(--surface); box-shadow: 0 1px 4px rgba(25,27,40,.16); cursor: pointer; transition: border-color .15s ease, transform .15s ease; }
.pack-faces-thumb { position: relative; overflow: hidden; }
.pack-faces-thumb:hover { transform: translateY(-1px); }
.pack-faces-thumb[aria-pressed="true"] { border-color: var(--primary); }
.pack-faces-thumb:focus-visible { outline: 3px solid rgba(63,81,181,.3); outline-offset: 2px; }
.pack-faces.compact { padding: 12px; }
.pack-face-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#e6eaf0;color:#667488;font-size:11px;}
.pack-face.is-loaded > .pack-face-loading { display: none; }
.pack-face.is-error > .pack-face-loading, .pack-face.is-missing > .pack-face-loading { color: var(--muted); }
.pack-faces-main > .pack-face-loading { border-radius: 12px; }
.pack-faces-main.is-loaded > .pack-face-loading { display: none; }
.pack-faces-main.is-loading > img { opacity: 0; }
.pack-faces-thumb > .pack-face-loading { font-size: 7px; border-radius: 7px; }
.pack-faces-thumb:not(.is-loading):not(.is-error) > .pack-face-loading { display: none; }
.pack-faces-thumb.is-loading img, .pack-faces-thumb.is-error img { opacity: 0; }
.studio-pack-host{position:absolute;inset:0;overflow:hidden;border-radius:12px;background:transparent;isolation:isolate;}
.studio-pack-host .pack-scene{background:transparent!important;}
.studio-pack-host .pack-face{background-color:#f3f5f9;}
.studio-pack-host .pack-faces{position:absolute;inset:0;background:transparent;}
.studio-pack-host .pack-faces-main{min-height:0;}
.studio-pack-host .pack-faces-main img{padding:4px;object-fit:contain;}
.studio-pack-host .pack-faces-strip{gap:6px;flex-wrap:nowrap;max-width:100%;overflow:auto;}
.studio-pack-host .pack-faces-thumb{width:48px;height:42px;min-width:48px;background:#f6f8fc;}
.studio-pack-host .pack-faces-caption{color:#d6dfef;}
.studio-pack-host .pack-shadow{background:rgba(0,0,0,.26);}
.studio-pack-host .pack-face-loading{color:#64748b;}
.studio-pack-host .pack-fillet{background-repeat:no-repeat;backface-visibility:hidden;}
.studio-pack-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#aebcd5;font-size:15px;}
.el-pack{border-radius:12px;overflow:hidden;isolation:isolate;}
.el-pack.editable:after{content:'3D / FACES';position:absolute;right:9px;top:9px;color:#fff;background:#26354dd9;font-size:10px;letter-spacing:.8px;border-radius:5px;padding:5px 7px;pointer-events:none;}
.pack-face-loading{font-size:10px;display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.pack-fillet{position:absolute;left:0;top:0;background-repeat:no-repeat;backface-visibility:hidden;}

/* v0.6: tables, gauge and timeline work in the editor and both export formats. */
.table-scroll table{font-size:var(--table-font,13px)}
.table-scroll td,.table-scroll th{padding:var(--cell-pad,12px 10px)}
.table-scroll th{z-index:1;cursor:pointer}.table-scroll tfoot{font-weight:700;background:#ffffff0c}
.striped-table tbody tr:nth-child(even){background:#ffffff06}
.table-tools{display:flex;gap:8px;margin-top:12px;align-items:center;min-height:25px}
.table-tools input{min-width:0;flex:1;background:#111a3070;color:inherit;border:1px solid #ffffff33;border-radius:6px;padding:6px 9px;font:inherit;font-size:12px}
.table-tools button,.table-footer button{color:inherit;background:#ffffff10;border:1px solid #ffffff30;border-radius:5px;padding:5px 9px;cursor:pointer}
.table-footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:11px;padding-top:8px;color:inherit;opacity:.85}
.table-footer button:disabled{opacity:.35;cursor:default}.totals-note{flex-basis:100%;font-size:10px}
.slide-element.editable .table-tools,.slide-element.editable .table-footer,.slide-element.editable .table-scroll{pointer-events:none}
.gauge-element{display:flex;align-items:center;justify-content:space-between;flex-direction:column;gap:14px}
.gauge-ring{width:180px;height:180px;max-width:80%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;flex-shrink:1}
.gauge-ring>div{width:76%;height:76%;border-radius:50%;background:#18233b;display:grid;place-items:center;font-size:30px;font-weight:750}
.timeline-element{display:flex;flex-direction:column}.timeline-list{overflow:auto;min-height:0;margin-top:20px}
.timeline-item{border-inline-start:3px solid #898bff;padding:3px 18px 22px;margin-inline-start:7px;position:relative;font-size:18px}
.timeline-item:before{content:'';width:11px;height:11px;border-radius:50%;background:currentColor;position:absolute;inset-inline-start:-7px;top:8px}
.timeline-item strong{display:block;font-size:13px;opacity:.7;margin-bottom:8px}
.column-checklist{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0;max-height:400px;overflow:auto}
.column-checklist label{display:flex;align-items:center;gap:8px}.manual-preview{max-height:200px;margin:14px 0}

/* v0.7 media and layer controls */
.layer-item{position:relative;gap:7px}.layer-grip{cursor:grab;font-size:20px;color:#9ba6c4}.layer-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-order{font-size:9px;opacity:.65}.layer-order-button{padding:3px 5px;border:0;border-radius:4px;background:#ffffff0b;color:inherit;cursor:pointer}.layer-order-button:disabled{opacity:.25;cursor:default}.layer-item.dragging{opacity:.4}.layer-item.drop-before{box-shadow:0 -3px #a7aaff}.layer-item.drop-after{box-shadow:0 3px #a7aaff}
.slider-element{overflow:hidden;isolation:isolate}.slider-stage,.slider-stage img{position:absolute;inset:0;width:100%;height:100%}.slider-stage img{display:block}.slider-caption{position:absolute;bottom:0;left:0;right:0;padding:40px 65px 44px;background:linear-gradient(transparent,#000b);color:white;font-size:21px;pointer-events:none}.slider-count{position:absolute;right:12px;top:12px;background:#0008;color:white;padding:5px 9px;font-size:12px;border-radius:12px}.slider-arrow{position:absolute;top:50%;transform:translateY(-50%);border:1px solid #ffffff35;border-radius:50%;background:#0008;color:white;width:40px;height:40px;font-size:27px;cursor:pointer}.slider-arrow.previous{left:12px}.slider-arrow.next{right:12px}.slider-dots{position:absolute;bottom:15px;left:0;right:0;display:flex;justify-content:center;gap:9px}.slider-dots button{width:10px;height:10px;padding:0;border:1px solid #fff8;border-radius:50%;background:#fff4;cursor:pointer}.slider-dots button.active{background:#fff}.slide-element.editable .slider-arrow,.slide-element.editable .slider-dots{pointer-events:none}.slider-image-list{max-height:460px;overflow:auto}.slider-image-row{display:grid;grid-template-columns:85px 1fr 70px;gap:12px;padding:14px 0;border-bottom:1px solid #ffffff20}.slider-image-row>img{width:85px;height:70px;object-fit:cover;border-radius:5px}.slider-image-row>div:last-child{display:flex;flex-direction:column;gap:8px}.slider-image-row button{padding:6px;border:1px solid #ffffff30;border-radius:5px;background:#253451;color:white}
.lottie-element{overflow:hidden}.lottie-host{width:100%;height:100%}.lottie-host>svg{width:100%!important;height:100%!important}.lottie-controls{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);display:flex;gap:7px}.lottie-controls button{background:#121e35cf;color:#fff;border:1px solid #ffffff30;border-radius:8px;padding:5px 12px;cursor:pointer}.slide-element.editable .lottie-host{pointer-events:none}
@media print{.slider-arrow,.slider-dots,.lottie-controls{display:none!important}}

/* v0.7.1 — fitted face thumbnails and multi-model 3D slider */
.pack-faces-main{min-width:0;overflow:hidden}.pack-faces-main img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}
.pack-faces-thumb>img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;border-radius:4px}
.studio-pack-host .pack-faces-strip{display:grid;grid-template-columns:repeat(var(--face-count,6),minmax(0,1fr));width:100%;max-width:360px;gap:6px;overflow:visible;flex:0 0 auto}
.studio-pack-host .pack-faces-thumb{width:100%;min-width:0;height:auto;max-height:48px;aspect-ratio:1.1;padding:4px;box-sizing:border-box;border-color:transparent}
.studio-pack-host .pack-faces-thumb[aria-pressed="true"]{border-color:#a5a5ff;background:#e9eaff}
.pack-slider-element{overflow:hidden;isolation:isolate}.pack-slider-stage{position:absolute;inset:10px 48px 75px;min-width:0;min-height:0}.pack-slider-caption{position:absolute;bottom:40px;left:15px;right:15px;text-align:center;color:#e4e9f7;font-size:16px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.pack-slider-count{position:absolute;right:12px;top:12px;padding:5px 9px;background:#0006;border-radius:12px;color:#fff;font-size:12px}.pack-slider-dots{position:absolute;bottom:15px;left:45px;right:45px;display:flex;justify-content:center;gap:8px;overflow-x:auto;padding:3px}.pack-slider-dots button{width:10px;height:10px;flex:0 0 10px;padding:0;border:1px solid #fff8;border-radius:50%;background:#fff3;cursor:pointer}.pack-slider-dots button.active{background:#fff}.pack-slider-arrow{position:absolute;top:45%;transform:translateY(-50%);width:34px;height:42px;color:#fff;background:#0005;border:1px solid #ffffff25;border-radius:8px;font-size:27px;cursor:pointer}.pack-slider-arrow.previous{left:7px}.pack-slider-arrow.next{right:7px}.pack-slider-element.editable .pack-slider-arrow,.pack-slider-element.editable .pack-slider-dots{pointer-events:none}.model-order-list{max-height:450px;overflow:auto}.model-order-row{display:flex;gap:9px;align-items:center;padding:12px 0;border-bottom:1px solid #ffffff20}.model-order-row>img{width:50px;height:65px;object-fit:contain;background:#f3f5f9;border-radius:5px}.model-order-row>input{flex:1;min-width:0;background:#14213b;border:1px solid #ffffff30;border-radius:5px;color:#fff;padding:9px}.model-order-row>button{padding:7px;border:1px solid #ffffff30;border-radius:5px;background:#253451;color:#fff}
@media print{.pack-slider-arrow,.pack-slider-dots{display:none!important}}
