/* StenoSwap-only styles. The frame and widgets come from /shared/site.css and /shared/ui.css. */
.pay-note{background:var(--ok-bg);color:var(--ok);font-size:12px;padding:10px 5%;text-align:center}
.pay-note a{color:inherit;text-decoration:underline;font-weight:600;display:inline-flex;align-items:center;min-height:44px}
/* StenoSwap's own text links (not the top nav). */
button.rws-link{display:inline-flex;align-items:center;min-height:44px}
.item{display:flex;flex-direction:column;gap:8px}
.item .ph{aspect-ratio:4/3;border-radius:6px;background:var(--cream);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:28px;overflow:hidden}
.item .ph img{width:100%;height:100%;object-fit:cover}
.item .price{font-size:20px;font-weight:600}
.item .badges{display:flex;gap:4px;flex-wrap:wrap}
.item .row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;flex-wrap:wrap}
.filters{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:24px}
.checklist{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px;counter-reset:s}
.checklist li button{width:100%;text-align:left;display:flex;gap:16px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:12px 16px;min-height:56px;background:var(--surface);transition:all .2s}
.checklist li button::before{counter-increment:s;content:counter(s);width:32px;height:32px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700;flex:none;transition:all .2s}
.checklist li button[aria-pressed="true"]{background:var(--ok-bg);border-color:var(--ok)}
.checklist li button[aria-pressed="true"]::before{content:'✓';background:var(--ok);border-color:var(--ok);color:var(--surface)}
.serial-result{margin:24px auto 0;max-width:560px;text-align:left;border-radius:12px;padding:24px;animation:pop .25s ease}
.serial-result.clear{background:var(--ok-bg);color:var(--ok)}
.serial-result.hit{background:var(--bad-bg);color:var(--bad);border:2px solid var(--bad)}
.serial-result b{font-size:20px;display:block;margin-bottom:8px}
@keyframes pop{from{transform:scale(.96)}}
.drop-zone{border:2px dashed var(--line);border-radius:8px;padding:24px;text-align:center;color:var(--muted);transition:all .2s;cursor:pointer}
.drop-zone.over{border-color:var(--teal);background:var(--green)}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.thumbs img{width:72px;height:72px;object-fit:cover;border-radius:6px}
/* Bottom compare bar. It stays at most 30vh (60vh on a phone, once opened) and main gets padding so the last listing can scroll clear of it. */
.compare:not([hidden]){position:fixed;left:0;right:0;bottom:0;z-index:800;display:flex;flex-direction:column;max-height:30vh;overflow:hidden;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -8px 24px #0002;padding:0 16px 8px}
.compare-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:none;min-height:44px}
.compare-head small{color:var(--muted);flex:1 1 140px;min-width:0}
.compare-title{flex:none}
.compare-toggle,.compare-clear,.compare-row .cmp button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-weight:600}
.compare-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:0;overflow:auto;border-radius:8px;flex:1 1 auto}
.compare-row .cmp{border:1px solid var(--line);border-radius:6px;padding:8px 52px 8px 8px;font-size:12px;position:relative;min-width:0;overflow-wrap:anywhere}
.compare-row .cmp button{position:absolute;top:4px;right:4px;padding:0}
.compare.is-collapsed .compare-row,.compare.is-collapsed .compare-head small{display:none}
.compare.pulse{animation:pop .3s ease}
main.has-compare{padding-bottom:var(--compare-space,30vh)}
.post-success{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:12px 8px 8px}
.post-check{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px;line-height:1;background:var(--ok-bg);color:var(--ok)}
.post-success h3{margin:0;font-size:28px}
.post-success p{margin:0;max-width:46ch}
.post-success a,.post-success button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;width:min(100%,320px)}
@media(max-width:600px){
  .compare:not([hidden]):not(.is-collapsed){max-height:60vh}
  .compare.is-collapsed{height:56px;max-height:56px;padding:0 12px}
  .compare.is-collapsed .compare-head{height:56px;min-height:56px;flex-wrap:nowrap}
  .compare.is-collapsed .compare-title,.compare.is-collapsed .compare-clear{display:none}
  .compare.is-collapsed .compare-toggle{width:100%;height:56px;min-height:56px;justify-content:flex-start;border:0;padding:0 8px}
  .compare-row{grid-template-columns:1fr}
}
