.shop-selector{width:100%;min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);padding:40px 0;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.shop-selector__container{width:100%;display:flex;flex-direction:column;gap:40px}.shop-selector__header{text-align:center;margin-bottom:20px}.shop-selector__title{font-size:4rem;font-weight:800;margin:0 0 16px;color:#fff;letter-spacing:-.02em;text-shadow:0 10px 30px rgba(0,0,0,.2)}.shop-selector__subtitle{font-size:1.25rem;color:#fff9;font-weight:300;margin:0}.shop-selector__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;padding:10px}.shop-card{position:relative;border-radius:24px;overflow:hidden;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);background:linear-gradient(135deg,#ffffff1a,#ffffff0d);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;height:320px;display:flex;flex-direction:column}.shop-card:hover{transform:translateY(-8px) scale(1.02);border-color:#ffffff4d;box-shadow:0 20px 40px #0006;background:linear-gradient(135deg,#ffffff26,#ffffff14)}.shop-card--highlighted{border-color:#6366f180;box-shadow:0 0 0 2px #6366f14d,0 20px 40px #0006}.shop-card__thumbnail-container{position:relative;width:100%;height:100%;overflow:hidden;border-bottom:none}.shop-card__thumbnail{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4,0,.2,1),opacity .3s ease;will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden}.shop-card:hover .shop-card__thumbnail{transform:scale(1.1)}.shop-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.4) 0%,rgba(0,0,0,.2) 50%,transparent 100%);opacity:.6;transition:opacity .3s ease}.shop-card:hover .shop-card__overlay{opacity:.4}.shop-card__badge{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:8px;background:#111827b3;color:#fff;padding:6px 10px;border-radius:999px;font-weight:600;font-size:.9rem;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.06)}.shop-card__badge .shop-card__icon{width:16px;height:16px;opacity:1}.shop-card__badge-count{font-variant-numeric:tabular-nums}.shop-card__section-badge{display:none}.shop-card:focus{outline:none;box-shadow:0 0 0 4px #6366f12e,0 8px 30px #0006;transform:translateY(-6px) scale(1.01)}@media (max-width: 640px){.shop-selector__title{font-size:2.2rem}.shop-selector__grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:18px}.shop-card{height:280px}.shop-card__content{padding:16px}.shop-card{border-radius:16px}.shop-card{backdrop-filter:none;-webkit-backdrop-filter:none;background:#ffffff08}.shop-card__badge{right:10px;bottom:10px;padding:5px 8px;font-size:.85rem}}@media (prefers-reduced-motion: reduce){.shop-card,.shop-card__thumbnail{transition:none!important;transform:none!important}.shop-card:hover{transform:none}}.shop-card__content{position:absolute;bottom:0;left:0;right:0;padding:20px 24px 12px;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 70%,transparent 100%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;z-index:1;display:flex;flex-direction:column-reverse}.shop-card__title{font-size:1.5rem;font-weight:700;color:#fff;margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 4px rgba(0,0,0,.5)}.shop-card__meta{display:flex;align-items:center;gap:8px;color:#fffc;font-size:.95rem;font-weight:500;margin:0 0 1px}.shop-card__icon{width:18px;height:18px;opacity:.8}.shop-selector__empty{text-align:center;padding:60px;background:#ffffff0d;border-radius:24px;border:1px dashed rgba(255,255,255,.2)}.shop-selector__empty p{color:#fff9;font-size:1.2rem;margin-bottom:8px}.shop-selector__empty-hint{color:#fff6!important;font-size:.9rem!important}.canvas-pan-controls{display:grid;grid-template-columns:42px 42px 42px;grid-template-rows:42px 42px 42px;gap:6px;padding:10px;background:#fffffff2;border:2px solid #333;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:fit-content}.pan-button{display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#333;background:linear-gradient(135deg,#f5f5f5,#e0e0e0);border:2px solid #999;border-radius:6px;cursor:pointer;transition:all .2s ease;padding:0;width:42px;height:42px}.pan-button:hover{background:linear-gradient(135deg,#fff,#f0f0f0);border-color:#555;box-shadow:0 2px 4px #00000026;transform:scale(1.05)}.pan-button:active{transform:scale(.95);box-shadow:inset 0 2px 4px #0000001a}.pan-zplus{grid-column:3;grid-row:1;width:36px;height:36px;font-size:12px;align-self:center;justify-self:center}.pan-up{grid-column:2;grid-row:1}.pan-left{grid-column:1;grid-row:2}.pan-right{grid-column:3;grid-row:2}.pan-zminus{grid-column:3;grid-row:3;width:36px;height:36px;font-size:12px;align-self:center;justify-self:center}.pan-down{grid-column:2;grid-row:3}.pan-center{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff6b6b,#ff5252);border:2px solid #cc0000;border-radius:6px;padding:0;gap:4px;box-shadow:0 2px 4px #f003}.pan-pixel-input{width:30px;height:24px;border:none;background:#ffffffe6;color:#333;font-size:12px;font-weight:700;text-align:center;padding:2px 4px;border-radius:3px;outline:none}.pan-pixel-input:focus{background:#fff;box-shadow:0 0 4px #0003}.pan-pixel-input::-webkit-inner-spin-button,.pan-pixel-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pan-pixel-input[type=number]{appearance:textfield;-moz-appearance:textfield}.pan-pixel-label{font-size:10px;color:#fff;font-weight:700;margin-left:2px}.candidate-list{position:fixed;bottom:0;left:0;right:0;height:20vh;background:#000000d9;border-top:2px solid #444;display:flex;flex-direction:row;z-index:1000;font-family:monospace;color:#fff}.candidate-list__center-section{display:flex;flex-direction:column;flex:1;min-width:0}.candidate-list__right-sidebar{padding:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-left:2px solid #444}.candidate-list__left-sidebar{padding:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-right:2px solid #444}.candidate-list__right-section{display:flex;flex-direction:column;flex:1;min-width:0}.candidate-list__label{padding:6px 12px;font-size:12px;font-weight:700;color:#aaa;border-bottom:1px solid #333;flex-shrink:0}.candidate-list__scroll-container{display:flex;gap:8px;padding:8px;overflow-x:auto;overflow-y:hidden;flex:1;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#666 #222;-webkit-user-select:none;user-select:none}.candidate-list__scroll-container::-webkit-scrollbar{height:6px}.candidate-list__scroll-container::-webkit-scrollbar-track{background:#222}.candidate-list__scroll-container::-webkit-scrollbar-thumb{background:#666;border-radius:3px}.candidate-list__scroll-container::-webkit-scrollbar-thumb:hover{background:#888}.candidate-item{position:relative;flex-shrink:0;width:120px;height:100%;overflow:hidden;background:#111;border-radius:2px;box-shadow:0 2px 8px #00000080;transition:all .2s ease-out;cursor:grab;-webkit-user-select:none;user-select:none}.candidate-item:active{cursor:grabbing}.candidate-item:hover{box-shadow:0 4px 12px #00ff004d;transform:scale(1.05)}.candidate-item--winner{box-shadow:0 0 12px #0f09}.candidate-item__image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.candidate-item__number{position:absolute;bottom:4px;right:4px;background:#000000e6;color:#0f0;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:700;border:1px solid #0f0}.candidate-list__empty{display:flex;align-items:center;justify-content:center;height:100%;color:#666;font-size:12px}.frame-relationship-balloon{position:fixed;background:#1e1e1ef2;border:2px solid #4CAF50;border-radius:8px;padding:12px;min-width:250px;max-width:400px;z-index:99999;box-shadow:0 4px 12px #00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:slideIn .2s ease-out;left:50%;top:50%;transform:translate(-50%,-50%);visibility:visible;opacity:1;-webkit-user-select:none;user-select:none}@keyframes slideIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.balloon-close{position:absolute;top:4px;right:4px;background:none;border:none;color:#999;font-size:16px;cursor:pointer;padding:4px 8px;display:flex;align-items:center;justify-content:center;transition:color .2s ease-out}.balloon-close:hover{color:#fff}.balloon-content{display:flex;flex-direction:column;gap:8px;padding-right:12px;max-height:300px;overflow-y:auto}.balloon-content::-webkit-scrollbar{width:6px}.balloon-content::-webkit-scrollbar-track{background:transparent}.balloon-content::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.balloon-content::-webkit-scrollbar-thumb:hover{background:#777}.balloon-header{font-weight:700;color:#4caf50;font-size:13px;padding-bottom:6px;border-bottom:1px solid #444;margin-bottom:6px;cursor:grab;-webkit-user-select:none;user-select:none;transition:color .2s ease-out;display:flex;flex-direction:column;gap:2px}.balloon-header:active{cursor:grabbing}.balloon-body{display:flex;flex-direction:column;gap:8px}.balloon-section{display:flex;flex-direction:column;gap:4px;padding-bottom:6px;border-bottom:1px solid #444}.balloon-section:last-child{border-bottom:none;padding-bottom:0}.balloon-section-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#7ee787;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.balloon-icon{font-size:13px}.balloon-section-title{color:#7ee787}.balloon-section-items{display:flex;flex-direction:column;gap:3px;padding-left:4px}.balloon-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;gap:12px}.balloon-row.highlight{font-weight:600;color:#58a6ff}.balloon-row.highlight .balloon-value{color:#58a6ff}.balloon-label{color:#8b949e;font-weight:500;min-width:80px}.balloon-row.highlight .balloon-label{color:#79c0ff}.balloon-value{color:#79c0ff;font-family:Courier New,monospace;font-weight:500;text-align:right;flex-shrink:0}.navigation-settings-balloon{position:fixed;background:#1e1e1efa;border:2px solid #7ee787;border-radius:8px;padding:12px;min-width:280px;max-width:450px;z-index:99999;box-shadow:0 4px 16px #0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:slideInSettings .2s ease-out;left:50%;top:50%;transform:translate(-50%,-50%);visibility:visible;opacity:1;-webkit-user-select:none;user-select:none}@keyframes slideInSettings{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.navigation-settings-balloon .balloon-close{position:absolute;top:4px;right:4px;background:none;border:none;color:#999;font-size:16px;cursor:pointer;padding:4px 8px;display:flex;align-items:center;justify-content:center;transition:color .2s ease-out;z-index:100001}.navigation-settings-balloon .balloon-close:hover{color:#7ee787}.navigation-settings-balloon .balloon-content{display:flex;flex-direction:column;gap:8px;padding-right:12px;max-height:600px;overflow-y:auto}.navigation-settings-balloon .balloon-content::-webkit-scrollbar{width:6px}.navigation-settings-balloon .balloon-content::-webkit-scrollbar-track{background:transparent}.navigation-settings-balloon .balloon-content::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.navigation-settings-balloon .balloon-content::-webkit-scrollbar-thumb:hover{background:#777}.navigation-settings-balloon .balloon-header{font-weight:700;color:#7ee787;font-size:14px;padding-bottom:8px;border-bottom:1px solid #444;margin-bottom:12px;cursor:grab;-webkit-user-select:none;user-select:none;transition:color .2s ease-out}.navigation-settings-balloon .balloon-header:active{cursor:grabbing}.navigation-settings-balloon .balloon-body{display:flex;flex-direction:column;gap:8px}.camera-thumbnail-collapsed{position:fixed;left:20px;bottom:20px;z-index:1000001}.camera-thumbnail-collapsed-button{width:50px;height:50px;border-radius:12px;background:linear-gradient(135deg,#fff3,#ffffff1a);backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #00000026,0 1px 4px #0000001a,inset 0 1px #ffffff40}.camera-thumbnail-collapsed-button:hover{background:linear-gradient(135deg,#ffffff4d,#ffffff26);border-color:#ffffff73;box-shadow:0 6px 20px #0003,0 1px 4px #0000001a,inset 0 1px #ffffff4d}.camera-thumbnail-collapsed-button:active{transform:scale(.95);box-shadow:0 2px 8px #00000026,inset 0 1px 2px #fff3}.camera-thumbnail-collapsed-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#fff;opacity:.95;transition:opacity .2s ease}.camera-thumbnail-collapsed-button:hover .camera-thumbnail-collapsed-icon{opacity:1}.camera-thumbnail-collapsed-badge{position:absolute;top:-8px;right:-8px;background:#ff3b30f2;color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid rgba(var(--section-drawer-bg),.95);box-shadow:0 2px 4px #0003}.camera-thumbnail-list{position:fixed;left:0;bottom:20px;width:100vw;max-height:40vh;background:rgba(var(--section-drawer-bg),.98);border:var(--section-drawer-border);border-left:none;border-radius:0 var(--section-drawer-radius) var(--section-drawer-radius) 0;display:flex;flex-direction:column;z-index:1000002;box-shadow:2px 2px 12px #0000004d;animation:slideInLeft .4s ease;box-sizing:border-box;transition:width .4s cubic-bezier(.4,0,.2,1)}.camera-thumbnail-list[style*="width: 80vw"]{max-height:80vh;height:80vh;animation:none}.camera-thumbnail-list[style*="width: 80vw"] .camera-thumbnail-scroll{flex-direction:row;flex-wrap:nowrap;overflow-y:hidden;overflow-x:auto;height:calc(80vh - 50px)}.camera-thumbnail-list[style*="width: 80vw"] .camera-thumbnail-item{max-width:calc(95vw - 40px);overflow:hidden}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0;max-height:0}to{transform:translate(0);opacity:1;max-height:40vh}}@keyframes slideOutLeft{0%{transform:translate(0);opacity:1;max-height:40vh}to{transform:translate(-100%);opacity:0;max-height:0}}.camera-thumbnail-list.minimizing{animation:slideOutLeft 1s cubic-bezier(.4,0,.2,1) forwards;transition:none;overflow:hidden}.camera-thumbnail-list.expanding-from-minimize{animation:slideInLeft 1s cubic-bezier(.4,0,.2,1) forwards;transition:none;overflow:hidden}.camera-thumbnail-list[style*="width: 120px"]:not(.minimizing):not(.expanding-from-minimize){max-height:none;height:auto;animation:none}.camera-thumbnail-list[style*="width: 120px"] .camera-thumbnail-scroll{padding:0}.camera-thumbnail-list[style*="width: 120px"] .camera-thumbnail-header{width:120px;position:absolute;top:0;left:0;z-index:10;justify-content:center}.camera-thumbnail-list[style*="width: 120px"] .camera-thumbnail-header-title,.camera-thumbnail-list[style*="width: 120px"] .camera-thumbnail-header-info{display:none}.camera-thumbnail-list[style*="width: 120px"] .camera-thumbnail-header-button{width:28px;height:28px;font-size:14px}.camera-thumbnail-list[style*="width: 120px"] .camera-thumbnail-header-controls{gap:4px}.camera-thumbnail-header{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:transparent;border-bottom:1px solid rgba(255,255,255,.2);flex-shrink:0;box-sizing:border-box}.camera-thumbnail-header-info{display:flex;align-items:center;gap:8px}.camera-thumbnail-header-title{font-size:14px;font-weight:600;color:#ffffffe6}.camera-thumbnail-header-count{background:#ffffff26;color:#fffc;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600}.camera-thumbnail-header-controls{display:flex;gap:8px}.camera-thumbnail-header-button{width:32px;height:32px;border:none;border-radius:8px;background:linear-gradient(135deg,#fff3,#ffffff1a);backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);color:#ffffffe6;font-size:16px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.25);box-shadow:0 4px 12px #00000026,inset 0 1px #fff3}.camera-thumbnail-header-button:hover{background:linear-gradient(135deg,#ffffff4d,#fff3);border-color:#ffffff59;color:#fff;box-shadow:0 6px 16px #0003,inset 0 1px #ffffff4d}.camera-thumbnail-header-button:active{transform:scale(.95);box-shadow:0 2px 8px #00000026,inset 0 1px 2px #fff3}.camera-thumbnail-collapse-button:hover{background:#6496ff4d}.camera-thumbnail-header-close:hover{background:#ff3b304d;color:#ff6464}.camera-thumbnail-play-button{font-size:16px;min-width:32px;padding:4px 8px}.camera-thumbnail-play-button:hover{background:#4caf504d!important;color:#c8ffc8}.camera-thumbnail-play-button:active{transform:scale(.95)}.camera-thumbnail-scroll{display:flex;gap:8px;padding:12px 16px;overflow-x:auto;overflow-y:hidden;flex:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000004d}.camera-thumbnail-scroll::-webkit-scrollbar{height:6px}.camera-thumbnail-scroll::-webkit-scrollbar-track{background:#0000001a}.camera-thumbnail-scroll::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.camera-thumbnail-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.camera-thumbnail-item{min-width:120px;height:auto;aspect-ratio:auto;background:#ffffff08;border:3px solid rgba(255,255,255,.12);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);flex-shrink:0;position:relative;overflow:hidden}.camera-thumbnail-item:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(126,231,135,.05),transparent);opacity:0;transition:opacity .3s ease;z-index:0}.camera-thumbnail-item:hover{background:#ffffff14;border-color:#7ee78766;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.camera-thumbnail-item:hover:before{opacity:1}.camera-thumbnail-item:active{transform:translateY(0) scale(.98)}.camera-thumbnail-item.playing:before{opacity:.3;background:linear-gradient(135deg,rgba(255,215,0,.15),transparent)}.camera-thumbnail-label{position:absolute;top:4px;left:4px;background:#ff0000d9;color:#fff;padding:2px 6px;border-radius:4px;font-size:14px;font-weight:700;z-index:10;pointer-events:none;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.camera-thumbnail-coords{position:absolute;bottom:14px;left:2px;background:#000000b3;color:#0f0;padding:1px 4px;border-radius:2px;font-size:8px;font-weight:700;z-index:1;pointer-events:none;font-family:monospace}.camera-thumbnail-distance{position:absolute;bottom:26px;left:2px;background:#000000b3;color:#ff0;padding:1px 4px;border-radius:2px;font-size:8px;font-weight:700;z-index:1;pointer-events:none;font-family:monospace}.camera-thumbnail-image{width:100%;height:100%;object-fit:cover;border-radius:2px;pointer-events:none}.camera-thumbnail-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--thumbnail-bg, #f0f0f0);pointer-events:none}.camera-thumbnail-spinner{width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid var(--accent-color, #007acc);border-radius:50%;animation:camera-thumbnail-spin 1s linear infinite;pointer-events:none}@keyframes camera-thumbnail-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.camera-thumbnail-fallback{display:none;position:absolute;top:0;left:0;width:100%;height:100%;align-items:center;justify-content:center;background:var(--thumbnail-bg, #f0f0f0);pointer-events:none}.camera-thumbnail-number{font-size:14px;font-weight:600;color:var(--text-color, #333);pointer-events:none}.player-overlay{position:fixed;inset:50px 0 0;width:100vw;height:calc(100vh - 50px);background:#000;z-index:100;overflow:hidden}.player-overlay-image{position:absolute;top:0;left:0;display:block;pointer-events:none}.camera-selector-backdrop{position:fixed;inset:0;background:#00000080;z-index:9999;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.camera-selector-menu{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10000;background:rgba(var(--section-drawer-bg),.98);border:var(--section-drawer-border);border-radius:var(--section-drawer-radius);backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);box-shadow:0 12px 48px #0006,0 4px 12px #00000040;min-width:280px;max-width:320px;max-height:80vh;display:flex;flex-direction:column;animation:floatIn .25s cubic-bezier(.34,1.56,.64,1);pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@keyframes floatIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.camera-selector-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.camera-selector-header h3{margin:0;font-size:14px;font-weight:700;color:#fffffff2;text-transform:uppercase;letter-spacing:.5px}.camera-selector-close-btn{background:none;border:none;color:#ffffffb3;font-size:18px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s ease,color .15s ease}.camera-selector-close-btn:hover{background-color:#ffffff1a;color:#fffffff2}.camera-selector-menu>div:not(.camera-selector-header){overflow-y:auto;overflow-x:hidden;flex:1;padding-right:4px}.camera-selector-menu>div:not(.camera-selector-header)::-webkit-scrollbar{width:6px}.camera-selector-menu>div:not(.camera-selector-header)::-webkit-scrollbar-track{background:transparent}.camera-selector-menu>div:not(.camera-selector-header)::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.camera-selector-menu>div:not(.camera-selector-header)::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.camera-selector-section{padding:12px 0}.camera-selector-section:first-child{padding-top:8px}.camera-selector-section:last-child{padding-bottom:8px}.camera-selector-section-title{font-size:12px;font-weight:700;color:#fff9;text-transform:uppercase;letter-spacing:.5px;padding:0 12px 8px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px}.camera-selector-divider{height:1px;background:#ffffff1a;margin:0}.camera-selector-options{display:flex;flex-direction:column;gap:0}.camera-selector-radio,.camera-selector-checkbox{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;transition:background-color .15s ease;-webkit-user-select:none;user-select:none;font-size:13px;color:#ffffffd9}.camera-selector-radio:hover,.camera-selector-checkbox:hover{background-color:#ffffff14}.camera-selector-radio input[type=radio],.camera-selector-checkbox input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:rgba(76,175,80,.8);flex-shrink:0;margin:0}.camera-selector-radio span,.camera-selector-checkbox span{flex:1;font-weight:500}.camera-selector-radio input[type=radio]:checked,.camera-selector-checkbox input[type=checkbox]:checked{accent-color:rgba(76,175,80,1)}.camera-selector-radio:has(input:checked),.camera-selector-checkbox:has(input:checked){background-color:#4caf5026}.camera-selector-radio:has(input:checked) span,.camera-selector-checkbox:has(input:checked) span{color:#c8ffc8f2;font-weight:600}.loading-progress-bar{width:100%;padding:12px 16px;background:linear-gradient(180deg,#000c,#0009);border-bottom:1px solid rgba(0,188,212,.3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 12px #0006}.loading-progress-bar__container{display:flex;flex-direction:column;gap:8px;max-width:100%}.loading-progress-bar__track{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;box-shadow:inset 0 1px 2px #0000004d}.loading-progress-bar__fill{height:100%;background:linear-gradient(90deg,#00bcd4,#00acc1,#0097a7);border-radius:4px;transition:width .2s cubic-bezier(.4,0,.2,1);box-shadow:0 0 12px #00bcd499,inset 0 1px 2px #ffffff4d;position:relative}.loading-progress-bar__fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite;border-radius:4px}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loading-progress-bar__info{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px}.loading-progress-bar__percentage{font-size:12px;font-weight:600;color:#00bcd4e6;min-width:45px;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.loading-progress-bar__stage{font-size:12px;color:#ffffffbf;flex:1;text-align:left;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.3)}@media (max-width: 768px){.loading-progress-bar{padding:10px 12px}.loading-progress-bar__container{gap:6px}.loading-progress-bar__track{height:6px}.loading-progress-bar__info{flex-direction:row;align-items:center}.loading-progress-bar__percentage{font-size:11px;min-width:40px}.loading-progress-bar__stage{font-size:11px}}.navigation-menu__backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;animation:fadeIn .2s ease}.navigation-menu{position:fixed;top:0;left:0;width:320px;max-width:85vw;height:100vh;background:linear-gradient(135deg,#1e1e1ef2,#141414f2);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-right:1px solid rgba(255,255,255,.1);box-shadow:4px 0 24px #0000004d,inset -1px 0 #ffffff0d;z-index:1001;display:flex;flex-direction:column;animation:slideInLeft .3s cubic-bezier(.4,0,.2,1);overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.navigation-menu__header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.1)}.navigation-menu__header h2{margin:0;font-size:1.25rem;font-weight:600;color:#fff}.navigation-menu__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease}.navigation-menu__close:hover{background:#fff3;transform:scale(1.05)}.navigation-menu__content{flex:1;padding:1rem;overflow-y:auto}.navigation-menu__section{margin-bottom:1.5rem}.camera-counter{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.25rem}.camera-counter__label{font-size:.875rem;color:#ffffffb3;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.camera-counter__value{font-size:2rem;font-weight:700;color:#fff;margin-bottom:.75rem;font-variant-numeric:tabular-nums}.camera-counter__progress{width:100%;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.camera-counter__progress-bar{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:3px;transition:width .3s ease}.navigation-menu__button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;margin-bottom:.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left}.navigation-menu__button:hover{background:#ffffff1a;border-color:#fff3;transform:translate(4px)}.navigation-menu__button svg{flex-shrink:0;opacity:.8}.navigation-menu__button:last-child{margin-bottom:0}.navigation-menu__help{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:12px;padding:1rem}.navigation-menu__help h3{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#60a5fa;text-transform:uppercase;letter-spacing:.05em}.navigation-menu__help ul{list-style:none;padding:0;margin:0}.navigation-menu__help li{font-size:.875rem;color:#fffc;margin-bottom:.5rem;line-height:1.4}.navigation-menu__help li:last-child{margin-bottom:0}.navigation-menu__help strong{color:#fff;font-weight:600}@media (max-width: 768px){.navigation-menu{width:280px}.navigation-menu__header{padding:1.25rem 1rem}.camera-counter__value{font-size:1.75rem}}@supports (padding: max(0px)){.navigation-menu{padding-top:max(0px,env(safe-area-inset-top));padding-bottom:max(0px,env(safe-area-inset-bottom))}}.settings-panel__backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;animation:fadeIn .2s ease}.settings-panel{position:fixed;top:0;right:0;width:360px;max-width:85vw;height:100vh;background:linear-gradient(135deg,#1e1e1ef2,#141414f2);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-left:1px solid rgba(255,255,255,.1);box-shadow:-4px 0 24px #0000004d,inset 1px 0 #ffffff0d;z-index:1001;display:flex;flex-direction:column;animation:slideInRight .3s cubic-bezier(.4,0,.2,1);overflow-y:auto}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.settings-panel__header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.1)}.settings-panel__header h2{margin:0;font-size:1.25rem;font-weight:600;color:#fff}.settings-panel__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease}.settings-panel__close:hover{background:#fff3;transform:scale(1.05)}.settings-panel__content{flex:1;padding:1rem;overflow-y:auto}.settings-panel__section{margin-bottom:2rem}.settings-panel__label{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;font-weight:600;color:#fff;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.settings-panel__value{font-size:.875rem;font-weight:500;color:#60a5fa;font-variant-numeric:tabular-nums}.settings-panel__slider{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:#ffffff1a;border-radius:3px;outline:none;cursor:pointer}.settings-panel__slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:2px solid #fff;border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:transform .2s ease}.settings-panel__slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.settings-panel__slider::-moz-range-thumb{width:20px;height:20px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:2px solid #fff;border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:transform .2s ease}.settings-panel__slider::-moz-range-thumb:hover{transform:scale(1.1)}.settings-panel__slider-labels{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.75rem;color:#ffffff80}.settings-panel__radio-group{display:flex;flex-direction:column;gap:.5rem}.settings-panel__radio-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#ffffffb3;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left}.settings-panel__radio-button:hover{background:#ffffff14;border-color:#ffffff26}.settings-panel__radio-button.active{background:#3b82f626;border-color:#3b82f64d;color:#60a5fa}.settings-panel__radio-circle{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .2s ease}.settings-panel__radio-button.active .settings-panel__radio-circle{border-color:#60a5fa}.settings-panel__radio-dot{width:10px;height:10px;background:#60a5fa;border-radius:50%;animation:scaleIn .2s ease}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.settings-panel__toggle{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#ffffffb3;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left}.settings-panel__toggle:hover{background:#ffffff14;border-color:#ffffff26}.settings-panel__toggle.active{background:#22c55e26;border-color:#22c55e4d;color:#4ade80}.settings-panel__toggle-track{width:44px;height:24px;background:#fff3;border-radius:12px;position:relative;flex-shrink:0;transition:background .2s ease}.settings-panel__toggle.active .settings-panel__toggle-track{background:#22c55e}.settings-panel__toggle-thumb{width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:transform .2s ease;box-shadow:0 2px 4px #0003}.settings-panel__toggle.active .settings-panel__toggle-thumb{transform:translate(20px)}.settings-panel__description{margin:.5rem 0 0;font-size:.8125rem;color:#ffffff80;line-height:1.4}.settings-panel__select{width:100%;padding:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.875rem;cursor:pointer;transition:all .2s ease;margin-bottom:.75rem}.settings-panel__select:hover{background:#ffffff14;border-color:#ffffff4d}.settings-panel__select:focus{outline:none;border-color:#a78bfa;box-shadow:0 0 0 3px #a78bfa1a}.settings-panel__select:disabled{opacity:.5;cursor:not-allowed}.settings-panel__select option{background:#1a1a1a;color:#fff}.settings-panel__button{width:100%;padding:.75rem 1rem;background:linear-gradient(135deg,#a78bfa,#8b5cf6);border:none;border-radius:8px;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em}.settings-panel__button:hover:not(:disabled){background:linear-gradient(135deg,#8b5cf6,#7c3aed);transform:translateY(-1px);box-shadow:0 4px 12px #a78bfa4d}.settings-panel__button:active:not(:disabled){transform:translateY(0)}.settings-panel__button:disabled{opacity:.5;cursor:not-allowed}.settings-panel__info{background:#a78bfa1a;border:1px solid rgba(167,139,250,.2);border-radius:12px;padding:1rem}.settings-panel__info h3{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#a78bfa;text-transform:uppercase;letter-spacing:.05em}.settings-panel__info p{margin:0 0 .75rem;font-size:.875rem;color:#ffffffb3;line-height:1.5}.settings-panel__info p:last-child{margin-bottom:0}.settings-panel__version{font-size:.75rem!important;color:#ffffff80!important;font-family:Courier New,monospace}@media (max-width: 768px){.settings-panel{width:320px}.settings-panel__header{padding:1.25rem 1rem}}@supports (padding: max(0px)){.settings-panel{padding-top:max(0px,env(safe-area-inset-top));padding-bottom:max(0px,env(safe-area-inset-bottom))}}.settings-panel__advanced{border:1px solid rgba(255,193,7,.3);border-radius:12px;background:#ffc1070d;padding:0;margin-bottom:2rem}.settings-panel__summary{padding:1rem;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease;margin-bottom:0}.settings-panel__summary:hover{background:#ffc1071a}.settings-panel__summary:after{content:"▼";font-size:.75rem;color:#ffffff80;transition:transform .2s ease}.settings-panel__advanced[open] .settings-panel__summary:after{transform:rotate(180deg)}.settings-panel__advanced-content{padding:0 1rem 1rem;border-top:1px solid rgba(255,193,7,.2);animation:expandIn .3s ease}@keyframes expandIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.settings-panel__subsection{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.05)}.settings-panel__subsection:first-child{border-top:none;padding-top:0}.settings-panel__badge-new{display:inline-block;padding:.15rem .5rem;font-size:.65rem;font-weight:700;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:4px;margin-left:.5rem;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 2px 4px #10b9814d;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.95)}}.settings-panel__summary::-webkit-details-marker{display:none}.gesture-viewer{width:100vw;height:100vh;position:fixed;top:0;left:0;background:#000;overflow:visible}:fullscreen .gesture-viewer,:-webkit-full-screen .gesture-viewer,:-moz-full-screen .gesture-viewer,:-ms-fullscreen .gesture-viewer{width:100%;height:100%;background:#000}.gesture-viewer__loading,.gesture-viewer__error,.gesture-viewer__loading-image{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;position:relative}.gesture-viewer__cancel-btn{position:absolute;top:20px;right:20px;width:44px;height:44px;background:#ffffff26;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.25);border-radius:8px;color:#fff;font-size:24px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;z-index:1000}.gesture-viewer__cancel-btn:hover{background:#ffffff40;border-color:#fff6;transform:scale(1.1)}.gesture-viewer__cancel-btn:active{transform:scale(.95)}.gesture-viewer__loading-image{background:#000}.gesture-viewer__loading-image img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.5;filter:blur(4px);z-index:1}.gesture-viewer__loading-overlay{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;pointer-events:auto}.gesture-viewer__loading-overlay p{margin:0;font-size:1.1rem;font-weight:500}.gesture-viewer__loading p,.gesture-viewer__error p{margin-top:1rem;font-size:1.1rem}.gesture-viewer__error h2{font-size:1.5rem;margin-bottom:1rem}.gesture-viewer__error button{margin-top:1.5rem;padding:.75rem 1.5rem;font-size:1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease}.gesture-viewer__error button:hover{background:#fff3}.spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.gesture-viewer__debug{position:absolute;top:20px;right:20px;z-index:100;pointer-events:none}.debug-panel{background:#000c;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:1rem;font-family:Courier New,monospace;font-size:.85rem;color:#0f0;min-width:250px}.debug-panel h3{margin-bottom:.5rem;color:#fff;font-size:.9rem}.debug-panel p{margin:.25rem 0;line-height:1.4}.tap-indicator-blocked{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000bf;color:#fff;padding:24px 32px;border-radius:12px;text-align:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;pointer-events:none;max-width:85%;box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.1);animation:slideIn .3s ease-out}.tap-indicator-blocked__title{font-size:1.1rem;font-weight:600;margin-bottom:16px;letter-spacing:.5px;display:flex;align-items:center;justify-content:center;gap:8px}.tap-indicator-blocked__spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.15);border-top-color:#fff;border-radius:50%;animation:spin 1.2s linear infinite;display:inline-block}.tap-indicator-blocked__progress{margin:12px 0;font-size:1.3rem;font-weight:700;color:#fff;letter-spacing:1px}.tap-indicator-blocked__stage{font-size:.9rem;color:#fffc;font-style:italic;margin-bottom:12px}.tap-indicator-blocked__subtitle{font-size:.85rem;color:#ffffffb3;margin-top:8px;line-height:1.4}@media (max-width: 768px){.tap-indicator-blocked{max-width:90%;padding:20px 24px}.tap-indicator-blocked__title{font-size:1rem}.tap-indicator-blocked__progress{font-size:1.2rem}.tap-indicator-blocked__stage{font-size:.85rem}.tap-indicator-blocked__subtitle{font-size:.8rem}}@media (max-width: 480px){.tap-indicator-blocked{max-width:95%;padding:16px 20px}.tap-indicator-blocked__title{font-size:.95rem;gap:6px}.tap-indicator-blocked__progress{font-size:1.1rem}.tap-indicator-blocked__stage{font-size:.8rem}.tap-indicator-blocked__subtitle{font-size:.75rem}}@keyframes slideIn{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}.error-boundary{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a1a,#0a0a0a);padding:2rem}.error-boundary__content{max-width:600px;width:100%;text-align:center;color:#fff}.error-boundary__icon{margin-bottom:1.5rem;color:#ef4444;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.error-boundary__content h1{font-size:2rem;font-weight:700;margin:0 0 1rem;color:#fff}.error-boundary__message{font-size:1.125rem;color:#ffffffb3;margin:0 0 2rem;line-height:1.6}.error-boundary__details{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1rem;margin:2rem 0;text-align:left}.error-boundary__details summary{font-size:.875rem;font-weight:600;color:#fffc;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.5rem;border-radius:6px;transition:background .2s ease}.error-boundary__details summary:hover{background:#ffffff0d}.error-boundary__details[open] summary{margin-bottom:1rem}.error-boundary__error-info{font-size:.875rem;color:#fff9}.error-boundary__error-name{font-family:Courier New,monospace;color:#fbbf24;margin:0 0 .75rem;word-break:break-word}.error-boundary__stack{font-family:Courier New,monospace;font-size:.75rem;color:#ffffff80;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:1rem;margin:0;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.error-boundary__actions{display:flex;gap:1rem;justify-content:center;margin:2rem 0}.error-boundary__button{padding:.875rem 1.75rem;font-size:1rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .2s ease;border:none}.error-boundary__button--primary{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;box-shadow:0 4px 16px #3b82f64d}.error-boundary__button--primary:hover{transform:translateY(-2px);box-shadow:0 6px 24px #3b82f666}.error-boundary__button--primary:active{transform:translateY(0)}.error-boundary__button--secondary{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2)}.error-boundary__button--secondary:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-2px)}.error-boundary__button--secondary:active{transform:translateY(0)}.error-boundary__help{font-size:.875rem;color:#ffffff80;margin:2rem 0 0}@media (max-width: 768px){.error-boundary{padding:1.5rem}.error-boundary__content h1{font-size:1.5rem}.error-boundary__message{font-size:1rem}.error-boundary__actions{flex-direction:column;gap:.75rem}.error-boundary__button{width:100%}.error-boundary__stack{font-size:.625rem}}.scan-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#111;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.scan-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1a1a1a;border-bottom:1px solid #333}.scan-header h1{font-size:18px;font-weight:600}.scan-btn-text{background:none;border:none;color:#60a5fa;font-size:15px;cursor:pointer;padding:4px 8px}.scan-step{flex:1;display:flex;flex-direction:column;padding:20px 16px}.scan-setup{justify-content:center;gap:20px;max-width:400px;margin:0 auto;width:100%}.scan-field{display:flex;flex-direction:column;gap:6px}.scan-field label{font-size:13px;color:#aaa;text-transform:uppercase;letter-spacing:.5px}.scan-field input{background:#222;border:1px solid #444;border-radius:8px;padding:12px 14px;font-size:16px;color:#fff;outline:none;transition:border-color .2s}.scan-field input:focus{border-color:#60a5fa}.scan-field input::placeholder{color:#666}.scan-btn-primary{background:#2563eb;color:#fff;border:none;border-radius:10px;padding:14px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.scan-btn-primary:disabled{background:#333;color:#666;cursor:not-allowed}.scan-btn-primary:not(:disabled):active{background:#1d4ed8}.scan-btn-secondary{background:#333;color:#fff;border:none;border-radius:10px;padding:14px 24px;font-size:16px;font-weight:500;cursor:pointer}.scan-camera{padding:0;gap:0;position:relative;overflow:hidden}.scan-video-container{position:absolute;inset:0 0 120px;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.scan-video{width:100%;height:100%;object-fit:cover}.scan-recording-badge{position:absolute;top:16px;left:16px;background:#dc2626e6;color:#fff;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;z-index:5}.scan-dot{width:8px;height:8px;background:#fff;border-radius:50%;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.scan-controls{position:absolute;bottom:40px;left:0;right:0;padding:16px;display:flex;justify-content:center;background:#1a1a1a;z-index:10}.scan-btn-record,.scan-btn-stop{display:flex;align-items:center;gap:10px;border:none;border-radius:30px;padding:14px 28px;font-size:16px;font-weight:600;cursor:pointer;color:#fff}.scan-btn-record{background:#dc2626}.scan-btn-record:disabled{background:#555;cursor:not-allowed}.scan-btn-stop{background:#333;border:2px solid #dc2626}.scan-record-circle{width:14px;height:14px;background:#fff;border-radius:50%}.scan-stop-square{width:14px;height:14px;background:#dc2626;border-radius:2px}.scan-tip{position:absolute;bottom:0;left:0;right:0;padding:10px 16px;text-align:center;color:#888;font-size:13px;background:#1a1a1a;z-index:10}.scan-error{background:#7f1d1d;color:#fca5a5;padding:12px 16px;text-align:center;font-size:14px}.scan-review{gap:16px}.scan-summary{text-align:center}.scan-summary h2{font-size:22px;margin-bottom:4px}.scan-summary p{color:#888;font-size:14px}.scan-frame-strip{display:flex;gap:4px;overflow-x:auto;padding:8px 0;-webkit-overflow-scrolling:touch}.scan-thumb{width:80px;height:60px;object-fit:cover;border-radius:4px;flex-shrink:0}.scan-review-actions{display:flex;gap:12px;margin-top:auto;padding-top:16px}.scan-review-actions button{flex:1}.scan-upload{align-items:center;justify-content:center;text-align:center;gap:16px}.scan-status{display:flex;flex-direction:column;align-items:center;gap:12px}.scan-status h2{font-size:20px}.scan-status p{color:#aaa;font-size:14px}.scan-status-icon{font-size:48px;width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#1a1a1a}.scan-status-success .scan-status-icon{background:#065f46;color:#34d399}.scan-status-error .scan-status-icon{background:#7f1d1d;color:#fca5a5}.scan-spinner{width:40px;height:40px;border:3px solid #333;border-top-color:#60a5fa;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scan-progress-bar{width:100%;max-width:300px;height:8px;background:#333;border-radius:4px;overflow:hidden}.scan-progress-fill{height:100%;background:#2563eb;border-radius:4px;transition:width .3s ease}.scan-failed{color:#fca5a5}.scan-hint{font-size:13px!important;color:#666!important;max-width:280px}.scan-scan-id{font-family:monospace;font-size:12px!important;color:#555!important}.scan-tap-hint{font-size:12px;color:#666;margin-top:2px}.scan-preview-overlay{position:fixed;inset:0;background:#000000eb;z-index:100;display:flex;align-items:center;justify-content:center}.scan-preview-content{width:100%;height:100%;display:flex;flex-direction:column}.scan-preview-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;flex-shrink:0}.scan-preview-counter{font-size:15px;font-weight:600;color:#fff}.scan-preview-close{background:none;border:none;color:#fff;font-size:24px;padding:4px 10px;cursor:pointer;line-height:1}.scan-preview-image-wrap{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0;touch-action:pan-y;user-select:none;-webkit-user-select:none}.scan-preview-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px}.scan-preview-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;border:none;color:#fff;font-size:36px;width:48px;height:64px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:8px;z-index:2;-webkit-tap-highlight-color:transparent}.scan-preview-nav:active{background:#ffffff4d}.scan-preview-prev{left:8px}.scan-preview-next{right:8px}.scan-preview-actions{padding:16px;display:flex;justify-content:center;flex-shrink:0}.scan-btn-delete{background:#7f1d1d;color:#fca5a5;border:1px solid #991b1b;border-radius:10px;padding:12px 32px;font-size:16px;font-weight:600;cursor:pointer}.scan-btn-delete:active{background:#991b1b}.scan-thumb{cursor:pointer;transition:opacity .15s}.scan-thumb:active{opacity:.6}.scan-btn-view-shop{display:inline-block;margin-top:16px;background:#059669;color:#fff;text-decoration:none;border-radius:10px;padding:14px 32px;font-size:16px;font-weight:600;text-align:center;transition:background .2s}.scan-btn-view-shop:active{background:#047857}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b);padding:20px}.login-card{background:#1e293b;border:1px solid #334155;border-radius:16px;padding:48px 40px;text-align:center;max-width:380px;width:100%;box-shadow:0 20px 60px #0006}.login-logo{font-size:56px;margin-bottom:8px}.login-card h1{color:#f8fafc;font-size:28px;font-weight:700;margin:0 0 4px}.login-subtitle{color:#94a3b8;font-size:14px;margin:0 0 24px}.login-divider{height:1px;background:#334155;margin:0 0 28px}.google-btn-container{display:flex;justify-content:center;margin:0 0 20px}.login-footer{color:#64748b;font-size:12px;margin:0}.shops-page{position:fixed;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#0f172a;color:#f8fafc;padding:0 16px 32px;padding-bottom:max(32px,env(safe-area-inset-bottom));z-index:1}.shops-page>*{max-width:480px;margin-left:auto;margin-right:auto}.shops-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid #1e293b;margin-bottom:20px}.shops-header-left{display:flex;align-items:center;gap:10px}.shops-header-left h1{font-size:20px;font-weight:700;margin:0}.shops-logo{font-size:28px}.shops-header-right{display:flex;align-items:center;gap:10px}.shops-avatar{width:32px;height:32px;border-radius:50%;cursor:pointer;transition:opacity .2s}.shops-avatar:hover{opacity:.8}.shops-avatar-fallback{width:32px;height:32px;border-radius:50%;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;cursor:pointer}.shops-btn-add{width:100%;padding:14px;border:2px dashed #334155;border-radius:12px;background:transparent;color:#94a3b8;font-size:15px;cursor:pointer;margin-bottom:16px;transition:border-color .2s,color .2s}.shops-btn-add:hover{border-color:#3b82f6;color:#3b82f6}.shops-btn-primary{padding:10px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;font-weight:600}.shops-btn-text{padding:10px 16px;background:transparent;color:#94a3b8;border:none;font-size:13px;cursor:pointer}.shops-btn-small{padding:8px 16px;background:#1e293b;color:#e2e8f0;border:1px solid #334155;border-radius:8px;font-size:13px;cursor:pointer;white-space:nowrap}.shops-btn-scan{padding:6px 14px;background:#059669;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;font-weight:500}.shops-btn-danger{width:100%;padding:10px;background:transparent;color:#ef4444;border:1px solid #7f1d1d;border-radius:8px;font-size:13px;cursor:pointer;margin-top:12px}.shops-input{width:100%;padding:12px 14px;background:#0f172a;color:#f8fafc;border:1px solid #334155;border-radius:8px;font-size:14px;outline:none;box-sizing:border-box}.shops-input:focus{border-color:#3b82f6}.shops-input-sm{padding:8px 12px;font-size:13px}.shops-add-form{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;padding:16px;background:#1e293b;border-radius:12px;border:1px solid #334155}.shops-add-actions{display:flex;gap:8px;justify-content:flex-end}.shops-empty{text-align:center;padding:48px 20px;color:#64748b}.shops-empty p{margin:0 0 4px}.shops-empty-sub{font-size:13px}.shops-list{display:flex;flex-direction:column;gap:12px}.shop-card{background:#1e293b;border:1px solid #334155;border-radius:12px;overflow:hidden;transition:border-color .2s}.shop-card--expanded{border-color:#3b82f6}.shop-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px;cursor:pointer}.shop-card-name{font-size:16px;font-weight:600;margin:0 0 2px}.shop-card-address{color:#94a3b8;font-size:13px;margin:0 0 2px}.shop-card-meta{color:#64748b;font-size:12px;margin:0}.shop-card-chevron{color:#64748b;font-size:12px;flex-shrink:0}.shop-card-body{padding:0 16px 16px;border-top:1px solid #334155}.shop-sections-empty{color:#64748b;font-size:13px;text-align:center;padding:12px 0;margin:0}.shop-sections{display:flex;flex-direction:column;gap:8px;padding:12px 0}.shop-section-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#0f172a;border-radius:8px}.shop-section-name{font-size:14px;color:#e2e8f0}.shop-add-section{display:flex;gap:8px;margin-top:8px}.shop-add-section .shops-input{flex:1}.profile-panel{display:flex;flex-direction:column;gap:10px;padding:16px;margin-bottom:16px;background:#1e293b;border:1px solid #334155;border-radius:12px}.whatsapp-prompt{display:flex;flex-direction:column;gap:10px;padding:16px;margin-bottom:16px;background:linear-gradient(135deg,#0a2e1a,#1e293b);border:1px solid #25D366;border-radius:12px;animation:whatsapp-pulse 2s ease-in-out 1}@keyframes whatsapp-pulse{0%,to{border-color:#25d366}50%{border-color:#128c7e;box-shadow:0 0 12px #25d36640}}.whatsapp-prompt-header{display:flex;align-items:center;gap:12px}.whatsapp-icon{flex-shrink:0}.whatsapp-prompt-text{display:flex;flex-direction:column;gap:2px}.whatsapp-prompt-text strong{font-size:15px;color:#f8fafc}.whatsapp-prompt-text span{font-size:13px;color:#94a3b8}.whatsapp-prompt-btn{padding:10px;background:#25d366;color:#000;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s}.whatsapp-prompt-btn:hover{background:#20bd5a}.phone-row{display:flex;gap:8px}.country-code-select{width:110px;flex-shrink:0;padding:8px 6px;background:#0f172a;color:#f8fafc;border:1px solid #334155;border-radius:8px;font-size:13px;outline:none;appearance:auto}.country-code-select:focus{border-color:#3b82f6}.phone-input{flex:1;min-width:0}.same-number-check{display:flex;align-items:center;gap:8px;font-size:13px;color:#94a3b8;cursor:pointer}.same-number-check input[type=checkbox]{width:16px;height:16px;accent-color:#25D366}.profile-info{display:flex;flex-direction:column;gap:2px}.profile-info strong{font-size:15px}.profile-email{color:#64748b;font-size:13px}.visibility-badge{display:inline-block;font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;margin-left:8px;vertical-align:middle;text-transform:uppercase;letter-spacing:.5px}.visibility-public{background:#065f46;color:#6ee7b7}.shop-visibility-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:8px}.shop-visibility-label{font-size:13px;color:#94a3b8}.shops-btn-active{background:#1e3a5f;border-color:#3b82f6;color:#93c5fd}.shop-share-row{display:flex;align-items:center;gap:8px;padding:6px 0 10px;overflow:hidden}.shop-share-label{font-size:12px;color:#64748b;white-space:nowrap}.shop-share-link{font-size:11px;color:#93c5fd;background:#0f172a;padding:4px 8px;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.shop-share-copy-btn{font-size:11px;padding:4px 10px;background:#334155;color:#93c5fd;border:1px solid #475569;border-radius:4px;cursor:pointer;white-space:nowrap;transition:background .15s}.shop-share-copy-btn:hover{background:#475569}.shop-section-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.shop-section-status{font-size:12px}.shop-section-actions{display:flex;gap:6px;flex-shrink:0}.scan-badge{font-size:11px;font-weight:500;padding:2px 6px;border-radius:4px}.badge-uploading{color:#fbbf24}.badge-queued{color:#94a3b8}.badge-processing{color:#60a5fa}.badge-ready{color:#34d399}.badge-failed{color:#f87171}.shops-btn-view{padding:6px 10px;background:#1e40af;color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer;font-weight:500;text-decoration:none;white-space:nowrap}.shops-btn-sm{padding:8px 16px;font-size:13px}.public-shop-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:#0f172a;padding:1rem}.public-shop-loading{color:#64748b;font-size:1.1rem}.public-shop-error{text-align:center;color:#cbd5e1}.public-shop-error h2{color:#f87171;margin-bottom:.5rem}.public-shop-error p{color:#94a3b8;margin-bottom:1.5rem}.public-shop-cta{display:inline-block;padding:.6rem 1.5rem;background:#3b82f6;color:#fff;border-radius:8px;text-decoration:none;font-weight:500}.public-shop-cta:hover{background:#2563eb}.public-shop-card{background:#1e293b;border-radius:12px;padding:2rem;max-width:500px;width:100%;color:#e2e8f0}.public-shop-name{font-size:1.5rem;margin:0 0 .5rem;color:#f1f5f9}.public-shop-category{display:inline-block;background:#334155;color:#94a3b8;padding:.2rem .6rem;border-radius:4px;font-size:.8rem;margin-bottom:.75rem}.public-shop-address{color:#94a3b8;margin:.5rem 0 1rem}.public-shop-sections h3{font-size:1rem;color:#cbd5e1;margin-bottom:.5rem}.public-shop-sections ul{list-style:none;padding:0;margin:0}.public-shop-sections li{padding:.4rem 0;border-bottom:1px solid #334155;color:#94a3b8}.public-shop-sections li:last-child{border-bottom:none}.public-shop-footer{margin-top:1.5rem;text-align:center;color:#64748b;font-size:.85rem}.public-shop-footer a{color:#3b82f6;text-decoration:none}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#000;color:#fff}#root{width:100%;min-height:100%;background:#000}.app{width:100%;min-height:100%}:fullscreen,:-webkit-full-screen,:-moz-full-screen,:-ms-fullscreen{background:#000!important}:fullscreen #root,:-webkit-full-screen #root,:-moz-full-screen #root,:-ms-fullscreen #root{background:#000!important}body{touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,input,select,textarea{touch-action:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}
