.install-prompt[data-v-4eaa123d]{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:10000;max-width:500px;width:calc(100% - 40px);animation:slideUp-4eaa123d .3s ease-out}@keyframes slideUp-4eaa123d{0%{transform:translate(-50%) translateY(100px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.install-content[data-v-4eaa123d]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 8px 32px #0003;display:flex;align-items:center;gap:16px;border:2px solid #667eea}.install-icon[data-v-4eaa123d]{font-size:48px;flex-shrink:0}.install-text[data-v-4eaa123d]{flex:1}.install-text h3[data-v-4eaa123d]{margin:0 0 4px;font-size:18px;color:#1a1a1a}.install-text p[data-v-4eaa123d]{margin:0;font-size:14px;color:#666;line-height:1.4}.install-actions[data-v-4eaa123d]{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.btn-install[data-v-4eaa123d],.btn-dismiss[data-v-4eaa123d]{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-install[data-v-4eaa123d]{background:#667eea;color:#fff}.btn-install[data-v-4eaa123d]:hover{background:#5568d3;transform:scale(1.02)}.btn-dismiss[data-v-4eaa123d]{background:transparent;color:#666}.btn-dismiss[data-v-4eaa123d]:hover{background:#f5f5f5}@media (max-width: 768px){.install-prompt[data-v-4eaa123d]{bottom:80px}.install-content[data-v-4eaa123d]{flex-direction:column;text-align:center}.install-actions[data-v-4eaa123d]{width:100%}.btn-install[data-v-4eaa123d],.btn-dismiss[data-v-4eaa123d]{width:100%;padding:14px 20px;font-size:16px}}@supports (-webkit-touch-callout: none){.install-prompt[data-v-4eaa123d]{bottom:calc(20px + env(safe-area-inset-bottom))}}#app{width:100%;height:100vh;margin:0;padding:0}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.login-container[data-v-52f44f0c]{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--bg-primary);position:relative;overflow:hidden}.login-container[data-v-52f44f0c]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(102,126,234,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(118,75,162,.15) 0%,transparent 50%);z-index:0}.login-box[data-v-52f44f0c]{background:var(--bg-secondary);padding:3rem;border-radius:16px;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);width:100%;max-width:420px;z-index:1;position:relative}h1[data-v-52f44f0c]{font-size:2rem;margin-bottom:.5rem;color:var(--text-primary);text-align:center;font-weight:600}.subtitle[data-v-52f44f0c]{color:var(--text-secondary);text-align:center;margin-bottom:2rem;font-size:.95rem}.form-group[data-v-52f44f0c]{margin-bottom:1.5rem}.password-input[data-v-52f44f0c]{width:100%;padding:.875rem;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);border-radius:10px;font-size:1rem;transition:all .3s ease}.password-input[data-v-52f44f0c]:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.password-input[data-v-52f44f0c]:disabled{opacity:.5;cursor:not-allowed}.password-input[data-v-52f44f0c]::placeholder{color:var(--text-muted)}.login-button[data-v-52f44f0c]{width:100%;padding:.875rem;background:var(--accent-primary);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;transition:all .2s ease;box-shadow:0 4px 12px var(--accent-glow)}.login-button[data-v-52f44f0c]:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 20px var(--accent-glow)}.login-button[data-v-52f44f0c]:active:not(:disabled){transform:translateY(0)}.error-message[data-v-52f44f0c]{margin-top:1rem;padding:.875rem;background:#f443361a;border:1px solid var(--danger);border-radius:8px;color:var(--danger);text-align:center;font-size:.9rem;animation:shake-52f44f0c .4s ease-in-out}@keyframes shake-52f44f0c{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@media (max-width: 480px){.login-box[data-v-52f44f0c]{margin:1rem;padding:2rem}h1[data-v-52f44f0c]{font-size:1.75rem}}.gallery-container[data-v-c41e5857]{display:flex;min-height:100vh;background:var(--bg-primary);color:var(--text-primary)}.sidebar[data-v-c41e5857]{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;padding:1.5rem 0;position:fixed;left:0;top:0;bottom:0;z-index:100;box-shadow:var(--shadow-md)}.nav-icons[data-v-c41e5857]{display:flex;flex-direction:column;gap:1.5rem;width:100%;align-items:center}.nav-icon[data-v-c41e5857]{width:44px;height:44px;background:transparent;border:none;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--nav-icon);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.nav-icon svg[data-v-c41e5857]{width:22px;height:22px}.nav-icon[data-v-c41e5857]:hover{background:#ffffff0d;color:var(--nav-icon-active);transform:translateY(-2px)}.nav-icon.active[data-v-c41e5857]{color:var(--nav-icon-active);background:#ffffff1a;box-shadow:0 0 20px var(--nav-icon-glow)}.nav-icon.active[data-v-c41e5857]:before{content:"";position:absolute;left:-1.5rem;top:50%;transform:translateY(-50%);width:3px;height:24px;background:var(--nav-icon-active);border-radius:0 2px 2px 0;box-shadow:0 0 10px var(--nav-icon-glow)}.logout-icon[data-v-c41e5857]{margin-top:auto;color:var(--danger)}.logout-icon[data-v-c41e5857]:hover{background:#f443361a;color:var(--danger)}.main-content[data-v-c41e5857]{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh}.gallery-header[data-v-c41e5857]{padding:.75rem 1.25rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-left[data-v-c41e5857]{display:flex;align-items:center;gap:.5rem}.gallery-header h1[data-v-c41e5857]{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.image-count[data-v-c41e5857]{font-size:.8rem;color:var(--text-muted);background:var(--bg-card);padding:.25rem .625rem;border-radius:20px;border:1px solid var(--border-color)}.header-right[data-v-c41e5857]{display:flex;align-items:center;gap:.75rem}.icon-button[data-v-c41e5857]{width:40px;height:40px;background:transparent;border:1px solid var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s ease}.icon-button[data-v-c41e5857]:hover{background:var(--bg-card);color:var(--text-primary);border-color:var(--text-muted)}.icon-button svg[data-v-c41e5857]{width:20px;height:20px}.user-avatar[data-v-c41e5857]{width:40px;height:40px;border-radius:50%;background:var(--accent-primary);display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;border:2px solid var(--border-color);transition:all .2s ease}.user-avatar[data-v-c41e5857]:hover{transform:scale(1.05);box-shadow:0 0 20px var(--accent-glow)}.user-avatar svg[data-v-c41e5857]{width:24px;height:24px}.upload-status[data-v-c41e5857]{background:var(--bg-secondary);border:1px solid var(--accent-primary);padding:1rem 1.5rem;margin:1.5rem 2rem;border-radius:10px;display:flex;align-items:center;gap:1rem;color:var(--text-primary)}.upload-spinner[data-v-c41e5857],.loading-spinner[data-v-c41e5857]{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin-c41e5857 .8s linear infinite}@keyframes spin-c41e5857{to{transform:rotate(360deg)}}.error-banner[data-v-c41e5857]{background:#f443361a;border:1px solid var(--danger);padding:1rem 1.5rem;margin:1.5rem 2rem;border-radius:10px;display:flex;align-items:center;gap:1rem;color:var(--danger)}.error-banner svg[data-v-c41e5857]{width:20px;height:20px;flex-shrink:0}.success-banner[data-v-c41e5857]{background:#4caf501a;border:1px solid #4caf50;padding:1rem 1.5rem;margin:1.5rem 2rem;border-radius:10px;display:flex;align-items:center;gap:1rem;color:#4caf50}.success-banner svg[data-v-c41e5857]{width:20px;height:20px;flex-shrink:0}.loading-state[data-v-c41e5857]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:4rem 2rem;color:var(--text-secondary)}.loading-state .loading-spinner[data-v-c41e5857]{width:48px;height:48px;border-width:3px}.error-state[data-v-c41e5857]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem 2rem;color:var(--danger)}.error-state svg[data-v-c41e5857]{width:64px;height:64px;opacity:.5}.empty-state[data-v-c41e5857]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:4rem 2rem;color:var(--text-secondary)}.empty-state svg[data-v-c41e5857]{width:80px;height:80px;opacity:.3}.empty-state h2[data-v-c41e5857]{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0}.empty-state p[data-v-c41e5857]{margin:0;font-size:1rem}.primary-button[data-v-c41e5857]{background:var(--accent-primary);color:#fff;border:none;padding:.875rem 2rem;border-radius:10px;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem;margin-top:1rem;transition:all .2s ease}.primary-button[data-v-c41e5857]:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 16px var(--accent-glow)}.primary-button svg[data-v-c41e5857]{width:20px;height:20px}.compact-grid[data-v-c41e5857]{padding:var(--gallery-padding, .75rem);display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--gallery-min-width, 200px),1fr));gap:var(--gallery-gap, 8px)}.grid-item[data-v-c41e5857]{position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--bg-card);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000004d}.grid-item[data-v-c41e5857]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000080}.grid-item img[data-v-c41e5857]{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.grid-item:hover img[data-v-c41e5857]{transform:scale(1.03)}.image-overlay[data-v-c41e5857]{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0000,#0000004d,#000000b3);opacity:0;transition:opacity .2s ease;display:flex;flex-direction:column;justify-content:flex-end;padding:.75rem}.grid-item:hover .image-overlay[data-v-c41e5857]{opacity:1}.overlay-actions[data-v-c41e5857]{display:flex;gap:.5rem}.overlay-button[data-v-c41e5857]{flex:1;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:#fff;padding:.5rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.overlay-button[data-v-c41e5857]:hover{background:#ffffff40;transform:translateY(-1px)}.overlay-button svg[data-v-c41e5857]{width:16px;height:16px}.overlay-button.danger[data-v-c41e5857]{background:#f4433633;border-color:#f4433666}.overlay-button.danger[data-v-c41e5857]:hover{background:#f4433666}@media (max-width: 1200px){.compact-grid[data-v-c41e5857]{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait){.sidebar[data-v-c41e5857]{width:80px}.main-content[data-v-c41e5857]{margin-left:80px}.gallery-header[data-v-c41e5857]{padding:1rem 1.5rem}.gallery-header h1[data-v-c41e5857]{font-size:calc(1.25rem * var(--tablet-font-scale))}.compact-grid[data-v-c41e5857]{grid-template-columns:repeat(auto-fill,minmax(var(--gallery-min-width),1fr));padding:var(--gallery-padding);gap:var(--gallery-gap)}.nav-icon[data-v-c41e5857]{width:52px;height:52px}.nav-icon svg[data-v-c41e5857]{width:26px;height:26px}.icon-button[data-v-c41e5857]{width:48px;height:48px;min-height:var(--touch-target-comfortable)}.icon-button svg[data-v-c41e5857]{width:24px;height:24px}.user-avatar[data-v-c41e5857]{width:48px;height:48px}.image-count[data-v-c41e5857]{font-size:.9rem;padding:.35rem .75rem}.overlay-button[data-v-c41e5857]{padding:.75rem;min-height:var(--touch-target-min)}.overlay-button svg[data-v-c41e5857]{width:20px;height:20px}.upload-modal[data-v-c41e5857]{max-width:600px}.upload-option[data-v-c41e5857]{padding:1.25rem;min-height:var(--touch-target-comfortable)}.upload-option svg[data-v-c41e5857]{width:28px;height:28px}}@media (min-width: 1024px) and (max-width: 1366px) and (orientation: portrait){.compact-grid[data-v-c41e5857]{grid-template-columns:repeat(auto-fill,minmax(var(--gallery-min-width),1fr))}.gallery-header h1[data-v-c41e5857]{font-size:calc(1.5rem * var(--tablet-font-scale))}}@media (max-width: 768px){.sidebar[data-v-c41e5857]{width:60px}.main-content[data-v-c41e5857]{margin-left:60px}.gallery-header[data-v-c41e5857]{padding:.625rem 1rem}.gallery-header h1[data-v-c41e5857]{font-size:1.125rem}.compact-grid[data-v-c41e5857]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));padding:.5rem;gap:6px}.header-right[data-v-c41e5857]{gap:.5rem}.icon-button[data-v-c41e5857],.user-avatar[data-v-c41e5857]{width:32px;height:32px}}@media (max-width: 480px){.compact-grid[data-v-c41e5857]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px}.image-count[data-v-c41e5857]{display:none}}.desktop-only[data-v-c41e5857]{display:flex}.mobile-only[data-v-c41e5857]{display:none!important}.bottom-nav[data-v-c41e5857]{position:fixed;bottom:0;left:0;right:0;background:var(--bg-sidebar);border-top:1px solid var(--border-color);justify-content:space-around;align-items:center;padding:.5rem 0;padding-bottom:calc(.5rem + var(--safe-area-inset-bottom));z-index:100;box-shadow:0 -4px 12px #0000001a}.bottom-nav .nav-icon[data-v-c41e5857]{flex-direction:column;gap:.25rem;width:auto;height:auto;padding:.5rem}.bottom-nav .nav-icon svg[data-v-c41e5857]{width:24px;height:24px}.bottom-nav .nav-icon span[data-v-c41e5857]{font-size:.625rem;color:currentColor}.bottom-nav .nav-icon.upload-btn[data-v-c41e5857]{margin-top:-2rem}.upload-circle[data-v-c41e5857]{width:56px;height:56px;background:var(--accent-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px var(--accent-glow)}.upload-circle svg[data-v-c41e5857]{width:28px;height:28px;color:#fff}.modal-overlay[data-v-c41e5857]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:1rem}.upload-modal[data-v-c41e5857]{background:var(--bg-secondary);border-radius:16px 16px 0 0;padding:1.5rem;width:100%;max-width:500px;animation:slideUp-c41e5857 .3s ease}@keyframes slideUp-c41e5857{0%{transform:translateY(100%)}to{transform:translateY(0)}}.upload-modal h3[data-v-c41e5857]{margin:0 0 1rem;font-size:1.25rem;color:var(--text-primary)}.upload-options[data-v-c41e5857]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.upload-option[data-v-c41e5857]{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;color:var(--text-primary);font-size:1rem;transition:all .2s ease}.upload-option[data-v-c41e5857]:hover{background:var(--bg-card-hover);transform:translate(4px)}.upload-option svg[data-v-c41e5857]{width:24px;height:24px;color:var(--accent-primary)}.cancel-btn[data-v-c41e5857]{width:100%;padding:.875rem;background:transparent;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:1rem}@media (max-width: 768px){.desktop-only[data-v-c41e5857]{display:none!important}.mobile-only[data-v-c41e5857]{display:flex!important}.main-content[data-v-c41e5857]{margin-left:0;margin-bottom:80px}.gallery-header[data-v-c41e5857]{padding:1rem}}.canvas-container[data-v-34358c3e]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:#2a2a2a;position:relative}canvas[data-v-34358c3e]{cursor:crosshair;max-width:100%;max-height:100%}.tool-controls[data-v-34358c3e]{position:absolute;top:20px;left:20px;display:flex;align-items:center;gap:12px;background:#000000b3;padding:8px 16px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10}.tool-btn[data-v-34358c3e]{width:40px;height:40px;border:2px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff1a;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.tool-btn[data-v-34358c3e]:hover{background:#fff3;border-color:#fff6}.tool-btn.active[data-v-34358c3e]{background:#677eeacc;border-color:#677eea;box-shadow:0 0 12px #677eea80}.tool-icon[data-v-34358c3e]{font-size:24px;line-height:1}.tool-label[data-v-34358c3e]{color:#fff;font-size:14px;font-weight:600;-webkit-user-select:none;user-select:none;min-width:110px}.zoom-controls[data-v-34358c3e]{position:absolute;bottom:20px;right:20px;display:flex;align-items:center;gap:8px;background:#000000b3;padding:8px 12px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10}.zoom-btn[data-v-34358c3e]{width:32px;height:32px;border:none;border-radius:4px;background:#ffffff26;color:#fff;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;min-height:var(--touch-target-min);min-width:var(--touch-target-min)}.zoom-btn[data-v-34358c3e]:hover{background:#ffffff40}.zoom-btn[data-v-34358c3e]:active{background:#ffffff59}.zoom-btn.reset[data-v-34358c3e]{font-size:20px}@media (pointer: coarse){.zoom-btn[data-v-34358c3e]{width:44px;height:44px;font-size:20px}.zoom-btn.reset[data-v-34358c3e]{font-size:24px}.zoom-level[data-v-34358c3e]{font-size:16px;min-width:60px}.tool-btn[data-v-34358c3e]{width:48px;height:48px}.tool-icon[data-v-34358c3e]{font-size:28px}.tool-label[data-v-34358c3e]{font-size:16px}}.zoom-level[data-v-34358c3e]{color:#fff;font-size:14px;font-weight:600;min-width:50px;text-align:center;-webkit-user-select:none;user-select:none}.alignment-panel[data-v-d01b8ab2]{position:fixed;left:0;top:80px;bottom:0;width:280px;background:var(--bg-secondary);border-right:1px solid var(--border-color);box-shadow:var(--shadow-md);z-index:100;transition:transform .3s ease;display:flex;flex-direction:column}.alignment-panel.collapsed[data-v-d01b8ab2]{transform:translate(-240px)}.panel-header[data-v-d01b8ab2]{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-color);background:var(--bg-card)}.panel-header h3[data-v-d01b8ab2]{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.collapse-btn[data-v-d01b8ab2]{width:32px;height:32px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.collapse-btn[data-v-d01b8ab2]:hover{background:var(--bg-card-hover);border-color:var(--accent-primary)}.panel-content[data-v-d01b8ab2]{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1.5rem}.section[data-v-d01b8ab2]{display:flex;flex-direction:column;gap:.75rem}.section-label[data-v-d01b8ab2]{font-size:.875rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between}.value-display[data-v-d01b8ab2]{font-weight:700;color:var(--accent-primary)}.radio-group[data-v-d01b8ab2]{display:flex;flex-direction:column;gap:.5rem}.radio-option[data-v-d01b8ab2]{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:6px;cursor:pointer;transition:background .2s}.radio-option[data-v-d01b8ab2]:hover{background:var(--bg-card-hover)}.radio-option input[type=radio][data-v-d01b8ab2]{cursor:pointer}.radio-option input[type=radio][data-v-d01b8ab2]:disabled{cursor:not-allowed;opacity:.5}.radio-option span[data-v-d01b8ab2]{font-size:.875rem;color:var(--text-primary)}.radio-option input[type=radio]:disabled~span[data-v-d01b8ab2]{color:var(--text-secondary);opacity:.5}.rotation-slider[data-v-d01b8ab2]{width:100%;height:6px;border-radius:3px;background:var(--bg-card);outline:none;cursor:pointer}.rotation-slider[data-v-d01b8ab2]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent-primary);cursor:pointer;transition:all .2s}.rotation-slider[data-v-d01b8ab2]::-webkit-slider-thumb:hover{background:var(--accent-hover);transform:scale(1.1)}.rotation-slider[data-v-d01b8ab2]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:none;transition:all .2s}.rotation-slider[data-v-d01b8ab2]::-moz-range-thumb:hover{background:var(--accent-hover);transform:scale(1.1)}.slider-labels[data-v-d01b8ab2]{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-secondary);margin-top:-.25rem}.alignment-status[data-v-d01b8ab2]{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#4caf501a;border:2px solid #4caf50;border-radius:8px}.status-icon[data-v-d01b8ab2]{font-size:1.25rem;color:#4caf50}.status-text[data-v-d01b8ab2]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.occlusion-indicator[data-v-d01b8ab2]{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border-radius:8px;border:2px solid;transition:all .3s}.occlusion-indicator.well-aligned[data-v-d01b8ab2]{background:#4caf501a;border-color:#4caf50}.occlusion-indicator.slight-variation[data-v-d01b8ab2]{background:#8bc34a1a;border-color:#8bc34a}.occlusion-indicator.mild-asymmetry[data-v-d01b8ab2]{background:#ff98001a;border-color:#ff9800}.occlusion-indicator.noticeable-asymmetry[data-v-d01b8ab2]{background:#f443361a;border-color:#f44336}.indicator-header[data-v-d01b8ab2]{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.angle-value[data-v-d01b8ab2]{font-size:1.5rem;font-weight:700;font-family:Courier New,monospace}.occlusion-indicator.well-aligned .angle-value[data-v-d01b8ab2]{color:#4caf50}.occlusion-indicator.slight-variation .angle-value[data-v-d01b8ab2]{color:#8bc34a}.occlusion-indicator.mild-asymmetry .angle-value[data-v-d01b8ab2]{color:#ff9800}.occlusion-indicator.noticeable-asymmetry .angle-value[data-v-d01b8ab2]{color:#f44336}.status-badge[data-v-d01b8ab2]{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:.25rem .5rem;border-radius:4px;white-space:nowrap}.occlusion-indicator.well-aligned .status-badge[data-v-d01b8ab2]{background:#4caf50;color:#fff}.occlusion-indicator.slight-variation .status-badge[data-v-d01b8ab2]{background:#8bc34a;color:#fff}.occlusion-indicator.mild-asymmetry .status-badge[data-v-d01b8ab2]{background:#ff9800;color:#fff}.occlusion-indicator.noticeable-asymmetry .status-badge[data-v-d01b8ab2]{background:#f44336;color:#fff}.status-description[data-v-d01b8ab2]{font-size:.8rem;line-height:1.4;color:var(--text-secondary);margin:0;font-style:italic}.actions[data-v-d01b8ab2]{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border-color)}.action-btn[data-v-d01b8ab2]{width:100%;padding:.75rem;border:none;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s}.action-btn[data-v-d01b8ab2]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-d01b8ab2]{background:var(--accent-primary);color:#fff}.action-btn.primary[data-v-d01b8ab2]:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.action-btn.secondary[data-v-d01b8ab2]{background:var(--bg-card);color:var(--text-primary);border:2px solid var(--border-color);margin-bottom:.5rem}.action-btn.secondary[data-v-d01b8ab2]:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--accent-primary)}.action-btn.success[data-v-d01b8ab2]{background:var(--success);color:#fff;margin-bottom:.5rem}.action-btn.success[data-v-d01b8ab2]:hover:not(:disabled){background:var(--success-hover);transform:translateY(-1px);box-shadow:0 4px 12px #4caf504d}.action-btn.danger[data-v-d01b8ab2]{background:var(--danger);color:#fff}.action-btn.danger[data-v-d01b8ab2]:hover:not(:disabled){background:#c62828;transform:translateY(-1px);box-shadow:0 4px 12px #f443364d}@media (max-width: 768px){.alignment-panel[data-v-d01b8ab2]{width:240px}.alignment-panel.collapsed[data-v-d01b8ab2]{transform:translate(-200px)}}.annotate-page[data-v-565c2244]{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary)}.header[data-v-565c2244]{background:var(--bg-secondary);padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:1.5rem;box-shadow:var(--shadow-sm)}.header h1[data-v-565c2244]{flex:1;font-size:1.5rem;color:var(--text-primary);font-weight:600}.back-button[data-v-565c2244]{padding:.5rem 1rem;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-weight:600;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.back-button[data-v-565c2244]:hover{background:var(--bg-card-hover);transform:translate(-2px)}.header-actions[data-v-565c2244]{display:flex;gap:.75rem;flex-wrap:wrap}.action-button[data-v-565c2244]{padding:.5rem 1rem;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-weight:600;transition:all .2s ease;white-space:nowrap}.action-button[data-v-565c2244]:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.action-button[data-v-565c2244]:disabled{opacity:.4}.action-button.reapply[data-v-565c2244]{background:var(--warning)}.action-button.reapply[data-v-565c2244]:hover:not(:disabled){background:#e68900;box-shadow:0 4px 12px #ff98004d}.action-button.recompute[data-v-565c2244]{background:var(--success)}.action-button.recompute[data-v-565c2244]:hover:not(:disabled){background:var(--success-hover);box-shadow:0 4px 12px #4caf504d}.action-button.toggle-button[data-v-565c2244]{background:var(--bg-card);color:var(--text-primary);border:2px solid var(--border-color)}.action-button.toggle-button[data-v-565c2244]:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--accent-primary);box-shadow:0 4px 12px #677eea33}.action-button.toggle-button.active[data-v-565c2244]{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.action-button.toggle-button.active[data-v-565c2244]:hover{background:var(--accent-hover);box-shadow:0 4px 12px var(--accent-glow)}.loading-container[data-v-565c2244],.error-container[data-v-565c2244]{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;gap:1rem;color:var(--text-primary)}.error[data-v-565c2244]{color:var(--danger);font-size:1.125rem}.content[data-v-565c2244]{display:flex;flex:1;overflow:hidden}.canvas-area[data-v-565c2244]{flex:1;overflow:hidden;background:var(--bg-primary);margin-left:280px;transition:margin-left .3s ease}@media (max-width: 768px){.canvas-area[data-v-565c2244]{margin-left:240px}}@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait){.header[data-v-565c2244]{padding:1rem 1.5rem}.header h1[data-v-565c2244]{font-size:calc(1.5rem * var(--tablet-font-scale))}.back-button[data-v-565c2244]{padding:.75rem 1.25rem;font-size:calc(1rem * var(--tablet-font-scale));min-height:var(--touch-target-comfortable)}.header-actions[data-v-565c2244]{gap:.75rem;flex-wrap:wrap}.action-button[data-v-565c2244]{padding:.75rem 1.25rem;font-size:calc(.95rem * var(--tablet-font-scale));min-height:var(--touch-target-comfortable);border-radius:10px}.canvas-area[data-v-565c2244]{margin-left:300px}}@media (min-width: 1024px) and (max-width: 1366px) and (orientation: portrait){.header h1[data-v-565c2244]{font-size:calc(1.75rem * var(--tablet-font-scale))}.action-button[data-v-565c2244]{padding:.875rem 1.5rem;font-size:calc(1rem * var(--tablet-font-scale))}.canvas-area[data-v-565c2244]{margin-left:320px}}@media (max-width: 1024px){.header-actions[data-v-565c2244]{gap:.5rem}.action-button[data-v-565c2244]{padding:.5rem .75rem;font-size:.875rem}}@media (max-width: 768px){.header[data-v-565c2244]{flex-wrap:wrap;padding:1rem}.header h1[data-v-565c2244]{font-size:1.25rem;width:100%;margin-bottom:.5rem}}.settings-page[data-v-070b3e45]{display:flex;min-height:100vh;background:var(--bg-primary);color:var(--text-primary)}.sidebar[data-v-070b3e45]{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;padding:1.5rem 0;position:fixed;left:0;top:0;bottom:0;z-index:100;box-shadow:var(--shadow-md)}.nav-icons[data-v-070b3e45]{display:flex;flex-direction:column;gap:1.5rem;width:100%;align-items:center}.nav-icon[data-v-070b3e45]{width:44px;height:44px;background:transparent;border:none;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--nav-icon);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.nav-icon svg[data-v-070b3e45]{width:22px;height:22px}.nav-icon[data-v-070b3e45]:hover{background:#ffffff0d;color:var(--nav-icon-active);transform:translateY(-2px)}.nav-icon.active[data-v-070b3e45]{color:var(--nav-icon-active);background:#ffffff1a;box-shadow:0 0 20px var(--nav-icon-glow)}.nav-icon.active[data-v-070b3e45]:before{content:"";position:absolute;left:-1.5rem;top:50%;transform:translateY(-50%);width:3px;height:24px;background:var(--nav-icon-active);border-radius:0 2px 2px 0}.logout-icon[data-v-070b3e45]{margin-top:auto;color:var(--danger)}.main-content[data-v-070b3e45]{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column}.settings-header[data-v-070b3e45]{padding:1rem 2rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50}.header-left[data-v-070b3e45]{display:flex;align-items:center;gap:1rem}.back-button[data-v-070b3e45]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-weight:500;transition:all .2s ease}.back-button[data-v-070b3e45]:hover{background:var(--bg-card-hover);transform:translate(-2px)}.back-button svg[data-v-070b3e45]{width:18px;height:18px}.settings-header h1[data-v-070b3e45]{font-size:1.5rem;font-weight:600;margin:0}.save-button[data-v-070b3e45]{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-weight:600;transition:all .2s ease}.save-button[data-v-070b3e45]:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px var(--accent-glow)}.save-button svg[data-v-070b3e45]{width:18px;height:18px}.settings-content[data-v-070b3e45]{flex:1;padding:2rem;max-width:900px;width:100%;margin:0 auto}.settings-section[data-v-070b3e45]{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:2rem;margin-bottom:2rem}.settings-section h2[data-v-070b3e45]{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem;color:var(--text-primary)}.settings-section h2 svg[data-v-070b3e45]{width:24px;height:24px;color:var(--accent-primary)}.setting-item[data-v-070b3e45]{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 0;border-bottom:1px solid var(--border-color)}.setting-item[data-v-070b3e45]:last-child{border-bottom:none}.setting-info[data-v-070b3e45]{flex:1}.setting-info label[data-v-070b3e45]{display:block;font-weight:600;font-size:1rem;color:var(--text-primary);margin-bottom:.25rem}.setting-description[data-v-070b3e45]{font-size:.875rem;color:var(--text-secondary);margin:0}.setting-select[data-v-070b3e45]{padding:.625rem 1rem;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-size:.9375rem;min-width:180px;cursor:pointer;transition:all .2s ease}.setting-select[data-v-070b3e45]:hover{border-color:var(--accent-primary)}.setting-select[data-v-070b3e45]:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.toggle[data-v-070b3e45]{position:relative;display:inline-block;width:52px;height:28px;cursor:pointer}.toggle input[data-v-070b3e45]{opacity:0;width:0;height:0}.toggle-slider[data-v-070b3e45]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-card);border:2px solid var(--border-color);border-radius:28px;transition:all .3s ease}.toggle-slider[data-v-070b3e45]:before{content:"";position:absolute;height:20px;width:20px;left:2px;bottom:2px;background:var(--text-muted);border-radius:50%;transition:all .3s ease}.toggle input:checked+.toggle-slider[data-v-070b3e45]{background:var(--accent-primary);border-color:var(--accent-primary)}.toggle input:checked+.toggle-slider[data-v-070b3e45]:before{transform:translate(24px);background:#fff}.slider-group[data-v-070b3e45]{display:flex;align-items:center;gap:1rem;min-width:200px}.setting-slider[data-v-070b3e45]{flex:1;height:6px;background:var(--bg-card);border-radius:3px;outline:none;-webkit-appearance:none}.setting-slider[data-v-070b3e45]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--accent-primary);border-radius:50%;cursor:pointer;transition:all .2s ease}.setting-slider[data-v-070b3e45]::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 8px var(--accent-glow)}.slider-value[data-v-070b3e45]{font-weight:600;color:var(--accent-primary);min-width:50px;text-align:right}.setting-item.danger[data-v-070b3e45]{border-color:#f4433633}.danger-button[data-v-070b3e45]{padding:.625rem 1.25rem;background:#f443361a;color:var(--danger);border:1px solid var(--danger);border-radius:8px;font-weight:600;transition:all .2s ease}.danger-button[data-v-070b3e45]:hover{background:var(--danger);color:#fff}.info-grid[data-v-070b3e45]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.info-item[data-v-070b3e45]{padding:1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-direction:column;gap:.5rem}.info-label[data-v-070b3e45]{font-size:.875rem;color:var(--text-secondary)}.info-value[data-v-070b3e45]{font-size:1.125rem;font-weight:600;color:var(--text-primary)}@media (max-width: 768px){.settings-content[data-v-070b3e45]{padding:1rem}.settings-section[data-v-070b3e45]{padding:1.5rem}.setting-item[data-v-070b3e45]{flex-direction:column;align-items:flex-start;gap:1rem}.slider-group[data-v-070b3e45],.setting-select[data-v-070b3e45]{width:100%}}:root{--bg-primary: #1a1a1a;--bg-secondary: #2a2a2a;--bg-sidebar: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);--bg-card: #232323;--bg-card-hover: #2d2d2d;--text-primary: #ffffff;--text-secondary: #b0b0b0;--text-muted: #808080;--accent-primary: #667eea;--accent-hover: #5568d3;--accent-glow: rgba(102, 126, 234, .3);--nav-icon: rgba(255, 255, 255, .7);--nav-icon-active: #ffffff;--nav-icon-glow: rgba(255, 255, 255, .2);--border-color: rgba(255, 255, 255, .1);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--success: #4caf50;--success-hover: #45a049;--danger: #f44336;--danger-hover: #da190b;--warning: #ff9800;--sidebar-width: 70px;--gap-sm: 8px;--gap-md: 16px;--gap-lg: 24px;--gallery-min-width: 200px;--gallery-gap: 8px;--gallery-padding: .75rem;--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-right: env(safe-area-inset-right, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--touch-target-min: 44px;--touch-target-comfortable: 48px;--tablet-font-scale: 1;--tablet-spacing-scale: 1}@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait){:root{--tablet-font-scale: 1.1;--tablet-spacing-scale: 1.15;--gallery-min-width: 220px;--gallery-gap: 12px;--gallery-padding: 1rem;--sidebar-width: 80px}}@media (min-width: 1024px) and (max-width: 1366px) and (orientation: portrait){:root{--tablet-font-scale: 1.15;--tablet-spacing-scale: 1.2;--gallery-min-width: 240px;--gallery-gap: 16px;--gallery-padding: 1.25rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden;padding-top:var(--safe-area-inset-top);padding-right:var(--safe-area-inset-right);padding-bottom:var(--safe-area-inset-bottom);padding-left:var(--safe-area-inset-left);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-overflow-scrolling:touch}button{cursor:pointer;font-family:inherit;transition:all .2s ease;min-height:var(--touch-target-min);-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}button:disabled{cursor:not-allowed;opacity:.4}button:active:not(:disabled){transform:scale(.98)}a,input,select,textarea{-webkit-tap-highlight-color:transparent}*{-webkit-overflow-scrolling:touch}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-card-hover);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#404040}
