@import"https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700&display=swap";:root{color-scheme:light;font-family:Arial,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4;font-weight:400;color:#111;background-color:#f3f3f3;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.app{--app-bg: #ffffff;--app-text: #1f1f1d;--app-muted: #6f6f6d;--app-accent: #b89142;--app-panel: #3c3a38;--app-panel-strong: #1f1f1d;--app-border: rgba(184, 145, 66, .35);--app-font: "Sora", "Segoe UI", system-ui, sans-serif;height:100%;background:var(--app-bg);background-image:url(/assets/backgrounds/flexhus-fabric.png);background-size:cover;background-position:center;background-repeat:no-repeat;color:var(--app-text);font-family:var(--app-font)}.app-state{padding:24px;color:var(--app-text);font-family:var(--app-font)}.app-login{min-height:100vh;display:grid;place-items:center;background:var(--app-bg);background-image:url(/assets/backgrounds/flexhus-fabric.png);background-size:cover;background-position:center}.app-login-card{width:min(420px,90vw);padding:24px;border-radius:16px;border:2px solid rgba(184,145,66,.65);background:#282828e6;color:#f2f2f1;display:grid;gap:12px;text-align:center}.app-login-title{font-size:18px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.app-login-text{font-size:13px;color:#dcdcdc}.app-login-button{padding:10px 14px;border-radius:10px;border:1px solid rgba(184,145,66,.7);background:#b8914226;color:#f2f2f1;cursor:pointer}.app-pdf-btn{background:var(--app-accent);color:#fff;border:none;padding:10px 16px;border-radius:8px;font-family:Sora,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;width:100%}.app-pdf-btn:hover{background:#a07d38}.app-pdf-btn:disabled{opacity:.6;cursor:wait}.config-code-row{display:flex;gap:8px;margin-top:8px}.config-code-input{flex:1;padding:8px 10px;border:1px solid var(--app-border);border-radius:8px;font-family:Sora,monospace;font-size:12px;background:var(--app-bg);color:var(--app-text);min-width:0}.config-code-input::placeholder{color:var(--app-muted);font-size:11px}.config-code-btn{background:var(--app-panel);color:#fff;border:none;padding:8px 12px;border-radius:8px;font-family:Sora,sans-serif;font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s}.config-code-btn:hover{background:var(--app-panel-strong)}.app-main{height:100%;display:flex;flex-direction:row;overflow:hidden;position:relative}.app-viewer-card{flex:1;min-width:0;position:relative;overflow:hidden;background:transparent}.app-viewer-overlay{position:absolute;left:12px;top:12px;padding:10px 12px;border-radius:12px;background:#0a0a0aa6;border:1px solid rgba(214,169,2,.35);font-size:12px;color:var(--app-text)}.app-viewer-overlay-title{font-weight:700;color:var(--app-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px}.app-options{flex-shrink:0;width:380px;z-index:50;background:#1c1a18e0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-left:1px solid rgba(184,145,66,.35);padding:0;overflow:hidden;color:#f2f2f1;display:flex;flex-direction:column;margin-right:-380px;transition:margin-right .4s cubic-bezier(.4,0,.2,1)}.sidebar-scroll{flex:1;overflow-y:auto;padding:0 16px;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(184,145,66,.4) rgba(28,26,24,.3)}.sidebar-scroll::-webkit-scrollbar{width:6px}.sidebar-scroll::-webkit-scrollbar-track{background:#1c1a184d;border-radius:3px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#b8914266;border-radius:3px}.sidebar-scroll::-webkit-scrollbar-thumb:hover{background:#b89142a6}.app-options.is-open{margin-right:0}.sidebar-toggle{position:absolute;right:380px;top:50%;transform:translateY(-50%);z-index:51;width:32px;height:64px;background:#1c1a18e0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(184,145,66,.35);border-right:none;border-radius:8px 0 0 8px;color:#f2f2f1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:right .4s cubic-bezier(.4,0,.2,1),background .15s ease;padding:0}.sidebar-toggle:hover{background:#b8914240;color:var(--app-accent)}.sidebar-toggle.is-closed{right:0;border-right:1px solid rgba(184,145,66,.35);border-radius:8px 0 0 8px}.app-main.is-narrow{display:block;position:relative}.app-main.is-narrow .app-viewer-card{position:absolute;inset:0;flex:unset;min-width:unset}.app-main.is-narrow .app-options{position:absolute;margin-right:0;width:100%;max-height:65vh;top:auto;bottom:0;right:0;border-left:none;border-top:1px solid rgba(184,145,66,.35);border-radius:16px 16px 0 0;transform:translateY(100%);transition:transform .4s cubic-bezier(.4,0,.2,1)}.app-main.is-narrow .app-options.is-open{transform:translateY(0);margin-right:0}.app-main.is-narrow .sidebar-toggle{inset:auto auto 0 50%;transform:translate(-50%);width:64px;height:32px;border-radius:8px 8px 0 0;border:1px solid rgba(184,145,66,.35);border-bottom:none;transition:bottom .4s cubic-bezier(.4,0,.2,1),background .15s ease}.app-main.is-narrow .sidebar-toggle:not(.is-closed){bottom:65vh}.app-main.is-narrow .sidebar-toggle.is-closed{right:auto;bottom:0;border-right:1px solid rgba(184,145,66,.35);border-radius:8px 8px 0 0}.accordion-section{border-bottom:1px solid rgba(184,145,66,.2)}.accordion-section:last-child{border-bottom:none}.accordion-header{display:flex;align-items:center;width:100%;padding:14px 0;background:none;border:none;color:#f2f2f1;cursor:pointer;font-family:Sora,sans-serif;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;gap:8px;transition:color .15s ease}.accordion-header:hover,.accordion-header.is-open{color:var(--app-accent)}.accordion-header:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px;border-radius:4px}.accordion-header-text{flex:1;text-align:left}.accordion-header-badge{font-size:11px;font-weight:400;color:#bfbfbf;letter-spacing:.02em;text-transform:none;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accordion-chevron{flex-shrink:0;transition:transform .25s cubic-bezier(.4,0,.2,1);color:currentColor}.accordion-header.is-open .accordion-chevron{transform:rotate(180deg)}.accordion-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1)}.accordion-body.is-open{grid-template-rows:1fr}.accordion-body-inner{overflow:hidden;padding-bottom:0;transition:padding-bottom .3s cubic-bezier(.4,0,.2,1)}.accordion-body.is-open .accordion-body-inner{padding-bottom:12px}.category{margin-bottom:18px}.option-radio{display:block;margin-bottom:8px;color:#f2f2f1;font-size:13px}.option-radio input{accent-color:var(--app-accent)}.category-title{font-size:13px;color:#bfbfbf;letter-spacing:.05em;text-transform:uppercase}.option-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-top:10px}.option-card{cursor:pointer;border-radius:14px;padding:0;border:2px solid rgba(184,145,66,.35);background:#f2f2f1;overflow:hidden;transition:border .12s ease,transform .12s ease,background .12s ease}.option-card:hover{border-color:#b891428c;transform:translateY(-1px)}.option-card.is-selected{border-color:var(--app-accent);background:#fff;box-shadow:0 0 0 2px #b8914233}.option-media{position:relative;width:100%;height:80px;border-radius:0;overflow:hidden;border:none;background:#bfbfbf}.option-thumb,.option-swatch{width:100%;height:100%;object-fit:cover}.option-info{padding:8px 10px 10px;display:grid;gap:4px;background:#3c3a38;border-top:1px solid rgba(184,145,66,.25)}.option-title{font-size:12px;font-weight:600;color:#f2f2f1}.option-price{font-size:11px;color:#f2f2f1}.viewer-loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#1f1f1d;z-index:10;animation:viewerLoadFadeIn .3s ease}.viewer-loading-logo{width:50%;height:auto;opacity:.9}.viewer-loading-bar-track{width:min(260px,60%);height:4px;border-radius:2px;background:#b8914226;overflow:hidden}.viewer-loading-bar-fill{height:100%;border-radius:2px;background:#b89142;transition:width .3s ease}.viewer-loading-text{font-family:Sora,Segoe UI,system-ui,sans-serif;font-size:12px;color:#6f6f6d;letter-spacing:.04em}@keyframes viewerLoadFadeIn{0%{opacity:0}to{opacity:1}}.viewer-swap-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:viewer-spin .7s linear infinite}@keyframes viewer-spin{to{transform:rotate(360deg)}}.extension-positions{margin-top:10px;padding:10px 12px;background:#b8914214;border-radius:10px;border:1px solid rgba(184,145,66,.2)}.extension-position-radios{display:flex;gap:16px;margin-top:6px}.beta-banner{padding:8px 16px;background:#b8914226;border-bottom:1px solid rgba(184,145,66,.3);color:#b89142;font-size:11px;text-align:center;letter-spacing:.04em;flex-shrink:0}.sidebar-footer{flex-shrink:0;padding:12px 16px 16px;border-top:1px solid rgba(184,145,66,.35);background:#1c1a18f2;display:flex;flex-direction:column;gap:10px}.sidebar-footer-total{display:flex;justify-content:space-between;align-items:baseline}.sidebar-footer-label{font-size:13px;color:#bfbfbf;letter-spacing:.04em;text-transform:uppercase}.sidebar-footer-price{font-weight:700;font-size:18px;color:var(--app-accent);letter-spacing:.02em}.viewer-toolbar{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:5;display:flex;align-items:center;gap:0;background:#0a0a0ab8;border:1px solid rgba(184,145,66,.4);border-radius:14px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 4px 24px #00000059;padding:4px;animation:viewerToolbarIn .3s ease both}@keyframes viewerToolbarIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes viewerToolbarInTopRight{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.viewer-toolbar--walk{opacity:.5;pointer-events:none}.viewer-toolbar__group{display:flex;align-items:center;gap:2px;padding:0 2px}.viewer-toolbar__divider{width:1px;height:28px;background:#b891424d;flex-shrink:0;margin:0 2px}.viewer-toolbar__btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border-radius:10px;border:none;background:transparent;color:#f0f0f0d9;cursor:pointer;font-family:var(--app-font);font-size:12px;font-weight:500;letter-spacing:.02em;white-space:nowrap;transition:background .15s ease,color .15s ease}.viewer-toolbar__btn:hover{background:#b891422e;color:var(--app-accent)}.viewer-toolbar__btn--active{background:#b8914247;color:var(--app-accent)}.viewer-toolbar__btn--active:hover{background:#b8914261}.viewer-toolbar__btn:disabled{opacity:.35;cursor:not-allowed}.viewer-toolbar__btn:disabled:hover{background:transparent;color:#f0f0f0d9}.viewer-toolbar__label{display:inline}.app-main.is-narrow .viewer-toolbar{inset:12px auto auto 50%;transform:translate(-50%);flex-direction:row;border-radius:14px;padding:4px;animation:viewerToolbarIn .3s ease both}.app-main.is-narrow .viewer-toolbar__group{flex-direction:row;padding:0 2px}.app-main.is-narrow .viewer-toolbar__divider{width:1px;height:28px;margin:0 2px}.app-main.is-narrow .viewer-toolbar__btn{padding:10px;min-width:44px;min-height:44px;border-radius:9px}.app-main.is-narrow .viewer-toolbar__label,.app-main.is-narrow .viewer-toolbar__group--walk,.app-main.is-narrow .viewer-toolbar__divider--walk{display:none}.viewer-walk-hint{position:absolute;bottom:72px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:8px 16px;border-radius:8px;font-size:13px;z-index:5;pointer-events:none;white-space:nowrap;backdrop-filter:blur(8px)}.app-main.is-narrow .viewer-walk-hint{bottom:48px}.viewer-help{position:absolute;top:16px;left:16px;z-index:6}.viewer-help-trigger{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#0a0a0a66;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#f0f0f059;font-family:var(--app-font);font-size:14px;font-weight:500;cursor:default;display:flex;align-items:center;justify-content:center;transition:color .2s ease,border-color .2s ease,background .2s ease}.viewer-help:hover .viewer-help-trigger{color:#f0f0f0e6;border-color:#ffffff40;background:#0a0a0ab3}.viewer-help-panel{position:absolute;top:40px;left:0;width:min(340px,80vw);padding:16px 20px;border-radius:14px;background:#0e0e0eeb;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 40px #00000080,0 0 0 1px #ffffff08 inset;display:flex;flex-direction:column;gap:14px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .2s ease,visibility .2s ease,transform .2s ease;pointer-events:none}.viewer-help:hover .viewer-help-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.viewer-help-section{display:flex;flex-direction:column;gap:8px}.viewer-help-heading{font-family:var(--app-font);font-size:10px;font-weight:600;color:#f0f0f059;letter-spacing:.1em;text-transform:uppercase}.viewer-help-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.viewer-help-label{font-family:var(--app-font);font-size:12px;font-weight:400;color:#f0f0f099}.viewer-help-keys{display:flex;align-items:center;gap:3px;flex-shrink:0}.viewer-help-keys kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:24px;padding:0 7px;border-radius:6px;background:linear-gradient(180deg,#ffffff1a,#ffffff08);border:1px solid rgba(255,255,255,.1);box-shadow:0 2px #00000059,0 0 0 1px #ffffff08 inset;font-family:var(--app-font);font-size:10px;font-weight:500;color:#f0f0f0cc;white-space:nowrap;position:relative;top:-1px}.viewer-help-plus{font-family:var(--app-font);font-size:9px;color:#f0f0f040;margin:0 1px}.app-main.is-narrow .viewer-help{display:none}.viewer-walk-dialog-overlay{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;background:#00000080;animation:viewerHelpFadeIn .15s ease}.viewer-walk-dialog{width:min(400px,88vw);padding:28px 32px;border-radius:16px;background:#0e0e0ef2;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 16px 56px #0009,0 0 0 1px #ffffff08 inset;display:flex;flex-direction:column;gap:20px}.viewer-walk-dialog__header{font-family:var(--app-font);font-size:18px;font-weight:500;color:#f0f0f0;letter-spacing:-.01em}.viewer-walk-dialog__desc{font-family:var(--app-font);font-size:13px;font-weight:400;color:#f0f0f08c;line-height:1.55;margin:0}.viewer-walk-dialog__controls{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.viewer-walk-dialog__actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.viewer-walk-dialog__btn{font-family:var(--app-font);font-size:13px;font-weight:500;padding:9px 22px;border-radius:8px;border:none;cursor:pointer;transition:background .15s ease,color .15s ease}.viewer-walk-dialog__btn--cancel{background:transparent;color:#f0f0f080;border:1px solid rgba(255,255,255,.1)}.viewer-walk-dialog__btn--cancel:hover{color:#f0f0f0cc;border-color:#fff3}.viewer-walk-dialog__btn--start{background:#f0f0f0;color:#0a0a0a}.viewer-walk-dialog__btn--start:hover{background:#fff}.app-main.is-narrow .viewer-walk-dialog-overlay{display:none}.viewer-walk-lock-overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#0000004d}.viewer-walk-lock-prompt{background:#000c;color:#fff;padding:16px 32px;border-radius:12px;font-size:16px;backdrop-filter:blur(8px)}.proto-viewer-overlay{position:fixed;inset:0;z-index:1000;background:#1a1a1a}.proto-viewer-canvas{width:100%;height:100%}.proto-viewer-topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;padding:12px 16px;gap:12px;pointer-events:none;z-index:10}.proto-viewer-topbar>*{pointer-events:auto}.proto-viewer-title{flex:1;color:#fff;font-family:Sora,sans-serif;font-size:14px;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.5)}.proto-btn{padding:8px 16px;border:1px solid rgba(255,255,255,.3);border-radius:8px;background:#00000080;color:#e0e0e0;font-family:Sora,sans-serif;font-size:13px;cursor:pointer;backdrop-filter:blur(8px);transition:background .2s,border-color .2s}.proto-btn:hover{background:#000000b3;border-color:#ffffff80}.proto-btn-close{background:#dc354599;border-color:#dc354580}.proto-btn-close:hover{background:#dc3545cc}.proto-btn-active{background:#b8914280;border-color:#b89142b3;color:#fff}.proto-btn-active:hover{background:#b89142b3}.proto-placement-hint{position:absolute;bottom:60px;left:50%;transform:translate(-50%);padding:10px 20px;border-radius:8px;background:#000000b3;color:#fff;font-family:Sora,sans-serif;font-size:14px;backdrop-filter:blur(8px);z-index:10;pointer-events:none;animation:proto-hint-pulse 2s ease-in-out infinite}@keyframes proto-hint-pulse{0%,to{opacity:.8}50%{opacity:1}}.proto-walk-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:6px;background:#00000080;color:#ffffffb3;font-family:Sora,sans-serif;font-size:12px;backdrop-filter:blur(4px);z-index:10;pointer-events:none}.proto-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#1a1a1ae6;z-index:15}.proto-loading-text{font-family:Sora,sans-serif;font-size:16px;color:#ccc}.proto-settings-panel{position:absolute;top:56px;right:12px;width:200px;padding:14px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#0a0a0abf;backdrop-filter:blur(12px);z-index:10;display:flex;flex-direction:column;gap:6px}.proto-settings-title{font-family:Sora,sans-serif;font-size:11px;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.proto-settings-label{font-family:Sora,sans-serif;font-size:12px;color:#e0e0e0;margin-top:4px}.proto-settings-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:#ffffff26;outline:none;cursor:pointer}.proto-settings-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#b89142;border:2px solid rgba(255,255,255,.3);cursor:pointer}.proto-settings-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#b89142;border:2px solid rgba(255,255,255,.3);cursor:pointer}
