:root{--bg: #faf6f1;--bg-primary: #faf6f1;--bg-secondary: #f5ede4;--bg-tertiary: #ebe3d8;--bg-elevated: #ffffff;--surface: #fff9f3;--text-primary: #3d2e1f;--text-secondary: #6b5744;--text-muted: #9a8b7a;--primary: #b8860b;--primary-hover: #996d00;--primary-light: rgba(184, 134, 11, .12);--primary-glow: rgba(184, 134, 11, .3);--accent: #8b4513;--accent-light: rgba(139, 69, 19, .1);--accent-hover: #723a0f;--success: #2d8f4e;--success-light: rgba(45, 143, 78, .12);--warning: #d4a017;--warning-light: rgba(212, 160, 23, .12);--danger: #c53030;--danger-light: rgba(197, 48, 48, .12);--info: #2b6cb0;--info-light: rgba(43, 108, 176, .12);--border: rgba(139, 69, 19, .15);--border-hover: rgba(139, 69, 19, .25);--radius: 12px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow: 0 4px 20px rgba(61, 46, 31, .08);--shadow-lg: 0 8px 32px rgba(61, 46, 31, .12);--transition: all .2s ease;--sidebar-width: 260px}*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden;max-width:100vw}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden;max-width:100vw}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:200}.sidebar-header{padding:24px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}.sidebar-logo{display:flex;align-items:center;gap:12px}.logo-icon{color:var(--primary);width:32px;height:32px}.logo-text{font-size:1.25rem;font-weight:700}.credits-display{display:flex;align-items:center;gap:8px;padding:12px 24px;margin:16px;background:linear-gradient(135deg,#b8860b26,#b8860b0d);border:1px solid rgba(184,134,11,.25);border-radius:var(--radius-sm);color:var(--primary)}.credits-display svg{flex-shrink:0}.credits-value{font-size:1.25rem;font-weight:700}.credits-label{font-size:.85rem;opacity:.8}.sidebar-nav{flex:1;padding:16px;display:flex;flex-direction:column;gap:4px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;transition:var(--transition)}.nav-link:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-link.active{background:linear-gradient(135deg,#b8860b26,#b8860b0d);color:var(--primary);border-left:3px solid var(--primary)}.sidebar-footer{padding:16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:12px}.user-info{flex:1;display:flex;align-items:center;gap:12px;min-width:0}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0}.user-name{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{padding:8px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.logout-btn:hover{background:var(--danger);color:#fff}.main-content{flex:1;margin-left:var(--sidebar-width);padding:24px;min-height:100vh;max-width:100vw;overflow-x:hidden}.mobile-header{display:none;position:fixed;top:0;left:0;right:0;height:60px;background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 16px;align-items:center;justify-content:space-between;z-index:200}.mobile-header-left{display:flex;align-items:center;gap:10px}.mobile-header-left .logo-icon{width:24px;height:24px}.mobile-header-left .logo-text{font-size:1.1rem;font-weight:700}.mobile-header-right{display:flex;align-items:center;gap:12px}.mobile-credits{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--primary-light);border:1px solid rgba(184,134,11,.3);border-radius:20px;color:var(--primary);font-weight:600;font-size:.85rem;text-decoration:none}.mobile-menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:none;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition)}.mobile-menu-btn:hover{background:var(--bg-tertiary)}.mobile-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:150;opacity:0;transition:opacity .3s ease;pointer-events:none}.mobile-overlay.visible{display:block;opacity:1;pointer-events:auto}@media (max-width: 768px){.mobile-header{display:flex}.mobile-overlay{display:block}.sidebar{position:fixed!important;top:0;left:0;height:100vh;width:280px;transform:translate(-100%);transition:transform .3s ease;z-index:500!important;background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);box-shadow:4px 0 12px #0000004d;display:flex!important;flex-direction:column}.sidebar.mobile-open{transform:translate(0)!important}.sidebar-header{display:flex!important}.main-content{margin-left:0;padding:80px 16px 24px;max-width:100vw;overflow-x:hidden}}@media (max-width: 480px){.main-content{padding:72px 12px 20px;max-width:100vw;overflow-x:hidden}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at top left,rgba(184,134,11,.15) 0%,transparent 50%),radial-gradient(ellipse at bottom right,rgba(139,69,19,.1) 0%,transparent 50%),linear-gradient(180deg,#f8f6f1,#e8e4db,#d4cfc4);position:relative}.auth-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23b8860b' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.5;pointer-events:none}.auth-container{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{width:64px;height:64px;color:var(--primary);margin-bottom:16px}.auth-header h1{font-size:1.75rem;margin-bottom:8px}.auth-header p{color:var(--text-secondary)}.auth-form{background:#fff;padding:40px;border-radius:var(--radius-xl);border:1px solid rgba(184,134,11,.2);box-shadow:0 4px 6px #0000000d,0 10px 40px #b8860b1a;position:relative;z-index:1}.clerk-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;max-width:450px;width:100%}.clerk-container .auth-header{margin-bottom:0}.clerk-root-box{width:100%}.clerk-card{box-shadow:0 4px 6px #0000000d,0 10px 40px #b8860b1a!important}.auth-form h2{font-size:1.5rem;margin-bottom:24px;text-align:center}.auth-switch{text-align:center;margin-top:24px;color:var(--text-secondary)}.auth-switch a{color:var(--primary);text-decoration:none}.auth-switch a:hover{text-decoration:underline}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;font-size:.9rem}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper>svg:first-child{position:absolute;left:14px;color:var(--text-muted);z-index:1;pointer-events:none}.input-wrapper input{width:100%;padding:14px 14px 14px 48px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;transition:var(--transition)}.input-wrapper input:focus{outline:none;border-color:var(--primary)}.input-wrapper input::placeholder{color:var(--text-muted)}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:var(--transition);z-index:2}.password-toggle svg{pointer-events:none}.password-toggle:hover{color:var(--primary)}.input-wrapper:has(.password-toggle) input{padding-right:48px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;cursor:pointer;transition:var(--transition);border:none;text-decoration:none}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,#d4a017 100%);color:#fff;box-shadow:0 4px 14px #b8860b4d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary) 100%);box-shadow:0 6px 20px #b8860b66;transform:translateY(-1px)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{color:var(--text-primary);background:var(--bg-tertiary)}.btn-danger{background:var(--danger);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{background:#d97706}.btn-full{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.icon-btn{width:36px;height:36px;padding:0;border-radius:50%;background:var(--bg-elevated);border:none;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.icon-btn:hover{background:var(--primary)}.icon-btn.danger:hover{background:var(--danger)}.error-message,.alert{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--radius-sm);margin-bottom:20px;font-size:.9rem}.error-message,.alert.error{background:#ef44441a;color:var(--danger);border:1px solid rgba(239,68,68,.3)}.alert.success{background:#22c55e1a;color:var(--success);border:1px solid rgba(34,197,94,.3)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;gap:16px;flex-wrap:wrap}.page-header h1{font-size:1.75rem;font-weight:600}.page-header>div:first-child p{color:var(--text-secondary);margin-top:4px}.header-actions{display:flex;align-items:center;gap:12px}.credits-badge{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-sm);color:var(--warning);font-weight:500;font-size:.9rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:40px}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:24px;display:flex;align-items:center;gap:16px}.stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center}.stat-icon.success{background:#22c55e1a;color:var(--success)}.stat-icon.warning{background:#f59e0b1a;color:var(--warning)}.stat-icon.info{background:#3b82f61a;color:var(--info)}.stat-value{font-size:1.5rem;font-weight:700}.stat-label{color:var(--text-secondary);font-size:.85rem}.dashboard-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-header h2{font-size:1.25rem}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.photo-card{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;position:relative;cursor:pointer;transition:var(--transition)}.photo-card:hover{transform:scale(1.02)}.photo-card img{width:100%;height:100%;object-fit:cover}.photo-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 50%);display:flex;align-items:flex-end;padding:12px}.status-badge{padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:500}.status-badge.completed{background:var(--success);color:#fff}.status-badge.processing{background:var(--warning);color:#000}.status-badge.pending,.status-badge.uploaded{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state svg{color:var(--text-muted);margin-bottom:16px}.empty-state h3{color:var(--text-primary);margin-bottom:8px}.empty-state p{margin-bottom:24px}.loading,.loading-screen,.editor-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;width:100%;color:var(--text-secondary);gap:16px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.editor-page{height:calc(100vh - 48px);display:flex;flex-direction:column}.upload-zone{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border);border-radius:var(--radius-lg);padding:60px 40px;text-align:center;transition:var(--transition);cursor:pointer}.upload-zone:hover{border-color:var(--primary);background:var(--primary-light)}.upload-zone svg{color:var(--text-muted);margin-bottom:24px}.upload-zone h2{margin-bottom:8px}.upload-zone p{color:var(--text-secondary);margin-bottom:24px}.upload-hint{font-size:.85rem;color:var(--text-muted);margin-top:16px}.editor-content{flex:1;display:flex;flex-direction:column;gap:16px;min-height:0}.cropper-container{flex:1;background:var(--bg-secondary);border-radius:var(--radius);overflow:hidden;min-height:400px}.editor-toolbar{display:flex;align-items:center;gap:24px;padding:16px 24px;background:var(--bg-secondary);border-radius:var(--radius);flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:8px}.toolbar-label{font-size:.85rem;color:var(--text-muted);margin-right:4px}.toolbar-group button{width:36px;height:36px;padding:0;border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.toolbar-group button:hover{background:var(--primary);border-color:var(--primary)}.enhance-content{flex:1;display:grid;grid-template-columns:1fr 360px;gap:24px;min-height:0}.preview-panel{background:var(--bg-secondary);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;overflow:hidden}.preview-panel img{max-width:100%;max-height:100%;object-fit:contain}.options-panel{display:flex;flex-direction:column;gap:16px;overflow-y:auto}.option-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.option-header{display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:500}.option-header input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary)}.option-sub{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px}.radio-option{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.radio-option input{accent-color:var(--primary)}.option-desc{margin-top:8px;font-size:.85rem;color:var(--text-muted)}.model-select{width:100%;padding:12px;margin-top:12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;cursor:pointer}.model-select:focus{outline:none;border-color:var(--primary)}.model-selector .model-options{display:flex;flex-direction:column;gap:10px;margin-top:12px}.model-option{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:var(--transition)}.model-option:hover,.model-option.selected{border-color:var(--primary);background:var(--primary-light)}.model-option input[type=radio]{display:none}.model-option .model-info{display:flex;flex-direction:column;gap:2px;flex:1}.model-option .model-name{font-weight:600;color:var(--text-primary);font-size:1rem}.model-option .model-desc{font-size:.85rem;color:var(--text-muted)}.model-option .model-cost{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;font-weight:600;color:var(--primary);margin-top:4px}.model-option.selected .model-name{color:var(--primary)}.processing-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.processing-modal{background:var(--bg-secondary);padding:48px;border-radius:var(--radius-lg);text-align:center}.processing-modal h3{margin:24px 0 8px}.result-content{flex:1;display:flex;flex-direction:column;gap:24px}.comparison-view{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:24px}.comparison-image{background:var(--bg-secondary);border-radius:var(--radius);overflow:hidden;position:relative}.comparison-image img{width:100%;height:100%;object-fit:contain}.comparison-label{position:absolute;top:16px;left:16px;padding:6px 12px;background:var(--bg-elevated);border-radius:var(--radius-sm);font-size:.85rem;font-weight:500}.result-info{display:flex;gap:24px;padding:16px 24px;background:var(--bg-secondary);border-radius:var(--radius)}.result-info p{color:var(--text-secondary)}.result-info strong{color:var(--text-primary)}.gallery-filters{display:flex;gap:16px}.search-input{position:relative;display:flex;align-items:center}.search-input svg{position:absolute;left:12px;color:var(--text-muted)}.search-input input{padding:10px 12px 10px 40px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);width:240px}.search-input input:focus{outline:none;border-color:var(--primary)}.gallery-filters select{padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.gallery-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:var(--transition)}.gallery-card:hover{border-color:var(--primary);transform:translateY(-2px)}.gallery-image{aspect-ratio:4/3;position:relative;overflow:hidden}.gallery-image img{width:100%;height:100%;object-fit:cover}.gallery-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;gap:12px;opacity:0;transition:var(--transition)}.gallery-card:hover .gallery-overlay{opacity:1}.gallery-info{padding:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.gallery-name{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.profile-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px}.profile-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.profile-section h2{font-size:1.25rem;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.profile-section form{display:flex;flex-direction:column;gap:16px}.danger-zone{border-color:var(--danger)}.danger-zone h2{color:var(--danger)}.danger-zone p{color:var(--text-secondary);margin-bottom:16px}.avatar-section{text-align:center}.avatar-container{display:flex;flex-direction:column;align-items:center;gap:16px}.avatar-wrapper{position:relative;width:120px;height:120px;border-radius:50%;cursor:pointer;overflow:hidden}.avatar-wrapper:hover .avatar-overlay{opacity:1}.avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-placeholder-large{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:600}.avatar-loading{width:100%;height:100%;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .2s;border-radius:50%}.avatar-actions{display:flex;gap:8px}@media (max-width: 1024px){.enhance-content{grid-template-columns:1fr}.preview-panel{min-height:300px}}@media (max-width: 768px){.sidebar{display:none}.main-content{margin-left:0}.comparison-view,.profile-content{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.metadata-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.25rem;font-weight:600}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:16px;color:var(--text-secondary)}.modal-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 24px}.tab-btn{display:flex;align-items:center;gap:8px;padding:14px 20px;background:none;border:none;color:var(--text-secondary);font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:var(--transition)}.modal-content{flex:1;overflow-y:auto;padding:24px}.tab-content{display:flex;flex-direction:column;gap:20px}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid var(--border);margin-top:8px}.persons-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--border)}.persons-header p{color:var(--text-secondary)}.empty-persons,.empty-ai{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:var(--text-secondary);gap:12px}.empty-persons svg,.empty-ai svg{opacity:.3}.hint{font-size:.85rem;color:var(--text-muted)}.person-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border)}.person-item.confirmed{border-color:var(--success);background:#22c55e1a}.person-index{width:28px;height:28px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.person-edit{flex:1;display:flex;gap:8px;align-items:center}.person-edit select,.person-edit input{flex:1;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem}.person-info{flex:1;display:flex;align-items:center;gap:8px}.person-name{font-weight:500}.confirmed-badge{color:var(--success);font-size:.85rem}.person-actions{display:flex;gap:4px}.icon-btn.success{color:var(--success)}.icon-btn.success:hover{background:#22c55e1a}.icon-btn.danger{color:var(--danger)}.icon-btn.danger:hover{background:#ef44441a}.icon-btn.published{color:var(--success)}.icon-btn.published:hover{background:#22c55e1a}.add-person-section{padding-top:20px;border-top:1px solid var(--border)}.add-person-section h4{font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.add-person-form{display:flex;gap:8px}.add-person-form input{flex:1}.ai-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--border)}.ai-header p{color:var(--text-secondary)}.ai-item{padding:16px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border)}.ai-item label{display:block;font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.confidence{font-size:.85rem;margin-left:8px;padding:2px 8px;border-radius:4px}.confidence.high{background:#22c55e33;color:var(--success)}.confidence.medium{background:#f59e0b33;color:var(--warning)}.confidence.low{background:#ef444433;color:var(--danger)}.clues-list{margin-top:8px;padding-left:20px}.clues-list li{color:var(--text-secondary);font-size:.9rem;margin-bottom:4px}.ai-actions{padding-top:16px;border-top:1px solid var(--border);display:flex;justify-content:center}@media (max-width: 600px){.metadata-modal{max-height:100vh;border-radius:0}.form-row{grid-template-columns:1fr}.persons-header,.ai-header{flex-direction:column;gap:12px;text-align:center}}.persons-page{padding:32px}.persons-page .page-header{margin-bottom:24px}.persons-page .page-header .header-actions{display:flex;align-items:center;gap:12px}.gedcom-import-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all .2s ease}.gedcom-import-btn:hover{background:var(--primary);border-color:var(--primary)}.gedcom-import-btn:disabled{opacity:.6;cursor:not-allowed}.import-stats-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#10b98126,#10b9810d);border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-sm);color:#10b981}.import-stats-banner svg{flex-shrink:0}.import-stats-banner .stats-content{flex:1;display:flex;flex-direction:column;gap:2px}.import-stats-banner .stats-content strong{font-size:.95rem}.import-stats-banner .stats-content span{font-size:.85rem;opacity:.9}.import-stats-banner button{background:none;border:none;color:#10b981;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s}.import-stats-banner button:hover{opacity:1}.page-subtitle{color:var(--text-secondary);font-size:.9rem;margin-top:4px}.persons-layout{display:grid;grid-template-columns:350px 1fr;gap:24px;height:calc(100vh - 180px)}.persons-list-panel,.person-photos-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.persons-list-panel .panel-header,.person-photos-panel .panel-header{padding:16px;border-bottom:1px solid var(--border)}.search-box{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm)}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{flex:1;background:none;border:none;color:var(--text-primary);font-size:.9rem;outline:none}.add-person-section{padding:12px 16px;border-bottom:1px solid var(--border)}.add-person-trigger{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:var(--bg-tertiary);border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:.9rem;transition:all .2s}.add-person-trigger:hover{border-color:var(--primary);color:var(--primary);background:#8b5cf60d}.add-person-form{display:flex;flex-direction:column;gap:12px;width:100%;box-sizing:border-box}.add-person-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.add-person-form input{padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;transition:border-color .2s;width:100%;min-width:0;box-sizing:border-box}.add-person-form input:focus{outline:none;border-color:var(--primary)}.add-person-form .form-actions{display:flex;justify-content:flex-end;gap:8px}.add-person-inline{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.add-person-inline input{flex:1}.persons-scroll-list{flex:1;overflow-y:auto;padding:8px}.empty-list,.empty-photos,.no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);gap:12px;text-align:center;padding:32px}.empty-list svg,.empty-photos svg,.no-selection svg{opacity:.3}.person-list-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.person-list-item:hover{background:var(--bg-tertiary)}.person-list-item.active{background:var(--primary-light);border:1px solid var(--primary)}.person-avatar{width:40px;height:40px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.person-list-item.active .person-avatar{background:var(--primary);color:#fff}.person-details .person-name{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-count{font-size:.8rem;color:var(--text-muted)}.person-list-item .person-actions{display:flex;gap:4px;opacity:0;transition:var(--transition)}.person-list-item:hover .person-actions{opacity:1}.person-edit-inline{flex:1;display:flex;gap:8px}.person-edit-inline input{flex:1;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem}.person-photos-panel .panel-header{display:flex;align-items:center;justify-content:space-between}.person-photos-panel .panel-header h2{font-size:1.1rem;font-weight:600}.photo-count{font-size:.85rem;color:var(--text-muted)}.person-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;padding:16px;overflow-y:auto}.person-photo-card{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-tertiary)}.person-photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.person-photo-card:hover img{transform:scale(1.05)}.person-photo-card .photo-title{position:absolute;bottom:0;left:0;right:0;padding:8px;background:linear-gradient(transparent,#000c);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 900px){.persons-layout{grid-template-columns:1fr;height:auto}.persons-list-panel,.person-photos-panel{height:400px}}.person-details-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow-y:auto}.person-header{display:flex;align-items:center;gap:16px;padding:20px;border-bottom:1px solid var(--border)}.person-avatar.large{width:64px;height:64px}.person-title{flex:1}.person-title h2{font-size:1.4rem;font-weight:600;margin:0}.person-dates{display:block;font-size:.9rem;color:var(--text-secondary);margin-top:4px}.person-dates .age{margin-left:8px;color:var(--text-muted)}.person-section{border-bottom:1px solid var(--border)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;transition:var(--transition)}.section-header:hover{background:var(--bg-tertiary)}.section-header h3{display:flex;align-items:center;gap:10px;font-size:1rem;font-weight:500;margin:0}.section-content{padding:0 20px 20px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.info-item{display:flex;gap:12px;align-items:flex-start}.info-item.full{grid-column:1 / -1}.info-item svg{color:var(--text-muted);margin-top:2px;flex-shrink:0}.info-item label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.info-item span{display:block;color:var(--text-primary)}.info-item .place{font-size:.85rem;color:var(--text-secondary)}.notes-text{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.5}.no-info,.no-relations,.no-photos{color:var(--text-muted);font-size:.9rem;padding:12px 0}.link-btn{background:none;border:none;color:var(--primary);cursor:pointer;padding:0;font-size:inherit}.link-btn:hover{text-decoration:underline}.relations-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.relation-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.relation-item.inverse{background:var(--bg-primary);opacity:.8}.relation-type{font-size:.8rem;color:var(--text-muted);min-width:100px}.relation-name{flex:1;color:var(--primary)}.relation-date{font-size:.8rem;color:var(--text-muted)}.icon-btn.sm{width:24px;height:24px}.section-header-actions{display:flex;align-items:center;gap:12px}.view-toggle{display:flex;background:var(--bg-primary);border-radius:var(--radius-sm);padding:2px;gap:2px}.view-btn{background:transparent;border:none;padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);transition:var(--transition);display:flex;align-items:center;justify-content:center}.view-btn:hover{color:var(--text-primary)}.view-btn.active{background:var(--primary);color:#fff}.grouped-relations{margin-top:16px;display:flex;flex-direction:column;gap:16px}.relation-group{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:12px}.relation-group .group-label{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.group-items{display:flex;flex-wrap:wrap;gap:8px}.relation-item-card{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--border)}.relation-item-card .relation-person{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--primary);cursor:pointer;font-size:.9rem;padding:0}.relation-item-card .relation-person:hover{text-decoration:underline}.relation-item-card .remove-btn{background:none;border:none;color:var(--error);cursor:pointer;padding:4px;opacity:.6;transition:var(--transition);display:flex;align-items:center}.relation-item-card .remove-btn:hover{opacity:1}.family-tree{margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:0;padding:24px;background:var(--bg-tertiary);border-radius:var(--radius-md);overflow-x:auto;min-height:300px}.empty-tree{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-muted);text-align:center;gap:8px}.empty-tree .hint{font-size:.85rem;opacity:.7}.tree-level{display:flex;flex-direction:column;align-items:center;width:100%;position:relative}.tree-row{display:flex;justify-content:center;gap:24px;flex-wrap:nowrap;padding:8px 0}.tree-row.with-siblings{align-items:center;gap:16px}.tree-connector{width:2px;height:24px;background:var(--primary);opacity:.5}.tree-connector.vertical-down{margin:0 auto}.tree-node{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.node-content{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 16px;background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);min-width:120px;max-width:160px;text-align:center;color:var(--text-primary)}.node-content:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--primary-rgb),.2)}.node-content.selected{background:var(--primary);border-color:var(--primary);color:#fff;cursor:default;min-width:140px}.node-content.selected:hover{transform:none;box-shadow:none}.node-content.small{padding:8px 12px;min-width:100px;max-width:140px;font-size:.85rem}.node-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-tertiary);border-radius:50%;flex-shrink:0}.node-content.selected .node-icon{background:#fff3}.node-name{font-weight:500;font-size:.9rem;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;color:var(--text-primary)}.node-type{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.node-content.selected .node-name{color:#fff}.node-content.selected .node-type{color:#ffffffb3}.node-date{font-size:.75rem;color:var(--text-muted)}.parents-level{margin-bottom:8px}.parents-level .tree-row{gap:40px}.parent-node .node-content{border-color:rgba(var(--primary-rgb),.6);background:var(--bg-secondary)}.parent-node .node-content:hover{border-color:var(--primary)}.siblings-group{display:flex;align-items:center;gap:8px;position:relative;flex-wrap:nowrap}.sibling-node .node-content{background:var(--bg-tertiary);border-style:dashed;border-color:var(--text-muted)}.sibling-node .node-content:hover{border-style:solid}.sibling-connector{width:16px;height:2px;background:var(--border);flex-shrink:0}.current-group{display:flex;align-items:center;gap:0;flex-shrink:0}.current-level{margin:8px 0}.spouse-connector{display:flex;align-items:center;justify-content:center;width:36px;height:2px;background:#e74c3c;position:relative;flex-shrink:0}.spouse-connector svg{position:absolute;color:#e74c3c;background:var(--bg-tertiary);padding:2px;border-radius:50%}.spouse-node .node-content{border-color:#e74c3c}.spouse-node .node-content:hover{border-color:#c0392b}.children-level{margin-top:8px}.children-level .tree-row{gap:16px}.child-node{position:relative}.child-node .node-content{border-color:rgba(var(--primary-rgb),.4)}.sibling-line{position:absolute;top:-10px;left:-25px;width:50px;height:2px;background:var(--border)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.1rem;font-weight:600;margin:0}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border)}.person-edit-modal .form-row,.relation-modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.modal .form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:0}.modal .form-group label{font-size:.875rem;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.modal .form-group input[type=text],.modal .form-group input[type=date],.modal .form-group select,.modal .form-group textarea{padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;font-family:inherit;outline:none;transition:var(--transition);width:100%}.modal .form-group input[type=date]{color-scheme:dark}.modal .form-group input:focus,.modal .form-group select:focus,.modal .form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #b8860b26}.modal .form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.modal .form-group textarea{resize:vertical;min-height:60px}.modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 480px){.modal .form-row{grid-template-columns:1fr}}.face-selector-container{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow:hidden}.face-selector-wrapper{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:var(--radius-sm);overflow:hidden;cursor:crosshair;-webkit-user-select:none;user-select:none}.face-image-wrapper{position:relative;display:inline-block}.face-image-wrapper img{display:block;max-width:100%;max-height:calc(100vh - 350px);pointer-events:auto;transition:opacity .3s ease}.face-image-wrapper img.switching{opacity:.7}.face-box{position:absolute;border:2px solid var(--primary);background:#b8860b1a;border-radius:4px;cursor:pointer;transition:all .15s ease}.face-box:hover{border-color:var(--primary-hover);background:#b8860b33}.face-box.selected{border-color:var(--warning);background:#f59e0b33;border-width:3px}.face-box.confirmed{border-color:var(--success);background:#22c55e1a}.face-box.drawing{border-style:dashed;pointer-events:none}.face-box.dragging{border-color:var(--secondary);background:#8b45134d;border-width:3px;box-shadow:0 4px 12px #8b451366}.restored-notice{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;margin-top:16px;background:linear-gradient(135deg,#b8860b1f,#8b451314);border:1px solid rgba(184,134,11,.3);border-radius:var(--radius);color:var(--primary);font-size:.9rem;font-weight:500;animation:fadeIn .3s ease}.restored-notice svg{flex-shrink:0;animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.face-label{position:absolute;bottom:-24px;left:50%;transform:translate(-50%);padding:2px 8px;background:#000c;border:1px solid var(--border);border-radius:4px;font-size:.75rem;white-space:nowrap;z-index:10;opacity:0;transition:opacity .2s ease;pointer-events:none;color:#fff}.face-label.visible,.face-box:hover .face-label{opacity:1}.face-actions{position:absolute;top:-32px;left:50%;transform:translate(-50%);display:flex;gap:4px;padding:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.face-action-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;border-radius:4px;transition:var(--transition)}.face-action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.face-action-btn.edit:hover{color:var(--primary)}.face-action-btn.delete:hover{color:var(--danger)}.face-selector-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.toggle-boxes-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.toggle-boxes-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.toggle-boxes-btn.active{background:var(--primary-muted);color:var(--primary);border-color:var(--primary)}.face-selector-help{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.85rem;color:var(--text-secondary)}.face-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000}.face-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:100%;max-width:400px}.face-modal.person-search-modal{max-width:480px;min-height:300px}.face-modal h3{margin-bottom:16px}.face-modal .search-input-wrapper{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm)}.face-modal .search-input-wrapper input{flex:1;background:none;border:none;color:var(--text-primary);font-size:1rem;outline:none}.face-modal .search-input-wrapper svg{color:var(--text-muted);flex-shrink:0}.face-modal .clear-search{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center}.face-modal .clear-search:hover{color:var(--text-primary)}.face-modal .search-results{margin-top:12px;max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.face-modal .search-result-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .2s;border-bottom:1px solid var(--border)}.face-modal .search-result-item:last-child{border-bottom:none}.face-modal .search-result-item:hover{background:var(--bg-tertiary)}.face-modal .search-result-item.selected{background:#8b5cf626;border-color:#8b5cf64d}.face-modal .result-avatar{width:40px;height:40px;background:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.face-modal .result-avatar svg{color:var(--text-muted)}.face-modal .result-info{flex:1;min-width:0}.face-modal .result-name{display:block;font-weight:500;color:var(--text-primary);margin-bottom:2px}.face-modal .result-details{display:block;font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.face-modal .result-check{color:var(--primary);flex-shrink:0}.face-modal .no-results{padding:20px;text-align:center;color:var(--text-muted)}.face-modal .create-new-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:var(--bg-tertiary);border:none;border-top:1px solid var(--border);color:var(--primary);cursor:pointer;font-size:.9rem;transition:background .2s}.face-modal .create-new-btn:hover{background:#8b5cf61a}.face-modal .search-hint{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:var(--text-muted);text-align:center}.face-modal .search-hint svg{opacity:.4}.face-modal .create-new-form{margin-top:16px}.face-modal .back-to-search{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.9rem;padding:0;margin-bottom:16px}.face-modal .back-to-search:hover{text-decoration:underline}.face-modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.face-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.metadata-modal.large{max-width:1100px;max-height:90vh}.metadata-layout{display:grid;grid-template-columns:1fr 400px;gap:24px;padding:0 24px 24px;max-height:calc(90vh - 120px);overflow:hidden}.metadata-image-section{display:flex;flex-direction:column;gap:12px;overflow:auto}.metadata-form-section{display:flex;flex-direction:column;overflow:hidden;border-left:1px solid var(--border);padding-left:24px}.metadata-form-section .modal-tabs{padding:0;margin-bottom:16px}.metadata-form-section .modal-content{padding:0;overflow-y:auto;flex:1}.side-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;align-items:center}.version-toggle{display:flex;position:relative;background:var(--bg-tertiary);padding:4px;border-radius:50px;border:1px solid var(--border);box-shadow:inset 0 2px 4px #0000001a}.version-toggle .side-btn{position:relative;z-index:1;flex:1;padding:10px 20px;background:transparent;border:none;border-radius:50px;color:var(--text-secondary);font-weight:500;cursor:pointer;transition:color .3s ease}.version-toggle .side-btn:hover{color:var(--text-primary)}.version-toggle .side-btn.active{color:#1a1a1a;background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 2px 8px #b8860b66;font-weight:600}.version-toggle .side-btn svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.side-toggle{display:flex;gap:8px}.side-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.side-btn:hover{color:var(--text-primary);border-color:var(--primary);background:var(--primary-light)}.side-btn.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:600}.image-actions{display:flex;justify-content:center;padding-top:8px}.tab-intro{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.persons-list.compact .person-item{padding:8px 12px}@media (max-width: 900px){.metadata-modal.large{max-width:100%;border-radius:0}.metadata-layout{grid-template-columns:1fr}.metadata-form-section{border-left:none;border-top:1px solid var(--border);padding-left:0;padding-top:16px}}.editor-page{padding-bottom:40px}.editor-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-secondary)}.info-layout{display:grid;grid-template-columns:1fr 480px;gap:32px;margin-top:24px;max-height:calc(100vh - 180px);overflow:hidden}.info-image-section{display:flex;flex-direction:column;gap:16px;max-height:100%;overflow:hidden}.side-controls{display:flex;justify-content:space-between;align-items:center}.add-verso{border-style:dashed!important}.info-form-section{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border);display:flex;flex-direction:column;max-height:calc(100vh - 200px);overflow:hidden}.info-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 16px}.tab-btn{display:flex;align-items:center;gap:8px;padding:16px 20px;background:none;border:none;color:var(--text-secondary);font-size:.95rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:var(--transition)}.tab-btn:hover{color:var(--text-primary)}.info-tab-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:24px;max-width:100%}.tab-hint{color:var(--text-secondary);font-size:.9rem;margin-bottom:20px;line-height:1.5}.details-form{display:flex;flex-direction:column;gap:4px}.details-form .form-group{margin-bottom:16px}.details-form label{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-secondary);margin-bottom:6px}.details-form input,.details-form textarea{width:100%;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;transition:var(--transition)}.details-form input:focus,.details-form textarea:focus{outline:none;border-color:var(--primary)}.details-form textarea{resize:vertical;font-family:inherit}.description-group{flex:1}.description-textarea{min-height:120px!important;resize:vertical;line-height:1.6}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.persons-tab .empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.persons-tab .empty-state svg{opacity:.5;margin-bottom:12px}.person-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border);flex-wrap:wrap}.person-item.confirmed{border-color:var(--success);background:#22c55e0d}.person-index{width:24px;height:24px;background:var(--primary-light);color:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;flex-shrink:0}.person-info{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.person-name{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.confirmed-badge{color:var(--success);font-size:.8rem}.person-edit{flex:1;display:flex;flex-direction:column;gap:6px;width:100%}.person-edit select,.person-edit input{width:100%;padding:8px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.85rem}.person-edit-actions{display:flex;gap:6px;justify-content:flex-end}.person-actions{display:flex;gap:4px;flex-shrink:0}.icon-btn{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.icon-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.icon-btn.success{color:var(--success);border-color:var(--success)}.social-tab{padding:0}.social-tab .loading-state{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-secondary);padding:40px 0}.social-content{display:flex;flex-direction:column;gap:20px}.like-section{padding-bottom:20px;border-bottom:1px solid var(--border)}.like-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;background:var(--bg-secondary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;color:var(--text-secondary);font-size:.95rem;font-weight:600}.like-btn:hover{border-color:var(--primary);color:var(--primary);background:rgba(var(--primary-rgb),.05);transform:translateY(-1px)}.like-btn.liked{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#f87171;color:#dc2626}.like-btn.liked:hover{background:linear-gradient(135deg,#fee2e2,#fecaca);transform:translateY(-1px)}.comments-section{display:flex;flex-direction:column;gap:16px}.comments-section h4{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0}.comment-form{display:flex;gap:10px;align-items:center}.comment-form input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;transition:all .2s}.comment-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.comment-form input::placeholder{color:var(--text-muted)}.comment-form button{padding:12px 16px;border-radius:10px;flex-shrink:0}.comments-list{display:flex;flex-direction:column;gap:10px;max-height:350px;overflow-y:auto;padding-right:4px}.comments-list::-webkit-scrollbar{width:4px}.comments-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.comment-item{display:flex;gap:12px;padding:14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;position:relative;transition:all .2s}.comment-item:hover{background:var(--bg-tertiary);border-color:var(--primary-light)}.comment-avatar{flex-shrink:0;width:38px;height:38px}.comment-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid var(--bg-tertiary)}.comment-avatar .avatar-placeholder{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;border:2px solid var(--bg-tertiary)}.comment-content{flex:1;min-width:0;padding-right:24px}.comment-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}.comment-author{font-weight:600;font-size:.85rem;color:var(--text-primary)}.comment-text{color:var(--text-secondary);font-size:.9rem;line-height:1.5;word-wrap:break-word;margin:0}.comment-delete{position:absolute;top:50%;right:10px;transform:translateY(-50%);padding:6px;background:var(--bg-tertiary);border:none;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .2s;border-radius:6px}.comment-item:hover .comment-delete{opacity:1}.comment-delete:hover{background:#ef444426;color:#ef4444}.empty-comments{text-align:center;padding:40px 20px;color:var(--text-secondary)}.empty-comments svg{opacity:.4;margin-bottom:12px;color:var(--text-muted)}.empty-comments p{margin:0;font-size:.95rem}.empty-comments .hint{font-size:.85rem;color:var(--text-muted);margin-top:6px}.ai-tab .empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.ai-tab .empty-state svg{opacity:.5;margin-bottom:12px}.ai-results{display:flex;flex-direction:column;gap:20px}.ai-item{padding-bottom:16px;border-bottom:1px solid var(--border)}.ai-item:last-of-type{border-bottom:none}.ai-item label{display:block;font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.ai-item p{color:var(--text-primary);line-height:1.6}.clues-list{margin-top:8px;padding-left:20px;color:var(--text-secondary);font-size:.9rem}.clues-list li{margin-bottom:4px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{padding:4px 12px;background:var(--primary-light);color:var(--primary);border-radius:20px;font-size:.85rem}.enhance-content{display:grid;grid-template-columns:1fr 380px;gap:32px;margin-top:24px}.preview-panel{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border);padding:24px;display:flex;align-items:center;justify-content:center}.preview-panel img{max-width:100%;max-height:70vh;border-radius:var(--radius)}.options-panel{display:flex;flex-direction:column;gap:16px}.option-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.option-header{display:flex;align-items:center;gap:12px;font-weight:500;cursor:pointer}.option-header input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.option-sub{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.radio-option{display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--text-secondary)}.radio-option input[type=radio]{accent-color:var(--primary)}.radio-option:has(input:checked){color:var(--text-primary)}.option-desc{font-size:.85rem;color:var(--text-secondary);margin-top:4px}.model-select{width:100%;padding:10px 12px;margin-top:8px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem}.processing-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.processing-modal{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:48px;text-align:center}.processing-modal h3{margin-top:20px;margin-bottom:8px}.processing-modal p{color:var(--text-secondary)}.result-content{margin-top:24px}.comparison-view{display:grid;grid-template-columns:1fr 1fr;gap:24px}.comparison-image{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border);padding:24px;position:relative}.comparison-label{position:absolute;top:12px;left:12px;padding:6px 14px;background:#000000b3;border-radius:20px;font-size:.8rem;font-weight:500}.comparison-image img{width:100%;border-radius:var(--radius)}.result-info{display:flex;justify-content:center;gap:32px;margin-top:24px;color:var(--text-secondary)}.credits-badge{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f59e0b1a;border-radius:var(--radius-sm);color:var(--warning);font-weight:500}@media (max-width: 1100px){.info-layout,.enhance-content{grid-template-columns:1fr}.info-form-section{max-height:none}}@media (max-width: 768px){.comparison-view{grid-template-columns:1fr}.page-header{flex-wrap:wrap;gap:12px}.header-actions{width:100%;justify-content:flex-end}}.btn-sm{padding:6px 12px;font-size:.85rem}.credits-page{padding:32px 24px;max-width:1200px;margin:0 auto}.credits-page h1{text-align:center;font-size:2rem;margin-bottom:8px}.credits-balance{text-align:center;margin-bottom:48px}.balance-card{display:inline-flex;align-items:center;gap:20px;padding:28px 48px;background:linear-gradient(135deg,var(--primary) 0%,#d4a017 100%);border-radius:var(--radius-xl);color:#1a1a1a;box-shadow:0 4px 20px #b8860b4d,inset 0 1px #fff3;position:relative;overflow:hidden}.balance-card:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 60%);pointer-events:none}.balance-card svg{width:48px;height:48px;opacity:.9}.balance-info{display:flex;flex-direction:column;text-align:left}.balance-label{font-size:.85rem;opacity:.8;font-weight:500}.balance-amount{font-size:2.5rem;font-weight:800;line-height:1.1}.balance-hint{margin-top:16px;color:var(--text-secondary);font-size:.9rem}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-bottom:48px}.package-card{position:relative;background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-xl);padding:32px 24px;text-align:center;transition:all .3s ease}.package-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px #b8860b26;border-color:var(--primary)}.package-card.popular{border-color:var(--primary);background:linear-gradient(180deg,rgba(184,134,11,.05) 0%,transparent 100%);transform:scale(1.02)}.package-card.popular:hover{transform:scale(1.02) translateY(-8px)}.popular-badge{position:absolute;top:-14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:8px 20px;background:linear-gradient(135deg,var(--primary) 0%,#d4a017 100%);color:#1a1a1a;font-size:.8rem;font-weight:700;border-radius:24px;white-space:nowrap;box-shadow:0 4px 12px #b8860b4d}.package-icon{margin-bottom:20px;display:flex;justify-content:center}.package-icon svg{width:40px;height:40px}.package-name{font-size:1.5rem;font-weight:700;margin-bottom:8px;color:var(--text-primary)}.package-price{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.price-amount{font-size:2.5rem;font-weight:800;color:var(--primary);line-height:1}.price-unit{display:block;font-size:.85rem;color:var(--text-muted);margin-top:8px}.package-features{list-style:none;padding:0;margin:0 0 28px;text-align:left}.package-features li{display:flex;align-items:center;gap:10px;padding:10px 0;color:var(--text-secondary);font-size:.9rem;border-bottom:1px solid var(--border)}.package-features li:last-child{border-bottom:none}.package-features li svg{color:var(--success);flex-shrink:0}.package-btn{width:100%;padding:14px 24px!important;font-weight:600;font-size:1rem}.free-credits-info{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius)}.free-credits-info svg{color:var(--warning);flex-shrink:0}.free-credits-info h4{margin:0 0 4px;font-size:1rem}.free-credits-info p{margin:0;font-size:.9rem;color:var(--text-secondary)}.history-modal{max-width:560px;width:100%;padding:0;overflow:hidden}.history-modal .modal-header{background:linear-gradient(135deg,var(--primary) 0%,#d4a017 100%);color:#1a1a1a;padding:20px 24px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin:0}.history-modal .modal-header h2{display:flex;align-items:center;gap:10px;font-size:1.2rem;margin:0}.history-modal .modal-header .btn-ghost{color:#1a1a1a}.history-modal .modal-header .btn-ghost:hover{background:#0000001a}.history-list{max-height:450px;overflow-y:auto;padding:16px}.history-item{display:flex;align-items:center;gap:16px;padding:16px;margin-bottom:8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border-left:3px solid transparent;transition:all .2s ease}.history-item:hover{background:var(--bg-secondary)}.history-item:last-child{margin-bottom:0}.history-item.credit{border-left-color:var(--success)}.history-item.debit{border-left-color:var(--danger)}.history-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.history-item.credit .history-icon{background:linear-gradient(135deg,#22c55e33,#22c55e1a);color:var(--success)}.history-item.debit .history-icon{background:linear-gradient(135deg,#ef444433,#ef44441a);color:var(--danger)}.history-details{flex:1;min-width:0}.history-description{display:block;font-size:.95rem;font-weight:500;color:var(--text-primary);margin-bottom:4px}.history-date{font-size:.8rem;color:var(--text-muted)}.history-amount{font-size:1.25rem;font-weight:700;padding:6px 12px;border-radius:var(--radius-sm)}.history-amount.positive{color:var(--success);background:#22c55e1a}.history-amount.negative{color:var(--danger);background:#ef44441a}.credits-display.clickable{cursor:pointer;text-decoration:none;transition:var(--transition)}.credits-display.clickable:hover{background:var(--bg-tertiary);transform:translateY(-2px)}.credits-add{margin-left:auto;opacity:.6;transition:var(--transition)}.credits-display.clickable:hover .credits-add{opacity:1;color:var(--primary)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px 20px;color:var(--text-secondary)}@media (max-width: 768px){.packages-grid{grid-template-columns:1fr}.balance-card{padding:20px 24px}.balance-amount{font-size:1.5rem}}.admin-page{padding:24px;max-width:1400px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.admin-header h1{display:flex;align-items:center;gap:12px;font-size:1.75rem}.admin-tabs{display:flex;gap:8px}.admin-tabs button{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.admin-tabs button:hover{background:var(--bg-elevated);color:var(--text-primary)}.admin-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.error-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);color:var(--danger);margin-bottom:24px}.error-banner button{margin-left:auto;background:none;border:none;color:var(--danger);cursor:pointer;padding:4px}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-secondary)}.access-denied h1{font-size:1.5rem;color:var(--danger)}.dashboard-view{display:flex;flex-direction:column;gap:32px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.stat-card{display:flex;align-items:center;gap:16px;padding:24px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.stat-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-icon.users{background:#b8860b33;color:var(--primary)}.stat-icon.photos{background:#3b82f633;color:var(--info)}.stat-icon.processed{background:#22c55e33;color:var(--success)}.stat-icon.credits{background:#f59e0b33;color:var(--warning)}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:1.75rem;font-weight:700}.stat-label{font-size:.9rem;color:var(--text-secondary)}.dashboard-sections{display:grid;grid-template-columns:1fr 2fr;gap:24px;margin-top:24px}.dashboard-sections .section,.dashboard-sections .dashboard-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.dashboard-sections .section h3{margin-bottom:16px;font-size:1.1rem}.notifications-section .section-header h2{display:flex;align-items:center;gap:10px}.notif-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:var(--danger);color:#fff;font-size:.75rem;font-weight:600;border-radius:11px}.notifications-list{display:flex;flex-direction:column;gap:8px}.notification-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-tertiary);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;border-left:3px solid transparent}.notification-item:hover{background:var(--bg-elevated)}.notification-item.unread{background:var(--primary-light);border-left-color:var(--primary)}.notif-icon{width:36px;height:36px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-icon .text-danger{color:var(--danger)}.notif-icon .text-primary{color:var(--primary)}.notif-content{flex:1;min-width:0}.notif-message{font-size:.9rem;color:var(--text-primary);margin:0 0 4px;line-height:1.4}.notif-time{font-size:.75rem;color:var(--text-muted)}.notif-delete{opacity:0;padding:6px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s ease}.notification-item:hover .notif-delete{opacity:1}.notif-delete:hover{background:var(--danger-light);color:var(--danger)}.empty-state.small{padding:32px 16px}.empty-state.small svg{width:32px;height:32px;margin-bottom:8px}.empty-state .hint{font-size:.8rem;color:var(--text-muted);margin-top:4px}.photos-section{grid-column:span 1}.recent-list{display:flex;flex-direction:column;gap:8px}.recent-item{display:flex;align-items:center;gap:12px;padding:10px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.9rem}.recent-item .name{font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-item .email,.recent-item .user{color:var(--text-secondary);font-size:.85rem}.recent-item .date{color:var(--text-muted);font-size:.8rem}.recent-item .status{padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:500}.recent-item .status[data-status=pending]{background:#f59e0b33;color:var(--warning)}.recent-item .status[data-status=completed]{background:#22c55e33;color:var(--success)}.recent-item .status[data-status=processing]{background:#b8860b33;color:var(--primary)}.users-view{display:flex;flex-direction:column;gap:20px}.users-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:280px}.search-box input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.95rem}.toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}.btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:var(--transition);font-size:.9rem}.btn-secondary:hover{background:var(--bg-elevated)}.btn-primary{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:var(--transition);font-size:.9rem}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:var(--transition);font-size:.9rem}.btn-danger:hover{background:#dc2626}.users-table-container{overflow-x:auto;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border)}.users-table th{background:var(--bg-tertiary);font-weight:600;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.users-table th:hover{color:var(--text-primary)}.users-table th svg{display:inline-block;vertical-align:middle;margin-left:4px}.users-table tbody tr:hover{background:var(--bg-tertiary)}.user-name{display:flex;align-items:center;gap:10px}.user-name .avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.avatar-placeholder{width:32px;height:32px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem}.credits-badge{display:inline-flex;align-items:center;padding:4px 10px;background:#f59e0b33;border-radius:20px;color:var(--warning);font-weight:600;font-size:.85rem}.credits-used-badge{display:inline-flex;align-items:center;padding:4px 10px;background:#ef444426;border-radius:20px;color:#dc2626;font-weight:500;font-size:.85rem}.email-cell{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table th,.users-table td{white-space:nowrap;padding:10px 12px}.users-table-container{overflow-x:auto}.admin-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#b8860b33;border-radius:20px;color:var(--primary);font-weight:500;font-size:.8rem}.user-badge{display:inline-flex;padding:4px 10px;background:var(--bg-tertiary);border-radius:20px;color:var(--text-secondary);font-size:.8rem}.users-table .actions{display:flex;gap:8px}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.btn-icon:hover{background:var(--bg-elevated);color:var(--text-primary)}.btn-icon.danger:hover{background:#ef444433;color:var(--danger);border-color:var(--danger)}.no-data{text-align:center;padding:40px!important;color:var(--text-secondary)}.users-footer{display:flex;justify-content:space-between;align-items:center;color:var(--text-secondary);font-size:.9rem}.nav-link.admin-link{border-top:1px solid var(--border);padding-top:16px;margin-top:16px}.nav-link.admin-link.active,.nav-link.admin-link:hover{color:var(--warning)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border)}.modal-header h2{display:flex;align-items:center;gap:10px;font-size:1.25rem}.close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.close-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.modal form{padding:20px;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.9rem;color:var(--text-secondary)}.form-group input[type=text],.form-group input[type=email],.form-group input[type=password],.form-group input[type=number]{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;outline:none;transition:var(--transition)}.form-group input:focus{border-color:var(--primary)}.form-group.checkbox label{display:flex;align-items:center;gap:10px;cursor:pointer}.form-group.checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border)}.modal-content{padding:20px}.modal-content p{margin-bottom:12px}.modal-content .warning{color:var(--warning);font-size:.9rem}.confirm-modal{max-width:420px}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--text-secondary)}@media (max-width: 768px){.admin-header{flex-direction:column;align-items:flex-start}.users-toolbar{flex-direction:column;align-items:stretch}.search-box{min-width:auto}.toolbar-actions{justify-content:flex-end}.dashboard-sections{grid-template-columns:1fr}}.community-page{padding:24px;max-width:1400px;margin:0 auto}.community-header{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.community-header .header-content{display:flex;align-items:center;gap:16px}.community-header .header-content svg{color:var(--primary)}.community-header h1{font-size:1.75rem;margin-bottom:4px}.community-header p{color:var(--text-secondary);font-size:.95rem}.photo-count{color:var(--text-muted);font-size:.85rem}.header-actions-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.search-toggle-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition);font-size:.95rem;position:relative}.search-toggle-btn:hover,.search-toggle-btn.active{background:var(--bg-tertiary);border-color:var(--primary);color:var(--primary)}.search-toggle-btn.has-filters .filter-badge{position:absolute;top:-4px;right:-4px;width:10px;height:10px;background:var(--primary);border-radius:50%;border:2px solid var(--bg-primary)}.sort-filters{display:flex;gap:8px}.search-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:24px;overflow:hidden}.author-filter-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:linear-gradient(135deg,#b8860b1a,#8b45131a);border:1px solid rgba(184,134,11,.3);border-radius:var(--radius-md);margin-bottom:24px}.author-filter-info{display:flex;align-items:center;gap:12px;color:var(--text-primary);font-size:.95rem}.author-filter-info svg{color:var(--primary)}.author-filter-info strong{color:var(--primary);font-weight:600}.clear-author-filter{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-size:.9rem}.clear-author-filter:hover{background:var(--bg-secondary);border-color:var(--primary);color:var(--primary)}.search-panel-content{padding:20px}.search-main{margin-bottom:20px}.search-input-wrapper{display:flex;align-items:center;gap:12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px}.search-input-wrapper:focus-within{border-color:var(--primary)}.search-input-wrapper svg{color:var(--text-muted);flex-shrink:0}.search-input-wrapper input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:1rem}.search-input-wrapper input::placeholder{color:var(--text-muted)}.clear-input{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;transition:var(--transition)}.clear-input:hover{color:var(--text-primary)}.search-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:20px}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted);font-weight:500}.filter-group input,.filter-group select{padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:var(--primary)}.period-filter .year-range{display:flex;align-items:center;gap:8px}.period-filter .year-range input{width:80px;text-align:center}.period-filter .year-range span{color:var(--text-muted)}.checkbox-group{justify-content:flex-end}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);transition:var(--transition)}.checkbox-label:hover{border-color:var(--primary)}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.search-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid var(--border)}.active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 20px;background:var(--bg-tertiary);border-top:1px solid var(--border)}.filters-label{font-size:.85rem;color:var(--text-muted);margin-right:8px}.filter-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--primary);color:#fff;border-radius:20px;font-size:.8rem}.filter-tag button{background:none;border:none;color:#fff;cursor:pointer;padding:2px;display:flex;opacity:.7;transition:var(--transition)}.filter-tag button:hover{opacity:1}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:32px;padding:20px 0}.pagination button{display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:var(--transition);font-size:.9rem}.pagination button:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--primary)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination-pages{display:flex;align-items:center;gap:4px}.page-btn{min-width:40px;height:40px;padding:0!important;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.page-btn.active{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}.pagination-ellipsis{padding:0 8px;color:var(--text-muted)}.filter-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition);font-size:.9rem}.filter-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.community-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-bottom:32px}@media (max-width: 1400px){.community-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1000px){.community-grid{grid-template-columns:repeat(2,1fr);gap:20px}}@media (max-width: 600px){.community-grid{grid-template-columns:1fr}}.community-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column}.community-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px #00000040,0 0 0 1px var(--primary);border-color:var(--primary)}.card-image{position:relative;aspect-ratio:4 / 5;overflow:hidden;background:var(--bg-tertiary);max-width:100%}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4,0,.2,1);max-width:100%}.community-card:hover .card-image img{transform:scale(1.08)}.card-overlay{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.4) 60%,transparent 100%);display:flex;gap:16px;opacity:0;transition:opacity .3s ease}.community-card:hover .card-overlay{opacity:1}.card-overlay .stat{display:flex;align-items:center;gap:6px;font-size:.9rem;color:#fff}.card-info{padding:14px 16px;background:var(--surface);flex:1;display:flex;flex-direction:column}.card-info h3{font-size:.95rem;font-weight:600;margin-bottom:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.card-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto}.card-meta .author{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-secondary);flex-shrink:0;background:none;border:none;padding:0;cursor:default}.card-meta .author.clickable{cursor:pointer;transition:all .2s ease}.card-meta .author.clickable:hover{color:var(--primary)}.card-meta .author.clickable:hover .author-avatar{transform:scale(1.1);box-shadow:0 3px 10px #b8860b66}.author-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,#d4a017 100%);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#fff;box-shadow:0 2px 6px #b8860b40}.author-avatar.large{width:48px;height:48px;font-size:1.25rem}.card-meta .period{font-size:.7rem;color:var(--text-muted);background:var(--bg-tertiary);padding:4px 8px;border-radius:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.card-actions{padding:10px 16px 12px;display:flex;justify-content:space-between;align-items:center;background:var(--surface);border-top:1px solid var(--border)}.card-stats{display:flex;align-items:center;gap:12px}.card-stats .stat,.card-stats .stat-btn{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--text-secondary)}.card-stats .stat-btn{background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:12px;transition:all .2s ease}.card-stats .stat-btn:hover{background:#ef44441a;color:#ef4444}.card-stats .stat-btn.liked{color:#ef4444}.card-stats .stat svg,.card-stats .stat-btn svg{opacity:.7}.card-stats .stat-btn.liked svg{opacity:1}.like-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:var(--bg);border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.like-btn:hover{background:#ef444426;color:#ef4444;border-color:#ef444466;transform:scale(1.08)}.like-btn.liked{background:#ef444433;color:#ef4444;border-color:#ef444480}.like-btn.liked svg{fill:currentColor}.like-btn:disabled{opacity:.5;cursor:not-allowed}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px;color:var(--text-secondary);text-align:center}.empty-state svg{opacity:.5}.empty-state h2{color:var(--text-primary);font-size:1.5rem}.pagination{display:flex;justify-content:center;align-items:center;gap:16px}.pagination button{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:var(--transition)}.pagination button:hover:not(:disabled){background:var(--bg-tertiary)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{color:var(--text-secondary);font-size:.9rem}.photo-modal{padding:0}.photo-detail-modal{max-width:1200px;max-height:95vh;width:95%;display:flex;flex-direction:column}.modal-close{position:absolute;top:16px;right:16px;z-index:10}.photo-detail-content{display:grid;grid-template-columns:1fr 400px;flex:1;overflow:hidden}.photo-detail-image{background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.photo-detail-image img{max-width:100%;max-height:90vh;object-fit:contain}.photo-detail-sidebar{display:flex;flex-direction:column;border-left:1px solid var(--border);overflow-y:auto}.photo-author{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid var(--border)}.photo-author .author-name{display:block;font-weight:600;background:none;border:none;padding:0;color:inherit;cursor:default;text-align:left;font-size:inherit;font-family:inherit}.photo-author .author-name.clickable{cursor:pointer;transition:all .2s ease}.photo-author .author-name.clickable:hover{color:var(--primary)}.photo-author .publish-date{font-size:.85rem;color:var(--text-secondary)}.photo-metadata{padding:20px;border-bottom:1px solid var(--border)}.photo-metadata h2{font-size:1.25rem;margin-bottom:8px}.photo-metadata .description{color:var(--text-secondary);font-size:.95rem;margin-bottom:16px}.metadata-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.meta-item{display:flex;flex-direction:column;gap:2px}.meta-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.meta-value{font-size:.9rem}.photo-stats{display:flex;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border)}.stat-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.stat-btn:hover,.stat-btn.liked{background:#ef444433;color:var(--danger);border-color:var(--danger)}.stat-btn:disabled{opacity:.5;cursor:not-allowed}.stat-display{display:flex;align-items:center;gap:8px;padding:10px 16px;color:var(--text-secondary)}.comments-section{flex:1;display:flex;flex-direction:column;padding:16px 20px}.comments-section h3{margin-bottom:16px;font-size:1rem}.comments-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;margin-bottom:16px;max-height:300px}.no-comments{color:var(--text-muted);font-size:.9rem;text-align:center;padding:20px}.comment{display:flex;gap:10px;padding:10px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.comment-avatar{width:32px;height:32px;border-radius:50%;background:var(--info);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;flex-shrink:0}.comment-content{flex:1;min-width:0}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.comment-author{font-weight:500;font-size:.9rem}.comment-date{font-size:.75rem;color:var(--text-muted)}.comment-content p{font-size:.9rem;color:var(--text-secondary);word-break:break-word}.delete-comment{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:4px;transition:var(--transition);flex-shrink:0}.delete-comment:hover{background:#ef444433;color:var(--danger)}.comment-form{display:flex;gap:8px}.comment-form input{flex:1;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;outline:none}.comment-form input:focus{border-color:var(--primary)}.comment-form button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--primary);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:var(--transition)}.comment-form button:hover:not(:disabled){background:var(--primary-hover)}.comment-form button:disabled{opacity:.5;cursor:not-allowed}.login-prompt{text-align:center;padding:16px;color:var(--text-secondary);font-size:.9rem}.login-prompt a{color:var(--primary);text-decoration:none}.login-prompt a:hover{text-decoration:underline}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.publish-badge{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:4px;padding:4px 8px;background:#22c55ee6;border-radius:4px;font-size:.75rem;font-weight:500;color:#fff}@media (max-width: 900px){.photo-detail-content{grid-template-columns:1fr}.photo-detail-image{max-height:50vh}.photo-detail-sidebar{border-left:none;border-top:1px solid var(--border)}}@media (max-width: 768px){.community-header{flex-direction:column}.sort-filters{width:100%;display:flex;flex-direction:column;gap:8px}.filter-btn{width:100%;justify-content:center}.community-grid{grid-template-columns:1fr}}.expert-analysis{padding:0!important}.expert-analysis .ai-results{display:flex;flex-direction:column;gap:0}.ai-suggestion-card{padding:16px;border-bottom:1px solid var(--border)}.ai-suggestion-card .suggestion-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ai-suggestion-card .suggestion-header label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ai-suggestion-card .has-user-value{font-size:.7rem;color:var(--warning);background:#f59e0b1a;padding:2px 8px;border-radius:4px}.ai-suggestion-card .suggestion-content{margin-bottom:8px}.ai-suggestion-card .suggestion-value{font-size:1rem;color:var(--text-primary);font-weight:500}.ai-suggestion-card .suggestion-text{font-size:.95rem;line-height:1.6;color:var(--text-primary)}.ai-suggestion-card .apply-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;background:var(--primary-light);color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.ai-suggestion-card .apply-btn:hover{background:var(--primary);color:#fff}.ai-suggestion-card .already-applied{font-size:.8rem;color:var(--success)}.ai-section{padding:16px;border-bottom:1px solid var(--border)}.ai-section h4{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.ai-section h4 svg{color:var(--primary)}.ai-section p{color:var(--text-secondary);line-height:1.7;font-size:.9rem;margin-bottom:8px}.ai-section label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;display:block;margin-bottom:4px}.ai-section ul{padding-left:20px;color:var(--text-secondary);font-size:.9rem}.ai-section li{margin-bottom:6px;line-height:1.5}.expert-section{background:linear-gradient(135deg,rgba(184,134,11,.05) 0%,transparent 100%)}.expert-text{font-size:.95rem;line-height:1.8;color:var(--text-primary);white-space:pre-line;padding:12px;background:var(--bg-secondary);border-radius:var(--radius-sm);max-height:300px;overflow-y:auto}.dating-info{display:flex;flex-direction:column;gap:12px}.dating-period{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dating-period strong{font-size:1.1rem;color:var(--text-primary)}.dating-period .date-range{color:var(--text-secondary);font-size:.9rem}.dating-period .confidence{font-size:.75rem;padding:2px 8px;border-radius:4px;background:var(--bg-tertiary)}.dating-period .confidence.haute{color:var(--success)}.dating-period .confidence.moyenne{color:var(--warning)}.dating-period .confidence.faible{color:var(--text-muted)}.dating-clues{background:var(--bg-secondary);padding:12px;border-radius:var(--radius-sm)}.dating-clues label{margin-bottom:8px}.dating-clues ul{padding-left:20px}.military-section{background:linear-gradient(135deg,rgba(245,158,11,.05) 0%,transparent 100%)}.military-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}.military-item{background:var(--bg-secondary);padding:10px 12px;border-radius:var(--radius-sm)}.military-item.full{grid-column:span 2}.military-item label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;display:block;margin-bottom:4px}.military-item span{font-size:.9rem;color:var(--text-primary);font-weight:500}.military-context,.military-details{padding:12px;background:var(--bg-secondary);border-radius:var(--radius-sm);margin-top:8px}.military-context label{margin-bottom:6px}.military-details p{font-style:italic}.location-suggestion{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);margin:8px 0}.location-suggestion .apply-btn.small{padding:4px 10px;font-size:.75rem;margin-left:auto}.ai-section .apply-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;background:var(--primary-light);color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);margin-top:8px}.ai-section .apply-btn:hover{background:var(--primary);color:#fff}.ai-section .apply-btn.applied,.location-suggestion .apply-btn.applied{background:var(--success);color:#fff;border-color:var(--success);cursor:default}.ai-section .apply-btn.applied:hover,.location-suggestion .apply-btn.applied:hover{background:var(--success);opacity:.9}.period-name{font-size:1rem!important;font-weight:600!important;color:var(--text-primary)!important}.events-list{margin-top:16px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}.events-list label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px;font-weight:600}.events-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.events-list li{position:relative;padding:10px 12px 10px 32px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.9rem;line-height:1.4}.events-list li:before{content:"•";position:absolute;left:14px;top:10px;color:var(--primary);font-weight:700}.technique-grid{display:flex;flex-direction:column;gap:10px}.technique-grid>div{background:var(--bg-secondary);padding:12px 14px;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:4px}.technique-grid label{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);display:block}.technique-grid>div>span,.technique-grid>div:not(:has(span)){font-size:.9rem;line-height:1.4;word-wrap:break-word}.anecdotes-section{background:linear-gradient(135deg,rgba(34,197,94,.05) 0%,transparent 100%)}.anecdotes-list{padding-left:0;list-style:none}.anecdotes-list li{position:relative;padding-left:24px;margin-bottom:12px}.anecdotes-list li:before{content:"💡";position:absolute;left:0;top:0}.tips-section{background:linear-gradient(135deg,rgba(59,130,246,.05) 0%,transparent 100%)}.tips-list{padding-left:0;list-style:none}.tips-list li{position:relative;padding-left:24px;margin-bottom:10px;color:var(--text-secondary)}.tips-list li:before{content:"→";position:absolute;left:4px;top:0;color:var(--info);font-weight:700}.expert-analysis .empty-state{text-align:center;padding:40px 24px}.expert-analysis .empty-state h3{font-size:1.2rem;margin-bottom:12px;color:var(--text-primary)}.expert-analysis .empty-state p{color:var(--text-secondary);margin-bottom:16px}.expert-analysis .feature-list{text-align:left;list-style:none;padding:0;margin:0 auto 24px;max-width:320px}.expert-analysis .feature-list li{padding:8px 0;color:var(--text-secondary);border-bottom:1px solid var(--border)}.expert-analysis .feature-list li:last-child{border-bottom:none}.ai-section .tags{display:flex;flex-wrap:wrap;gap:8px}.ai-section .tag{padding:8px 14px;background:var(--primary-light);color:var(--primary);border-radius:var(--radius-sm);font-size:.85rem;line-height:1.4;word-break:break-word}.details-form .form-group textarea{min-height:120px;resize:vertical;font-size:.95rem;line-height:1.6}.fullscreen-viewer{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);z-index:9999;display:flex}.fullscreen-content{display:flex;width:100%;height:100%}.fullscreen-close{position:absolute;top:20px;right:20px;z-index:100;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s}.fullscreen-close:hover{background:#000c;transform:scale(1.1)}.fullscreen-image-area{flex:1;display:flex;flex-direction:column;background:#000;position:relative}.image-controls{position:absolute;top:20px;left:20px;z-index:50;display:flex;gap:8px}.control-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#0009;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:#fffc;cursor:pointer;transition:all .2s;font-size:.9rem}.control-btn:hover:not(:disabled){background:#000c;color:#fff;border-color:#fff6}.control-btn:disabled{opacity:.4;cursor:not-allowed}.control-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.controls-separator{width:1px;height:24px;background:#fff3;margin:0 4px}.zoom-level{padding:8px 12px;background:#0009;border-radius:var(--radius-sm);color:#fff;font-size:.85rem;font-weight:500}.fullscreen-image{flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.fullscreen-image.zoomed{cursor:grab}.fullscreen-image.panning{cursor:grabbing}.fullscreen-image img{max-width:100%;max-height:100%;object-fit:contain}.image-with-markers{position:relative;display:inline-block;max-width:100%;max-height:100%;transition:transform .1s ease-out;transform-origin:center center;-webkit-user-select:none;user-select:none}.image-with-markers img{display:block;max-width:100%;max-height:calc(100vh - 100px);object-fit:contain;pointer-events:none}.image-with-markers .person-marker{position:absolute;border:2px solid var(--primary);border-radius:4px;background:#8b5cf626;pointer-events:auto;cursor:pointer;transition:all .2s}.image-with-markers .person-marker:hover{border-color:#fff;background:#8b5cf64d}.image-with-markers .person-marker .person-label{position:absolute;bottom:-30px;left:50%;transform:translate(-50%);background:var(--primary);color:#fff;padding:4px 12px;border-radius:4px;font-size:.8rem;white-space:nowrap;opacity:0;transition:opacity .2s;z-index:10}.image-with-markers .person-marker:hover .person-label{opacity:1}.fullscreen-image.compare-mode{cursor:ew-resize}.compare-container{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.compare-wrapper{position:relative;display:inline-block}.compare-wrapper img{display:block;max-width:calc(100vw - 500px);max-height:calc(100vh - 100px);object-fit:contain}.compare-wrapper .compare-base{position:relative}.compare-wrapper .compare-restored{position:absolute;top:0;left:0;width:100%;height:100%}.compare-slider{position:absolute;top:0;bottom:0;width:4px;background:#fff;transform:translate(-50%);z-index:10;box-shadow:0 0 10px #00000080;cursor:ew-resize;user-select:none;-webkit-user-select:none;touch-action:pan-y}.slider-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#333;box-shadow:0 2px 10px #0000004d;cursor:ew-resize;pointer-events:none}.compare-slider:active,.compare-slider:hover{cursor:ew-resize}.image-compare{user-select:none;-webkit-user-select:none}.image-compare img{user-select:none;-webkit-user-select:none;pointer-events:none}.compare-labels{position:absolute;bottom:20px;left:0;right:0;display:flex;justify-content:space-between;padding:0 20px;pointer-events:none}.compare-labels span{padding:8px 16px;background:#000000b3;color:#fff;border-radius:var(--radius-sm);font-size:.9rem}.persons-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.person-marker{position:absolute;border:2px solid var(--primary);border-radius:4px;background:#8b5cf61a;transition:all .2s}.person-marker:hover{border-color:#fff;background:#8b5cf633}.person-marker .person-label{position:absolute;bottom:-28px;left:50%;transform:translate(-50%);background:var(--primary);color:#fff;padding:4px 10px;border-radius:4px;font-size:.75rem;white-space:nowrap;opacity:0;transition:opacity .2s}.person-marker:hover .person-label{opacity:1}.fullscreen-sidebar{width:420px;background:var(--bg-secondary);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.fullscreen-sidebar .photo-author{padding:20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.fullscreen-sidebar .photo-title{font-size:1.25rem;padding:0 20px;margin-top:16px;margin-bottom:8px}.fullscreen-sidebar .photo-description{padding:0 20px 16px;color:var(--text-secondary);font-size:.95rem;line-height:1.6;border-bottom:1px solid var(--border)}.fullscreen-sidebar .photo-stats{padding:16px 20px;border-bottom:1px solid var(--border)}.sidebar-tabs{display:flex;border-bottom:1px solid var(--border)}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 12px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-size:.85rem}.tab-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.sidebar-content{flex:1;overflow-y:auto}.info-tab{padding:20px}.metadata-section{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.metadata-section .meta-item{display:flex;align-items:center;gap:12px;color:var(--text-secondary);font-size:.9rem}.metadata-section .meta-item svg{color:var(--text-muted);flex-shrink:0}.ai-analysis-section{border-top:1px solid var(--border);padding-top:20px}.ai-analysis-section h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin-bottom:16px;color:var(--primary)}.analysis-block{margin-bottom:20px}.analysis-block h4{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;margin-bottom:8px}.analysis-block p{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.analysis-block.anecdotes ul,.analysis-block.tips ul{list-style:none;padding:0;margin:0}.analysis-block.anecdotes li,.analysis-block.tips li{position:relative;padding:10px 0 10px 20px;border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:.9rem;line-height:1.5}.analysis-block.anecdotes li:before{content:"💡";position:absolute;left:0;top:10px}.analysis-block.tips li:before{content:"📌";position:absolute;left:0;top:10px}.analysis-block li:last-child{border-bottom:none}.persons-tab{padding:20px}.persons-list-detail{display:flex;flex-direction:column;gap:8px}.person-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.person-avatar-small{width:40px;height:40px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.person-item .person-info{flex:1}.person-item .person-name{display:block;font-weight:500}.person-item .person-confirmed{font-size:.8rem;color:var(--success)}.empty-persons{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-muted);text-align:center}.empty-persons svg{opacity:.4}.comments-tab{display:flex;flex-direction:column;height:100%}.comments-tab .comments-list{flex:1;overflow-y:auto;padding:16px 20px}.comments-tab .comment{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.comments-tab .comment:last-child{border-bottom:none}.comments-tab .comment-avatar{width:36px;height:36px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:#fff;flex-shrink:0}.comments-tab .comment-content{flex:1;min-width:0}.comments-tab .comment-header{display:flex;justify-content:space-between;margin-bottom:4px}.comments-tab .comment-author{font-weight:500;font-size:.9rem}.comments-tab .comment-date{font-size:.8rem;color:var(--text-muted)}.comments-tab .comment-content p{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:0}.comments-tab .delete-comment{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;opacity:0;transition:opacity .2s}.comments-tab .comment:hover .delete-comment{opacity:1}.comments-tab .delete-comment:hover{color:var(--danger)}.comments-tab .no-comments{text-align:center;color:var(--text-muted);padding:40px 20px}.comments-tab .comment-form{display:flex;gap:8px;padding:16px 20px;border-top:1px solid var(--border);background:var(--bg-tertiary)}.comments-tab .comment-form input{flex:1;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem}.comments-tab .comment-form input:focus{outline:none;border-color:var(--primary)}.comments-tab .comment-form button{padding:12px 16px;background:var(--primary);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:background .2s}.comments-tab .comment-form button:hover:not(:disabled){background:var(--primary-dark)}.comments-tab .comment-form button:disabled{opacity:.5;cursor:not-allowed}.comments-tab .login-prompt{padding:16px 20px;text-align:center;border-top:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);font-size:.9rem}.comments-tab .login-prompt a{color:var(--primary)}.fullscreen-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:100;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s}.fullscreen-nav:hover{background:#000c;transform:translateY(-50%) scale(1.1)}.fullscreen-nav.prev{left:20px}.fullscreen-nav.next{right:440px}.photo-counter{padding:16px 20px;text-align:center;color:var(--text-muted);font-size:.9rem;border-top:1px solid var(--border);margin-top:auto}.meta-value.enhanced{color:var(--primary);display:flex;align-items:center;gap:6px}.card-overlay .stat.enhanced{color:var(--primary);background:#b8860b33;padding:4px 8px;border-radius:4px}.photo-persons-section{padding:20px;border-bottom:1px solid var(--border)}.photo-persons-section h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin-bottom:16px;color:var(--text-primary)}.photo-persons-section h3 svg{color:var(--primary)}.persons-list{display:flex;flex-direction:column;gap:8px}.person-avatar-mini{width:36px;height:36px;background:linear-gradient(135deg,var(--primary) 0%,#d4a017 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:600;color:#fff;flex-shrink:0}.person-details{flex:1;min-width:0}.person-details .person-name{display:block;font-weight:500;font-size:.9rem}.person-details .person-relation{display:block;font-size:.8rem;color:var(--text-muted)}.person-card-expanded{background:var(--bg-secondary);border-radius:8px;overflow:hidden;margin-bottom:8px}.person-card-expanded .person-header{display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer;transition:background .2s}.person-card-expanded .person-header:hover{background:var(--bg-hover)}.person-card-expanded .person-avatar-small img{width:100%;height:100%;object-fit:cover;border-radius:50%}.person-card-expanded .expand-btn{margin-left:auto;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px}.person-card-expanded .person-details{padding:0 12px 12px;border-top:1px solid var(--border);margin-top:0}.person-card-expanded .detail-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:.85rem;color:var(--text-secondary)}.person-card-expanded .detail-row svg{color:var(--text-muted);flex-shrink:0}.person-card-expanded .person-biography{margin-top:8px;padding:10px;background:var(--bg-tertiary);border-radius:6px;font-size:.85rem;line-height:1.5;color:var(--text-secondary)}.person-card-expanded .person-biography p{margin:0}.empty-comments{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-muted);text-align:center}.empty-comments svg{opacity:.5;margin-bottom:12px}.empty-comments p{font-weight:500;margin-bottom:4px}.empty-comments span{font-size:.85rem}.comment-item{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}.comment-item:last-child{border-bottom:none}.comment-item .comment-avatar{width:32px;height:32px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.comment-item .comment-avatar img{width:100%;height:100%;object-fit:cover}.comment-item .comment-content{flex:1;min-width:0}.comment-item .comment-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.comment-item .comment-author{font-weight:500;font-size:.9rem}.comment-item .comment-date{font-size:.8rem;color:var(--text-muted)}.comment-item .comment-text{margin:0;font-size:.9rem;line-height:1.4}.login-prompt,.no-comment-permission{padding:16px;background:var(--bg-secondary);border-radius:8px;text-align:center;margin-bottom:16px}.login-prompt a{color:var(--primary);font-weight:500}.comment-form .send-btn{background:var(--primary);border:none;border-radius:8px;padding:8px 12px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.comment-form .send-btn:hover:not(:disabled){background:var(--primary-dark)}.comment-form .send-btn:disabled{opacity:.5;cursor:not-allowed}.photo-family-section{padding:20px;border-bottom:1px solid var(--border)}.photo-family-section h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin-bottom:12px;color:var(--text-primary)}.photo-family-section h3 svg{color:var(--primary)}.family-summary{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.shared-page{min-height:100vh;padding-bottom:80px}.shared-header{padding:32px 24px;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-bottom:1px solid var(--border);margin-bottom:24px}.shared-header .header-top{margin-bottom:24px}.shared-header .brand-link{display:inline-flex;align-items:center;gap:10px;color:var(--primary);text-decoration:none;font-size:1.25rem;font-weight:600;transition:all .2s}.shared-header .brand-link:hover{transform:scale(1.02)}.shared-header .brand-link svg{color:var(--primary)}.shared-header .header-main{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}.shared-header .header-title{display:flex;align-items:flex-start;gap:16px}.shared-header .album-color-dot{width:12px;height:12px;border-radius:50%;margin-top:10px;flex-shrink:0}.shared-header h1{font-size:2rem;margin-bottom:4px;color:var(--text-primary)}.shared-header .header-subtitle{color:var(--text-secondary);font-size:1rem;margin-top:4px}.shared-header .header-meta{display:flex;gap:12px;flex-wrap:wrap}.shared-header .meta-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-primary);border:1px solid var(--border);border-radius:20px;font-size:.85rem;color:var(--text-secondary)}.shared-header .meta-badge svg{color:var(--text-muted)}.shared-header .meta-badge.accent{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.shared-header .meta-badge.accent svg{color:var(--primary)}.shared-footer{position:fixed;bottom:0;left:0;right:0;padding:16px 24px;background:var(--bg-secondary);border-top:1px solid var(--border);text-align:center}.shared-footer p{color:var(--text-muted);font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:4px}.shared-footer a{display:inline-flex;align-items:center;gap:4px;color:var(--primary);text-decoration:none;font-weight:500;transition:all .2s}.shared-footer a:hover{text-decoration:underline}.shared-footer a svg{color:var(--primary)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-secondary)}.error-state{color:var(--text-secondary)}.error-state svg{color:var(--text-muted);opacity:.6}@media (max-width: 900px){.fullscreen-content{flex-direction:column}.fullscreen-sidebar{width:100%;max-height:50vh}.fullscreen-image-area{min-height:50vh}.fullscreen-nav.next{right:20px}.shared-header .header-main{flex-direction:column}.shared-header h1{font-size:1.5rem}}.image-editor{background:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden}.image-editor.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:16px;color:var(--text-secondary)}.image-editor .loader-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.editor-header h3{font-size:1.1rem;font-weight:600}.editor-actions{display:flex;gap:8px}.editor-tools-tabs{display:flex;gap:4px;padding:12px 20px;background:var(--bg-primary);border-bottom:1px solid var(--border)}.tool-tab{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:.9rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.tool-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.tool-tab.active{background:var(--primary);color:#fff}.editor-preview{display:flex;justify-content:center;align-items:center;padding:20px;background:var(--bg-primary);min-height:400px;max-height:550px;overflow:auto}.canvas-container{position:relative;display:inline-block;box-shadow:0 4px 20px #0006}.canvas-container canvas{display:block;max-width:100%}.crop-overlay{position:absolute;pointer-events:auto}.crop-grid{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.crop-grid .grid-line{position:absolute;background:#ffffff4d}.crop-grid .grid-line.vertical{width:1px;top:0;bottom:0}.crop-grid .grid-line.horizontal{height:1px;left:0;right:0}.zoom-controls{display:flex;justify-content:center;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.zoom-controls span{font-size:.85rem;color:var(--text-secondary);min-width:50px;text-align:center}.editor-panel{padding:20px;background:var(--bg-secondary)}.adjust-controls{display:flex;flex-direction:column;gap:16px}.adjust-row{display:flex;flex-direction:column;gap:8px}.adjust-row label{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary)}.adjust-row label span{margin-left:auto;color:var(--text-primary);font-weight:500;min-width:50px;text-align:right}.adjust-row input[type=range]{width:100%;height:6px;border-radius:3px;background:var(--bg-tertiary);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.adjust-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;box-shadow:0 2px 6px #0000004d;transition:transform .15s ease}.adjust-row input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.adjust-row input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;border:none}.transform-controls{display:flex;flex-direction:column;gap:20px;align-items:center}.rotation-slider{width:100%;max-width:500px;display:flex;flex-direction:column;gap:12px}.rotation-slider label{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary)}.rotation-slider label span{margin-left:auto;color:var(--text-primary);font-weight:600;font-size:1.1rem;min-width:60px;text-align:right}.rotation-slider input[type=range]{width:100%;height:8px;border-radius:4px;background:linear-gradient(to right,var(--bg-tertiary) 0%,var(--primary) 50%,var(--bg-tertiary) 100%);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.rotation-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary);cursor:pointer;box-shadow:0 2px 8px #0006;transition:transform .15s ease}.rotation-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.rotation-fine-controls{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.rotation-fine-controls .btn{min-width:50px;font-size:.8rem}.transform-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.transform-buttons .btn{min-width:80px}.rotation-info{font-size:.85rem;color:var(--text-muted);padding:8px 16px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.crop-controls{display:flex;flex-direction:column;gap:16px;align-items:center}.aspect-ratio-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.aspect-ratio-buttons .btn{min-width:60px}.crop-actions{display:flex;gap:12px}.crop-hint{font-size:.85rem;color:var(--text-muted);text-align:center}.upload-feature-hint{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:12px 20px;background:var(--primary-light);border:1px solid rgba(184,134,11,.3);border-radius:var(--radius-sm);font-size:.9rem;color:var(--primary)}.editor-page .image-editor{max-width:1000px;margin:0 auto}.albums-page{padding:24px;max-width:1400px;margin:0 auto}.albums-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.albums-page .page-header .header-left{display:flex;align-items:center;gap:12px}.albums-page .page-header h1{display:flex;align-items:center;gap:10px;font-size:1.8rem;margin:0}.albums-page .page-subtitle{color:var(--text-secondary);margin:4px 0 0}.albums-page .header-actions{display:flex;gap:8px}.empty-albums,.empty-album{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 24px;color:var(--text-secondary)}.empty-albums svg,.empty-album svg{opacity:.3;margin-bottom:16px}.empty-albums h3,.empty-album h3{color:var(--text-primary);margin:0 0 8px}.empty-albums p,.empty-album p{margin:0 0 24px}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.album-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s ease;position:relative}.album-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000026;border-color:var(--border-hover)}.album-card.favorite{border-color:var(--warning)}.album-cover{position:relative;aspect-ratio:16/10;overflow:hidden;border-bottom:3px solid currentColor}.album-cover img{width:100%;height:100%;object-fit:cover}.album-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;opacity:.8}.album-overlay{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:linear-gradient(transparent,#000000b3);display:flex;justify-content:flex-end}.photo-count{display:flex;align-items:center;gap:4px;color:#fff;font-size:.85rem;font-weight:500}.album-info{padding:12px 14px}.album-name{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text-primary)}.album-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.album-color-dot.large{width:16px;height:16px}.favorite-star{color:var(--warning);fill:var(--warning)}.album-description{color:var(--text-secondary);font-size:.85rem;margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-actions{display:flex;gap:4px;padding:8px 12px;border-top:1px solid var(--border);background:var(--surface-alt)}.album-actions .icon-btn{padding:6px}.album-actions .icon-btn.danger:hover{color:var(--danger)}.album-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.album-photo-card{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;background:var(--surface);border:1px solid var(--border)}.album-photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.album-photo-card:hover img{transform:scale(1.05)}.album-photo-card .photo-link{display:block;width:100%;height:100%}.remove-photo-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:#000000b3;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,background .2s}.album-photo-card:hover .remove-photo-btn{opacity:1}.remove-photo-btn:hover{background:var(--danger)}.album-modal{width:100%;max-width:420px}.album-modal .form-group{margin-bottom:16px}.album-modal label{display:block;font-weight:500;margin-bottom:6px;color:var(--text-primary)}.album-modal input,.album-modal textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-primary);font-size:.95rem}.album-modal input:focus,.album-modal textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .2s,border-color .2s}.color-option:hover{transform:scale(1.15)}.color-option.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--surface),0 0 0 4px currentColor}.album-photos-modal{width:100%;max-width:800px;max-height:85vh}.album-photos-modal .modal-body{padding:0 20px 20px;overflow-y:auto;max-height:55vh}.selection-hint{padding:12px 0;color:var(--text-secondary);font-size:.9rem;position:sticky;top:0;background:var(--surface);z-index:1}.photo-selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.selectable-photo{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:3px solid transparent;transition:border-color .2s,opacity .2s}.selectable-photo img{width:100%;height:100%;object-fit:cover}.selectable-photo:hover:not(.in-album){border-color:var(--primary-light)}.selectable-photo.selected{border-color:var(--primary)}.selectable-photo.in-album{cursor:default;opacity:.6}.selection-check{position:absolute;top:6px;right:6px;width:24px;height:24px;background:var(--primary);border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center}.already-in-album{position:absolute;bottom:0;left:0;right:0;padding:4px 6px;background:#000000bf;color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center;gap:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:1.2rem}.modal-body{padding:20px;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border);background:var(--surface-alt)}@media (max-width: 768px){.albums-page{padding:16px}.albums-page .page-header{flex-direction:column;gap:16px}.albums-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.album-photos-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.album-photos-modal{max-width:100%}.photo-selection-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}}.albums-tab{padding:8px 0}.albums-tab .tab-hint{margin-bottom:16px;color:var(--text-secondary);font-size:.9rem}.albums-checklist{display:flex;flex-direction:column;gap:8px}.album-checkbox{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.album-checkbox:hover{border-color:var(--border-hover);background:var(--surface-alt)}.album-checkbox.checked{background:var(--primary-light);border-color:var(--primary)}.album-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.album-color-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.album-checkbox .album-label{flex:1;font-weight:500;color:var(--text-primary)}.album-checkbox .album-count{font-size:.85rem;color:var(--text-secondary)}.home-page{min-height:100vh;background:var(--bg);color:var(--text-primary)}.home-header{position:fixed;top:0;left:0;right:0;z-index:100;background:#faf6f1f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.home-header-content{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}.home-header .logo{display:flex;align-items:center;gap:10px;font-size:1.3rem;font-weight:700;color:var(--text-primary)}.home-header .logo-icon{color:var(--primary);width:28px;height:28px}.home-nav{display:flex;gap:32px}.home-nav a{color:var(--text-secondary);text-decoration:none;font-size:.95rem;transition:color .2s}.home-nav a:hover{color:var(--text-primary)}.home-auth-buttons{display:flex;gap:12px}.hero-section{min-height:100vh;display:flex;align-items:center;padding:140px 48px 100px;max-width:1400px;margin:0 auto;gap:80px}.hero-content{flex:1}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--primary-light);border:1px solid rgba(184,134,11,.3);border-radius:50px;font-size:.9rem;color:var(--primary);margin-bottom:32px}.hero-section h1{font-size:4.5rem;font-weight:800;line-height:1.05;margin:0 0 28px;letter-spacing:-.02em}.gradient-text{background:linear-gradient(135deg,var(--primary) 0%,#d4a017 50%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.35rem;color:var(--text-secondary);line-height:1.7;margin-bottom:40px;max-width:560px}.hero-cta{display:flex;gap:20px;margin-bottom:56px}.btn-lg{padding:18px 36px;font-size:1.1rem;font-weight:600}.btn-outline{background:transparent;border:2px solid var(--border);color:var(--text-primary)}.btn-outline:hover{border-color:var(--primary);background:var(--primary-light)}.hero-stats{display:flex;align-items:center;gap:32px}.stat{text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--text-primary)}.stat-label{font-size:.85rem;color:var(--text-secondary)}.stat-divider{width:1px;height:40px;background:var(--border)}.hero-visual{flex:1;display:flex;justify-content:center;align-items:center}.image-compare{position:relative;width:650px;height:500px;border-radius:var(--radius-xl);overflow:hidden;cursor:ew-resize;box-shadow:0 30px 100px #3d2e1f26,0 0 80px #b8860b1a;-webkit-user-select:none;user-select:none}.image-compare:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:calc(var(--radius-xl) + 3px);background:linear-gradient(135deg,var(--primary) 0%,#d4a017 50%,var(--accent) 100%);z-index:-1;opacity:.6}.compare-image{position:absolute;top:0;right:0;bottom:0;left:0}.compare-image img{width:100%;height:100%;object-fit:cover}.compare-image.before img{filter:sepia(.15) contrast(.95)}.compare-slider{position:absolute;top:0;bottom:0;width:4px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;cursor:ew-resize;z-index:10}.slider-line{flex:1;width:3px;background:#fff;box-shadow:0 0 10px #00000080}.slider-handle{width:32px;height:32px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary);box-shadow:0 2px 8px #0000004d;cursor:grab}.slider-handle:active{cursor:grabbing;box-shadow:0 1px 4px #0006}.slider-handle:hover{box-shadow:0 3px 12px #0006}.compare-labels{position:absolute;bottom:20px;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none}.compare-labels span{background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 16px;border-radius:20px;font-size:.85rem;font-weight:600;color:#fff}.label-after{background:linear-gradient(135deg,var(--primary),#d4a017)!important}.compare-hint{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 20px;border-radius:20px;font-size:.8rem;color:#ffffffe6;pointer-events:none;animation:fadeHint 3s ease-in-out forwards;animation-delay:2s}@keyframes fadeHint{0%{opacity:1}to{opacity:0;visibility:hidden}}@media (max-width: 1200px){.image-compare{width:550px;height:420px}.hero-section h1{font-size:3.8rem}}@media (max-width: 900px){.hero-section{flex-direction:column;text-align:center;padding:80px 24px}.hero-section h1{font-size:3rem}.hero-content{max-width:100%}.hero-subtitle{margin-left:auto;margin-right:auto}.hero-cta{justify-content:center}.image-compare{width:100%;max-width:500px;height:380px;margin-top:40px}}@media (max-width: 600px){.image-compare{height:280px;border-radius:var(--radius-lg)}.slider-handle{width:40px;height:40px}.compare-labels span{padding:6px 12px;font-size:.75rem}}.hero-image-container{position:relative}.before-after-demo{display:flex;align-items:center;gap:20px}.before-after-demo.real-photos{gap:16px}.before-after-demo.real-photos .demo-image img{width:280px;height:auto;border-radius:var(--radius-lg);box-shadow:0 8px 32px #0006;transition:transform .3s ease,box-shadow .3s ease}.before-after-demo.real-photos .demo-image.before img{filter:sepia(.1)}.before-after-demo.real-photos .demo-image.after img{box-shadow:0 8px 32px #0006,0 0 40px #b8860b33}.before-after-demo.real-photos .demo-image:hover img{transform:scale(1.02)}.demo-image{position:relative}.demo-label{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:var(--surface);padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;z-index:1}.demo-placeholder{width:180px;height:240px;border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-size:.85rem;overflow:hidden}.demo-placeholder.sepia{background:linear-gradient(135deg,#3d3428,#2a2318);border:2px solid #4a3f2f;color:#a09080}.demo-placeholder.colorized{background:linear-gradient(135deg,var(--primary) 0%,#d4a017 100%);border:2px solid var(--primary);color:#fff}.demo-photo-frame{position:relative;width:140px;height:190px;background:linear-gradient(145deg,#d4c4a8,#c4b498,#b4a488);border-radius:4px;box-shadow:inset 0 0 20px #0003,0 4px 12px #0000004d;overflow:hidden}.demo-photo-frame.restored{background:linear-gradient(145deg,#f0e8d8,#e8dcc8,#d8ccb8);box-shadow:0 4px 20px #b8860b4d,0 0 40px #8b451333}.demo-scratches{position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(45deg,transparent 40%,rgba(0,0,0,.15) 41%,rgba(0,0,0,.15) 42%,transparent 43%),linear-gradient(-30deg,transparent 60%,rgba(0,0,0,.1) 61%,rgba(0,0,0,.1) 62%,transparent 63%),linear-gradient(80deg,transparent 70%,rgba(0,0,0,.12) 71%,rgba(0,0,0,.12) 72%,transparent 73%);pointer-events:none}.demo-stains{position:absolute;top:20px;right:15px;width:40px;height:40px;background:radial-gradient(circle,rgba(80,60,40,.4) 0%,transparent 70%);border-radius:50%}.demo-stains:after{content:"";position:absolute;bottom:-60px;left:-30px;width:30px;height:30px;background:radial-gradient(circle,rgba(60,40,20,.3) 0%,transparent 70%);border-radius:50%}.demo-fold{position:absolute;bottom:30px;left:-10px;width:80px;height:2px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.2),rgba(0,0,0,.3),rgba(0,0,0,.2),transparent);transform:rotate(-15deg)}.demo-portrait{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center}.portrait-head{width:45px;height:55px;background:linear-gradient(145deg,#8a7a6a,#6a5a4a);border-radius:50% 50% 45% 45%;position:relative}.portrait-head:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:35px;height:20px;background:#4a3a2a;border-radius:50% 50% 0 0}.portrait-body{width:70px;height:60px;background:linear-gradient(145deg,#5a4a3a,#3a2a1a);border-radius:10px 10px 0 0;margin-top:-5px}.demo-portrait.colored .portrait-head{background:linear-gradient(145deg,#e8c4a8,#d4a88c)}.demo-portrait.colored .portrait-head:before{background:linear-gradient(145deg,#4a3020,#2a1810)}.demo-portrait.colored .portrait-body{background:linear-gradient(145deg,#2c3e50,#1a252f)}.sparkle-effect{position:absolute;color:#fff;animation:sparkle 1.5s ease-in-out infinite;opacity:.8}.sparkle-effect.s1{top:20px;right:20px;animation-delay:0s}.sparkle-effect.s2{bottom:40px;left:15px;animation-delay:.5s}.sparkle-effect.s3{top:50%;right:10px;animation-delay:1s}@keyframes sparkle{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.demo-arrow{width:48px;height:48px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.home-page .features-section{padding:100px 24px;background:var(--surface)}.home-page .section-header{text-align:center;max-width:600px;margin:0 auto 60px}.home-page .section-header h2{font-size:2.5rem;font-weight:700;margin:0 0 16px}.home-page .section-header p{font-size:1.1rem;color:var(--text-secondary);margin:0}.home-page .section-header.light h2{color:#fff}.home-page .section-header.light p{color:#ffffffb3}.home-page .features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1200px;margin:0 auto}.home-page .feature-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;transition:all .3s ease}.home-page .feature-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 12px 40px #b8860b26}.home-page .feature-icon{width:56px;height:56px;background:var(--primary-light);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:20px}.home-page .feature-icon svg{width:28px;height:28px;color:var(--primary)}.home-page .feature-card h3{font-size:1.2rem;font-weight:600;margin:0 0 12px}.home-page .feature-card p{color:var(--text-secondary);line-height:1.6;margin:0}.home-page .ai-section{padding:100px 24px;background:var(--bg)}.home-page .ai-content{display:flex;gap:60px;max-width:1200px;margin:0 auto;align-items:center}.home-page .ai-text{flex:1}.home-page .section-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:#8b451326;border:1px solid rgba(139,69,19,.3);border-radius:50px;font-size:.8rem;color:#d4a017;margin-bottom:20px}.home-page .ai-text h2{font-size:2.5rem;font-weight:700;margin:0 0 20px}.home-page .ai-description{font-size:1.1rem;color:var(--text-secondary);line-height:1.7;margin-bottom:32px}.home-page .ai-features-list{list-style:none;padding:0;margin:0}.home-page .ai-features-list li{display:flex;gap:16px;margin-bottom:20px}.home-page .ai-features-list li svg{color:var(--success);flex-shrink:0;margin-top:2px}.home-page .ai-features-list li strong{display:block;margin-bottom:4px;color:var(--text-primary)}.home-page .ai-features-list li span{color:var(--text-secondary);font-size:.95rem}.home-page .ai-visual{flex:1}.home-page .ai-demo-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.home-page .ai-demo-header{display:flex;align-items:center;gap:10px;padding:16px 20px;background:linear-gradient(135deg,#8b451333,#b8860b33);border-bottom:1px solid var(--border);color:#d4a017;font-weight:600}.home-page .ai-demo-content{padding:20px}.home-page .ai-demo-item{margin-bottom:16px}.ai-demo-item.full{margin-bottom:0}.ai-demo-label{display:block;font-size:.8rem}.home-page .ai-demo-item .ai-demo-label{color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.home-page .ai-demo-item .ai-demo-value{color:var(--text-primary);font-size:.95rem;line-height:1.5}.home-page .ai-demo-item.full .ai-demo-value{font-style:italic;color:var(--text-secondary)}.home-page .community-section{padding:100px 24px;background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 50%,#d4a017 100%)}.home-page .community-features{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1200px;margin:0 auto 60px}.home-page .community-card{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-lg);padding:28px;text-align:center;color:#fff;transition:all .3s ease}.home-page .community-card:hover{transform:translateY(-4px);background:#ffffff26}.home-page .community-icon{width:56px;height:56px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.home-page .community-icon svg{width:28px;height:28px}.home-page .community-card h3{font-size:1.1rem;font-weight:600;margin:0 0 10px}.home-page .community-card p{font-size:.9rem;opacity:.85;line-height:1.6;margin:0}.home-page .cta-section{padding:100px 24px;background:var(--surface);text-align:center}.home-page .cta-content{max-width:600px;margin:0 auto}.home-page .cta-content h2{font-size:2.5rem;font-weight:700;margin:0 0 16px}.home-page .cta-content p{font-size:1.1rem;color:var(--text-secondary);line-height:1.6;margin-bottom:32px}.home-page .cta-buttons{margin-bottom:24px}.home-page .cta-features{display:flex;justify-content:center;gap:24px;color:var(--text-secondary);font-size:.9rem}.home-page .cta-features span{display:flex;align-items:center;gap:6px}.home-page .cta-features svg{color:var(--success)}.home-page .home-footer{background:var(--bg);border-top:1px solid var(--border);padding:60px 24px 24px}.home-page .footer-content{display:flex;justify-content:space-between;max-width:1200px;margin:0 auto 40px}.home-page .footer-brand{max-width:300px}.home-page .footer-brand .logo{display:flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:700;margin-bottom:12px}.home-page .footer-brand .logo-icon{color:var(--primary)}.home-page .footer-brand p{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:0}.home-page .footer-links{display:flex;gap:80px}.home-page .footer-column h4{font-size:.9rem;font-weight:600;margin:0 0 16px;color:var(--text-primary)}.home-page .footer-column a{display:block;color:var(--text-secondary);text-decoration:none;font-size:.9rem;margin-bottom:10px;transition:color .2s}.home-page .footer-column a:hover{color:var(--primary)}.home-page .footer-bottom{text-align:center;padding-top:24px;border-top:1px solid var(--border);max-width:1200px;margin:0 auto}.home-page .footer-bottom p{color:var(--text-muted);font-size:.85rem;margin:0}@media (max-width: 1024px){.home-page .hero-section{flex-direction:column;text-align:center;padding:120px 24px 60px}.home-page .hero-subtitle{max-width:100%;margin-left:auto;margin-right:auto}.home-page .hero-cta,.home-page .hero-stats{justify-content:center}.home-page .features-grid{grid-template-columns:repeat(2,1fr)}.home-page .ai-content{flex-direction:column}.home-page .community-features{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.home-page .home-header-content{padding:8px 12px}.home-page .home-header .logo{font-size:.9rem;gap:4px}.home-page .home-header .logo-icon{width:18px;height:18px}.home-page .home-nav{display:none}.home-page .home-auth-buttons{gap:4px}.home-page .home-auth-buttons .btn{padding:6px 10px;font-size:.75rem;white-space:nowrap;border-radius:6px}.home-page .home-auth-buttons .btn-ghost{padding:6px 8px;border:none;background:transparent;color:var(--text-secondary);font-weight:400}.home-page .home-auth-buttons .btn-primary{padding:6px 12px;font-weight:500;box-shadow:none}.home-page .hero-section{flex-direction:column;padding:100px 20px 40px;gap:40px;min-height:auto}.home-page .hero-section h1{font-size:2.2rem}.home-page .hero-subtitle{font-size:1.1rem}.home-page .hero-badge{font-size:.8rem;padding:8px 14px}.home-page .hero-cta{flex-direction:column;width:100%}.home-page .hero-cta .btn{width:100%;justify-content:center}.home-page .hero-stats{flex-direction:row;gap:20px;justify-content:center}.home-page .stat{flex:1}.home-page .stat-divider{display:block}.home-page .hero-visual{width:100%}.image-compare{width:100%;max-width:100%;height:400px}.home-page .features-section,.home-page .ai-section,.home-page .community-section{padding:60px 16px}.home-page .section-header h2{font-size:1.8rem}.home-page .features-grid,.home-page .community-features{grid-template-columns:1fr;gap:16px}.home-page .feature-card{padding:24px}.home-page .footer-content{flex-direction:column;gap:40px}.home-page .footer-links{flex-wrap:wrap;gap:32px}.home-page .cta-section{padding:60px 16px}.home-page .cta-features{flex-direction:column;gap:12px}}@media (max-width: 480px){.home-page .home-header-content{padding:6px 10px}.home-page .home-header .logo{font-size:.85rem;gap:3px}.home-page .home-header .logo-icon{width:16px;height:16px}.home-page .home-auth-buttons{gap:3px}.home-page .home-auth-buttons .btn{font-size:.7rem;padding:5px 8px}.home-page .home-auth-buttons .btn-ghost{padding:5px 6px;font-size:.7rem}.home-page .home-auth-buttons .btn-primary{padding:6px 10px}.home-page .hero-section{padding:90px 16px 30px}.home-page .hero-section h1{font-size:1.75rem;line-height:1.15}.home-page .hero-subtitle{font-size:1rem;margin-bottom:30px}.home-page .btn-lg{padding:14px 24px;font-size:1rem}.home-page .hero-stats{gap:12px}.home-page .stat-value{font-size:1.3rem}.home-page .stat-label{font-size:.75rem}.image-compare{height:300px;border-radius:var(--radius-lg)}.slider-handle{width:40px;height:40px}.compare-labels{bottom:12px;left:12px;right:12px}.compare-labels span{padding:6px 12px;font-size:.75rem}.compare-hint{top:12px;padding:6px 14px;font-size:.75rem}}@media (max-width: 768px){.photos-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.page-header h1{font-size:1.5rem}.credits-header{flex-direction:column;text-align:center}.credits-grid{grid-template-columns:1fr;max-width:400px;margin:0 auto}.profile-card{padding:20px}.profile-form{gap:16px}.community-page{padding:12px;overflow-x:hidden}.community-header{text-align:left}.community-header h1{font-size:1.5rem}.header-actions-row{flex-direction:column;align-items:stretch}.search-toggle-btn,.sort-tabs{width:100%}.community-tabs{overflow-x:auto;justify-content:flex-start;padding-bottom:4px;-webkit-overflow-scrolling:touch}.community-tabs .tab-btn{flex-shrink:0;white-space:nowrap}.card,.stat-card{padding:16px}.stat-card{flex-direction:column;text-align:center;gap:12px}.fullscreen-content{flex-direction:column;height:100vh}.fullscreen-image-area{height:30vh;order:1;flex-shrink:0}.fullscreen-sidebar{height:70vh;order:2;flex-shrink:0;overflow-y:scroll;-webkit-overflow-scrolling:touch;border-left:none;border-top:1px solid var(--border)}.photo-author{padding:12px;border-bottom:1px solid var(--border)}.photo-title{padding:12px 12px 6px;margin:0;font-size:1rem}.photo-description{padding:0 12px 12px;margin:0;font-size:.9rem}.photo-stats{padding:8px 12px;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:center}.stat-btn,.stat-display{padding:6px 10px;font-size:.85rem;min-width:auto}.stat-btn svg,.stat-display svg{width:16px;height:16px}.sidebar-tabs{padding:10px 12px;border-bottom:1px solid var(--border);gap:6px}.sidebar-content{padding:12px;min-height:300px}.fullscreen-close{top:10px;right:10px;width:40px;height:40px}.image-controls{top:10px;left:10px;flex-wrap:wrap;max-width:calc(100% - 70px)}.control-btn{padding:8px 10px;font-size:.85rem}.control-btn span,.controls-separator{display:none}.zoom-level{font-size:.75rem;padding:6px 10px}.photo-author{padding:12px;gap:10px}.author-avatar{width:36px;height:36px;font-size:.9rem}.author-name{font-size:.95rem}.publish-date{font-size:.8rem}.photo-stats{padding:12px;gap:8px}.stat-btn,.stat-display{padding:8px 12px;font-size:.85rem}.comments-list{max-height:none}.comment{padding:10px;margin-bottom:10px}.comment-avatar{width:32px;height:32px;font-size:.85rem}.comment-content{font-size:.85rem}.comment-author{font-size:.9rem}.comment-date{font-size:.75rem}.persons-list-detail{gap:10px}.person-item{padding:10px}.person-avatar{width:36px;height:36px}.person-name{font-size:.9rem}.info-layout{grid-template-columns:1fr;gap:16px;max-height:none;overflow:visible}.info-image-section{max-height:50vh}.info-form-section{max-height:none}.image-viewer{max-height:50vh}.info-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{white-space:nowrap;font-size:.85rem;padding:12px 16px}.form-content{padding:16px 12px}.metadata-grid{grid-template-columns:1fr}.stat-btn,.stat-display{flex:1;min-width:120px;justify-content:center}.gallery-page{padding:12px;overflow-x:hidden;width:100%;max-width:100%}.gallery-header{flex-direction:column;gap:12px}.gallery-filters{flex-direction:column;width:100%}.search-input,.search-input input,.gallery-filters select{width:100%}.gallery-actions{width:100%;justify-content:space-between}.gallery-grid{gap:12px;width:100%;grid-template-columns:1fr}.gallery-card,.gallery-image img{max-width:100%}.community-page{padding:12px;overflow-x:hidden;width:100%;max-width:100%}.community-grid{width:100%}}@media (max-width: 480px){.editor-tools{padding:12px;gap:8px}.tool-btn{padding:10px 14px;font-size:.8rem}.metadata-panel{padding:16px}.metadata-fields{gap:12px}.modal-content{margin:12px;padding:20px;max-height:calc(100vh - 24px)}.modal-header h2{font-size:1.2rem}.btn{padding:10px 16px;font-size:.9rem}.btn-lg{padding:12px 20px}.editor-layout{flex-direction:column}.editor-main{width:100%}.editor-sidebar{width:100%;border-left:none;border-top:1px solid var(--border)}.photo-detail-modal{padding:8px}.persons-page{padding:12px}.persons-header h1{font-size:1.3rem}.persons-grid{grid-template-columns:1fr;gap:12px}.person-card{padding:12px}.family-tree-container{overflow-x:hidden}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px}.toast{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--bg-elevated);border-radius:var(--radius);box-shadow:0 8px 32px #00000026;border:1px solid var(--border);animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.toast-success .toast-icon{background:var(--success-light);color:var(--success)}.toast-error .toast-icon{background:var(--danger-light);color:var(--danger)}.toast-warning .toast-icon{background:var(--warning-light);color:var(--warning)}.toast-info .toast-icon{background:var(--info-light);color:var(--info)}.toast-content{flex:1;min-width:0}.toast-title{font-weight:600;font-size:.95rem;color:var(--text-primary);margin-bottom:2px}.toast-message{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.toast-close{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;transition:var(--transition)}.toast-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}.confirm-dialog{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:32px;max-width:420px;width:90%;text-align:center;box-shadow:0 20px 60px #0003;animation:scaleIn .2s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.confirm-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.confirm-icon-danger{background:var(--danger-light);color:var(--danger)}.confirm-icon-warning{background:var(--warning-light);color:var(--warning)}.confirm-icon-info{background:var(--info-light);color:var(--info)}.confirm-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}.confirm-message{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin-bottom:28px}.confirm-actions{display:flex;gap:12px;justify-content:center}.confirm-actions .btn{min-width:120px}@media (max-width: 480px){.toast-container{left:12px;right:12px;max-width:none}.toast{padding:14px}.confirm-dialog{padding:24px}.confirm-actions{flex-direction:column-reverse}.confirm-actions .btn{width:100%}}.share-modal{max-width:560px!important;width:95%;background:var(--bg-secondary)!important;position:relative;z-index:1;overflow:hidden}.share-modal .modal-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.share-modal .modal-title-group{display:flex;align-items:flex-start;gap:14px}.share-modal .modal-icon{color:var(--primary);flex-shrink:0;margin-top:2px}.share-modal .modal-title-group h2{font-size:1.15rem;font-weight:600;color:var(--text-primary);margin-bottom:2px}.share-modal .modal-subtitle{font-size:.85rem;color:var(--text-muted)}.share-modal .modal-body{padding:0;max-height:65vh;overflow-y:auto}.share-modal .alert{display:flex;align-items:center;gap:10px;padding:12px 16px;margin:16px 20px 0;border-radius:var(--radius-sm);font-size:.9rem}.share-modal .alert.error{background:var(--danger-light);color:var(--danger);border:1px solid rgba(197,48,48,.2)}.share-modal .alert .icon-btn{margin-left:auto;padding:4px}.share-form{padding:20px;border-bottom:1px solid var(--border)}.share-input-row{display:flex;gap:10px;align-items:stretch}.share-input-row .input-with-icon{flex:1;position:relative;display:flex;align-items:center}.share-input-row .input-with-icon svg{position:absolute;left:12px;color:var(--text-muted);pointer-events:none}.share-input-row .input-with-icon input{width:100%;padding:12px 12px 12px 42px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-primary);font-size:.95rem;transition:var(--transition)}.share-input-row .input-with-icon input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.share-input-row .input-with-icon input::placeholder{color:var(--text-muted)}.share-input-row .permission-select{padding:10px 32px 10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-primary);font-size:.9rem;cursor:pointer;min-width:120px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b5744' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.share-input-row .permission-select:focus{outline:none;border-color:var(--primary)}.share-input-row .btn{display:flex;align-items:center;gap:6px;padding:10px 18px;white-space:nowrap;font-weight:500}.share-options{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--border)}.share-option{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:var(--text-secondary)}.share-option input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.share-options .expiry-select{padding:8px 28px 8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-primary);font-size:.85rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b5744' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.permission-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 20px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.permission-legend .permission-item{display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border)}.permission-legend .permission-item svg{color:var(--primary);margin-bottom:2px}.permission-legend .permission-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.permission-legend .permission-desc{font-size:.75rem;color:var(--text-muted);line-height:1.3}.shares-section{padding:20px}.shares-section h3{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:600;color:var(--text-primary);margin-bottom:14px}.shares-section h3 svg{color:var(--text-muted)}.empty-shares{text-align:center;padding:24px 16px;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px dashed var(--border)}.empty-shares p{color:var(--text-muted);font-size:.9rem}.shares-list{display:flex;flex-direction:column;gap:10px}.share-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border);transition:var(--transition)}.share-item:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.share-item .share-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.share-item .share-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:600;font-size:.9rem}.share-item .share-avatar:not(.pending){background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff}.share-item .share-avatar.pending{background:var(--bg-tertiary);color:var(--text-muted);border:1px dashed var(--border)}.share-item .share-details{flex:1;min-width:0}.share-item .share-name{display:block;font-size:.9rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.share-item .share-email{display:block;font-size:.8rem;color:var(--text-muted);margin-top:2px}.share-item .share-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.share-item .permission-select{padding:6px 26px 6px 10px;font-size:.8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);min-width:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b5744' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.share-item .icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:var(--transition)}.share-item .icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.share-item .icon-btn.danger:hover{background:var(--danger-light);color:var(--danger)}.share-modal .modal-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}@media (max-width: 580px){.share-input-row{flex-direction:column}.share-input-row .permission-select,.share-input-row .btn{width:100%;justify-content:center}.permission-legend{grid-template-columns:1fr}.share-item{flex-wrap:wrap}.share-item .share-actions{width:100%;justify-content:flex-end;margin-top:8px;padding-top:10px;border-top:1px dashed var(--border)}}.shared-album-page{min-height:100vh;background:var(--bg-primary);display:flex;flex-direction:column}.shared-album-loading,.shared-album-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px}.shared-album-error .error-icon{font-size:4rem;margin-bottom:24px;opacity:.6}.shared-album-error h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:12px}.shared-album-error p{color:var(--text-secondary);margin-bottom:24px}.shared-album-header{background:var(--bg-elevated);border-bottom:1px solid var(--border);padding:24px}.shared-album-branding{margin-bottom:24px}.brand-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text-primary);font-size:1.25rem;font-weight:600}.brand-icon{font-size:1.5rem}.shared-album-info h1{font-size:2rem;color:var(--text-primary);margin-bottom:8px}.shared-album-info .album-description{color:var(--text-secondary);font-size:1rem;margin-bottom:16px;max-width:600px}.shared-album-info .album-meta{display:flex;flex-wrap:wrap;gap:16px}.shared-album-info .meta-item{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--text-secondary)}.shared-album-info .meta-item.permission-badge{padding:4px 12px;background:var(--primary-light);color:var(--primary);border-radius:var(--radius-full)}.shared-album-info .meta-item.expiry{color:var(--warning)}.shared-album-content{flex:1;padding:32px 24px;max-width:1400px;margin:0 auto;width:100%}.empty-album{text-align:center;padding:80px 24px}.empty-album .empty-icon{font-size:4rem;margin-bottom:24px;opacity:.5}.empty-album h3{font-size:1.5rem;color:var(--text-primary);margin-bottom:8px}.empty-album p{color:var(--text-muted)}.shared-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.shared-photo-card{background:var(--bg-elevated);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:var(--transition);border:1px solid var(--border)}.shared-photo-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary)}.shared-photo-card .photo-image-container{position:relative;aspect-ratio:4/3;overflow:hidden}.shared-photo-card .photo-image-container img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.shared-photo-card:hover .photo-image-container img{transform:scale(1.05)}.shared-photo-card .photo-badge{position:absolute;top:12px;right:12px;padding:4px 10px;background:#000000b3;color:#fff;border-radius:var(--radius-full);font-size:.75rem;font-weight:500}.shared-photo-card .photo-badge.enhanced{background:var(--accent-gradient)}.shared-photo-card .photo-info{padding:16px}.shared-photo-card .photo-info h4{font-size:1rem;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shared-photo-card .photo-date{font-size:.85rem;color:var(--text-muted)}.photo-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .2s ease}.lightbox-content{background:var(--bg-elevated);border-radius:var(--radius-lg);max-width:1200px;max-height:90vh;width:100%;display:flex;flex-direction:column;overflow:hidden;position:relative}.lightbox-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;background:#00000080;border:none;color:#fff;font-size:1.25rem;cursor:pointer;z-index:10;transition:var(--transition)}.lightbox-close:hover{background:#000c}.lightbox-image{flex:1;display:flex;align-items:center;justify-content:center;background:#000;min-height:300px;max-height:60vh}.lightbox-image img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-details{padding:24px;overflow-y:auto;max-height:30vh}.lightbox-details h3{font-size:1.25rem;color:var(--text-primary);margin-bottom:8px}.lightbox-details .photo-description{color:var(--text-secondary);margin-bottom:16px}.photo-metadata{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.metadata-item{display:flex;flex-wrap:wrap;gap:8px}.metadata-label{font-weight:500;color:var(--text-primary);min-width:100px}.metadata-value{color:var(--text-secondary)}.persons-list{display:flex;flex-wrap:wrap;gap:8px}.person-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:var(--bg-tertiary);border-radius:var(--radius-full);font-size:.85rem;color:var(--text-primary)}.person-relation{color:var(--text-muted);font-size:.8rem}.comparison-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.comparison-section h4{font-size:1rem;color:var(--text-primary);margin-bottom:16px}.comparison-images{display:grid;grid-template-columns:1fr 1fr;gap:16px}.comparison-image{position:relative;border-radius:var(--radius-md);overflow:hidden}.comparison-image img{width:100%;height:auto}.comparison-label{position:absolute;bottom:8px;left:8px;padding:4px 10px;background:#000000b3;color:#fff;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.shared-album-footer{padding:24px;text-align:center;border-top:1px solid var(--border);background:var(--bg-secondary)}.shared-album-footer p{color:var(--text-muted);font-size:.9rem}.shared-album-footer a{color:var(--primary);text-decoration:none;font-weight:500}.shared-album-footer a:hover{text-decoration:underline}.shared-with-me-page{padding:24px;max-width:1400px;margin:0 auto}.shared-with-me-page .page-header{padding:32px 0;border-bottom:1px solid var(--border);margin-bottom:32px}.shared-with-me-page .header-content h1{display:flex;align-items:center;gap:12px;font-size:1.75rem;color:var(--text-primary);margin-bottom:8px}.shared-with-me-page .header-icon{font-size:1.5rem}.shared-with-me-page .header-subtitle{color:var(--text-secondary);font-size:1rem}.shared-albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.shared-album-card{display:flex;flex-direction:column;background:var(--bg-elevated);border-radius:var(--radius-xl);overflow:hidden;text-decoration:none;border:1px solid var(--border);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:var(--shadow-sm)}.shared-album-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px #00000026;border-color:var(--primary)}.shared-album-card.expired{opacity:.6;pointer-events:none}.shared-album-card .album-cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(145deg,var(--bg-tertiary),var(--bg-secondary))}.shared-album-card .album-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.4) 0%,transparent 50%);opacity:0;transition:opacity .3s ease}.shared-album-card:hover .album-cover:after{opacity:1}.shared-album-card .album-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4,0,.2,1)}.shared-album-card:hover .album-cover img{transform:scale(1.05)}.shared-album-card .album-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;color:var(--text-muted);background:linear-gradient(145deg,var(--bg-tertiary),var(--bg-secondary))}.shared-album-card .status-badge{position:absolute;top:12px;right:12px;padding:6px 14px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2}.shared-album-card .status-badge.new{background:rgba(var(--primary-rgb),.9);color:#fff}.shared-album-card .status-badge.expiring{background:rgba(var(--warning-rgb),.9);color:#fff}.shared-album-card .status-badge.expired{background:rgba(var(--danger-rgb),.9);color:#fff}.shared-album-card .album-info{padding:20px 24px 24px;flex:1;display:flex;flex-direction:column;gap:12px}.shared-album-card .album-name{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.3}.shared-album-card .album-description{color:var(--text-secondary);font-size:.9rem;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shared-album-card .album-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.shared-album-card .meta-item{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary)}.shared-album-card .meta-item.owner{font-weight:500;color:var(--text-primary)}.shared-album-card .owner-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8rem;font-weight:600;box-shadow:0 2px 6px #00000026}.shared-album-card .share-details{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.shared-album-card .permission-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-full);font-size:.8rem;font-weight:600}.shared-album-card .permission-badge.view{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0369a1}.shared-album-card .permission-badge.comment{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#b45309}.shared-album-card .permission-badge.contribute{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#047857}.shared-album-card .expiry-info{font-size:.85rem;color:var(--text-muted);display:flex;align-items:center;gap:4px}.shared-album-card .share-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted)}.shared-album-card .card-arrow{position:absolute;bottom:24px;right:24px;width:36px;height:36px;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;opacity:0;transform:translate(-10px) scale(.8);transition:all .3s cubic-bezier(.4,0,.2,1)}.shared-album-card:hover .card-arrow{opacity:1;transform:translate(0) scale(1)}.shared-page.in-layout{padding:0;min-height:auto}.shared-page.in-layout .community-header{display:none}.shared-inline-header{display:flex;align-items:center;gap:24px;padding:20px 24px;background:var(--bg-elevated);border-bottom:1px solid var(--border);margin-bottom:24px}.shared-inline-header .back-link{display:flex;align-items:center;gap:6px;color:var(--text-secondary);text-decoration:none;font-size:.9rem;padding:8px 12px;border-radius:var(--radius-md);transition:var(--transition)}.shared-inline-header .back-link:hover{background:var(--bg-tertiary);color:var(--primary)}.shared-inline-header .header-content{display:flex;align-items:center;gap:12px;flex:1}.shared-inline-header .album-color-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.shared-inline-header h1{font-size:1.35rem;color:var(--text-primary);margin:0}.shared-inline-header .header-subtitle{font-size:.9rem;color:var(--text-secondary);margin:0}.shared-inline-header .header-meta{display:flex;align-items:center;gap:12px}.shared-inline-header .meta-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border-radius:var(--radius-full);font-size:.85rem;color:var(--text-secondary)}.shared-inline-header .meta-badge.accent{background:var(--primary-light);color:var(--primary)}.shared-page.in-layout .community-content{padding:0 24px 24px}@media (max-width: 768px){.shared-album-header{padding:16px}.shared-album-info h1{font-size:1.5rem}.shared-album-info .album-meta{flex-direction:column;gap:8px}.shared-album-content{padding:16px}.shared-inline-header{flex-direction:column;align-items:flex-start;gap:12px}.shared-inline-header .header-meta{flex-wrap:wrap}.shared-photos-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.lightbox-content{border-radius:0;max-height:100vh}.comparison-images,.shared-albums-grid{grid-template-columns:1fr}}.messages-page{display:flex;height:calc(100vh - 60px);background:var(--bg-primary);overflow:hidden}.conversations-sidebar{width:340px;min-width:340px;background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.conversations-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border)}.conversations-sidebar .sidebar-header h2{display:flex;align-items:center;gap:10px;font-size:1.25rem;color:var(--text-primary);margin:0}.conversations-sidebar .sidebar-header h2 svg{color:var(--primary)}.new-conversation-panel{padding:16px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.new-conversation-panel .panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.new-conversation-panel .panel-header h3{font-size:.95rem;color:var(--text-primary);margin:0}.new-conversation-panel .search-input-wrapper{display:flex;align-items:center;gap:10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px}.new-conversation-panel .search-input-wrapper svg{color:var(--text-muted);flex-shrink:0}.new-conversation-panel .search-input-wrapper input{flex:1;border:none;background:transparent;font-size:.9rem;color:var(--text-primary);outline:none}.new-conversation-panel .search-results{margin-top:12px;max-height:200px;overflow-y:auto}.new-conversation-panel .searching,.new-conversation-panel .no-results,.new-conversation-panel .search-hint{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--text-muted);font-size:.9rem}.new-conversation-panel .user-result{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);text-align:left}.new-conversation-panel .user-result:hover{background:var(--bg-tertiary)}.new-conversation-panel .user-result .user-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;overflow:hidden}.new-conversation-panel .user-result .user-avatar img{width:100%;height:100%;object-fit:cover}.new-conversation-panel .user-result .user-info{flex:1;display:flex;flex-direction:column}.new-conversation-panel .user-result .user-name{font-weight:500;color:var(--text-primary)}.new-conversation-panel .user-result .user-email{font-size:.8rem;color:var(--text-muted)}.conversations-list{flex:1;overflow-y:auto}.conversations-list .loading-state,.conversations-list .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:16px;color:var(--text-muted)}.conversations-list .empty-state svg{opacity:.5}.conversations-list .empty-state p{margin:0}.conversation-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 20px;background:transparent;border:none;border-bottom:1px solid var(--border);cursor:pointer;transition:var(--transition);text-align:left}.conversation-item:hover{background:var(--bg-secondary)}.conversation-item.active{background:var(--primary-light);border-left:3px solid var(--primary)}.conversation-item.unread .conversation-name{font-weight:700}.conversation-item.unread .preview-text{color:var(--text-primary);font-weight:500}.conversation-avatar{width:48px;height:48px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1.1rem;flex-shrink:0;overflow:hidden}.conversation-avatar .avatar-img{width:100%;height:100%;object-fit:cover}.conversation-content{flex:1;min-width:0}.conversation-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.conversation-name{font-weight:500;color:var(--text-primary);font-size:.95rem}.conversation-time{font-size:.75rem;color:var(--text-muted)}.conversation-preview{font-size:.85rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-preview .you-prefix{color:var(--text-muted)}.conversation-preview .no-messages{font-style:italic;color:var(--text-muted)}.unread-badge{background:var(--primary);color:#fff;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);min-width:20px;text-align:center}.chat-area{flex:1;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden}.chat-header{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.chat-header .back-btn{display:none}.chat-header .chat-user{display:flex;align-items:center;gap:12px;flex:1}.chat-header .user-avatar{width:42px;height:42px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;overflow:hidden}.chat-header .user-avatar img{width:100%;height:100%;object-fit:cover}.chat-header .user-avatar.online:after{content:"";position:absolute;bottom:2px;right:2px;width:12px;height:12px;background:var(--success);border:2px solid var(--bg-elevated);border-radius:50%}.chat-header .user-avatar{position:relative}.chat-header .user-info{display:flex;flex-direction:column}.chat-header .user-name{font-weight:600;color:var(--text-primary)}.chat-header .user-status{font-size:.8rem}.chat-header .user-status.online{color:var(--success)}.chat-header .user-status.offline{color:var(--text-muted)}.chat-header .chat-actions{display:flex;gap:8px}.messages-container{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:8px}.messages-container .loading-state,.messages-container .empty-messages{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px;color:var(--text-muted)}.date-separator{display:flex;align-items:center;justify-content:center;margin:16px 0}.date-separator span{background:var(--bg-secondary);padding:6px 16px;border-radius:var(--radius-full);font-size:.8rem;color:var(--text-muted)}.message{display:flex;align-items:flex-end;gap:8px;max-width:70%}.message.sent{align-self:flex-end;flex-direction:row-reverse}.message.received{align-self:flex-start}.message-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8rem;font-weight:600;flex-shrink:0;overflow:hidden}.message-avatar img{width:100%;height:100%;object-fit:cover}.message-bubble{padding:12px 16px;border-radius:18px;position:relative}.message.sent .message-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.message.received .message-bubble{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-bottom-left-radius:4px}.message-content{margin:0;line-height:1.4;word-break:break-word}.message-time{display:flex;align-items:center;gap:4px;font-size:.7rem;margin-top:4px;opacity:.7}.message.sent .message-time{justify-content:flex-end}.read-indicator{opacity:.8}.message-input-form{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg-elevated);border-top:1px solid var(--border)}.message-input-form input{flex:1;padding:12px 18px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-primary);font-size:.95rem;color:var(--text-primary);outline:none;transition:var(--transition)}.message-input-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.message-input-form .send-btn{width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.message-input-form .send-btn:hover:not(:disabled){background:var(--primary-dark);transform:scale(1.05)}.message-input-form .send-btn:disabled{opacity:.5;cursor:not-allowed}.no-conversation-selected{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--text-muted)}.no-conversation-selected svg{opacity:.3}.no-conversation-selected h3{margin:0;color:var(--text-secondary)}.no-conversation-selected p{margin:0}.archive-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.archive-confirm-modal{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:32px;max-width:400px;width:90%;text-align:center;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.archive-confirm-modal .modal-icon{color:var(--warning);margin-bottom:16px}.archive-confirm-modal h3{margin:0 0 12px;color:var(--text-primary);font-size:1.2rem}.archive-confirm-modal p{margin:0 0 24px;color:var(--text-secondary);font-size:.9rem;line-height:1.5}.archive-confirm-modal .modal-actions{display:flex;gap:12px;justify-content:center}.archive-confirm-modal .modal-actions .btn{flex:1;padding:12px 24px;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:var(--transition);font-size:.95rem}.archive-confirm-modal .modal-actions .btn.btn-secondary{background:var(--bg-tertiary)!important;border:1px solid var(--border)!important;color:var(--text-primary)!important}.archive-confirm-modal .modal-actions .btn.btn-secondary:hover{background:var(--bg-secondary)!important}.archive-confirm-modal .modal-actions .btn.btn-danger{background:var(--error)!important;border:none!important;color:#fff!important}.archive-confirm-modal .modal-actions .btn.btn-danger:hover{filter:brightness(1.1)}.nav-icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.nav-badge{position:absolute;top:-8px;right:-10px;background:#ef4444;color:#fff;font-size:.7rem;font-weight:700;padding:3px 6px;border-radius:10px;min-width:18px;text-align:center;line-height:1;box-shadow:0 2px 8px #ef444480;z-index:10;border:2px solid var(--bg-secondary)}@media (max-width: 768px){.messages-page{height:calc(100vh - 56px)}.conversations-sidebar{width:100%;min-width:100%}.conversations-sidebar.hidden-mobile,.chat-area.hidden-mobile{display:none}.chat-header .back-btn{display:flex}.message{max-width:85%}.archive-confirm-modal{padding:24px;width:95%}}.typing-indicator{display:flex;align-items:center;gap:8px;padding:12px 16px;margin-left:40px}.typing-dots{display:flex;gap:4px}.typing-dots span{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:typingBounce 1.4s ease-in-out infinite}.typing-dots span:nth-child(1){animation-delay:0s}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-6px);opacity:1}}.typing-text{font-size:.85rem;color:var(--text-muted);font-style:italic}.notification-bell-container{position:relative}.notification-bell-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);position:relative}.notification-bell-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.notification-bell-btn.has-unread{color:var(--primary)}.notification-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;background:var(--danger);color:#fff;font-size:.7rem;font-weight:600;border-radius:10px;display:flex;align-items:center;justify-content:center}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:480px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000026;overflow:hidden;z-index:1000;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notification-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}.notification-header h3{font-size:1rem;font-weight:600;color:var(--text-primary)}.notification-actions{display:flex;gap:4px}.notif-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition)}.notif-action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.notification-list{max-height:400px;overflow-y:auto}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--text-muted);gap:12px}.notification-empty p{font-size:.9rem}.notification-item{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:var(--transition)}.notification-item:hover{background:var(--bg-tertiary)}.notification-item:last-child{border-bottom:none}.notification-item.unread{background:var(--primary-light)}.notification-item.unread:hover{background:#b8860b2e}.notification-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.notification-content{flex:1;min-width:0}.notification-title{font-weight:600;font-size:.85rem;color:var(--text-primary);margin-bottom:2px}.notification-message{font-size:.8rem;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-time{font-size:.7rem;color:var(--text-muted);margin-top:4px}.notification-item-actions{display:flex;flex-direction:column;gap:4px;opacity:0;transition:opacity .2s ease}.notification-item:hover .notification-item-actions{opacity:1}.notif-item-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:4px;transition:var(--transition)}.notif-item-btn:hover{background:var(--bg-secondary);color:var(--success)}.notif-item-btn.delete:hover{color:var(--danger)}@media (max-width: 480px){.notification-dropdown{position:fixed;top:60px;left:12px;right:12px;width:auto;max-height:calc(100vh - 80px)}}
