#gallery-section{margin-top:var(--space-6)}#gallery-section .section-title{display:flex;align-items:center;gap:var(--space-2)}.gallery-count{font-size:var(--text-sm);font-weight:400;color:var(--color-text-tertiary)}.gallery-filter-bar{display:flex;flex-wrap:wrap;gap:6px;margin:var(--space-3) 0;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.gallery-filter-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);user-select:none}.gallery-filter-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-lighter)}.gallery-filter-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:0 0 0 2px var(--color-bg-primary),0 0 0 4px var(--color-text-primary)}.gallery-filter-count{font-size:.6rem;font-weight:var(--font-weight-bold);background:rgba(0,0,0,.08);padding:1px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}.gallery-filter-btn.active .gallery-filter-count{background:rgba(255,255,255,.25)}.gallery-filter-edit{display:none;align-items:center;color:inherit;opacity:.5;margin-left:2px}.gallery-filter-btn:hover .gallery-filter-edit{display:flex}.gallery-filter-edit:hover{opacity:1}.gallery-toolbar{display:flex;align-items:center;gap:6px;padding:var(--space-2) 0;margin-bottom:var(--space-2)}.toolbar-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.toolbar-count{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-tertiary);background:var(--color-bg-secondary);padding:2px 8px;border-radius:var(--radius-full)}.toolbar-spacer{flex:1}.toolbar-sep{width:1px;height:16px;background:var(--color-border-light)}.toolbar-btn{display:inline-flex;align-items:center;gap:4px;background:0 0;border:none;padding:5px 10px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.toolbar-btn:hover{color:var(--color-accent);background:var(--color-accent-lighter)}.toolbar-btn.active{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.toolbar-btn span{font-weight:inherit}.toolbar-select-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid var(--color-border);color:var(--color-text-tertiary)}.toolbar-select-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-lighter)}.toolbar-select-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;font-weight:var(--font-weight-semibold);box-shadow:0 0 0 2px var(--color-bg-primary),0 0 0 4px var(--color-accent)}.toolbar-select-btn.active:hover{background:#e04545;border-color:#e04545;box-shadow:0 0 0 2px var(--color-bg-primary),0 0 0 4px #e04545}.toolbar-toggle{display:inline-flex;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);overflow:hidden;padding:2px}.toolbar-toggle-btn{display:inline-flex;align-items:center;gap:4px;background:0 0;border:none;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.toolbar-toggle-btn:hover{color:var(--color-text-primary)}.toolbar-toggle-btn.active{background:var(--color-accent);color:#fff;box-shadow:0 1px 3px rgba(67,97,238,.3)}.gallery-timeline{display:flex;flex-direction:column;gap:var(--space-4);transition:opacity 150ms ease}.timeline-row{display:flex;flex-direction:column;gap:var(--space-2)}.timeline-label{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0}.timeline-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.timeline-tag-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.timeline-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--color-bg-secondary);padding:1px 8px;border-radius:var(--radius-full)}.timeline-items{display:flex;gap:8px;overflow-x:auto;padding-bottom:var(--space-2);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.timeline-items .gallery-item{min-width:140px;max-width:140px;flex-shrink:0;scroll-snap-align:start}@media (min-width:768px){.timeline-items .gallery-item{min-width:160px;max-width:160px}}.tag-color-picker{display:flex;flex-wrap:wrap;gap:8px}.tag-color-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.tag-color-swatch:hover{transform:scale(1.15)}.tag-color-swatch.active{border-color:var(--color-text-primary);box-shadow:0 0 0 2px var(--color-bg-primary),0 0 0 4px currentColor}.color-toggle-btn{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-border);cursor:pointer;flex-shrink:0;position:relative;background:linear-gradient(135deg,#4361ee 25%,#2ec4b6 25%,#2ec4b6 50%,#ff6b6b 50%,#ff6b6b 75%,#f4a261 75%);transition:border-color var(--transition-fast)}.color-toggle-btn.has-color{background:0 0}.color-toggle-btn:hover{border-color:var(--color-accent)}.color-picker-dropdown{display:none}.color-picker-dropdown.open{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-1)}.color-toggle-btn.small{width:24px;height:24px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;transition:opacity 150ms ease}@media (min-width:768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}.gallery-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--color-bg-tertiary);transition:transform var(--transition-fast) ease,box-shadow var(--transition-fast) ease}.gallery-item:hover{transform:scale(1.03);box-shadow:var(--shadow-elevated)}.gallery-item:active{transform:scale(.98)}.gallery-item.selected{outline:3px solid var(--color-accent);outline-offset:-3px}.gallery-item-checkbox{position:absolute;top:6px;left:6px;z-index:5;width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.8);background:rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;pointer-events:none}.gallery-item-checkbox.checked{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.select-action-bar{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:200;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated),0 8px 32px rgba(0,0,0,.15);max-width:calc(100vw - 32px);animation:slideUp .2s ease}@keyframes slideUp{from{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.select-action-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent);white-space:nowrap;flex-shrink:0}.select-action-tags{display:flex;flex-wrap:wrap;gap:6px}.select-action-tag-chip{display:inline-flex;align-items:center;padding:5px 14px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.select-action-tag-chip:hover{opacity:.85;transform:scale(1.05)}.select-action-tag-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;font-weight:var(--font-weight-semibold)}.select-action-apply{flex-shrink:0}.select-action-apply.disabled{opacity:.4;pointer-events:none}.select-action-cancel{flex-shrink:0}@media (max-width:600px){.select-action-bar{left:0;right:0;bottom:0;transform:none;max-width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-wrap:wrap;padding:var(--space-3);gap:var(--space-2);animation:slideUpMobile .2s ease}@keyframes slideUpMobile{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.select-action-count{width:100%;text-align:center;font-size:var(--font-size-xs)}.select-action-tags{width:100%;justify-content:center}.select-action-tag-chip{padding:6px 12px;font-size:var(--font-size-xs)}.select-action-apply,.select-action-cancel{flex:1;text-align:center}}.gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:opacity var(--transition-normal) ease}.gallery-item img.loading{opacity:0}.gallery-item img.loaded{opacity:1}.gallery-item-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary)}.gallery-item-file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);text-align:center;height:100%}.gallery-item-file-icon{color:var(--color-text-tertiary);opacity:.7}.gallery-item-file-name{font-size:var(--text-xs);color:var(--color-text-secondary);word-break:break-all;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.gallery-badge{position:absolute;bottom:6px;right:6px;background:rgba(0,0,0,.6);color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;backdrop-filter:blur(4px)}.gallery-item-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0,transparent 50%);opacity:0;transition:opacity var(--transition-fast) ease;display:flex;align-items:flex-end;padding:var(--space-2)}.gallery-item:hover .gallery-item-overlay{opacity:1}.gallery-item-overlay-name{font-size:var(--text-xs);color:#fff;word-break:break-all;line-height:1.3}.gallery-item-delete{position:absolute;top:6px;right:6px;z-index:5;width:24px;height:24px;border-radius:50%;background:rgba(0,0,0,.5);border:none;color:#fff;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all var(--transition-fast);backdrop-filter:blur(4px)}.gallery-item:hover .gallery-item-delete{opacity:1}.gallery-item-delete:hover{background:var(--color-warning);transform:scale(1.15)}@keyframes fadeOut{to{opacity:0;transform:scale(.9)}}.gallery-item{animation:galleryFadeIn .3s ease both}.gallery-grid.select-mode .gallery-item,.gallery-timeline.select-mode .gallery-item{animation:none}@keyframes galleryFadeIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10) var(--space-4);text-align:center;color:var(--color-text-tertiary)}.gallery-empty-icon{width:64px;height:64px;margin-bottom:var(--space-4);opacity:.4;color:var(--color-text-tertiary)}.gallery-empty-text{font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-1)}.gallery-empty-subtitle{font-size:var(--text-sm)}.lightbox-backdrop{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.92);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:fadeIn var(--transition-fast) ease}.lightbox-content{position:relative;max-width:90vw;max-height:calc(100vh - 300px);margin-top:92px;display:flex;align-items:center;justify-content:center}.lightbox-content img{max-width:90vw;max-height:calc(100vh - 300px);object-fit:contain;border-radius:4px;animation:scaleIn var(--transition-normal) ease;user-select:none}.lightbox-content video{max-width:90vw;max-height:calc(100vh - 300px);border-radius:4px;outline:0}.lightbox-pdf-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);backdrop-filter:blur(8px);text-align:center;max-width:360px}.lightbox-pdf-icon{color:rgba(255,255,255,.5)}.lightbox-pdf-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:#fff;word-break:break-all}.lightbox-pdf-size{font-size:var(--font-size-sm);color:rgba(255,255,255,.5)}.lightbox-file-info{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);color:#fff;text-align:center;padding:var(--space-8)}.lightbox-file-info-icon{width:64px;height:64px;opacity:.7}.lightbox-file-info-name{font-size:var(--text-lg);font-weight:500;word-break:break-all}.lightbox-file-info-size{font-size:var(--text-sm);opacity:.6}.lightbox-file-info .btn{margin-top:var(--space-2)}.lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);z-index:510;width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast) ease;backdrop-filter:blur(4px)}.lightbox-nav:hover{background:rgba(255,255,255,.25)}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:510;padding:var(--space-3) var(--space-4);background:rgba(0,0,0,.7);backdrop-filter:blur(8px);color:#fff;display:flex;align-items:center;gap:var(--space-3);flex-wrap:nowrap}.lightbox-header-left{display:flex;flex-direction:column;gap:1px;min-width:0;flex-shrink:1}.lightbox-header-name{font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lightbox-header-meta{font-size:var(--font-size-xs);opacity:.5}.lightbox-header-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.lightbox-header-btn{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.lightbox-header-btn:hover{background:rgba(255,255,255,.25)}.lightbox-close-btn:hover{background:rgba(255,100,100,.4)}.lightbox-tags-bar{position:fixed;top:52px;left:0;right:0;z-index:510;padding:var(--space-2) var(--space-4);background:rgba(10,10,20,.85);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);-webkit-overflow-scrolling:touch}.lightbox-tags-bar::-webkit-scrollbar{display:none}.lightbox-tags{display:flex;flex-wrap:wrap;gap:5px}.lightbox-tag-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:var(--color-accent);color:#fff;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600}.lightbox-tag-remove{background:0 0;border:none;color:rgba(255,255,255,.6);font-size:14px;cursor:pointer;padding:0 2px;line-height:1;display:flex;align-items:center}.lightbox-tag-remove:hover{color:#fff}.lightbox-tag-add{display:inline-flex;align-items:center;padding:4px 12px;background:rgba(255,255,255,.12);border:1px dashed rgba(255,255,255,.3);color:rgba(255,255,255,.7);border-radius:var(--radius-full);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.lightbox-tag-add:hover{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.lightbox-tag-add-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.12);border:1px dashed rgba(255,255,255,.4);color:rgba(255,255,255,.7);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.lightbox-tag-add-btn:hover{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.lightbox-add-tag-form{display:none;flex-direction:column;gap:8px;width:100%;padding-top:6px;animation:fadeIn 150ms ease}.lightbox-add-tag-chips{display:flex;flex-wrap:wrap;gap:5px}.lightbox-add-tag-input-row{display:flex;gap:6px;align-items:center}.lightbox-add-tag-input{flex:1;min-width:0;padding:6px 10px;font-size:var(--font-size-xs);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:#fff;outline:0}.lightbox-add-tag-input::placeholder{color:rgba(255,255,255,.4)}.lightbox-add-tag-input:focus{border-color:var(--color-accent)}.lightbox-add-tag-colors{gap:5px}.lightbox-add-tag-colors .tag-color-swatch{width:20px;height:20px}.lightbox-bottom{position:fixed;bottom:0;left:0;right:0;z-index:510;background:rgba(20,20,30,.95);backdrop-filter:blur(8px);border-top:1px solid rgba(255,255,255,.1);padding:var(--space-3) var(--space-6);color:#fff;display:flex;flex-direction:column;gap:var(--space-2);max-height:40vh}.lightbox-comments-list{display:flex;flex-direction:column;gap:4px}.lightbox-comments-older{display:none;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto;border-left:2px solid rgba(255,255,255,.1);padding-left:var(--space-3);margin-bottom:var(--space-1)}.lightbox-comments-older.open{display:flex;animation:slideDown var(--transition-fast) ease}@keyframes slideDown{from{opacity:0;max-height:0}to{opacity:1;max-height:120px}}.lightbox-comments-toggle{background:0 0;border:none;color:var(--color-accent);font-size:var(--font-size-xs);cursor:pointer;padding:2px 0;text-align:left;transition:color var(--transition-fast)}.lightbox-comments-toggle:hover{color:#7b93f5}.lightbox-comment-last{border-bottom:none}.lightbox-comment-item{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06)}.lightbox-comment-item:last-child{border-bottom:none}.lightbox-comment-author{font-weight:600;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.lightbox-comment-date{color:rgba(255,255,255,.35);font-size:var(--font-size-xs);margin-left:4px}.lightbox-comment-text{color:rgba(255,255,255,.85);font-size:var(--font-size-sm);margin:2px 0 0;line-height:1.5}.lightbox-comment-row{display:flex;gap:8px}.lightbox-comment-input{flex:1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);padding:10px 14px;color:#fff;font-size:var(--font-size-base);outline:0;transition:all var(--transition-fast)}.lightbox-comment-input::placeholder{color:rgba(255,255,255,.35)}.lightbox-comment-input:focus{border-color:var(--color-accent);background:rgba(255,255,255,.12)}.lightbox-comment-btn{background:var(--color-accent);border:none;border-radius:var(--radius-sm);padding:10px 18px;color:#fff;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.lightbox-comment-btn:hover{background:#3a56d4}@media (max-width:480px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:4px}.gallery-item{border-radius:8px}.lightbox-nav{width:36px;height:36px;font-size:18px}.lightbox-prev{left:8px}.lightbox-next{right:8px}}@media (max-width:768px){.toolbar-spacer{flex:1}.toolbar-select-btn span{display:none}.toolbar-select-btn{padding:5px 8px}.toolbar-btn span{display:none}.toolbar-btn{padding:4px 6px}.toolbar-toggle-btn{padding:4px 10px;font-size:.65rem}.toolbar-toggle{padding:1px}}#activity-section{margin-top:var(--space-6)}#activity-section .section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.activity-feed{display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto}.activity-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);transition:background var(--transition-fast);animation:fadeIn var(--transition-normal) ease}.activity-item:hover{background:var(--color-bg-secondary)}.activity-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:#fff;flex-shrink:0;text-transform:uppercase}.activity-body{flex:1;min-width:0}.activity-text{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:1.4}.activity-name{font-weight:var(--font-weight-semibold)}.activity-tag{color:var(--color-accent);font-weight:var(--font-weight-medium)}.activity-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.activity-empty{text-align:center;padding:var(--space-6) var(--space-4);color:var(--color-text-tertiary)}.activity-empty-icon{color:var(--color-text-tertiary);opacity:.4;margin-bottom:var(--space-2)}.activity-empty-text{font-size:var(--font-size-sm)}