/* Web SDR list (websdr.html) */
.ws-intro { padding: 2rem 0 .5rem; }
.ws-intro h1 { margin: 0 0 .4rem; }
.ws-intro p { color: var(--ink-2); max-width: 46rem; }
.ws-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .6rem 1rem; margin: 1rem 0 0; align-items: end; }
.ws-filters label { display: flex; flex-direction: column; gap: .25rem; font-size: .85rem; color: var(--ink-2); }
.ws-filters label.tick { flex-direction: row; align-items: center; gap: .5rem; color: var(--ink); padding-bottom: .5rem; }
.ws-filters input[type=text], .ws-filters select { font: inherit; padding: .45rem .55rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink); }
.ws-sec { padding: 1rem 0; }
.ws-map { height: 340px; border-radius: var(--radius); border: 1px solid var(--line); background: var(--surface-2); z-index: 0; }
.ws-count { color: var(--ink-2); margin: .8rem 0; }
.ws-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; }
.ws-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.1rem; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: .45rem; }
.ws-card h3 { margin: 0; font-size: 1.1rem; display: flex; justify-content: space-between; gap: .5rem; align-items: baseline; }
.ws-card h3 .call { font-family: var(--mono); color: var(--cq); }
.ws-card .where, .ws-card .detail { color: var(--ink-2); font-size: .9rem; margin: 0; }
.ws-card .bands { display: flex; flex-wrap: wrap; gap: .3rem; }
.ws-card .bands span { font-size: .78rem; padding: .1rem .45rem; border-radius: 99px; border: 1px solid var(--line); color: var(--ink-2); }
.ws-card .bands span.hit { border-color: var(--cq); color: var(--cq); }
.ws-card .foot { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: .3rem; }
.ws-card .room { font-size: .88rem; }
.ws-card .room.full { color: var(--fault); }
.ws-card .room.open { color: var(--ok); }
.ws-card a.listen { background: var(--cq); color: #fff; padding: .45rem 1rem; border-radius: 99px; text-decoration: none; font-weight: 600; }
.ws-card a.listen.full { background: var(--idle); }
.ws-host p { color: var(--ink-2); max-width: 46rem; }
.leaflet-popup-content a { color: var(--cq-deep); }
.ws-dl { width: 100%; max-width: 52rem; border-collapse: collapse; margin: 1rem 0 1.2rem; }
.ws-dl th, .ws-dl td { text-align: left; vertical-align: top; padding: .6rem .7rem; border-top: 1px solid var(--line); }
.ws-dl tr:last-child th, .ws-dl tr:last-child td { border-bottom: 1px solid var(--line); }
.ws-dl th { font-weight: 600; white-space: nowrap; width: 11rem; }
.ws-dl th small { display: block; font-weight: 400; font-size: .8rem; color: var(--ink-2); white-space: normal; }
.ws-dl td a { font-weight: 600; color: var(--cq-deep); word-break: break-all; }
.ws-dl td code { display: block; font-family: var(--mono); font-size: .72rem; color: var(--ink-2); word-break: break-all; margin-top: .2rem; }
.ws-dl .sz { white-space: nowrap; color: var(--ink-2); font-size: .88rem; }
@media (max-width: 640px) { .ws-dl, .ws-dl tr, .ws-dl th, .ws-dl td { display: block; width: auto; } .ws-dl td { border-top: 0; padding-top: 0; } .ws-dl tr:last-child th { border-bottom: 0; } }
.ws-download { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: center; margin: 1rem 0; }
.ws-download span { color: var(--ink-2); font-size: .88rem; }
.ws-download code, .ws-steps code { font-family: var(--mono); font-size: .85em; word-break: break-all; }
.ws-get { background: var(--cq); color: #fff; padding: .6rem 1.3rem; border-radius: 99px; text-decoration: none; font-weight: 600; }
.ws-steps { color: var(--ink-2); max-width: 46rem; padding-left: 1.2rem; }
.ws-steps li { margin: .3rem 0; }
.ws-steps ul { padding-left: 1.1rem; margin: .2rem 0 .4rem; list-style: disc; }
.ws-steps ul li { margin: .15rem 0; }
.ws-note { font-size: .88rem; }
