.camera-pin,.camera-cluster,.camera-pin-active{position:relative;display:block;cursor:pointer;touch-action:manipulation;transform:translate(-50%,-50%)}.camera-pin{width:24px;height:24px;padding:0;border:4px solid #fff;border-radius:50%;background:#3985ed;box-shadow:0 1px 5px #173a6140}.camera-cluster{display:grid;place-items:center;min-width:42px;height:42px;padding:0 10px;border:4px solid #fff;border-radius:24px;background:#3985ed;color:#fff;box-shadow:0 2px 8px #173a6130;font-size:14px;font-weight:650}.camera-pin-active{display:block;width:24px;height:24px;padding:0;border:0;background:transparent;transform:translate(-50%,-50%);line-height:0}.camera-pin-active[hidden]{display:none}.camera-pin-caption{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%);padding:6px 12px;border-radius:20px;background:var(--viewing-camera-background);color:var(--viewing-camera-ink);border:1px solid #16865b40;box-shadow:0 2px 10px #16865b26;font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap}.camera-pin-caption:after{content:"";position:absolute;bottom:-6px;left:50%;width:10px;height:10px;border-right:1px solid #16865b40;border-bottom:1px solid #16865b40;background:var(--viewing-camera-background);transform:translate(-50%) rotate(45deg)}.camera-pin-lens{position:absolute;top:0;left:0;display:grid;place-items:center;width:24px;height:24px;border:4px solid #fff;border-radius:50%;background:#16865b;color:#fff;box-shadow:0 0 0 4px #16865b26,0 0 12px #16865b40}@media(prefers-reduced-motion:no-preference){.camera-pin-active{animation:camera-marker-enter .2s ease-out}@keyframes camera-marker-enter{0%{opacity:0}to{opacity:1}}}.map-perf-debug{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:10px;z-index:20;max-width:calc(100% - 20px);padding:8px 10px;border-radius:10px;background:#102033e8;color:#fff;font:11px/1.5 ui-monospace,monospace;pointer-events:none;overflow-wrap:anywhere}:root{--layout-gutter: clamp(12px, 1.6vw, 24px);--sidebar-width: clamp(300px, 36vw, 440px);--viewer-width: 760px;--row-preview-width: 96px;--row-preview-height: 64px}@media(min-width:1100px){:root{--sidebar-width: 480px}}@media(min-width:1600px){:root{--sidebar-width: 560px;--viewer-width: 960px;--row-preview-width: 112px;--row-preview-height: 70px}}:root{color-scheme:light dark;--page-background: #fafafa;--surface: #fff;--surface-raised: #fff;--surface-muted: #f3f6fa;--surface-hover: #f7f9fc;--surface-focus: #f8fbff;--surface-accent: #edf5ff;--surface-accent-hover: #e3efff;--accent: #3985ed;--ink: #263b54;--ink-secondary: #355675;--text-muted: #8195ad;--text-faint: #97a7b9;--border: #e6edf6;--border-accent: #dceaff;--border-focus: #accdf8;--divider-rgb: 224 233 244;--handle: #d5e0ec;--preview-background: #dce4ec;--skeleton-base: #edf2f7;--shimmer-highlight: #ffffffb3;--favorite-ink: #d98416;--favorite-fill: #f5a623;--favorite-surface: #fff4e5;--favorite-hover: #ffecd0;--viewing-camera-background: #e8f8ee;--viewing-camera-ink: #116e49;--badge-background: linear-gradient(125deg, #fff, #f5f9ff)}@media(prefers-color-scheme:dark){:root{--page-background: #0d1420;--surface: #172130;--surface-raised: #25344a;--surface-muted: #202d40;--surface-hover: #25344a;--surface-focus: #1b304a;--surface-accent: #203958;--surface-accent-hover: #2d4b70;--accent: #80b7ff;--ink: #e7eef8;--ink-secondary: #c1d2e7;--text-muted: #a3b3c8;--text-faint: #8f9fb5;--border: #2b3b51;--border-accent: #3b5679;--border-focus: #6c9ddc;--divider-rgb: 43 59 81;--handle: #50617a;--preview-background: #293a50;--skeleton-base: #26364b;--shimmer-highlight: #ffffff12;--favorite-ink: #ffb956;--favorite-fill: #ffb23e;--favorite-surface: #3d2e20;--favorite-hover: #503a24;--viewing-camera-background: #153a2e;--viewing-camera-ink: #91efbf;--badge-background: linear-gradient(125deg, #223147, #172130)}}*{box-sizing:border-box}:root{--page-height: 100dvh;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:var(--page-background)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;color:var(--ink)}app-root{position:relative;display:block;width:100%;height:100%;overflow:visible}button,input{font:inherit}button{-webkit-appearance:none;appearance:none;padding:0;cursor:pointer;color:inherit;touch-action:manipulation}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;line-height:0}.icon-button>svg{display:block;flex:none;width:22px;height:22px;pointer-events:none}button,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:600px),(max-height:500px)and (pointer:coarse){html{overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}html::-webkit-scrollbar{display:none}body{height:var(--page-height);overflow:visible}}html[data-display-mode=standalone],html[data-display-mode=standalone] body{height:100lvh;overflow:hidden}.shimmer{position:relative;overflow:hidden;background:var(--skeleton-base)}.shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,var(--shimmer-highlight) 50%,transparent 80%);transform:translate(-100%);animation:shimmer-sweep 1.4s ease-in-out infinite;pointer-events:none}@keyframes shimmer-sweep{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.shimmer:after{animation:none;opacity:0}}
