:root{--color-primary: #1a1a1a;--color-secondary: #666;--color-accent: #0066cc;--color-bg: #ffffff;--color-bg-alt: #f5f5f5;--color-border: #e0e0e0;--color-text: #333;--color-text-light: #666;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--max-width: 1200px;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--shadow-sm: 0 1px 3px rgba(0,0,0,.1);--shadow-md: 0 4px 6px rgba(0,0,0,.1);--transition: .2s ease}*{box-sizing:border-box;margin:0;padding:0}#gallery-app{font-family:var(--font-family);color:var(--color-text);line-height:1.6;max-width:var(--max-width);margin:0 auto;padding:var(--spacing-md)}.loading{text-align:center;padding:var(--spacing-xl);color:var(--color-text-light)}.gallery-header{margin-bottom:var(--spacing-lg)}.gallery-title{font-size:1.75rem;font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-sm)}.filter-bar{display:flex;align-items:center;background:#fff;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:12px 24px;margin:0 calc(-1 * var(--spacing-md));margin-bottom:var(--spacing-lg)}.filter-buttons{display:flex;align-items:center;gap:12px}.filter-dropdown{position:relative}.filter-dropdown-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 16px;font-size:14px;font-weight:400;color:#222;background:#fff;border:1px solid #e0e0e0;border-radius:20px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.filter-dropdown-btn:hover{border-color:#ccc}.filter-dropdown-btn.active{background:#222;color:#fff;border-color:#222}.filter-btn-icon{width:10px;height:6px;opacity:.5;transition:transform .15s ease}.filter-dropdown-btn.active .filter-btn-icon{opacity:1}.filter-dropdown.open .filter-btn-icon{transform:rotate(180deg)}.filter-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;max-height:340px;overflow:hidden;background:#fff;border:1px solid #e8e8e8;border-radius:8px;box-shadow:0 10px 40px #00000026;z-index:100;display:none}.filter-dropdown.open .filter-dropdown-menu{display:block}.filter-search{padding:12px 16px;border-bottom:1px solid #eee}.filter-search-input{width:100%;padding:8px 12px 8px 32px;font-size:14px;color:#333;background:#f5f5f5 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='%23999' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E") no-repeat 10px center;border:none;border-radius:6px;outline:none}.filter-search-input::placeholder{color:#999}.filter-options-list{max-height:280px;overflow-y:auto;padding:8px 0}.filter-option{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;font-size:14px;text-align:left;color:#333;background:transparent;border:none;cursor:pointer;transition:background .1s ease}.filter-option:before{content:"";width:18px;height:18px;border:2px solid #ddd;border-radius:50%;flex-shrink:0;transition:all .15s ease;box-sizing:border-box}.filter-option:hover{background:#f8f8f8}.filter-option:hover:before{border-color:#bbb}.filter-option.selected:before{border-color:#1a1a1a;border-width:6px}.filter-option.selected{font-weight:400}.filter-actions-bar{display:flex;align-items:center;gap:16px;margin-left:auto}.filter-count{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:12px;font-weight:600;color:#fff;background:#e67e22;border-radius:50%}.filter-reset-btn{display:inline-flex;align-items:center;gap:6px;padding:0;font-size:14px;color:#666;background:transparent;border:none;cursor:pointer;transition:color .15s ease;white-space:nowrap}.filter-reset-btn:hover{color:#222}.filter-nested-menu{min-width:260px;padding:8px 0}.filter-nested-menu .filter-search{display:none}.filter-nested-item{position:relative}.filter-nested-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 16px;font-size:14px;text-align:left;color:#333;background:transparent;border:none;cursor:pointer;transition:background .1s ease;gap:10px}.filter-nested-header:hover{background:#f8f8f8}.filter-nested-header.active{font-weight:500}.filter-nested-value{flex:1;text-align:right;color:#999;font-size:13px;overflow:hidden;text-overflow:ellipsis}.filter-nested-header.active .filter-nested-value{color:#e67e22}.filter-nested-arrow{flex-shrink:0;width:6px;height:10px;opacity:.4;transition:transform .15s ease}.filter-nested-item.open .filter-nested-arrow{transform:rotate(90deg)}.filter-nested-submenu{display:none;background:#f9f9f9;border-top:1px solid #eee;max-height:280px;overflow:hidden}.filter-nested-item.open .filter-nested-submenu{display:block}.filter-submenu-search{padding:10px 12px;background:#fff;border-bottom:1px solid #eee}.filter-submenu-search .filter-search-input{font-size:13px;padding:6px 10px 6px 28px;background-size:14px}.filter-submenu-options{max-height:200px;overflow-y:auto;padding:6px 0}.filter-nested-submenu .filter-option{padding:8px 12px;font-size:13px;color:#444}.filter-nested-submenu .filter-option:before{width:16px;height:16px;border-width:1.5px}.filter-nested-submenu .filter-option.selected:before{border-width:5px}.results-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);font-size:.875rem;color:var(--color-text-light)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.gallery-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all var(--transition)}.gallery-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-image{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--color-bg-alt)}.card-image img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform var(--transition)}.gallery-card:hover .card-image img{transform:scale(1.05)}.card-body{padding:var(--spacing-xs) var(--spacing-sm)}.card-header-row{display:flex;align-items:center;gap:.375rem;margin-bottom:.25rem}.card-number{font-size:.6875rem;color:var(--color-text-light)}.card-tags{display:flex;flex-wrap:wrap;gap:.1875rem;line-height:1.2}.tag{display:inline-block;padding:.0625rem .375rem;font-size:.625rem;background:var(--color-bg-alt);border-radius:9999px;color:var(--color-text-light)}.tag--primary{background:var(--color-primary);color:#fff}.tag--option{background:#e8f4e8;color:#2d6a2d;border:1px solid #c5e1c5}.card-tags--options{margin-top:.125rem}.pagination{display:flex;justify-content:center;margin-top:var(--spacing-lg);padding:var(--spacing-md) 0}.pagination-inner{display:flex;align-items:center;gap:var(--spacing-xs)}.pagination-pages{display:flex;align-items:center;gap:4px}.pagination-btn{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;font-size:.875rem;font-weight:500;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.pagination-btn:hover:not(:disabled):not(.active){background:var(--color-bg-alt);border-color:var(--color-text-light)}.pagination-btn.active{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-prev,.pagination-next{font-size:1rem}.pagination-ellipsis{display:flex;align-items:center;justify-content:center;min-width:32px;height:40px;color:var(--color-text-light);font-size:.875rem}.detail-page{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.back-link{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:var(--spacing-md);color:var(--color-text-light);text-decoration:none;font-size:.875rem;transition:color var(--transition)}.back-link:hover{color:var(--color-accent)}.detail-content{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg)}@media (min-width: 768px){.detail-content{grid-template-columns:1fr 320px}}.image-gallery{display:flex;flex-direction:column;gap:var(--spacing-sm)}.main-image{aspect-ratio:4/3;background:var(--color-bg-alt);border-radius:var(--radius-md);overflow:hidden}.main-image img{width:100%;height:100%;object-fit:contain}.thumbnail-list{display:flex;gap:var(--spacing-xs);overflow-x:auto;padding-bottom:var(--spacing-xs)}.thumbnail{flex-shrink:0;width:64px;height:64px;border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;opacity:.6;transition:all var(--transition)}.thumbnail:hover,.thumbnail.active{opacity:1;border-color:var(--color-primary)}.thumbnail img{width:100%;height:100%;object-fit:cover}.specs-panel{background:var(--color-bg-alt);border-radius:var(--radius-md);padding:var(--spacing-md)}.specs-title{font-size:1rem;font-weight:600;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.specs-table{width:100%;font-size:.875rem}.specs-table tr{border-bottom:1px solid var(--color-border)}.specs-table tr:last-child{border-bottom:none}.specs-table th,.specs-table td{padding:.75rem 0;text-align:left}.specs-table th{width:40%;font-weight:500;color:var(--color-text-light)}.order-btn{display:block;width:100%;margin-top:var(--spacing-md);padding:1rem;font-size:1rem;font-weight:600;color:#fff;background:var(--color-accent);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);text-align:center;text-decoration:none;box-sizing:border-box}.order-btn:hover{filter:brightness(1.1)}.similar-section{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.similar-title{font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-md)}.similar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md)}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--color-text-light)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}@media (max-width: 640px){#gallery-app{padding:var(--spacing-sm)}.gallery-title{font-size:1.5rem}.filter-grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}.card-body{padding:var(--spacing-xs)}.card-tags{display:none}}
