.pwa-toast[data-v-d4578b48]{border:1px solid var(--color-border);z-index:1000;text-align:left;background-color:var(--color-background-soft);color:var(--color-text);border-radius:8px;flex-direction:column;gap:8px;margin:16px;padding:12px;display:flex;position:fixed;bottom:0;right:0;box-shadow:3px 4px 5px #0000004d}.pwa-toast .message[data-v-d4578b48]{margin-bottom:8px;font-size:14px}.pwa-toast .actions[data-v-d4578b48]{justify-content:flex-end;gap:8px;display:flex}.pwa-toast button[data-v-d4578b48]{border:1px solid var(--color-border);cursor:pointer;background-color:var(--color-background);color:var(--color-text);border-radius:4px;outline:none;margin-right:5px;padding:6px 12px;font-size:14px}.pwa-toast button[data-v-d4578b48]:hover{background-color:var(--color-border)}.pwa-toast .reload-button[data-v-d4578b48]{color:#fff;background-color:#4caf50;border:none}.pwa-toast .reload-button[data-v-d4578b48]:hover{background-color:#45a049}header[data-v-85838a9d]{line-height:1.5}.logo[data-v-85838a9d]{margin:0 auto 2rem;display:block}@media (width>=1024px){header[data-v-85838a9d]{padding-right:calc(var(--section-gap) / 2);place-items:center;display:flex}.logo[data-v-85838a9d]{margin:0 2rem 0 0}header .wrapper[data-v-85838a9d]{flex-wrap:wrap;place-items:flex-start;display:flex}}:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){.public-layout,.not-found-container{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}:is(body:has(.public-layout),body:has(.not-found-container)){color:var(--vt-c-text-dark-2);background:#000}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}:root{--admin-color-surface:#fff;--admin-color-surface-muted:#f8f9fa;--admin-color-surface-soft:#f1f3f5;--admin-color-border:#dee2e6;--admin-color-border-soft:#eee;--admin-color-text:#1a1a1a;--admin-color-text-muted:#495057;--admin-color-text-subtle:#6c757d;--admin-color-text-faint:#adb5bd;--admin-color-danger:#dc3545;--admin-color-danger-soft:#fff5f5;--admin-color-accent:#000;--admin-shadow-card:0 4px 24px #0000000a;--admin-shadow-hover:0 4px 12px #0000000d;--admin-radius-card:16px;--admin-radius-panel:12px;--admin-radius-control:10px;--admin-radius-control-sm:8px;--admin-transition-fast:all .2s}.admin-wrapper,.login-wrapper{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:#fff;--color-background-soft:#f8f9fa;--color-background-mute:#f1f3f5;--color-border:#00000014;--color-border-hover:#00000026;--color-heading:#1a1a1a;--color-text:#495057}.admin-wrapper{color:#1a1a1a;background:#f8f9fa}.admin-card{background:var(--admin-color-surface);border:1px solid var(--admin-color-border-soft);border-radius:var(--admin-radius-card);box-shadow:var(--admin-shadow-card);width:100%}.card-body{padding:40px}.section-title{color:var(--admin-color-text-faint);letter-spacing:.1em;text-transform:uppercase;margin:0 0 24px;font-size:.85rem;font-weight:700}.loading-state,.empty-state{color:var(--admin-color-text-faint);padding:20px 0;font-size:.9rem}@media (width<=992px){.card-body{padding:30px 20px}}.premium-form{flex-direction:column;gap:40px;display:flex}.form-group{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.form-group label{color:var(--admin-color-text-muted);font-size:.85rem;font-weight:600}.input-premium,.input-premium-sm{border:1px solid var(--admin-color-border);width:100%;transition:var(--admin-transition-fast);background:#fdfdfd}.input-premium{border-radius:var(--admin-radius-control);padding:12px 16px;font-size:.95rem}.input-premium-sm{border-radius:var(--admin-radius-control-sm);padding:10px 14px;font-size:.9rem}.input-premium:focus,.input-premium-sm:focus{border-color:var(--admin-color-accent);background:var(--admin-color-surface);outline:none;box-shadow:0 0 0 4px #0000000d}textarea.input-premium,textarea.input-premium-sm{resize:vertical}.btn-submit{border-radius:var(--admin-radius-control);background:var(--admin-color-accent);color:#fff;cursor:pointer;transition:var(--admin-transition-fast);border:none;font-weight:600}.btn-submit:hover:not(:disabled){background:#222}.btn-submit:disabled{opacity:.65;cursor:default}.btn-secondary{border:1px solid var(--admin-color-border);border-radius:var(--admin-radius-control);background:var(--admin-color-surface);color:var(--admin-color-text-muted);cursor:pointer;transition:var(--admin-transition-fast);font-weight:600}.btn-secondary:hover:not(:disabled){border-color:var(--admin-color-text-faint);background:var(--admin-color-surface-muted);color:var(--admin-color-text)}.btn-secondary:disabled{color:var(--admin-color-text-faint);cursor:not-allowed}.form-footer{border-top:1px solid var(--admin-color-border-soft);justify-content:flex-end;gap:16px;padding-top:30px;display:flex}.form-footer .btn-submit,.form-footer .btn-secondary{justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-size:.95rem;display:inline-flex}.has-error .input-premium,.has-error .input-premium-sm{border-color:var(--admin-color-danger)}.field-error-msg{color:var(--admin-color-danger);margin-top:4px;font-size:.75rem}.spinner-sm{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite admin-spin}@keyframes admin-spin{to{transform:rotate(360deg)}}.manager-layout,.tag-manager-layout,.album-manager-layout{grid-template-columns:280px 1fr;gap:60px;display:grid}.toolbar{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.toolbar label{color:var(--admin-color-text-muted);font-size:.85rem;font-weight:600}.manager-sidebar .btn-submit{width:100%;padding:12px}.group-section+.group-section{margin-top:40px}.group-heading{color:var(--admin-color-text-muted);margin:24px 0 12px;font-size:1rem;font-weight:700}.item-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.item-list--compact{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.item-card{border:1px solid var(--admin-color-border-soft);border-radius:var(--admin-radius-panel);background:var(--admin-color-surface-muted);transition:var(--admin-transition-fast);padding:20px}.item-card--compact{border-radius:10px;padding:16px}.item-card:hover{border-color:var(--admin-color-border);background:var(--admin-color-surface);box-shadow:var(--admin-shadow-hover)}.display-mode,.edit-mode{width:100%;display:flex}.display-mode{align-items:center;gap:10px}.edit-mode{flex-direction:column;gap:10px}.item-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.item-name{color:var(--admin-color-text);font-size:.95rem;font-weight:700}.item-meta{color:var(--admin-color-text-subtle);font-size:.8rem}.item-actions,.edit-actions{flex-shrink:0;display:flex}.item-actions{gap:4px}.edit-actions{gap:12px}.btn-icon-sm{width:28px;height:28px;color:var(--admin-color-text-faint);cursor:pointer;transition:var(--admin-transition-fast);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:.9rem;display:flex}.btn-icon-sm:hover{background:var(--admin-color-surface-soft);color:var(--admin-color-accent)}.btn-icon-sm.is-danger:hover{background:var(--admin-color-danger-soft);color:var(--admin-color-danger)}.btn-text{color:var(--admin-color-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:700}.btn-text.is-muted{color:var(--admin-color-text-faint)}@media (width<=1200px){.manager-layout,.tag-manager-layout,.album-manager-layout{gap:30px}}@media (width<=992px){.manager-layout,.tag-manager-layout,.album-manager-layout{grid-template-columns:1fr;gap:40px}}.filter-modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.filter-modal-content{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:500px;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000026}.filter-modal-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.filter-modal-body{max-height:60vh;padding:24px;overflow-y:auto}.filter-modal-footer{background:#f8f9fa;border-top:1px solid #eee;gap:12px;padding:20px 24px;display:flex}.import-result-modal{max-width:520px}.import-summary{margin-bottom:12px;font-weight:600}.import-preview-note{color:#495057;margin-bottom:12px;font-size:.9rem;line-height:1.5}.import-warning{color:#e67700;margin-top:12px;font-size:.9rem}.import-truncated{color:#868e96;margin-bottom:8px;font-size:.85rem}.import-error-list{color:#c92a2a;max-height:240px;margin:0;padding-left:1.2rem;font-size:.9rem;overflow-y:auto}.import-no-errors{color:#2b8a3e;font-size:.9rem}.modal-title{margin:0;font-size:1.1rem;font-weight:700}.modal-close-btn{color:#adb5bd;cursor:pointer;background:0 0;border:none;font-size:1.5rem}.btn-submit-modal,.btn-apply-modal{color:#fff;cursor:pointer;background:#000;border:none;border-radius:10px;font-weight:600}.btn-cancel,.btn-clear-modal{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:10px;font-weight:600}.btn-submit-modal,.btn-cancel,.btn-apply-modal,.btn-clear-modal{padding:12px 20px}.filter-modal-footer .btn-submit,.filter-modal-footer .btn-submit-modal,.filter-modal-footer .btn-cancel,.filter-modal-footer .btn-apply-modal,.filter-modal-footer .btn-clear-modal{width:auto}.btn-apply-modal{flex:2}.btn-clear-modal{flex:1}.btn-submit-modal:disabled{opacity:.5;cursor:not-allowed}.filter-field{margin-bottom:20px}.filter-field:last-child{margin-bottom:0}.field-label{color:#495057;margin-bottom:8px;font-size:.85rem;font-weight:700;display:block}.field-input,.field-select{background-color:#fff;border:1px solid #dee2e6;border-radius:10px;width:100%;padding:12px;font-size:.95rem;transition:border-color .2s}.field-input:focus,.field-select:focus{border-color:#000;outline:none}@media (width<=576px){.filter-modal-overlay{padding:0}.filter-modal-content{border-radius:0;max-width:100%;height:100%}.filter-modal-footer{padding-bottom:40px}}.admin-guide-photo-picker__label{font-size:.85rem;font-weight:600}.admin-guide-photo-picker__list{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-guide-photo-picker__thumb{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:6px;padding:2px}.admin-guide-photo-picker__thumb.is-selected{border-color:#000}.admin-guide-photo-picker__thumb img{object-fit:cover;border-radius:4px;width:64px;height:64px;display:block}.admin-toolbar{background:#fdfdfd;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;min-height:72px;padding:16px 24px;display:flex}.toolbar-left,.toolbar-right,.toolbar-csv{align-items:center;gap:12px;display:flex}.filter-summary-inline{background:#f8f9fa;border:1px solid #e9ecef;border-radius:20px;align-items:center;gap:10px;padding:6px 12px;display:flex}.summary-label{color:#adb5bd;text-transform:uppercase;font-size:.75rem;font-weight:700}.summary-pill{color:#495057;font-size:.85rem;font-weight:500}.btn-clear-mini{color:#6c757d;cursor:pointer;background:#e9ecef;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;transition:all .2s;display:flex}.btn-clear-mini:hover{color:#212529;background:#dee2e6}.btn-csv,.btn-open-filter{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:600;transition:all .2s;display:flex;position:relative}.btn-csv:hover,.btn-open-filter:hover{background:#f8f9fa;border-color:#ced4da}.btn-csv:disabled,.btn-open-filter:disabled{opacity:.6;cursor:not-allowed}.filter-count-badge{color:#fff;background:#000;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:800;display:flex;position:absolute;top:-6px;right:-6px;box-shadow:0 2px 4px #0003}@media (width<=576px){.admin-toolbar{flex-direction:column-reverse;align-items:stretch;gap:12px;padding:16px}.toolbar-right,.toolbar-csv{flex-wrap:wrap}.filter-summary-inline{white-space:nowrap;width:100%;overflow-x:auto}}.page-container{box-sizing:border-box;width:100%;color:var(--color-text);background:var(--color-background);--guide-control-height:36px;margin:0 auto;padding:40px 20px;font-family:Inter,sans-serif}.page-container .header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:40px;display:flex}.page-container .header-left{flex:1;min-width:0}.page-container .filter-summary{color:var(--color-heading);margin:0;font-size:1.25rem;font-weight:600}.page-container .album-comment{color:var(--color-text);white-space:pre-wrap;max-width:800px;margin:12px 0 0;font-size:.95rem;line-height:1.6}.page-container .archive-back-link{color:#007bff;margin-bottom:16px;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-block}.page-container .archive-back-link:hover{background:0 0;text-decoration:underline}.page-container .species-scientific{color:var(--color-text);opacity:.85;margin:8px 0 0;font-size:.95rem;font-style:italic}.page-container .species-shooting-range{color:var(--color-text);opacity:.75;margin:12px 0 0;font-size:.9rem}.page-container .species-shooting-range-label{margin-right:.35em;font-weight:600}.page-container .controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-container .guide-search-input{border:1px solid var(--color-border);color:var(--color-text);background-color:var(--color-background-soft);border-radius:6px;min-width:200px;max-width:320px;padding:10px 12px;font-size:.9rem}.page-container .guide-search-input:focus{border-color:#007bff;outline:none}.page-container .guide-toolbar{margin-bottom:32px}.page-container .guide-result-type .guide-tabs{padding-bottom:4px}.page-container .guide-result-count{color:var(--color-text);opacity:.75;margin:0 0 24px;font-size:.9rem}.page-container .horizontal-scroll-row{position:relative}.page-container .horizontal-scroll-row-inner{-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:4px;overflow-x:auto}.page-container .horizontal-scroll-row:before,.page-container .horizontal-scroll-row:after{content:"";pointer-events:none;opacity:0;z-index:1;width:28px;transition:opacity .2s;position:absolute;top:0;bottom:4px}.page-container .horizontal-scroll-row.has-scroll-left:before{opacity:1;background:linear-gradient(to right, var(--color-background), transparent);left:0}.page-container .horizontal-scroll-row.has-scroll-right:after{opacity:1;background:linear-gradient(to left, var(--color-background), transparent);right:0}.page-container .scroll-btn{z-index:2;border:1px solid var(--color-border);background:var(--color-background);width:28px;height:28px;color:var(--color-text);cursor:pointer;opacity:.85;border-radius:50%;padding:0;font-size:1.1rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 4px #00000014}.page-container .scroll-btn:hover{opacity:1;border-color:var(--color-border-hover)}.page-container .scroll-btn-left{left:0}.page-container .scroll-btn-right{right:0}.page-container .guide-tabs{flex-wrap:nowrap;gap:8px;display:flex}.page-container .guide-tab{box-sizing:border-box;min-height:var(--guide-control-height);border:1px solid var(--color-border);background:var(--color-background-soft);color:var(--color-text);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:8px 16px;font-size:.9rem;font-weight:500;line-height:1.25;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.page-container .guide-tab:hover{border-color:var(--color-border-hover)}.page-container .guide-tab.is-active{color:#fff;background:#007bff;border-color:#007bff}.page-container .photo-grid{box-sizing:border-box;gap:20px;width:100%;display:grid}@media (width<=959px){.page-container .photo-grid{grid-template-columns:1fr}.page-container .photo-card{width:100%;max-width:100%}}@media (width>=960px){.page-container .photo-grid{grid-template-columns:repeat(auto-fill,320px);justify-content:center;align-items:start}.page-container .photo-card{width:320px;min-width:320px;max-width:320px}}.page-container .photo-card{border:1px solid var(--color-border);background:var(--color-background-soft);color:inherit;border-radius:8px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:block;overflow:hidden}.page-container .photo-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.page-container .image-wrapper{aspect-ratio:1;background:var(--color-background-mute);overflow:hidden}.page-container .image-wrapper img{object-fit:cover;width:100%;height:100%}.page-container .image-placeholder{aspect-ratio:1;background:var(--color-background-mute);color:var(--color-text);opacity:.5;justify-content:center;align-items:center;font-size:.85rem;display:flex}.page-container .photo-info{padding:15px}.page-container .photo-title{color:var(--color-heading);margin:0 0 8px;font-size:1rem;font-weight:600}.page-container .photo-meta{color:var(--color-text);opacity:.75;margin:0 0 6px;font-size:.8rem}.page-container .photo-meta.sci{font-style:italic}.page-container .species-card-taxonomy{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-container .photo-link{color:inherit;cursor:pointer;height:100%;text-decoration:none;display:block}.page-container .photo-tags{flex-wrap:nowrap;gap:5px;display:flex;overflow:hidden}.page-container .tag-badge{background:var(--color-background-mute);color:var(--color-text);white-space:nowrap;border-radius:12px;flex-shrink:0;padding:3px 8px;font-size:.75rem;display:inline-block}.page-container .sort-select{border:1px solid var(--color-border);color:var(--color-text);background-color:var(--color-background-soft);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border-radius:6px;min-width:160px;padding:10px 32px 10px 12px;font-size:.9rem}.page-container .sort-select:focus{border-color:#007bff;outline:none}.page-container .loading-more{text-align:center;color:var(--color-text);opacity:.7;padding:20px}.page-container .nav-card-body{padding:20px}.page-container .nav-card-body .album-comment{margin-top:8px}.page-container .loading,.page-container .empty-state{text-align:center;color:var(--color-text);opacity:.7;padding:40px}.public-layout .modal-overlay{z-index:1000;background:#000000e6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.public-layout .modal-content{background:var(--color-background);box-sizing:border-box;width:100%;max-width:1400px;max-height:90vh;color:var(--color-text);border-radius:12px;padding:0;position:relative;overflow-y:auto}@media (width<=768px){.public-layout .modal-content{max-height:95vh}}@media (width<=640px){.page-container{padding:20px 0}.page-container .header{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:24px}.page-container .header-left{flex:none;width:100%}.page-container .filter-summary{word-break:break-word;font-size:1.15rem;line-height:1.4}.page-container .album-comment{margin-top:8px;font-size:.9rem}.page-container .controls{gap:8px;width:100%}.page-container .controls>*{flex:1;min-width:0}.page-container .sort-select{width:100%;min-width:0}.page-container .guide-search-input{width:100%;min-width:0;max-width:none}.page-container .guide-toolbar,.page-container .guide-location-filters{margin-bottom:20px}.page-container .guide-result-count{margin:0 0 16px}.page-container .photo-grid{gap:12px}.page-container .photo-info{padding:12px}.page-container .loading,.page-container .empty-state{padding:32px 16px}}@media (width>=480px) and (width<=959px){.page-container .photo-grid{grid-template-columns:repeat(2,1fr);gap:14px}}@media (prefers-color-scheme:dark){.public-layout .page-container .photo-card:hover{box-shadow:0 4px 12px #00000059}}.page-container .btn-toggle-search{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:6px;padding:10px 20px;font-weight:500;transition:background .2s}.page-container .btn-toggle-search:hover{background:#0056b3}.page-container .btn-toggle-search.active{background:#6c757d}.page-container .search-modal-overlay{z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.page-container .search-modal-content{background:var(--color-background);border-radius:16px;flex-direction:column;width:100%;max-width:700px;max-height:90vh;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 40px #0003}.page-container .search-modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.page-container .modal-title{color:var(--color-heading);margin:0;font-size:1.2rem;font-weight:700}.page-container .modal-close-btn{color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.8rem;line-height:1}.page-container .search-modal-body{flex:1;padding:24px;overflow-y:auto}.page-container .search-modal-footer{border-top:1px solid var(--color-border);background:var(--color-background-soft);gap:12px;padding:16px 24px;display:flex;position:sticky;bottom:0}.page-container .search-section{margin-bottom:24px}.page-container .search-section:last-child{margin-bottom:0}.page-container .search-label{color:var(--color-heading);letter-spacing:.05em;margin-bottom:12px;font-size:.9rem;font-weight:700;display:block}.page-container .search-input,.page-container .date-input{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-background);width:100%;color:var(--color-text);border-radius:8px}.page-container .search-input{padding:12px 16px;font-size:1rem;transition:all .2s}.page-container .search-input:focus,.page-container .date-input:focus{border-color:#007bff;outline:none;box-shadow:0 0 0 3px #007bff1a}.page-container .loading-tags{color:var(--color-text);opacity:.7;font-size:.9rem}.page-container .species-accordion,.page-container .subgroup-list{flex-direction:column;display:flex}.page-container .species-accordion{gap:8px}.page-container .subgroup-list{gap:6px;margin-top:6px}.page-container .accordion-toggle{border:1px solid var(--color-border);background:var(--color-background-soft);width:100%;color:var(--color-heading);text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;padding:10px 12px;font-size:.9rem;display:flex}.page-container .accordion-toggle.subgroup{width:calc(100% - 12px);margin-left:12px;font-size:.85rem}.page-container .hint-inline{color:var(--color-text);opacity:.6;margin:4px 0 0 12px;font-size:.8rem}.page-container .scientific-inline{font-style:italic}.page-container .tag-checkboxes{border:1px solid var(--color-border);background:var(--color-background-soft);border-radius:8px;flex-wrap:wrap;gap:10px;padding:12px;display:flex}.page-container .tag-checkbox-label{border:1px solid var(--color-border);background:var(--color-background);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;padding:6px 12px;transition:all .2s;display:flex}.page-container .tag-checkbox-label:hover{border-color:#007bff}.page-container .tag-checkbox-label.is-locked{cursor:not-allowed;opacity:.75}.page-container .tag-checkbox-label.is-locked:hover{border-color:var(--color-border)}.page-container .tag-checkbox{display:none}.page-container .tag-checkbox-text{color:var(--color-text);font-size:.85rem}.page-container .tag-checkbox:checked+.tag-checkbox-text{color:#007bff;font-weight:700}.page-container .tag-checkbox:checked+span.tag-checkbox-text:before{content:"✓ "}.page-container .category-group,.page-container .tag-group{width:100%;margin-bottom:16px}.page-container .category-group:last-child,.page-container .tag-group:last-child{margin-bottom:0}.page-container .parent-label{background:var(--color-background-mute);margin-bottom:8px;font-weight:700}.page-container .category-children,.page-container .tag-group-content{flex-wrap:wrap;gap:8px;display:flex}.page-container .category-children{margin-left:12px}.page-container .tag-group-title{border-bottom:1px solid var(--color-border);color:var(--color-text);text-transform:uppercase;opacity:.7;margin-bottom:8px;padding-bottom:4px;font-size:.75rem;font-weight:700}.page-container .date-range{gap:12px;display:flex}.page-container .date-input-group{flex:1}.page-container .date-label{color:var(--color-text);opacity:.7;margin-bottom:4px;font-size:.8rem;display:block}.page-container .date-input{padding:10px}.page-container .date-input:disabled{cursor:not-allowed;opacity:.7}.page-container .btn-search-primary,.page-container .btn-clear-outline{cursor:pointer;border-radius:10px;padding:14px;font-size:1rem}.page-container .btn-search-primary{color:#fff;background:#007bff;border:none;flex:2;font-weight:700}.page-container .btn-search-primary:hover{background:#0056b3}.page-container .btn-clear-outline{border:1px solid var(--color-border);color:var(--color-text);background:0 0;flex:1;font-weight:600;transition:all .2s}.page-container .btn-clear-outline:hover{background:var(--color-background-mute)}.page-container .guide-location-filters{margin-bottom:32px;padding:0 4px}.page-container .guide-date-filter{flex-wrap:nowrap;align-items:center;gap:10px;display:flex}.page-container .guide-filter-label{color:#6c757d;white-space:nowrap;flex-shrink:0;margin:0;font-size:.85rem}.page-container .guide-date-range{align-items:center;gap:8px;min-width:0;display:flex}.page-container .guide-date-input{box-sizing:border-box;width:9.5rem;min-width:0;max-width:42%;min-height:var(--guide-control-height);height:var(--guide-control-height);border:1px solid var(--color-border,#dee2e6);background:var(--color-background,#fff);color:var(--color-text,#1a1a1a);appearance:none;border-radius:6px;padding:8px 10px;font-size:.9rem;line-height:1.25}.page-container .guide-date-sep{color:#6c757d;flex-shrink:0}@media (width<=768px){.page-container .search-modal-overlay{padding:0}.page-container .search-modal-content{border-radius:0;height:100%;max-height:100%}.page-container .search-modal-footer{padding:12px 20px 30px}.page-container .date-range{flex-direction:column}.page-container .guide-date-filter{flex-wrap:wrap}}.photo-detail-page-container{background:var(--color-background);min-height:100vh;color:var(--color-text);font-family:Outfit,sans-serif}.photo-detail-page-container .full-screen-state{flex-direction:column;justify-content:center;align-items:center;gap:20px;height:70vh;display:flex}.photo-detail-page-container .loader{border:3px solid var(--color-border);border-top:3px solid var(--color-heading);border-radius:50%;width:40px;height:40px;animation:1s linear infinite public-detail-spin}.photo-detail-content{color:var(--color-text);font-family:Outfit,sans-serif}.photo-detail-content .detail-header-fixed{z-index:1200;border-bottom:1px solid var(--color-border);background:rgba(var(--color-background-rgb,255, 255, 255), .85);-webkit-backdrop-filter:blur(15px);margin-bottom:30px;padding:12px 20px;position:sticky;top:0}.photo-detail-page-container .detail-header-fixed{margin-bottom:40px}.photo-detail-content .detail-header-fixed .header-inner{justify-content:space-between;align-items:center;gap:20px;max-width:1400px;margin:0 auto;display:flex}.photo-detail-content .mini-category{letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:2px;font-size:.7rem;font-weight:600;display:block}.photo-detail-content .mini-title{color:var(--color-heading);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.1rem;font-weight:600;overflow:hidden}.photo-detail-content .photo-info-mini{flex:1;min-width:0}.photo-detail-content .btn-close-detail{cursor:pointer;background:var(--color-background-soft);color:var(--color-text);border:none;border-radius:40px;flex-shrink:0;align-items:center;gap:8px;padding:8px 18px;font-size:.9rem;font-weight:600;transition:all .3s;display:flex}.photo-detail-content .btn-close-detail:hover{background:var(--color-heading);color:var(--color-background);transform:scale(1.05)}.photo-detail-content .btn-close-detail .icon{font-size:1.4rem;line-height:1}.photo-detail-page-container .fade-enter-active,.photo-detail-page-container .fade-leave-active{transition:opacity .6s,transform .6s}.photo-detail-page-container .fade-enter-from,.photo-detail-page-container .fade-leave-to{opacity:0;transform:translateY(10px)}.photo-detail-content .detail-content{flex-direction:column;max-width:1400px;margin:0 auto;display:flex}.photo-detail-content .image-section,.photo-detail-content .info-section{padding-inline:40px}.photo-detail-content .image-section{margin-bottom:20px}.photo-detail-content .image-wrapper{background:var(--color-background-mute);cursor:zoom-in;border-radius:12px;justify-content:center;align-items:flex-start;transition:box-shadow .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000000d}.photo-detail-content .image-wrapper.is-zoomed{cursor:grab;touch-action:none;box-shadow:0 10px 30px #0000001f}.photo-detail-content .image-wrapper.is-zoomed.is-dragging{cursor:grabbing}.photo-detail-content .main-image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;cursor:zoom-in;width:100%;height:auto;display:block}.photo-detail-content .image-wrapper:not(.is-zoomed) .main-image{transition:all .5s cubic-bezier(.4,0,.2,1)}.photo-detail-content .image-wrapper.is-zoomed .main-image{opacity:0;transition:transform .3s,opacity .5s}.photo-detail-content .image-wrapper.is-zoomed .main-image.loaded{opacity:1}.photo-detail-content .image-overlay{color:#333;opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#fffc;border-radius:20px;padding:6px 14px;font-size:.8rem;font-weight:600;transition:opacity .3s;position:absolute;bottom:20px;right:20px}.photo-detail-content .image-wrapper:hover .image-overlay{opacity:1}.photo-detail-content .zoom-exit-btn{z-index:5;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);background:#000000a6;border:none;border-radius:40px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:background .2s,transform .2s;position:absolute;top:16px;right:16px}.photo-detail-content .zoom-exit-btn:hover{background:#000000d9;transform:scale(1.03)}.photo-detail-content .image-loading{z-index:4;color:var(--color-heading);flex-direction:column;align-items:center;gap:15px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.photo-detail-content .image-wrapper .spinner{border:3px solid var(--color-border);border-top-color:var(--color-heading);border-radius:50%;width:40px;height:40px;animation:1s linear infinite public-detail-spin}.photo-detail-content .instruction-overlay{z-index:6;border:1px solid var(--color-border);background:rgba(var(--color-background-rgb,255, 255, 255), .95);width:320px;max-width:90%;color:var(--color-text);text-align:center;-webkit-backdrop-filter:blur(10px);border-radius:16px;padding:30px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #00000026}.photo-detail-content .instruction-actions{flex-direction:column;align-items:center;gap:15px;display:flex}.photo-detail-content .checkbox-label{cursor:pointer;opacity:.9;align-items:center;gap:8px;font-size:.85rem;display:flex}.photo-detail-content .checkbox-label input{width:16px;height:16px;accent-color:var(--color-heading)}.photo-detail-content .btn-primary{background:var(--color-heading);width:100%;color:var(--color-background);cursor:pointer;border:none;border-radius:30px;padding:10px 40px;font-weight:600;transition:transform .2s,opacity .2s}.photo-detail-content .btn-primary:hover{opacity:.9;transform:scale(1.02)}.photo-detail-content .info-section{width:100%;max-width:900px;margin:0 auto;padding-block:20px}.photo-detail-content .albums-list,.photo-detail-content .tags-list{flex-wrap:wrap;gap:8px;display:flex}.photo-detail-content .albums-list{margin-bottom:12px}.photo-detail-content .album-badge{color:#495057;background:#e9ecef;border-radius:6px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-block}.photo-detail-content .tag-pill{background:var(--color-background-soft);color:var(--color-text);border-radius:8px;margin:0 8px 8px 0;padding:6px 14px;font-size:.85rem;transition:background .3s;display:inline-block}.photo-detail-content .tag-pill:hover{background:var(--color-background-mute)}.photo-detail-content .photo-comment{color:var(--color-text);white-space:pre-wrap;margin:30px 0;font-size:1.1rem;line-height:1.6}.photo-detail-content .specs-grid{border:1px solid var(--color-border);background:var(--color-background-soft);border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:30px;margin-bottom:40px;padding:40px;display:grid}.photo-detail-content .spec-item label{color:var(--color-text);text-transform:uppercase;opacity:.7;margin-bottom:4px;font-size:.75rem;font-weight:600;display:block}.photo-detail-content .spec-item .value{color:var(--color-heading);font-size:1rem;font-weight:400}@keyframes public-detail-spin{to{transform:rotate(360deg)}}@media (width>=1024px){.photo-detail-content .detail-content{max-width:1000px}.photo-detail-content .image-section{margin-bottom:40px}}@media (width<=768px){.photo-detail-content .image-section,.photo-detail-content .info-section{padding-inline:20px}}@media (prefers-color-scheme:dark){.photo-detail-content .detail-header-fixed{background:#181818d9}.photo-detail-content .image-overlay{color:var(--color-text);background:#0009}.photo-detail-content .instruction-overlay{background:#181818f2}.photo-detail-content .album-badge{color:#e9ecef;background:#343a40}}#app{width:100%;margin:0;padding:0;font-weight:400}body{background:var(--color-background);min-height:100vh;color:var(--color-text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}a,.green{color:#00bd7e;padding:3px;text-decoration:none;transition:all .4s}@media (hover:hover){a:hover{background-color:#00bd7e33}}.drag-handle,.group-drag-handle{cursor:grab;color:#adb5bd;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:4px 2px;font-size:1rem;line-height:1}.drag-handle:active,.group-drag-handle:active{cursor:grabbing}.is-drag-disabled .drag-handle,.is-drag-disabled .group-drag-handle{display:none}.sortable-ghost{opacity:.4}
