:root{color-scheme:dark;--bg: #1e1e1e;--bg-elevated: #252526;--bg-elevated-2: #2d2d30;--bg-hover: #333333;--border: #3c3c3c;--border-strong: #575757;--text: #d4d4d4;--text-muted: #9d9d9d;--accent: #3794bf;--accent-soft: rgba(55, 148, 191, .14);--accent-contrast: #ffffff;--danger: #f48771;--danger-soft: rgba(244, 135, 113, .12);--success: #4ec9b0;--success-soft: rgba(78, 201, 176, .14);--shadow: 0 16px 48px rgba(0, 0, 0, .5);--radius: 12px}[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-elevated: #f3f3f3;--bg-elevated-2: #ffffff;--bg-hover: #ebebeb;--border: #e3e3e3;--border-strong: #c9c9c9;--text: #1f1f1f;--text-muted: #6f6f6f;--accent: #0078d4;--accent-soft: rgba(0, 120, 212, .08);--accent-contrast: #ffffff;--danger: #c42b1c;--danger-soft: rgba(196, 43, 28, .08);--success: #107c10;--success-soft: rgba(16, 124, 16, .08);--shadow: 0 12px 32px rgba(0, 0, 0, .12)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;min-height:100dvh}body{font-family:Segoe UI Variable,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:13.5px;padding:8px 14px;cursor:pointer;border:1px solid var(--border);background:var(--bg-elevated-2);color:var(--text);border-radius:8px;transition:border-color .15s,background .15s,color .15s}button:hover{border-color:var(--border-strong);background:var(--bg-hover)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:disabled:hover{background:var(--bg-elevated-2);border-color:var(--border);color:var(--text-muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;border-bottom:1px solid var(--border);background:var(--bg-elevated);position:sticky;top:0;z-index:10}.app-header__title{display:flex;align-items:center;gap:10px;min-width:0}.app-header__title-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 auto;border-radius:9px;background:var(--accent-soft);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}.app-header__title-label{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header__title-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.app-header__title-subtitle{font-size:11.5px;font-weight:500;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header__actions{display:flex;align-items:center;gap:12px;margin-left:auto}.module-toolbar{display:flex;align-items:center;gap:4px;padding:4px;background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:10px}.module-toolbar__btn{display:inline-flex;align-items:center;gap:7px;border:none;background:transparent;color:var(--text-muted);border-radius:7px;padding:6px 11px;font-size:13px}.module-toolbar__btn:hover{background:var(--bg-hover);border-color:transparent;color:var(--text)}.module-toolbar__btn--active,.module-toolbar__btn--active:hover{background:var(--accent-soft);color:var(--accent)}body,.app-header,.module,.module__badge,.module-toolbar,.module-toolbar__btn,.gallery-card,.catalog-sidebar,.catalog-product,.dropzone,.dropzone__qr,.theme-toggle,.theme-toggle__knob,.modal{transition:background-color .25s ease,border-color .25s ease,color .25s ease}.theme-toggle{position:relative;flex-shrink:0;width:58px;height:30px;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--bg-elevated-2)}.theme-toggle:hover{border-color:var(--border-strong)}.theme-toggle[aria-checked=true]{background:var(--accent-soft);border-color:var(--accent)}.theme-toggle__knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--bg-hover);border:1px solid var(--border-strong);display:grid;place-items:center;transition:transform .35s cubic-bezier(.34,1.56,.64,1),background-color .25s ease,border-color .25s ease;z-index:1}.theme-toggle[aria-checked=true] .theme-toggle__knob{transform:translate(28px)}.theme-toggle__icon{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;transition:opacity .22s ease,transform .35s ease}.theme-toggle__icon--light{opacity:1;transform:rotate(0) scale(1)}.theme-toggle__icon--dark{color:var(--text);opacity:0;transform:rotate(90deg) scale(.4)}.theme-toggle[aria-checked=true] .theme-toggle__icon--light{opacity:0;transform:rotate(-90deg) scale(.4)}.theme-toggle[aria-checked=true] .theme-toggle__icon--dark{opacity:1;transform:rotate(0) scale(1)}.mobile-menu{display:none;position:relative}.mobile-menu__btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text)}.mobile-menu__btn:hover{border-color:var(--border-strong);background:var(--bg-elevated-2)}.mobile-menu__btn[aria-expanded=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.mobile-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:440;background:color-mix(in srgb,var(--bg) 55%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:mobile-menu-fade .16s ease}@keyframes mobile-menu-fade{0%{opacity:0}to{opacity:1}}.mobile-menu__panel{position:fixed;width:275px;max-width:calc(100vw - 32px);padding:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);z-index:450;animation:mobile-menu-in .16s ease}@keyframes mobile-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.mobile-menu__row{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:14px;text-align:left}.mobile-menu__row:hover{background:var(--bg-hover)}.mobile-menu__row-icon{flex-shrink:0;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated-2);color:var(--text-muted)}.mobile-menu__row[aria-pressed=true] .mobile-menu__row-icon{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.mobile-menu__row-label{flex:1}.mobile-menu__settings{border-bottom:1px solid var(--border);margin-bottom:4px}.mobile-menu__setting{display:flex;align-items:center;gap:10px;padding:8px 10px}.mobile-menu__setting+.mobile-menu__setting{border-top:1px solid var(--border)}.mobile-menu__setting-label{flex:1;font-size:14px}.main-container{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:24px 28px;display:flex;flex-direction:column;gap:20px;min-height:0;overflow-y:auto}.scroll-jump{position:fixed;right:24px;bottom:24px;z-index:60;width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text);box-shadow:var(--shadow);cursor:pointer;border:1px solid rgba(255,255,255,.16);background:#2d2d3080;-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity .25s ease,transform .25s ease,background .15s ease,border-color .15s ease,color .15s ease}.scroll-jump--visible{opacity:1;transform:none;pointer-events:auto}[data-theme=light] .scroll-jump{border-color:#0000001a;background:#ffffff8c}.scroll-jump:hover{background:#2d2d30b8;border-color:var(--accent);color:var(--accent)}[data-theme=light] .scroll-jump:hover{background:#ffffffd9}.scroll-jump:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (min-width: 1024px){.main-container{max-width:min(1800px,92vw)}}.module{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.module--gallery{display:flex;flex-direction:column;flex:1}.module__badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:999px;padding:5px 12px;white-space:nowrap}.module__empty{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 20px;text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:10px;font-size:13px}[data-theme=light] .module__empty{border-color:var(--border-strong)}.module__empty-icon{color:var(--text-muted);display:block;margin:0 auto 12px;width:fit-content;opacity:.8}.module__empty-action{margin-top:14px;padding:9px 18px;border-radius:999px;background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600;box-shadow:0 6px 16px -6px color-mix(in srgb,var(--accent) 60%,transparent);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.module__empty-action:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,var(--bg) 12%);border-color:var(--accent);color:var(--accent-contrast);transform:translateY(-1px);box-shadow:0 10px 22px -8px color-mix(in srgb,var(--accent) 65%,transparent)}.module__empty-action:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 10px -6px color-mix(in srgb,var(--accent) 60%,transparent)}.module__empty-action:disabled,.module__empty-action:disabled:hover{opacity:.55;box-shadow:none;transform:none;background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.module--reality{display:flex;flex-direction:column;gap:18px;flex:1}.reality__controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}@media (max-width: 640px){.reality__controls{gap:10px}}.reality__controls .reality__field{flex:0 0 auto;min-width:0}.reality__field{display:flex;flex-direction:column;gap:7px}.reality__segmented{display:flex;gap:3px;padding:4px;border:1px solid transparent;border-radius:10px;background:transparent;transition:background .15s,border-color .15s}.reality__segmented:hover,.reality__segmented:focus-within{border-color:var(--border);background:var(--bg-elevated-2)}.reality__segment{flex:0 0 auto;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 11px;border:0;background:transparent;color:var(--text-muted);border-radius:7px;font-size:13px;white-space:nowrap}.reality__segment svg{flex:0 0 auto}.reality__segment:hover{background:var(--bg-hover);color:var(--text)}.reality__segment.is-active,.reality__segment.is-active:hover{background:var(--accent);color:var(--accent-contrast)}.reality__stage{position:relative;border:2px dashed var(--border);border-radius:14px;min-height:240px;flex:1;display:flex;align-items:stretch;justify-content:center}[data-theme=light] .reality__stage{border-color:var(--border-strong)}.reality__stage-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:16px;color:var(--text-muted)}.reality__stage-placeholder-icon{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:20px;background:var(--accent-soft);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}.reality__stage-placeholder-title{margin:0;font-size:14.5px;font-weight:600;color:var(--text)}.reality__stage-placeholder-hint{margin:0;font-size:12.5px;line-height:1.4;color:var(--text-muted)}.reality__canvas{display:flex;flex-direction:column;gap:12px;width:100%;height:100%;padding:14px;box-sizing:border-box}.reality__carousel{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.reality__carousel-main{position:relative;flex:1 1 0;min-height:max(100px,18vh);display:flex;align-items:center;justify-content:center;background:radial-gradient(130% 90% at 50% -10%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 55%),linear-gradient(165deg,var(--bg-elevated) 0%,var(--bg-elevated-2) 100%);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow),inset 0 1px color-mix(in srgb,#fff 7%,transparent);overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.reality__carousel-track{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:stretch;will-change:transform;transition:transform .17s cubic-bezier(.2,.7,.3,1)}.reality__carousel-track.is-dragging{transition:none}.reality__carousel-slide{position:relative;flex:0 0 100%;min-width:0;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.reality__carousel-slide img{width:100%;height:100%;object-fit:contain;display:block}.reality__carousel-slide .reality__prompt-view{animation:none;max-width:min(560px,86%);padding:24px}@keyframes reality-carousel-in{0%{opacity:0;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}.reality__scene-boxes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4}.reality__scene-item{position:absolute;pointer-events:none}.reality__scene-outline{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--accent);border-radius:8px;background:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,#fff 30%,transparent);opacity:0;pointer-events:none}.reality__scene-name:hover~.reality__scene-outline,.reality__scene-name:focus~.reality__scene-outline{opacity:1}.reality__scene-name{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;z-index:1;margin:0;padding:3px 11px 3px 9px;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--text);background:var(--bg-elevated);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:999px;box-shadow:0 2px 10px #00000059;cursor:pointer;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;animation:reality-scene-name-in .3s ease-out}.reality__scene-name:hover{background:var(--bg-elevated);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.reality__scene-name:active{transform:translate(-50%,-50%)}.reality__scene-name.is-selected{background:var(--accent);border-color:color-mix(in srgb,#fff 35%,var(--accent));color:var(--accent-contrast);box-shadow:0 2px 12px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent)}.reality__scene-name.is-selected:before{background:var(--accent-contrast);box-shadow:0 0 6px color-mix(in srgb,var(--accent-contrast) 70%,transparent)}.reality__scene-name.is-selected:hover,.reality__scene-name.is-selected:active{background:var(--accent);color:var(--accent-contrast);transform:translate(-50%,-50%)}.reality__scene-name:before{content:"";flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px color-mix(in srgb,var(--accent) 70%,transparent)}.reality__scene-name-text{white-space:nowrap}@keyframes reality-scene-name-in{0%{opacity:0}to{opacity:1}}.reality__scene-point-prompt{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;font-size:clamp(12px,2.4vw,13px);line-height:1.4;font-weight:500;color:var(--text);background:color-mix(in srgb,var(--accent) 12%,var(--bg-elevated));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);box-shadow:0 2px 10px color-mix(in srgb,#000 14%,transparent);animation:reality-scene-point-in .24s ease-out}.reality__scene-point-prompt strong{font-weight:700;color:var(--accent)}.reality__scene-point-prompt-text{flex:1 1 auto;min-width:0}.reality__scene-point-prompt-close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:8px;color:var(--text);background:color-mix(in srgb,var(--text) 12%,transparent);cursor:pointer;transition:background .15s ease,color .15s ease}.reality__scene-point-prompt-close:hover{background:color-mix(in srgb,var(--danger) 25%,transparent);color:var(--danger)}.reality__scene-point-prompt-close:active{transform:translateY(1px)}.reality__scene-point-prompt-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 80%,transparent);animation:reality-scene-point-pulse 1.6s ease-in-out infinite}@keyframes reality-scene-point-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes reality-scene-point-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 0%,transparent)}}.reality__scene-analyzing{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;font-size:clamp(15px,2.6vw,17px);font-weight:600;color:var(--text);background:color-mix(in srgb,var(--bg-elevated) 68%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;animation:reality-scene-analyzing-in .25s ease-out}.reality__scene-analyzing-spinner{width:38px;height:38px;border-radius:50%;border:4px solid color-mix(in srgb,var(--accent) 25%,transparent);border-top-color:var(--accent);animation:reality-scene-analyzing-spin .9s linear infinite}@keyframes reality-scene-analyzing-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes reality-scene-analyzing-spin{to{transform:rotate(360deg)}}.reality__carousel-label,.reality__carousel-count{position:absolute;padding:4px 12px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text);background:color-mix(in srgb,var(--bg-elevated) 70%,transparent);border:1px solid color-mix(in srgb,var(--text) 14%,transparent);border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.reality__carousel-label{left:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px}.reality__carousel-label svg{flex:0 0 auto;display:block}.reality__carousel-count{left:12px;top:12px;letter-spacing:.08em}.reality__carousel-nav{position:absolute;top:50%;margin-top:-19px;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:50%;color:var(--text);background:color-mix(in srgb,var(--bg-elevated) 66%,transparent);border:1px solid color-mix(in srgb,var(--text) 14%,transparent);box-shadow:0 2px 12px color-mix(in srgb,#000 20%,transparent);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.reality__carousel-nav svg{flex:0 0 auto;display:block}.reality__carousel-nav:active{transform:none;background:color-mix(in srgb,var(--bg-elevated) 52%,transparent)}.reality__carousel-nav--prev{left:12px}.reality__carousel-nav--next{right:12px}.reality__carousel-nav:hover{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 4px 16px color-mix(in srgb,#000 24%,transparent)}.reality__carousel-thumbs{display:flex;align-items:center;gap:8px}.reality__carousel-thumbs-scroll{flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;padding:8px 0 10px;scrollbar-width:none;user-select:none;-webkit-user-select:none;cursor:grab}.reality__carousel-thumbs-scroll::-webkit-scrollbar{display:none}.reality__carousel-thumbs-inner{display:flex;align-items:center;gap:clamp(4px,1vw,8px);justify-content:center;min-width:100%;margin:0 auto}.reality__carousel-thumb{flex:1 1 0;min-width:clamp(38px,8.5vw,52px);max-width:clamp(64px,11vw,104px);aspect-ratio:1 / 1;padding:0;border-radius:12px;overflow:hidden;border:2px solid var(--border);background:var(--bg-elevated-2);box-shadow:0 1px 4px color-mix(in srgb,#000 12%,transparent);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .18s cubic-bezier(.2,.8,.3,1)}.reality__carousel-thumb:focus{outline:none}.reality__carousel-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.reality__carousel-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}.reality__carousel-thumb:hover{transform:translateY(-3px) scale(1.04);border-color:var(--border-strong);box-shadow:0 6px 14px color-mix(in srgb,#000 18%,transparent)}.reality__carousel-thumb:hover img{transform:scale(1.06)}.reality__carousel-thumb.is-active{transform:scale(1.08);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),0 6px 14px color-mix(in srgb,#000 18%,transparent);position:relative;z-index:1}.reality__carousel-thumb.is-linked{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent),0 6px 14px color-mix(in srgb,#000 20%,transparent);position:relative;z-index:1}.reality__carousel-thumb.is-excluded{cursor:not-allowed;opacity:.5;transform:none;border-color:var(--border);box-shadow:0 1px 4px color-mix(in srgb,#000 12%,transparent)}.reality__carousel-thumb.is-excluded img,.reality__carousel-thumb.is-excluded .reality__carousel-thumb-prompt{filter:grayscale(1)}.reality__carousel-thumb.is-excluded:hover{transform:none;border-color:var(--border);box-shadow:0 1px 4px color-mix(in srgb,#000 12%,transparent)}.reality__carousel-thumb.is-excluded:hover img{transform:none}.reality__carousel-thumb.is-excluded .reality__carousel-thumb-remove{display:none}.reality__thumbs-nav{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:50%;color:var(--text);background:color-mix(in srgb,var(--bg-elevated) 70%,transparent);border:1px solid color-mix(in srgb,var(--text) 14%,transparent);box-shadow:0 2px 10px color-mix(in srgb,#000 22%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.reality__thumbs-nav svg{flex:0 0 auto;display:block}.reality__thumbs-nav:active{transform:none;background:color-mix(in srgb,var(--bg-elevated) 55%,transparent)}.reality__thumbs-nav:hover{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 4px 14px color-mix(in srgb,#000 24%,transparent)}.reality__carousel-thumb.is-prompt{display:flex;align-items:center;justify-content:center;color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.reality__carousel-thumb.is-prompt svg{flex:0 0 auto;display:block}.reality__carousel-thumb-remove{position:absolute;top:3px;right:3px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border-radius:50%;border:0;color:var(--text);background:color-mix(in srgb,#000 55%,transparent);box-shadow:0 1px 4px color-mix(in srgb,#000 35%,transparent);cursor:pointer;opacity:0;transform:scale(.8);transition:opacity .15s ease,transform .15s ease,background .15s ease}.reality__carousel-thumb-remove svg{flex:0 0 auto;display:block}.reality__carousel-thumb-remove:hover{background:var(--danger);color:#fff}.reality__carousel-thumb-remove:active{transform:scale(.92)}.reality__carousel-thumb:hover .reality__carousel-thumb-remove,.reality__carousel-thumb:focus-visible .reality__carousel-thumb-remove,.reality__carousel-thumb:focus-within .reality__carousel-thumb-remove{opacity:1;transform:scale(1)}@media (hover: none){.reality__carousel-thumb-remove{opacity:.6;transform:scale(1)}}.reality__prompt-view{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:min(560px,86%);padding:24px;text-align:center;flex:1 1 0;min-height:0;overflow:hidden;animation:reality-carousel-in .24s cubic-bezier(.2,.8,.3,1)}.reality__prompt-view-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:16px;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}.reality__prompt-view-icon svg{flex:0 0 auto;display:block}.reality__prompt-view-text{margin:0;font-size:15px;line-height:1.55;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:9;overflow:hidden;text-overflow:ellipsis;user-select:text;-webkit-user-select:text}@media (max-width: 640px){.reality__prompt-view-text{-webkit-line-clamp:6}}.reality__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border-radius:8px;color:var(--text-muted);background:transparent;border:1px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.reality__icon-btn svg{flex:0 0 auto;display:block}.reality__carousel-remove{position:absolute;bottom:10px;right:10px;color:color-mix(in srgb,var(--danger) 75%,var(--text));background:color-mix(in srgb,var(--bg-elevated) 85%,transparent);border-color:color-mix(in srgb,var(--danger) 30%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reality__carousel-remove:hover{color:var(--danger);background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 50%,transparent)}.reality__carousel-reidentify{position:absolute;bottom:10px;right:42px;color:color-mix(in srgb,var(--accent) 80%,var(--text));background:color-mix(in srgb,var(--bg-elevated) 85%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reality__carousel-reidentify:hover{color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.reality__carousel-edit{position:absolute;bottom:10px;right:42px;color:color-mix(in srgb,var(--accent) 80%,var(--text));background:color-mix(in srgb,var(--bg-elevated) 85%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reality__carousel-edit:hover{color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.reality__stage-hint-pill{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elevated);color:var(--text);box-shadow:0 6px 18px color-mix(in srgb,#000 14%,transparent);pointer-events:none;animation:reality-hint-pulse 1.8s ease-in-out infinite}.reality__stage-hint-pill-add{position:relative;height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 8px 0 10px;border-radius:999px}.reality__hint-ellipse{position:absolute;left:-14px;top:50%;width:calc(100% + 28px);height:calc(100% + 24px);transform:translateY(-50%) rotate(-7deg);overflow:visible;pointer-events:none;z-index:2}.reality__hint-ellipse path{fill:none;stroke:#ff2d2d;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.reality__stage-hint-pill-add svg,.reality__stage-hint-pill-chevron svg{flex:0 0 auto;display:block}.reality__stage-hint-pill-chevron{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}@keyframes reality-hint-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.95)}}@media (prefers-reduced-motion: reduce){.reality__stage-hint-pill{animation:none}}.reality__element-pill{position:relative;flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;padding:4px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated-2);transition:background .15s,border-color .15s}.reality__controls:has(.reality__segmented:hover,.reality__reset-btn:hover) .reality__element-pill{border-color:transparent;background:transparent}.reality__pill-btn{width:34px;height:34px;padding:0;gap:0;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;border-radius:999px;color:var(--text);cursor:pointer;transition:background .15s,color .15s}.reality__pill-btn svg{flex:0 0 auto;display:block}.reality__pill-btn:hover{background:var(--bg-hover);color:var(--text)}.reality__pill-add{height:34px;display:inline-flex;align-items:center;gap:5px;padding:0 9px 0 11px;border:0;background:transparent;border-radius:999px;color:var(--text);cursor:pointer;transition:background .15s,color .15s}.reality__pill-add svg{flex:0 0 auto;display:block}.reality__pill-add:hover{background:var(--bg-hover)}.reality__pill-add:disabled{color:var(--text-muted);opacity:.45;cursor:not-allowed;background:transparent}.reality__reset-btn{flex:0 0 auto;width:44px;height:44px;padding:0;align-items:center;justify-content:center;border-radius:10px;border-color:transparent;background:transparent;transition:background .15s,border-color .15s}.reality__reset-btn:hover,.reality__reset-btn:focus-visible{border-color:var(--border);background:var(--bg-elevated-2)}.reality__reset-btn svg{flex:0 0 auto;display:block}.reality__pill-chevron svg{transition:transform .18s ease}.reality__pill-chevron[aria-expanded=true] svg{transform:rotate(180deg)}.reality__pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.reality__element-pop{position:absolute;top:calc(100% + 10px);right:0;z-index:20;min-width:190px;display:flex;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--bg-elevated);box-shadow:0 14px 34px color-mix(in srgb,#000 30%,transparent);animation:mobile-menu-fade .16s ease}.reality__element-pop-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:8px;font-size:13px;color:var(--text);cursor:pointer;text-align:left}.reality__element-pop-item:hover{background:var(--bg-hover)}.reality__element-pop-item:disabled,.reality__element-pop-item.is-full{color:var(--text-muted);opacity:.5;cursor:pointer;background:transparent}.reality__element-pop-item.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.reality__element-pop-item-label{flex:1}.reality__element-pop-check{color:var(--accent)}.reality__create{position:relative;display:flex;flex-direction:column;gap:12px}.reality__create-row{position:relative;display:block;width:100%;padding:1px;border:0;border-radius:15px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-contrast) 58%,transparent),color-mix(in srgb,var(--accent-contrast) 14%,transparent) 38%,color-mix(in srgb,#000 48%,transparent));box-shadow:0 4px 12px color-mix(in srgb,#000 18%,transparent);transition:box-shadow .25s ease}.reality__create-row:hover{box-shadow:0 6px 16px color-mix(in srgb,#000 24%,transparent)}.reality__create-inner{position:relative;z-index:1;display:flex;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 76%,var(--accent-contrast)) 0%,var(--accent) 52%,color-mix(in srgb,var(--accent) 84%,#000) 100%);box-shadow:inset 0 1px color-mix(in srgb,var(--accent-contrast) 30%,transparent)}.reality__burst{position:fixed;left:0;top:0;width:0;height:0;z-index:0;pointer-events:none}.reality__burst-p{position:absolute;left:var(--cx, 0);top:var(--cy, 0);display:grid;place-items:center;color:var(--accent);opacity:0;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 70%,transparent));will-change:transform,opacity;animation:reality-burst var(--dur, 1s) cubic-bezier(.15,.7,.3,1) var(--delay, 0s) forwards}.reality__burst-p svg{display:block;color:currentColor}@keyframes reality-burst{0%{transform:translate(-50%,-50%) scale(.3) rotate(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.15) rotate(120deg);opacity:0}}.reality__fly{position:fixed;left:0;top:0;z-index:500;pointer-events:none;will-change:transform,opacity;animation:reality-fly 1.1s cubic-bezier(.5,0,.2,1) forwards}.reality__fly-card{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--bg-elevated-2);border:1px solid var(--border-strong);box-shadow:var(--shadow);color:var(--accent)}.reality__fly-card svg{display:block}@keyframes reality-fly{0%{transform:translate(var(--x1),var(--y1)) scale(.5) rotate(-10deg);opacity:0}22%{opacity:1}78%{opacity:1}to{transform:translate(var(--x2),var(--y2)) scale(1) rotate(0);opacity:0}}@media (prefers-reduced-motion: reduce){.reality__burst-p,.reality__fly{animation:none;opacity:0}}.toast-stack{position:fixed;top:16px;right:16px;z-index:400;display:flex;flex-direction:column;align-items:flex-end;gap:10px;max-width:min(380px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,transparent) 0%,color-mix(in srgb,var(--accent) 5%,transparent) 45%,transparent 75%),var(--bg-elevated-2);border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border-strong));border-radius:10px;box-shadow:var(--shadow);font-size:13px;color:var(--text);animation:toast-in .22s ease,toast-attention 1.4s ease-in-out .25s 2}@keyframes toast-attention{0%,to{box-shadow:var(--shadow)}50%{box-shadow:var(--shadow),0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent),0 0 20px color-mix(in srgb,var(--accent) 40%,transparent)}}.toast__icon{display:grid;place-items:center;color:var(--accent);flex:none;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 55%,transparent));animation:toast-icon-pulse 1.4s ease-in-out .25s 2}@keyframes toast-icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.25);opacity:.85}}.toast__message{line-height:1.35}.toast__close{flex:none;border:0;background:transparent;color:var(--text-muted);font-size:18px;line-height:1;padding:2px 6px;border-radius:6px;cursor:pointer}.toast__close:hover{background:var(--bg-hover);color:var(--text)}.toast__close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@keyframes toast-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){.toast,.toast__icon{animation:none}}.header-gen-fx{position:fixed;z-index:30;width:0;height:0;pointer-events:none}.header-gen-dot{position:absolute;transform:translate(-50%,-50%);width:11px;height:11px;border-radius:50%;background:#ff3b30;border:2px solid var(--bg-elevated);box-shadow:0 1px 4px #00000059}.reality__create-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 24px;border:0;cursor:pointer;background:transparent;color:var(--accent-contrast);font-size:15.5px;font-weight:800;letter-spacing:.3px;transition:background .15s ease;position:relative;overflow:hidden}.reality__create-btn svg{flex:0 0 auto;display:block}.reality__create-btn:hover{background:color-mix(in srgb,var(--accent-contrast) 12%,transparent)}.reality__create-btn:active{background:color-mix(in srgb,#000 14%,transparent)}.reality__create-btn:focus,.reality__create-btn:focus-visible{outline:none}.reality__create-cooldown{position:absolute;top:0;right:0;bottom:0;left:0;width:0;background:color-mix(in srgb,var(--accent-contrast) 18%,transparent);animation:create-cooldown-fill 2s linear forwards;pointer-events:none}@keyframes create-cooldown-fill{0%{width:0%}to{width:100%}}@media (prefers-reduced-motion: reduce){.reality__create-cooldown{animation:none;width:100%;opacity:.5}}.reality__create-toggle{display:inline-flex;align-items:center;justify-content:center;width:56px;padding:0;border:0;cursor:pointer;background:transparent;color:var(--accent-contrast);transition:background .15s ease}.reality__create-toggle:hover{background:color-mix(in srgb,#000 16%,transparent)}.reality__create-toggle:active{background:color-mix(in srgb,#000 28%,transparent)}.reality__create-toggle:focus,.reality__create-toggle:focus-visible{outline:none}.reality__create-toggle svg{flex:0 0 auto;display:block;transform:rotate(180deg);transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.reality__create-toggle[aria-expanded=true] svg{transform:rotate(0)}.reality__create-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:color-mix(in srgb,var(--bg) 45%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:reality-create-backdrop-in .18s ease both}@keyframes reality-create-backdrop-in{0%{opacity:0}to{opacity:1}}.reality__create-options{position:absolute;bottom:calc(100% + 14px);right:0;z-index:60;padding:14px 16px 16px;border:1px solid var(--border-strong);border-radius:16px;background:var(--bg-elevated-2);box-shadow:var(--shadow);max-width:min(580px,100%);transform-origin:85% 100%;animation:reality-create-options-in .22s cubic-bezier(.2,.9,.3,1) both}@media (min-width: 641px){.reality__create-options{width:475px;max-width:620px}}.reality__create-options:before{content:"";position:absolute;top:0;left:18px;right:18px;height:2px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--accent) 90%,transparent) 35%,color-mix(in srgb,var(--accent) 90%,transparent) 65%,transparent 100%)}.reality__create-options:after{content:"";position:absolute;bottom:-7px;right:24px;width:12px;height:12px;transform:rotate(45deg);background:var(--bg-elevated-2);border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong)}@keyframes reality-create-options-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.reality__create-options-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.reality__create-options-title{margin:0;font-size:12.5px;font-weight:700;letter-spacing:.2px;color:var(--text)}.reality__create-options-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--text) 5%,transparent);color:var(--text);cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.reality__create-options-close:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text)}.reality__create-options-close svg{display:block;flex:0 0 auto}.reality__create-options-close:focus,.reality__create-options-close:focus-visible{outline:none;color:var(--text);box-shadow:0 0 0 3px var(--accent-soft)}.reality__create-options-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}.reality__create-field{position:relative;display:flex;flex-direction:column;gap:5px;flex:1 1 140px;max-width:240px;min-width:0}.reality__create-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.reality__select{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font:inherit;font-size:13.5px;font-weight:500;color:var(--text);text-align:left;background-color:var(--bg-elevated);border:1px solid transparent;border-radius:8px;padding:6px 9px 6px 10px;min-height:32px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.reality__select-value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reality__select-caret{flex:0 0 auto;display:block;color:var(--text-muted);transition:transform .18s ease,color .15s ease}.reality__select.is-open .reality__select-caret{transform:rotate(180deg);color:var(--text)}.reality__select:hover{border-color:var(--border-strong);background-color:color-mix(in srgb,var(--bg-elevated) 88%,var(--accent))}.reality__select:focus,.reality__select:focus-visible,.reality__select.is-open{outline:none;border-color:var(--accent);background-color:var(--bg-elevated);box-shadow:0 0 0 3px var(--accent-soft)}.reality__create-field:has(.reality__select:focus) .reality__create-label,.reality__create-field:has(.reality__select.is-open) .reality__create-label{color:var(--accent)}.reality__select-list{position:absolute;top:calc(100% + 6px);left:0;z-index:70;min-width:100%;max-height:232px;overflow-y:auto;padding:5px;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-elevated-2);box-shadow:var(--shadow);animation:reality-create-options-in .16s ease-out both;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.reality__select-list::-webkit-scrollbar{width:8px}.reality__select-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:2px solid var(--bg-elevated-2)}.reality__create-options .reality__select-list{top:auto;bottom:calc(100% + 6px);transform-origin:50% 100%}.reality__select-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:7px 9px;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease}.reality__select-option:hover,.reality__select-option.is-active{background:var(--bg-hover)}.reality__select-option-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reality__select-option.is-selected{color:var(--accent);font-weight:700}.reality__select-option.is-selected:hover,.reality__select-option.is-selected.is-active{background:var(--accent-soft)}@media (min-width: 641px){.reality__create-row{width:auto;max-width:360px;align-self:flex-end}}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.gallery-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:18px}.pagination__pages{display:flex;align-items:center;gap:5px}.pagination__nav,.pagination__num{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated-2);color:var(--text);font-size:13px;transition:border-color .15s,background-color .15s,color .15s,transform .1s}.pagination__nav:hover:not(:disabled),.pagination__num:hover{border-color:var(--border-strong);background:var(--bg-hover)}.pagination__nav:active:not(:disabled),.pagination__num:active{transform:translateY(1px)}.pagination__nav:disabled{opacity:.4;cursor:default}.pagination__num--current,.pagination__num--current:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.pagination__gap{min-width:20px;text-align:center;color:var(--text-muted);-webkit-user-select:none;user-select:none}.gallery-loading{position:relative}.gallery-loading__overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;color:var(--text);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.gallery-loading__spinner{width:22px;height:22px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:var(--accent);animation:placeholder-spin .8s linear infinite}.gallery-tabs{display:inline-flex;flex:0 0 auto;gap:3px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated-2)}.gallery-tab{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:0;background:transparent;color:var(--text-muted);border-radius:7px;font-size:13px;white-space:nowrap}.gallery-tab svg{flex:0 0 auto}.gallery-tab:hover{background:var(--bg-hover);color:var(--text)}.gallery-tab.is-active,.gallery-tab.is-active:hover{background:var(--accent);color:var(--accent-contrast)}.gallery-panel{display:flex;flex-direction:column;flex:1;min-height:0}.gen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;align-content:start}.gen-card{margin:0;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.gen-card--failed{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.gen-card--selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.gen-card__media{position:relative;aspect-ratio:4 / 3;display:grid;place-items:center;overflow:hidden}.gen-card__view{position:relative;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.gen-card__view:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gen-card__img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s ease,transform .25s ease}.gen-card__view:hover .gen-card__img{transform:scale(1.05)}.gen-card__img--loaded{opacity:1}.gen-card__state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px;text-align:center}.gen-card__state>svg{color:var(--danger)}.gen-card--processing{animation:gen-card-glow 2.2s ease-in-out infinite}@keyframes gen-card-glow{0%,to{border-color:var(--border);box-shadow:0 0 color-mix(in srgb,var(--accent) 0%,transparent)}50%{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 14px 2px color-mix(in srgb,var(--accent) 32%,transparent)}}.gen-card--processing .gen-card__media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,color-mix(in srgb,var(--accent) 20%,transparent) 42%,rgba(255,255,255,.28) 50%,color-mix(in srgb,var(--accent) 20%,transparent) 58%,transparent 75%);transform:translate(-100%);animation:gen-card-shimmer 2.4s ease-in-out infinite}@keyframes gen-card-shimmer{0%{transform:translate(-100%)}55%,to{transform:translate(100%)}}.gen-card__generating{display:grid;place-items:center;color:var(--accent);filter:drop-shadow(0 0 8px color-mix(in srgb,var(--accent) 55%,transparent));animation:gen-star-pulse 1.4s ease-in-out infinite}@keyframes gen-star-pulse{0%,to{transform:scale(.85);opacity:.7}50%{transform:scale(1.1);opacity:1}}.gen-card__processing-label{font-size:12.5px;font-weight:600;color:var(--text-muted)}.gen-card__error{font-size:12.5px;color:var(--danger);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.gen-card__foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:9px 11px;border-top:1px solid var(--border)}.gen-card__foot:empty{display:none}.gen-card__time{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:14px 10px 7px;font-size:11px;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.65);background:linear-gradient(to top,#0000009e,#0000);pointer-events:none}.gen-card__download{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.gen-card__download:hover{color:var(--accent);background:var(--accent-soft)}.gen-card__download:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (prefers-reduced-motion: reduce){.gen-card__generating,.gen-card--processing{animation:none}.gen-card--processing .gen-card__media:after{content:none}}.gallery-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px;padding:8px 10px;background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:10px}.gallery-toolbar button:not(.upload-trigger){display:inline-flex;align-items:center;gap:7px;font-size:12.5px;padding:6px 11px;min-height:32px}.gallery-toolbar__divider{width:1px;height:24px;flex:0 0 auto;background:var(--border)}@media (max-width: 640px){.gallery-toolbar{gap:6px}.gallery-toolbar__label,.gallery-tab__label{display:none}.gallery-toolbar .btn--primary,.gallery-toolbar .btn--danger{width:32px;height:32px;padding:0;gap:0;justify-content:center}.gallery-tabs{gap:2px;padding:2px}.gallery-tab{gap:0;padding:8px}}.gallery-toolbar button.gallery-toolbar__icon{width:32px;height:32px;padding:0;gap:0;justify-content:center}.gallery-toolbar button.gallery-toolbar__icon svg{flex:0 0 auto;display:block}.gallery-toolbar__count{margin-left:auto;font-size:12px;color:var(--text-muted)}.gallery-card{position:relative;margin:0;background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s}.gallery-card:hover{border-color:var(--border-strong)}.gallery-card--selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.gallery-card__select{position:absolute;top:8px;left:8px;z-index:2;width:30px;height:30px;padding:0;display:grid;place-items:center;border:2px solid rgba(255,255,255,.65);border-radius:50%;background:#00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:transparent;box-shadow:0 1px 5px #00000073;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.gallery-card__select:hover{border-color:#fff;background:#0000008c;transform:scale(1.06)}.gallery-card__select:focus-visible{outline:none;border-color:#fff;box-shadow:0 0 0 3px #ffffff59}.gallery-card__select--checked,.gallery-card__select--checked:hover{background:var(--accent);border-color:#fff;color:#fff;box-shadow:0 1px 5px #00000073;animation:gallery-checkbox-pop .2s ease}.gallery-card__select svg{display:block}@keyframes gallery-checkbox-pop{0%{transform:scale(.8)}60%{transform:scale(1.15)}to{transform:scale(1)}}.gallery-card__view{display:block;width:100%;padding:0;border:none;border-radius:0;background:transparent;cursor:zoom-in;overflow:hidden}.gallery-card__view:hover{background:transparent}.gallery-card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;background:repeating-conic-gradient(var(--bg-elevated) 0% 25%,var(--bg-elevated-2) 0% 50%) 0 0 / 22px 22px;transition:transform .25s ease}.gallery-card__view:hover img{transform:scale(1.05)}.gallery-card__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;aspect-ratio:4 / 3;color:var(--text-muted);font-size:12px;background:repeating-conic-gradient(var(--bg-elevated) 0% 25%,var(--bg-elevated-2) 0% 50%) 0 0 / 22px 22px;animation:placeholder-pulse 1.6s ease-in-out infinite}.gallery-card__placeholder-spinner{width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:placeholder-spin .8s linear infinite}@keyframes placeholder-spin{to{transform:rotate(360deg)}}@keyframes placeholder-pulse{0%,to{opacity:.85}50%{opacity:.55}}.gallery-card__media{position:relative;overflow:hidden}.gallery-card__upload{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;align-items:center;gap:8px;padding:10px 12px 8px;background:linear-gradient(to top,#000000a6,#0000);color:#fff;pointer-events:none}.gallery-card__upload-track{flex:1;height:7px;border-radius:999px;background:#ffffff47;overflow:hidden}.gallery-card__upload-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .15s ease-out}.gallery-card--busy{cursor:wait}.gallery-card__busy{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:color-mix(in srgb,var(--bg-elevated) 78%,transparent);color:var(--text);font-size:12px;font-weight:600;pointer-events:none}.gallery-card__busy-spinner{width:20px;height:20px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:var(--accent);animation:placeholder-spin .8s linear infinite}.gallery-card--busy .gallery-card__select,.gallery-card--busy .gallery-card__download,.gallery-card--busy .gallery-card__remove,.gallery-card--busy .gallery-card__name-input{opacity:.5;pointer-events:none}.gallery-card__view:disabled{cursor:wait}.gallery-card__view:disabled img,.gallery-card__view:disabled:hover img{transform:none}.gallery-card__error{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;align-items:center;gap:8px;padding:7px 10px;background:linear-gradient(to top,#000000ad,#0000);color:#fff;pointer-events:none}.gallery-card__error-msg{flex:1;min-width:0;font-size:11px;color:#fff;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-card__retry{flex-shrink:0;pointer-events:auto;border:none;background:var(--danger);color:#fff;font-weight:600;font-size:11.5px;padding:5px 11px;border-radius:999px;cursor:pointer;box-shadow:0 2px 8px #00000073;transition:filter .15s ease,transform .1s ease}.gallery-card__retry:hover{filter:brightness(1.1)}.gallery-card__retry:active{transform:scale(.97)}.gallery-card__retry:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 45%,transparent)}.gallery-card__duplicate{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:12px;background:color-mix(in srgb,var(--bg-elevated) 82%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:inherit;z-index:2}.gallery-card__duplicate-msg{font-size:12px;color:var(--text);text-align:center;line-height:1.4;max-width:220px}.gallery-card__duplicate-btn{border:none;background:var(--accent);color:var(--accent-contrast);font-weight:600;font-size:12.5px;padding:7px 18px;border-radius:999px;cursor:pointer;transition:filter .15s ease,transform .1s ease}.gallery-card__duplicate-btn:hover{filter:brightness(1.1)}.gallery-card__duplicate-btn:active{transform:scale(.97)}.gallery-card__duplicate-btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}.gallery-card__meta{display:flex;align-items:center;gap:8px;padding:9px 11px;font-size:12px;color:var(--text-muted);border-top:1px solid var(--border)}.gallery-card__name-input{flex:1;min-width:0;font-size:12px;font-family:inherit;color:var(--text);background:transparent;border:1px solid transparent;border-radius:6px;padding:2px 6px;transition:border-color .15s,background-color .15s}.gallery-card__name-input:hover{border-color:var(--border-strong)}.gallery-card__name-input:focus{outline:none;border-color:var(--accent);background:var(--bg-elevated)}.gallery-card__name-input::placeholder{color:var(--text-muted);opacity:.85}.gallery-card__size{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:14px 10px 6px;font-size:11px;font-weight:500;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.65);background:linear-gradient(to top,#0009,#0000);pointer-events:none}.gallery-card__download,.gallery-card__remove{flex-shrink:0;display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.gallery-card__download:hover{color:var(--accent);background:var(--accent-soft)}.gallery-card__download:focus-visible,.gallery-card__remove:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.gallery-card__remove:hover{color:var(--danger);background:var(--danger-soft)}.gallery-card__remove:focus-visible{outline-color:var(--danger)}.gen-card__download.is-added,.gallery-card__download.is-added,.preview__action-btn.is-added{color:var(--danger)}.gen-card__download.is-added:hover,.gallery-card__download.is-added:hover,.preview__action-btn.is-added:hover{color:var(--danger);background:var(--danger-soft)}.gen-card__download.is-added:disabled,.gallery-card__download.is-added:disabled,.preview__action-btn.is-added:disabled{opacity:.8;cursor:default}.upload-trigger{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;color:var(--accent-contrast);background:var(--accent);border:none;border-radius:8px;cursor:pointer;transition:filter .15s,transform .1s}.upload-trigger svg{flex:0 0 auto;display:block}.upload-trigger:hover{filter:brightness(1.08)}.upload-trigger:active{transform:translateY(1px)}.api-env-toggle{position:relative;flex-shrink:0;width:58px;height:30px;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--bg-elevated-2);cursor:pointer}.api-env-toggle:hover{border-color:var(--border-strong)}.api-env-toggle[aria-checked=true]{background:var(--accent-soft);border-color:var(--accent)}.api-env-toggle__knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--bg-hover);border:1px solid var(--border-strong);display:grid;place-items:center;transition:transform .35s cubic-bezier(.34,1.56,.64,1),background-color .25s ease,border-color .25s ease;z-index:1}.api-env-toggle[aria-checked=true] .api-env-toggle__knob{transform:translate(28px)}.api-env-toggle__icon{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;transition:opacity .22s ease,transform .35s ease}.api-env-toggle__icon--local{opacity:1;transform:rotate(0) scale(1)}.api-env-toggle__icon--remote{color:var(--text);opacity:0;transform:rotate(90deg) scale(.4)}.api-env-toggle[aria-checked=true] .api-env-toggle__icon--local{opacity:0;transform:rotate(-90deg) scale(.4)}.api-env-toggle[aria-checked=true] .api-env-toggle__icon--remote{opacity:1;transform:rotate(0) scale(1)}.dropzone__progress{flex:1 1 100%;display:flex;align-items:center;gap:10px}.dropzone__progress-track{flex:1;height:8px;border-radius:999px;background:var(--accent-soft);overflow:hidden}.dropzone__progress-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .15s ease-out}.flight-wrapper{position:fixed;top:0;left:0;z-index:200;pointer-events:none;will-change:transform,opacity}.flight-wrapper img{display:block;width:132px;height:132px;object-fit:cover;border-radius:14px;box-shadow:0 12px 32px #00000059;background:repeating-conic-gradient(var(--bg-elevated) 0% 25%,var(--bg-elevated-2) 0% 50%) 0 0 / 22px 22px}figure.gallery-card[data-animating] img{display:none}.dropzone__progress-label{font-size:12px;font-weight:600;color:var(--accent);flex:0 0 auto;text-align:right;white-space:nowrap}.dropzone{flex:1;display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding:10px 12px 10px 18px;border:1.5px dashed var(--border-strong);border-radius:12px;background:var(--bg-elevated-2);color:var(--text-muted);cursor:pointer;transition:border-color .15s,background .15s,color .15s;-webkit-user-select:none;user-select:none}.dropzone:hover{border-color:var(--accent);color:var(--text)}.dropzone--active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.dropzone__icon{color:var(--accent)}.dropzone__text{flex:1;min-width:180px;font-size:13px}.dropzone__qr{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:13px;color:var(--accent);border:1px solid var(--border);background:var(--bg-elevated);border-radius:8px;padding:7px 13px}.dropzone__qr:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone__qr:active{transform:translateY(1px)}.modal.upload-modal{width:min(100%,460px);max-width:460px}.upload-modal__body{display:grid;gap:14px;padding:14px 20px 20px}.upload-modal .dropzone{flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:26px 18px}.upload-modal .dropzone__text{min-width:0}.upload-modal__actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.upload-modal__actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 10px;font-size:12.5px;font-weight:600;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:9px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.upload-modal__actions button:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.upload-modal__actions button:active{transform:translateY(1px)}.upload-modal__actions button svg{flex:0 0 auto}.gallery-picker{display:flex;flex-direction:column;gap:14px;min-height:0}.gallery-picker__tabs{display:inline-flex;align-self:flex-start;gap:3px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated-2)}.gallery-picker__tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:0;background:transparent;color:var(--text-muted);border-radius:7px;font-size:12.5px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .15s ease,color .15s ease}.gallery-picker__tab svg{flex:0 0 auto}.gallery-picker__tab:hover{background:var(--bg-hover);color:var(--text)}.gallery-picker__tab.is-active,.gallery-picker__tab.is-active:hover{background:var(--accent);color:var(--accent-contrast)}.gallery-picker__empty{margin:0;padding:28px 16px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--bg-elevated-2);color:var(--text-muted);font-size:13px;text-align:center}.gallery-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;max-height:min(52vh,420px);overflow-y:auto;padding:2px;scrollbar-width:thin;touch-action:pan-y}.gallery-picker__item{position:relative;aspect-ratio:1 / 1;padding:0;border:2px solid var(--border);border-radius:12px;overflow:hidden;background:var(--bg-elevated-2);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.gallery-picker__item img{width:100%;height:100%;object-fit:cover;display:block}.gallery-picker__cell{aspect-ratio:1 / 1;border:2px solid transparent;border-radius:12px}.gallery-picker__item:hover{border-color:var(--border-strong)}.gallery-picker__item.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.gallery-picker__item.is-used{opacity:.45;filter:grayscale(.6);cursor:not-allowed}.gallery-picker__item.is-used:hover{border-color:var(--border);background:var(--bg-elevated-2);box-shadow:none}.gallery-picker__check{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff;background:var(--accent);box-shadow:0 2px 8px color-mix(in srgb,#000 30%,transparent)}.gallery-picker__check svg{flex:0 0 auto;display:block}.gallery-picker__grid--wrap{position:relative}.gallery-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--text-muted);background:color-mix(in srgb,var(--bg-elevated) 72%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:auto}.gallery-picker__loading-spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:gallery-picker-spin .8s linear infinite}@keyframes gallery-picker-spin{to{transform:rotate(360deg)}}.gallery-picker__pagination{display:flex;align-items:center;justify-content:center;gap:12px}.gallery-picker__page-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:50%;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.gallery-picker__page-btn svg{flex:0 0 auto;display:block}.gallery-picker__page-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.gallery-picker__page-btn:active:not(:disabled){transform:translateY(1px)}.gallery-picker__page-btn:disabled{opacity:.4;cursor:not-allowed}.gallery-picker__page-label{font-size:12.5px;color:var(--text-muted);min-width:92px;text-align:center}.gallery-picker__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.gallery-picker__count{font-size:12.5px;color:var(--text-muted)}.gallery-picker__confirm{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;font-size:12.5px;font-weight:700;color:var(--accent-contrast, #fff);background:var(--accent);border:0;border-radius:9px;cursor:pointer;transition:filter .15s ease,transform .15s ease}.gallery-picker__confirm:hover{filter:brightness(1.06)}.gallery-picker__confirm:active{transform:translateY(1px)}.gallery-picker__confirm:disabled{opacity:.5;cursor:not-allowed}.gallery-picker__confirm svg{flex:0 0 auto;display:block}.upload-modal__flash{display:grid;justify-items:center;gap:8px;padding:18px 10px;text-align:center}.upload-modal__flash-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.upload-modal__flash-title{margin:0;font-size:14px;font-weight:600;color:var(--text)}.prompt-modal__body{padding:14px 16px}.prompt-modal__input{width:100%;box-sizing:border-box;resize:vertical;min-height:96px;padding:10px 12px;font:inherit;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);outline:none;transition:border-color .12s ease,box-shadow .12s ease}.prompt-modal__input::placeholder{color:var(--text-muted)}.prompt-modal__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.modal__close:disabled{opacity:.45;cursor:default;pointer-events:none}.upload-modal__progress{display:grid;gap:12px}.upload-modal__progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px;font-weight:600}.upload-modal__progress-pct{color:var(--accent);font-variant-numeric:tabular-nums}.upload-modal__progress-track{height:8px;border-radius:999px;background:var(--accent-soft);overflow:hidden}.upload-modal__progress-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .15s ease-out}.upload-modal__files{list-style:none;margin:0;padding:2px 0;display:grid;gap:10px;max-height:220px;overflow-y:auto}.upload-modal__file{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px;font-size:12.5px}.upload-modal__file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.upload-modal__file-status{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text-muted);white-space:nowrap}.upload-modal__file-status svg{flex:0 0 auto}.upload-modal__file-status--done{color:var(--accent)}.upload-modal__file-status--error,.upload-modal__file-status--duplicate{color:var(--danger)}.upload-modal__file-track{grid-column:1 / -1;display:block;height:4px;border-radius:999px;background:var(--accent-soft);overflow:hidden}.upload-modal__file-fill{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .15s ease-out}.module--gallery{position:relative}.gallery-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;border:2px dashed var(--accent);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-elevated) 72%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--text);pointer-events:none;animation:pop-in .12s ease-out}.gallery-drop-overlay svg{color:var(--accent)}.gallery-drop-overlay p{margin:0;font-size:14px;font-weight:600;text-align:center}@keyframes pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.modal.modal--wide{width:min(100%,440px);max-width:440px}.modal__header--qr{justify-content:flex-start;align-items:flex-start}.modal__subtitle{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.modal__close{margin-left:auto;display:grid;place-items:center;padding:5px;border-radius:6px;color:var(--text-muted)}.modal__close:hover{color:var(--text)}.qr-modal__code{width:fit-content;margin:20px auto;padding:28px;background:#fff;border-radius:12px;cursor:pointer}.qr-modal__code svg{display:block;width:100%;height:auto;max-width:260px}.qr-modal__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;margin:10px auto 16px;font-size:13px;color:var(--text-muted)}.qr-modal__loading-spinner{width:26px;height:26px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:var(--accent);animation:placeholder-spin .8s linear infinite}.qr-modal__error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;margin:10px auto 16px;text-align:center}.qr-modal__error-text{margin:0;color:var(--danger);font-size:13px}.qr-modal__waiting{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:280px;margin:10px auto 16px;text-align:center}.qr-modal__waiting-title{margin:0;font-size:16px;font-weight:650;color:var(--text)}.qr-modal__waiting-sub{margin:0;font-size:13px;color:var(--text-muted)}.qr-modal__waiting-spinner{width:28px;height:28px;border-radius:50%;border:3px solid color-mix(in srgb,var(--text) 20%,transparent);border-top-color:var(--accent);animation:placeholder-spin .8s linear infinite}.qr-modal__waiting-check{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#2ea043;color:#fff}.qr-modal__deliver-actions{display:flex;gap:10px;margin-top:8px}.qr-modal__received{width:150px;height:150px;object-fit:cover;border-radius:12px;border:1px solid var(--border);margin:6px auto 2px}.modal.preview-modal{width:min(100%,1440px);max-width:1440px;position:relative;display:flex;flex-direction:column;height:calc(100vh - 100px);height:calc(100dvh - 100px);max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-x:hidden;overflow-y:auto;box-shadow:var(--shadow),0 0 70px var(--accent-soft)}.preview-modal:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--accent) 35%,var(--accent) 65%,transparent);z-index:1}.preview__header{display:flex;align-items:center;gap:10px;padding:16px 20px 0}.preview__name{flex:0 1 auto;min-width:0;margin:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview__name-input{flex:1;min-width:0;font:inherit;font-size:14px;font-weight:600;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:8px;padding:8px 11px;transition:border-color .15s,box-shadow .15s}.preview__name-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.preview__icon-btn{flex:none;display:grid;place-items:center;width:30px;height:30px;padding:0;border-radius:8px;color:var(--text-muted)}.preview__icon-btn:hover{color:var(--text);background:var(--bg-hover)}.preview__icon-btn--sm{width:26px;height:26px}.preview__icon-btn--close{margin-left:auto}.preview__status{display:flex;align-items:center;gap:8px;width:fit-content;margin:12px 20px 0;padding:6px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12.5px;font-weight:600}.preview__status-spinner{width:14px;height:14px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:placeholder-spin .8s linear infinite}.preview__status--danger{background:var(--danger-soft);color:var(--danger);padding-right:6px}.preview__retry-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);border-radius:999px;background:transparent;color:var(--danger);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.preview__retry-btn:hover{background:var(--danger);color:#fff}.preview__media{position:relative;flex:1 1 0;min-height:0;display:flex;flex-direction:column}.preview__media--busy{cursor:wait}.preview__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 78%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--text);cursor:pointer;transition:background .15s ease,transform .12s ease,opacity .15s ease}.preview__nav:hover{background:var(--bg-elevated)}.preview__nav:active{transform:translateY(-50%) scale(.93)}.preview__nav:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.preview__nav--prev{left:10px}.preview__nav--next{right:10px}.preview__nav:disabled{opacity:.55;cursor:default}@media (max-width: 640px){.preview__nav{width:36px;height:36px}.preview__nav--prev{left:6px}.preview__nav--next{right:6px}}.preview__media-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:color-mix(in srgb,var(--bg-elevated) 75%,transparent);color:var(--text);font-size:14px;font-weight:600;pointer-events:none}.preview__media-overlay-spinner{width:24px;height:24px;border-radius:50%;border:2.5px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:var(--accent);animation:placeholder-spin .8s linear infinite}.preview__media-overlay .preview__retry-btn{pointer-events:auto}.preview__desc{display:flex;flex-direction:column;gap:8px;padding:12px 20px 0}.preview__desc-head{display:flex;align-items:center;gap:8px}.preview__desc-label{font-size:12px;color:var(--text-muted)}.preview__desc-text{margin:0;font-size:13px;line-height:1.55;color:var(--text);white-space:pre-wrap;word-break:break-word}.preview__desc-text--clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.preview__desc-toggle{align-self:flex-start;padding:4px 10px;font-size:12px;color:var(--accent);border-color:transparent;background:transparent}.preview__desc-toggle:hover{background:var(--accent-soft)}.preview__desc-input{font:inherit;font-size:13px;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:8px 11px;min-height:72px;max-height:220px;resize:vertical;transition:border-color .15s,box-shadow .15s}.preview__desc-input::placeholder{color:var(--text-muted)}.preview__desc-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.preview__desc-actions{display:flex;gap:8px}.preview__action-btn{width:36px;height:36px;padding:0;border-radius:8px}.preview__close-bottom{display:none}.zoom{position:relative;margin:8px 14px 2px;display:flex;flex:1 1 0;align-items:center;justify-content:center;min-height:200px;padding:8px;border:1px solid var(--border);border-radius:12px;background:repeating-conic-gradient(var(--bg-elevated) 0% 25%,var(--bg-elevated-2) 0% 50%) 0 0 / 22px 22px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.zoom img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:8px;box-shadow:0 14px 40px #00000080;pointer-events:none;transform-origin:0 0;will-change:transform}.zoom--enter img{animation:preview-in .28s cubic-bezier(.22,1,.36,1)}.zoom--anim img{transition:transform .16s ease}.zoom__controls{position:absolute;top:10px;right:10px;z-index:2;display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid var(--border-strong);border-radius:10px;background:color-mix(in srgb,var(--bg-elevated-2) 78%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow)}.zoom__btn{width:30px;height:30px;padding:0;border-radius:8px}.zoom__btn--reset{width:auto;padding:0 10px;font-size:12.5px}.zoom__level{min-width:46px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-muted)}.zoom__badge{position:absolute;left:10px;bottom:10px;z-index:2;padding:4px 9px;border:1px solid var(--border-strong);border-radius:8px;background:color-mix(in srgb,var(--bg-elevated-2) 78%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--text-muted);pointer-events:none}@keyframes preview-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.preview-modal .modal__actions{padding:14px 20px 20px}.crop{display:flex;flex-direction:column;flex:1 1 0;min-height:0}.crop__stage{position:relative;flex:1 1 0;min-height:200px;margin:8px 14px 2px;display:flex;align-items:center;justify-content:center;padding:8px;overflow:hidden;border:1px solid var(--border);border-radius:12px;line-height:0;background:repeating-conic-gradient(var(--bg-elevated) 0% 25%,var(--bg-elevated-2) 0% 50%) 0 0 / 22px 22px}.crop__stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.crop__overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:color-mix(in srgb,var(--bg-elevated) 75%,transparent);color:var(--text);font-size:14px;font-weight:600;pointer-events:none}.crop__overlay-spinner{width:24px;height:24px;border-radius:50%;border:2.5px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:var(--accent);animation:placeholder-spin .8s linear infinite}.crop__box{position:absolute;border:1.5px solid rgba(255,255,255,.9);box-shadow:0 0 0 9999px #0006;cursor:move;touch-action:none}.crop__grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,transparent calc(33.3% - 1px),rgba(255,255,255,.45) calc(33.3% - 1px),rgba(255,255,255,.45) calc(33.3% + 1px),transparent calc(33.3% + 1px)),linear-gradient(90deg,transparent calc(66.6% - 1px),rgba(255,255,255,.45) calc(66.6% - 1px),rgba(255,255,255,.45) calc(66.6% + 1px),transparent calc(66.6% + 1px)),linear-gradient(0deg,transparent calc(33.3% - 1px),rgba(255,255,255,.45) calc(33.3% - 1px),rgba(255,255,255,.45) calc(33.3% + 1px),transparent calc(33.3% + 1px)),linear-gradient(0deg,transparent calc(66.6% - 1px),rgba(255,255,255,.45) calc(66.6% - 1px),rgba(255,255,255,.45) calc(66.6% + 1px),transparent calc(66.6% + 1px))}.crop__handle{position:absolute;width:15px;height:15px;background:#fff;border:1px solid rgba(0,0,0,.35);border-radius:3px;touch-action:none}.crop__handle--n,.crop__handle--s{width:18px;height:10px}.crop__handle--e,.crop__handle--w{width:10px;height:18px}.crop__handle--n{top:0;left:50%;transform:translate(-50%);cursor:ns-resize}.crop__handle--s{bottom:0;left:50%;transform:translate(-50%);cursor:ns-resize}.crop__handle--e{top:50%;right:0;transform:translateY(-50%);cursor:ew-resize}.crop__handle--w{top:50%;left:0;transform:translateY(-50%);cursor:ew-resize}.crop__handle--nw{top:0;left:0;cursor:nwse-resize}.crop__handle--ne{top:0;right:0;cursor:nesw-resize}.crop__handle--sw{bottom:0;left:0;cursor:nesw-resize}.crop__handle--se{bottom:0;right:0;cursor:nwse-resize}.crop__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:14px 20px 20px}.crop__buttons{display:flex;align-items:center;gap:10px}.crop__buttons button{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;padding:7px 12px}.crop__spinner{width:14px;height:14px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:placeholder-spin .8s linear infinite}.crop__aspect{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.crop__aspect select{font:inherit;font-size:13px;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:7px 9px}.crop__aspect select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.btn--primary{display:inline-flex;align-items:center;gap:7px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;overflow-y:auto;padding:12px;background:#0000008c}[data-theme=light] .modal-backdrop{background:#20202059}.modal-backdrop.modal-backdrop--blur{background:color-mix(in srgb,var(--bg) 45%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{margin:auto;width:min(100%,400px);max-width:400px;background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);animation:pop-in .15s ease-out}.modal__header{display:flex;align-items:center;gap:10px;padding:18px 20px 0}.modal__icon{color:var(--text-muted);display:grid;place-items:center}.modal__title{margin:0;font-size:15px;font-weight:600}.modal__message{margin:10px 20px;font-size:13px;line-height:1.55;color:var(--text-muted)}.modal__actions{display:flex;justify-content:flex-end;gap:10px;padding:4px 20px 20px}.btn--danger{display:inline-flex;align-items:center;gap:7px;background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.btn--danger:hover{background:var(--danger);color:var(--accent-contrast)}.btn--primary{border-color:var(--accent);color:var(--accent)}.qr-upload__link-error{flex:1;width:100%;max-width:520px;min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 24px;background:var(--bg-elevated);border:2px solid var(--danger);border-radius:24px;text-align:center}.qr-upload__link-error-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--danger-soft);color:var(--danger);margin-bottom:6px}.qr-upload__link-error-title{margin:0;font-size:17px;font-weight:650;color:var(--text)}.qr-upload__link-error-text{margin:0;max-width:300px;font-size:13.5px;line-height:1.6;color:var(--text-muted)}.qr-upload__open-error{width:100%;max-width:520px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--danger-soft);border:1.5px solid var(--danger);border-radius:14px}.qr-upload__open-error-text{margin:0;font-size:13px;line-height:1.5;color:var(--text)}.qr-upload{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:44px 20px 48px;text-align:center;background:var(--bg)}.qr-upload__title{margin:0 0 10px;font-size:26px;font-weight:700;color:var(--text)}.qr-upload__subtitle{margin:0 0 28px;max-width:340px;font-size:14px;color:var(--text-muted);line-height:1.55}.qr-upload__zone{position:relative;flex:1;width:100%;max-width:520px;min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 24px;background:var(--bg-elevated);border:2px dashed var(--border);border-radius:24px;overflow:hidden}.qr-upload__zone:has(.qr-upload__zone-icon){cursor:pointer}.qr-upload__zone--active{border-style:solid}.qr-upload__preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.qr-upload__overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px 24px;background:#0000008c;color:#fff;text-align:center}.qr-upload__overlay-text{font-size:16px;font-weight:650}.qr-upload__overlay-sub{max-width:280px;font-size:13px;line-height:1.5;opacity:.85}.qr-upload__overlay-check{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#2ea043;color:#fff}.qr-upload__spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgb(255 255 255 / .3);border-top-color:#fff;animation:placeholder-spin .8s linear infinite}.qr-upload__progress{width:min(70%,220px);height:6px;border-radius:3px;background:#ffffff40;overflow:hidden}.qr-upload__progress-bar{display:block;height:100%;border-radius:3px;background:#fff;transition:width .15s ease}.qr-upload__overlay-actions{display:flex;gap:10px;margin-top:6px}.qr-upload__overlay-btn{background:#ffffff24;border-color:#ffffff73;color:#fff}.qr-upload__overlay-btn:hover{background:#ffffff42;border-color:#fff}.qr-upload__overlay-btn--primary{background:#fff;border-color:#fff;color:#1c1f24}.qr-upload__overlay-btn--primary:hover{background:#ffffffd9;border-color:#fff;color:#1c1f24}.qr-upload__zone-icon{display:grid;place-items:center;width:64px;height:64px;margin-bottom:12px;border-radius:50%;background:var(--bg);box-shadow:0 4px 14px #0000001a;color:var(--text)}.qr-upload__zone-label{font-size:20px;font-weight:700;color:var(--text)}.qr-consent{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 20px 18px;text-align:center}.qr-consent__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.qr-consent__title{margin:4px 0 0;font-size:17px;font-weight:650;color:var(--text)}.qr-consent__text{margin:0;font-size:13.5px;line-height:1.6;color:var(--text-muted)}.qr-consent__actions{display:flex;gap:10px;width:100%;margin-top:12px}.qr-consent__actions button{flex:1}@media (max-width: 640px){.modal-backdrop{padding:16px}.modal.preview-modal{height:calc(100vh - 112px);height:calc(100dvh - 112px);max-height:calc(100vh - 112px);max-height:calc(100dvh - 112px)}.app-header{padding:10px 16px}.main-container{padding:0}.module{border:0;border-radius:0;flex:1}.module--reality{padding-top:14px;gap:14px}.module-toolbar,.app-header__actions .theme-toggle,.app-header__actions .api-env-toggle{display:none}.mobile-menu{display:block;margin-left:0}.dropzone__text{display:none}.upload-modal .dropzone__text{display:block}.upload-modal__actions{grid-template-columns:1fr}.gallery-picker__grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:62vh}.gallery-picker__check{top:4px;right:4px;width:19px;height:19px}.qr-modal__code{padding:20px}.zoom,.crop__stage{margin:12px 14px 4px}.crop__footer{flex-wrap:nowrap}.crop__aspect__label{display:none}.preview__header{padding-top:16px}.preview__close-bottom{display:inline-flex}.preview__icon-btn--close{display:none}.crop__footer{gap:8px;padding:14px 16px 16px}.crop__buttons{gap:8px}.crop__buttons button{padding:7px 10px}.gallery-toolbar__count{margin-left:0;width:100%;text-align:center}}.privacy-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,var(--accent-soft),transparent 60%),var(--bg);overflow:auto}.privacy-modal{width:min(100%,560px);max-height:min(85vh,720px);display:flex;flex-direction:column;background:var(--bg-elevated-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);animation:pop-in .22s ease}.privacy-modal__header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border)}.privacy-modal__icon{color:var(--accent);display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--accent-soft);flex-shrink:0}.privacy-modal__title{margin:0;font-size:16px;font-weight:600}.privacy-modal__subtitle{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.privacy-modal__body{padding:16px 20px;overflow-y:auto;font-size:13px;line-height:1.6;color:var(--text)}.privacy-modal__body h2{margin:18px 0 6px;font-size:13px;font-weight:600;color:var(--text)}.privacy-modal__body h2:first-of-type{margin-top:4px}.privacy-modal__body p{margin:0 0 10px}.privacy-modal__body ul{margin:0 0 10px;padding-left:18px}.privacy-modal__body li{margin-bottom:4px}.privacy-modal__date{margin:14px 0 0;font-size:12px;color:var(--text-muted)}.privacy-modal__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 20px;border-top:1px solid var(--border)}.privacy-modal__check{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.privacy-modal__check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);padding:24px}.auth-gate__spinner{width:36px;height:36px;border-radius:50%;border:3px solid color-mix(in srgb,var(--accent) 25%,transparent);border-top-color:var(--accent);animation:placeholder-spin .8s linear infinite;margin-bottom:16px}.auth-gate p{margin:0;font-size:14px;color:var(--text-muted)}.auth-gate__modal{max-width:380px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.auth-gate__icon{font-size:40px;line-height:1}.auth-gate__modal h2{margin:0;font-size:18px;color:var(--text)}.auth-gate__modal p{margin:0;font-size:13.5px;color:var(--text-muted);line-height:1.5}.auth-gate__details{width:100%;text-align:left;font-size:12px;color:var(--text-muted)}.auth-gate__details summary{cursor:pointer;font-weight:500}.auth-gate__details pre{margin:8px 0 0;padding:10px;background:var(--bg-elevated-2);border-radius:6px;overflow-x:auto;font-size:11px;white-space:pre-wrap;word-break:break-all}.auth-gate__btn{border:none;background:var(--accent);color:var(--accent-contrast);font-weight:600;font-size:14px;padding:10px 28px;border-radius:999px;cursor:pointer;transition:filter .15s ease,transform .1s ease}.auth-gate__btn:hover{filter:brightness(1.1)}.auth-gate__btn:active{transform:scale(.97)}.catalog-sidebar{position:fixed;top:0;right:0;bottom:0;z-index:460;width:380px;max-width:100vw;display:flex;flex-direction:column;background:var(--bg-elevated);border-left:1px solid var(--border);box-shadow:var(--shadow);transform:translate(102%);visibility:hidden;transition:transform .28s ease,visibility 0s linear .28s,background-color .25s ease,border-color .25s ease,color .25s ease}.catalog-sidebar--open{transform:translate(0);visibility:visible;transition:transform .28s ease,background-color .25s ease,border-color .25s ease,color .25s ease}.catalog-sidebar__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:450;background:color-mix(in srgb,#000 30%,transparent);animation:mobile-menu-fade .18s ease}@media (max-width: 640px){.catalog-sidebar__backdrop{background:color-mix(in srgb,#000 45%,transparent)}}.catalog-sidebar__header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px 13px 16px;border-bottom:1px solid var(--border)}.catalog-sidebar__title{display:inline-flex;align-items:center;gap:9px;margin:0;font-size:15px;font-weight:600;color:var(--text)}.catalog-sidebar__title svg{color:var(--accent)}.catalog-sidebar__close{padding:6px;border-radius:8px;color:var(--text-muted)}.catalog-sidebar__close:hover{color:var(--text)}.catalog-multi-select__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;background:color-mix(in srgb,#000 32%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:default;animation:mobile-menu-fade .18s ease}.catalog-sidebar__category{padding:12px 16px 2px}.catalog-multi-select{position:relative}.catalog-multi-select__trigger{display:flex;align-items:center;gap:8px;width:100%;font-size:13.5px;font-weight:500;text-align:left;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated-2);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.catalog-multi-select__trigger:hover{border-color:var(--border-strong);background:var(--bg-hover)}.catalog-multi-select__trigger[aria-expanded=true]{border-color:var(--accent)}.catalog-multi-select__trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-multi-select__count{flex:0 0 auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--accent-contrast);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}.catalog-multi-select__trigger>svg{flex:0 0 auto;color:var(--text-muted);transition:transform .16s ease}.catalog-multi-select__trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.catalog-multi-select__panel{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:5;display:flex;flex-direction:column;background:var(--bg-elevated-2);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow);padding:5px;max-height:360px;animation:pop-in .14s ease}.catalog-multi-select__options{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.catalog-multi-select__option{position:relative;display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:7px;font-size:13.5px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.catalog-multi-select__option:hover{background:color-mix(in srgb,var(--accent) 12%,var(--bg-hover))}.catalog-multi-select__option:has(.catalog-multi-select__option-input:checked):hover{background:color-mix(in srgb,var(--accent) 20%,var(--bg-hover))}.catalog-multi-select__option-input{flex:0 0 auto;position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-appearance:none;-moz-appearance:none;appearance:none}.catalog-multi-select__checkbox{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:17px;height:17px;border:1.5px solid var(--border-strong);border-radius:5px;background:var(--bg-elevated);color:#fff;transition:background .12s,border-color .12s}.catalog-multi-select__checkbox svg{opacity:0;transform:scale(.5);transition:opacity .12s,transform .12s}.catalog-multi-select__option:has(.catalog-multi-select__option-input:checked){background:var(--accent-soft)}.catalog-multi-select__option:has(.catalog-multi-select__option-input:checked) .catalog-multi-select__checkbox{background:var(--accent);border-color:var(--accent)}.catalog-multi-select__option:has(.catalog-multi-select__option-input:checked) .catalog-multi-select__checkbox svg{opacity:1;transform:scale(1)}.catalog-multi-select__option:has(.catalog-multi-select__option-input:checked) .catalog-multi-select__option-label{font-weight:600}.catalog-multi-select__option:has(.catalog-multi-select__option-input:focus-visible) .catalog-multi-select__checkbox{outline:2px solid var(--accent);outline-offset:2px}.catalog-tree__row{display:flex;align-items:stretch;gap:0}.catalog-tree__row .catalog-tree__option{flex:1 1 auto;min-width:0;padding-left:6px}.catalog-tree__chevron{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:24px;margin:0 0 0 4px;border:0;background:transparent;color:var(--text-muted);cursor:pointer;padding:0;border-radius:6px;transition:background .12s,color .12s}.catalog-tree__chevron:hover{background:color-mix(in srgb,var(--accent) 14%,var(--bg-hover));color:var(--text)}.catalog-tree__chevron:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.catalog-tree__chevron svg{transition:transform .15s ease}.catalog-tree__chevron[aria-expanded=true] svg{transform:rotate(90deg)}.catalog-tree__chevron-spacer{flex:0 0 auto;width:28px}.catalog-tree__children{display:flex;flex-direction:column;gap:1px}.catalog-tree__row--indeterminate .catalog-multi-select__checkbox{background:var(--accent);border-color:var(--accent)}.catalog-tree__row--indeterminate .catalog-multi-select__checkbox svg{opacity:1;transform:scale(1)}.catalog-tree__row--indeterminate .catalog-multi-select__option-label{font-weight:600}.catalog-tree__row:hover .catalog-tree__chevron{background:color-mix(in srgb,var(--accent) 10%,transparent)}.catalog-multi-select__footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px;padding:6px 2px 3px;border-top:1px solid var(--border)}.catalog-multi-select__selected-count{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:var(--text-muted)}.catalog-multi-select__clear{font-size:12px;font-weight:600;padding:5px 12px;color:var(--text-muted)}.catalog-multi-select__clear:hover:not(:disabled){color:var(--text);background:color-mix(in srgb,var(--accent) 12%,var(--bg-hover))}.catalog-sidebar__search{flex:0 0 auto;display:flex;align-items:center;gap:7px;margin:6px 16px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);color:var(--text-muted);transition:border-color .12s}.catalog-sidebar__search:focus-within{border-color:var(--accent)}.catalog-sidebar__search-input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font-size:13px;outline:none}.catalog-sidebar__search-input::placeholder{color:var(--text-muted)}.catalog-sidebar__search-clear{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:var(--border-strong);color:var(--bg);cursor:pointer}.catalog-sidebar__search-clear:hover{background:var(--text-muted)}.catalog-sidebar__list{flex:1;overflow-y:auto;padding:12px 14px 16px;display:flex;flex-direction:column;gap:9px}.catalog-product{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:12px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated-2)}.catalog-carousel{display:flex;align-items:center;gap:4px;width:fit-content}.catalog-carousel__nav{flex:0 0 auto;width:22px;height:22px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-muted);margin-bottom:10px;cursor:pointer;transition:background .12s,color .12s}.catalog-carousel__nav:hover{background:var(--bg-hover);color:var(--text)}.catalog-carousel__stage{display:flex;flex-direction:column;align-items:center;gap:4px}.catalog-carousel__slide{position:relative;width:72px;height:72px;border-radius:10px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;-webkit-user-select:none;user-select:none;cursor:default;transition:filter .12s ease}.catalog-carousel__slide:hover{filter:brightness(1.08)}.catalog-carousel__use{position:absolute;left:50%;bottom:6px;transform:translate(-50%) translateY(2px);padding:3px 11px;font-size:11px;font-weight:600;border:none;border-radius:999px;background:var(--accent);color:var(--accent-contrast);box-shadow:0 2px 8px #00000040;opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease}.catalog-carousel__slide:hover .catalog-carousel__use,.catalog-carousel__slide:focus-within .catalog-carousel__use{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.catalog-carousel__use:hover{filter:brightness(1.12)}.catalog-carousel__dots{display:flex;align-items:center;gap:4px;padding:0 2px}.catalog-carousel__dot{width:6px;height:6px;padding:0;border:none;border-radius:50%;background:var(--border-strong);opacity:.7;cursor:pointer;transition:background .12s,opacity .12s,transform .12s}.catalog-carousel__dot:hover{opacity:1}.catalog-carousel__dot.is-active{background:var(--accent);opacity:1;transform:scale(1.15)}.catalog-carousel__tip{position:fixed;z-index:300;transform:translate(-50%,calc(-100% - 8px));background:var(--bg-elevated-2);border:1px solid var(--border-strong);color:var(--text);padding:4px 9px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.catalog-product__info{display:flex;flex-direction:column;min-width:0}.catalog-product__info h3{margin:0 0 2px;font-size:13.5px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-product__variation{margin:0;font-size:12.5px;font-weight:500;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-product__price{margin:2px 0 0;font-size:13px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.catalog-product__stock{margin:2px 0 0;font-size:11px;color:var(--text-muted);white-space:nowrap}.catalog-product__variants{margin-top:auto;padding-top:8px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.catalog-product__variant{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.catalog-product__variant:hover{transform:scale(1.12)}.catalog-product__variant.is-active{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--bg-elevated-2),0 0 0 3.5px var(--accent)}.catalog-sidebar__status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px 12px;color:var(--text-muted);font-size:13px;text-align:center}.catalog-sidebar__status p{margin:0}.catalog-sidebar__status--error{color:var(--danger)}.catalog-sidebar__spinner{width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:var(--accent);animation:placeholder-spin .8s linear infinite}.catalog-sidebar__end{padding:14px 0 4px;text-align:center;font-size:12px;color:var(--text-muted)}.catalog-sidebar__sentinel{height:1px;flex:0 0 auto}@media (max-width: 640px){.catalog-sidebar{width:100%}.catalog-sidebar__title{font-size:14px}.catalog-carousel__slide{width:60px;height:60px;font-size:20px}.catalog-carousel__nav{width:20px;height:20px}}.gallery-reuse-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;background:color-mix(in srgb,var(--bg) 45%,transparent);cursor:progress}.app-header__brand{display:flex;align-items:center;gap:8px;min-width:0}.app-header__info{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;flex:0 0 auto;border-radius:50%;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.app-header__info:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:var(--accent-soft)}.app-header__info:active{transform:scale(.94)}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;pointer-events:none}.tour__scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:transparent;cursor:default;pointer-events:auto}.tour__dim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:color-mix(in srgb,#000 62%,transparent);pointer-events:none}.tour__spot{position:fixed;z-index:1;border-radius:14px;background:transparent;box-shadow:0 0 0 9999px color-mix(in srgb,#000 62%,transparent),0 0 0 2px color-mix(in srgb,var(--accent) 65%,transparent);pointer-events:none;transition:top .35s cubic-bezier(.4,0,.2,1),left .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1),height .35s cubic-bezier(.4,0,.2,1)}.tour__tip{position:fixed;z-index:2;width:min(340px,calc(100vw - 24px));padding:20px 18px 18px;border-radius:16px;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 18px 48px #00000059;display:flex;flex-direction:column;gap:14px;pointer-events:auto}.tour__tip.is-centered{top:50%;left:50%;transform:translate(-50%,-50%)}.tour__skip{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.tour__skip:hover{color:var(--text);border-color:color-mix(in srgb,var(--text-muted) 40%,transparent);background:color-mix(in srgb,var(--bg-elevated) 60%,transparent)}.tour__step-anim{display:flex;flex-direction:column;gap:9px;animation:tour-in .26s cubic-bezier(.2,.8,.3,1)}@keyframes tour-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tour__title{margin:0;font-size:16.5px;font-weight:700;line-height:1.35;color:var(--text);padding-right:56px}.tour__body{margin:0;font-size:13.5px;line-height:1.6;color:var(--text-muted)}.tour__dots{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:2px}.tour__dot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:width .2s ease,background .2s ease,border-radius .2s ease}.tour__dot.is-active{width:20px;border-radius:4px;background:var(--accent)}.tour__nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}.tour__btn{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s ease,opacity .15s ease}.tour__btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--text-muted) 40%,transparent)}.tour__btn:active:not(:disabled){transform:translateY(1px)}.tour__btn:disabled{opacity:.4;cursor:not-allowed}.tour__btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.tour__btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,#000);border-color:color-mix(in srgb,var(--accent) 88%,#000)}.tour__count{font-size:12px;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}
