/* Synced Lines B15 Hot or Not: opt-in switch + terms on the Feed, and the #hot gallery. */
.h-link{display:inline-block;margin:0 0 10px;color:var(--ink);font-weight:600}
.h-opt{background:var(--soft);border-radius:10px;padding:10px 12px;margin:8px 0}
.h-opt label{font-weight:600;display:flex;gap:8px;align-items:center}
.h-terms{margin:6px 0 0;color:var(--muted);font-size:.82rem}
.h-card{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 0;font-size:.85rem}
.h-state{color:var(--muted)}
.h-intro{color:var(--muted);font-size:.9rem;margin:0 0 10px}
.h-photo{display:block;width:100%;height:auto;max-height:60vh;object-fit:contain;border-radius:12px;background:var(--soft)}
.h-cap{margin:6px 0 0;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}
.h-votes{display:flex;gap:10px;margin:12px 0}
.h-btn{flex:1;font:inherit;font-weight:700;font-size:1.1rem;border:0;border-radius:12px;padding:14px 0;cursor:pointer}
.h-hot{background:#b4441b;color:#fff}
.h-not{background:#1f4e79;color:#fff}
.h-btn:disabled{opacity:.5}
.h-result{font-weight:600;margin:10px 0}
/* v15 (QA 27): logged-out entry stacks (join button was a stretched flex item); dead-end states get the waitlist button */
.h-votes-out{flex-direction:column;align-items:stretch;gap:6px}
.h-votes-out .a-btn{min-height:52px;display:flex;align-items:center;justify-content:center;width:100%}
.h-votes-out .f-signin{margin:6px 0}
/* v35 Fish Off: head-to-head pair, winner highlight, own-fish gallery, full-width rotating feed banner */
.h-pair{display:flex;gap:10px;align-items:stretch;margin:0 0 12px}
.h-side{flex:1 1 0;min-width:0;padding:0;border:3px solid transparent;border-radius:14px;background:#fff;cursor:pointer;font:inherit;text-align:left}
.h-side .h-card-big{margin:0}
.h-side .h-photo{aspect-ratio:4/5;max-height:46vh;min-height:140px;object-fit:contain;border-radius:11px}   /* v98: show the whole fish, never crop */
.h-where{font-weight:600;color:var(--ink)}
.h-side:disabled{cursor:default;opacity:.95}
.h-side.is-win{border-color:#b4441b;box-shadow:0 0 0 2px rgba(180,68,27,.25)}
.h-side.is-lose{opacity:.55}
.h-side:focus-visible{outline:3px solid #1B2A4A;outline-offset:2px}
.h-rep{display:inline-block}
.h-gal .h-photo{max-height:50vh}
.h-row{justify-content:stretch}
.h-mod{width:100%;min-width:0;flex-direction:row;text-align:left;gap:12px;padding:10px;align-items:center}
.h-mod-img{width:40%;max-width:170px;flex:0 0 auto;border-radius:12px;overflow:hidden;background:var(--soft);aspect-ratio:4/3;line-height:0}
.h-mod-img img{width:100%;height:100%;object-fit:contain;display:block}   /* v98: whole fish, no crop */
.h-mod-img svg{width:100%;height:100%;object-fit:contain}
.h-mod-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.h-mod-t{font-size:1.15rem}.h-mod-s{font-size:.88rem}
.h-mod-c{font-size:.8rem;color:#3d4a5c;overflow-wrap:anywhere}
@media (min-width:600px){.h-mod{width:100%;padding:12px}.h-mod-img{max-width:220px}.h-mod-t{font-size:1.35rem}}

/* v84 Feature 11 addenda: two-up pair, score badge on the WINNING fish only (0-10, one decimal; none under 5 votes), swap with no result screen */
.h-card-big{position:relative}
.h-badge{position:absolute;top:8px;right:8px;width:40px;height:40px;border-radius:50%;background:#1B2A4A;color:#fff;font-weight:800;font-size:.95rem;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(15,27,45,.35);border:2px solid #fff;pointer-events:none}
.h-badge-pop{animation:h-pop .18s ease-out}
@keyframes h-pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.h-badge-sm{width:34px;height:34px;font-size:.85rem;top:6px;right:6px}
.h-signin{margin:10px 0 0;color:var(--muted)}
.h-signin a{color:var(--ink);font-weight:600}
.h-pair-out .h-side{opacity:1}
/* v84 Feature 19: my Fish Off results (fishoffme.js), also embedded read-only on the public profile (angler.js) */
.fm-sum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 14px}
.fm-sum div{background:var(--soft);border-radius:12px;padding:10px 12px;min-width:0}
.fm-sum b{display:block;font-size:1.3rem;line-height:1.2}
.fm-sum span{color:var(--muted);font-size:.82rem}
.fm-best{grid-column:1/-1;overflow-wrap:anywhere}
.fm-list{list-style:none;margin:0;padding:0}
.fm-list li{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);min-width:0}
.fm-list li:first-child{border-top:0}
.fm-rank{flex:none;width:22px;color:var(--muted);font-weight:700;text-align:right}
.fm-thumb{flex:none;width:72px;height:72px;border-radius:12px;background:var(--soft);overflow:hidden;position:relative;line-height:0}
.fm-thumb img{width:100%;height:100%;object-fit:contain;display:block}
.fm-thumb .h-badge{top:4px;right:4px;width:30px;height:30px;font-size:.78rem;border-width:1.5px}
.fm-nophoto{display:flex;align-items:center;justify-content:center;height:100%;font-size:.7rem;color:var(--muted);line-height:1.2;text-align:center;padding:4px}
.fm-txt{flex:1 1 auto;min-width:0}
.fm-sp{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-wl{color:var(--muted);font-size:.88rem}
.fm-none{color:var(--muted);font-size:.85rem;font-style:italic}
.fm-note{color:var(--muted);font-size:.85rem;margin:8px 0 0}
