/* Shared interaction and navigation styles. */
button,a,.grave-card{ -webkit-tap-highlight-color:transparent;transition:background-color .16s,color .16s,box-shadow .16s,opacity .16s,filter .16s;touch-action:manipulation}
button:not(:disabled):active,a:active,.grave-card:active,.tap-feedback{filter:brightness(.9);box-shadow:inset 0 0 0 2px rgba(21,63,50,.15)}
@media(hover:hover){button:not(:disabled):hover,a:hover,.grave-card:hover{filter:brightness(.95)}}
button:focus-visible,a:focus-visible,.grave-card:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.bookmark-icon{width:24px;height:24px;display:inline-block;vertical-align:middle;flex-shrink:0}
.save-mini{min-width:44px;min-height:44px;border-radius:11px;display:grid;place-items:center}
.save-mini[aria-pressed=true]{background:#e8f0eb}
#detailSave{display:flex;align-items:center;justify-content:center;gap:6px}
#detailSave[aria-pressed=true]{background:#e8f0eb;border-color:#a3baad;color:var(--green)}
.back-btn{flex:0 0 32px;width:32px;height:36px;border:0;border-radius:10px;background:rgba(255,255,255,.12);color:white;font-size:30px;line-height:1}
.topbar>div{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.topbar>div strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar>div small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar:has(.back-btn:not(.hidden)){gap:8px}
.topbar:has(.back-btn:not(.hidden)) .brand-logo{width:40px;height:40px;flex:0 0 40px}
.recent-preview{display:grid;gap:10px}
.recent-preview .grave-card{margin:0}
.sheet-open #main{overflow:hidden}
.sheet{overscroll-behavior:contain;scroll-behavior:smooth;padding-top:60px;scroll-padding-top:60px;-webkit-overflow-scrolling:touch}
.sheet-expanded{max-height:96dvh}
.sheet-back{position:absolute;left:16px;top:14px;width:34px;height:34px;border:0;border-radius:50%;background:#eeeae2;color:var(--green);font-size:28px;line-height:1}
.sheet-handle{height:5px;top:9px}
.detail-photo{position:relative}
.detail-photo>button{width:100%;height:100%;border:0;padding:0;background:none;position:relative;overflow:hidden}
.detail-photo .photo-hint{position:absolute;right:10px;bottom:10px;background:rgba(21,63,50,.85);color:white;font-size:11px;padding:6px 9px;border-radius:8px}
.detail-actions{display:grid;grid-template-columns:1.1fr 1fr .85fr;gap:8px}
.detail-actions button{min-height:46px;padding:10px 8px;font-size:13px}
.detail-actions .bookmark-icon{width:20px;height:20px}
.report-actions{grid-template-columns:1fr}
.report-actions button{font-size:13px}
.photo-sheet{height:88dvh;display:flex;flex-direction:column;gap:12px}
.photo-sheet p{margin:0;font-weight:700;overflow-wrap:anywhere}
.photo-sheet small{font-size:12px;color:var(--muted);line-height:1.5}
.photo-viewport{flex:1;min-height:0;overflow:auto;border-radius:14px;background:#e8eee9;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;display:flex;align-items:center}
.photo-viewport img{width:100%;height:100%;object-fit:contain;cursor:zoom-in;flex-shrink:0}
.photo-viewport.zoomed{display:block}
.photo-viewport.zoomed img{width:200%;height:auto;max-width:none;object-fit:initial;cursor:zoom-out}
#shareUrl{font-size:16px;overflow-wrap:anywhere}
@media(min-width:1100px){.sheet{padding-top:64px}.sheet-back{top:20px;left:20px}.topbar>.back-btn{position:absolute;left:8px}.topbar>div{min-width:240px}.photo-sheet{height:88vh}}
@media(prefers-reduced-motion:reduce){button,a,.grave-card{transition:none}.sheet{scroll-behavior:auto}}
