/* Phase 59 campaign browsing */
#catalog .bar{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.jv59-search{flex:1 1 230px;max-width:440px;min-width:180px;padding:12px 15px;border-radius:12px;border:1px solid #c4c5e4;background:white;color:#1a254a;font:inherit}
.jv59-count{color:#5d5c8c;margin:10px 0 22px}
#cards.jv59-catalog{display:block}
.jv59-level{margin:24px 0 32px}
.jv59-level>h3{font-size:1.5rem;margin:0 0 3px;color:inherit}
.jv59-level-sub{margin:0 0 15px;opacity:.75}
.jv59-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.jv59-card{display:flex;flex-direction:column;gap:10px;min-width:0}
.jv59-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.jv59-status{font-size:.78rem;font-weight:700;background:#e9e7fa;color:#463887;border-radius:999px;padding:5px 10px}
.jv59-card h4{font-size:1.28rem;margin:5px 0 0}
.jv59-intro{line-height:1.55;margin:0}
.jv59-acts{padding-left:24px;line-height:1.65;margin:5px 0 10px}
.jv59-progress{display:flex;gap:12px;align-items:center;font-size:.88rem;color:#554d87}
.jv59-progress progress{flex:1;accent-color:#6754bd;max-width:180px}
.jv59-card>button{margin-top:auto;align-self:flex-start}
.jv59-empty{padding:24px;background:#f7f7ff;border-radius:16px;color:#1b2546}
#game .scene{line-height:1.75}
#game #choices{display:grid;gap:10px}
#game .story-choice{line-height:1.55;text-align:left;white-space:normal}
#game .jv51-listen{margin:14px 0}
#game #writing{margin-top:22px}
#game #writing textarea{width:100%;min-height:150px;box-sizing:border-box}
@media(max-width:700px){.jv59-grid{grid-template-columns:1fr}.jv59-card>button{width:100%}.jv59-search{max-width:none;width:100%}}
