.top{flex-wrap:wrap}.top-actions{flex-wrap:wrap}.top-actions .button{white-space:nowrap}
.session-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px clamp(12px,3vw,42px);background:#28322c;color:#fff;border-bottom:1px solid #0003}
.session-bar strong{font-size:12px}.session-bar span{font-size:12px;color:#dce6df}.session-bar .button{min-height:36px;padding:6px 10px;background:#ffffff12;color:#fff;border-color:#ffffff44}
.session-bar .button:hover{background:#ffffff22}.session-bar.shared{background:#385d73}.session-status{margin-left:auto}
.session-bar .session-clear{min-height:34px;color:#ffe9e2;border-color:#e4a89588;background:#7a3f3266}.session-bar .session-clear:hover{background:#7a3f32}
.progress-track{width:min(220px,35vw);height:7px;border-radius:99px;background:#ffffff25;overflow:hidden}.progress-fill{height:100%;background:#d9a27e;transition:width .25s}
.filters{flex-wrap:wrap;overflow:visible}.filters .field{min-width:126px}#search{min-width:min(260px,100%)}
#gallery,#matchContext{scroll-margin-top:140px}
.match-context{display:none;align-items:center;gap:10px;flex-wrap:wrap;padding:9px clamp(12px,3vw,42px);background:#e3e8e1;border-bottom:1px solid var(--line);color:#465343}.match-context.show{display:flex}.match-context strong{font-size:12px}.match-context span{font-size:12px;color:#5e695c}.match-badge{background:#d8e2d5;color:#354d33}.match-reasons{margin-top:8px;color:#53604f;font-size:12px;font-weight:700}
.view-toggle.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.house.seen{border-color:#c2beb6}.house.unseen{border-left:5px solid var(--rust)}.house.unseen .seen-badge{background:#f3d7cb;color:#7f321d}.house.seen .seen-badge{background:#e4e7e1;color:#526050}
.photo-wrap{position:relative}.photo-wrap.photo-seen img{opacity:.92}.photo-state{position:absolute;left:8px;top:8px;z-index:2;background:#171513cc;color:#fff;padding:5px 8px;border-radius:999px;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.photo-save{position:absolute;right:8px;top:8px;z-index:3;min-width:44px;min-height:44px;border:1px solid #ffffff88;border-radius:50%;background:#171513cc;color:#fff;font-size:20px;cursor:pointer}.photo-save.saved{background:#9a4e32}.photo-save:focus-visible{outline:3px solid #fff;outline-offset:2px}
.photo-download{right:8px}.pagination{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:28px auto 10px}.pagination .button{min-width:44px}.pagination .button.current{background:var(--ink);color:#fff;border-color:var(--ink)}.page-summary{width:100%;text-align:center;color:var(--muted);font-size:12px;margin-top:3px}
.saved-empty{padding:60px 20px;text-align:center;color:var(--muted)}
.viewer-save.saved{background:#9a4e32!important}.viewer-seen{font-size:11px;color:#b8c8bd;margin:8px 0}
.share-panel{position:fixed;inset:0;z-index:150;display:none;place-items:center;background:#181716cc;padding:18px}.share-panel.open{display:grid}.share-card{width:min(560px,100%);background:var(--card);border-radius:16px;padding:22px;box-shadow:0 25px 70px #0006}.share-card h2{font:400 30px Georgia,serif;margin:0 0 8px}.share-card p{color:var(--muted)}.share-link{width:100%;height:44px;border:1px solid var(--line);border-radius:9px;padding:8px;background:white}.share-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.toast{position:fixed;left:50%;bottom:20px;z-index:200;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#222;color:#fff;padding:11px 16px;border-radius:9px;box-shadow:0 12px 30px #0004;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.collection-label{display:inline-flex;align-items:center;gap:5px}.collection-label span{font-variant-numeric:tabular-nums}
@media(max-width:900px){.session-status{margin-left:0}.progress-track{width:150px}.filters{top:auto;position:relative}.photo-save{min-width:48px;min-height:48px}.pagination{padding:0 8px}.wide-secondary{display:none}}
@media(max-width:540px){.top-actions{width:100%;margin-left:0}.top-actions .button{flex:1}.session-bar{padding:8px 10px}.session-bar .progress-track{order:10;width:100%}.filters .field{flex:1;min-width:calc(50% - 8px)}#search{flex-basis:100%}.share-card{padding:18px}.viewer .viewer-save{display:inline-flex}}
