.gallery-page.svelte-16h6p05{padding:20px;max-width:1600px;margin:0 auto}.controls.svelte-16h6p05{display:flex;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.search-input.svelte-16h6p05{flex:1;min-width:200px;padding:10px 16px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}.search-input.svelte-16h6p05:focus{border-color:#667eea}.count.svelte-16h6p05{padding:10px 16px;background:#f0f0f0;border-radius:8px;font-size:14px;font-weight:600;color:#666;white-space:nowrap}.export-btn.svelte-16h6p05{padding:10px 16px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:14px;font-weight:600;color:#16a34a;text-decoration:none;white-space:nowrap}.export-btn.svelte-16h6p05:hover{background:#dcfce7}.grid.svelte-16h6p05{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.card.svelte-16h6p05{display:flex;flex-direction:column;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 2px 8px #0000001a;text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s}.card.svelte-16h6p05:hover{box-shadow:0 6px 20px #00000026;transform:translateY(-2px)}.card-img-wrap.svelte-16h6p05{position:relative;aspect-ratio:4 / 3;background:#111;overflow:hidden}.card-img-wrap.svelte-16h6p05 img:where(.svelte-16h6p05){width:100%;height:100%;object-fit:cover;display:block}.rock-badge.svelte-16h6p05{position:absolute;top:8px;right:8px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:12px;letter-spacing:.02em}.card-body.svelte-16h6p05{padding:12px 14px;display:flex;flex-direction:column;gap:3px}.card-filename.svelte-16h6p05{margin:0;font-size:13px;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-gps.svelte-16h6p05,.card-meta.svelte-16h6p05{margin:0;font-size:11px;color:#888}.state-msg.svelte-16h6p05{text-align:center;padding:60px 20px;font-size:18px;color:#666}.state-msg.error.svelte-16h6p05{color:#d32f2f}@media(max-width:768px){.gallery-page.svelte-16h6p05{padding:12px}.controls.svelte-16h6p05{flex-direction:column;align-items:stretch}.grid.svelte-16h6p05{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}}
