:root{--accent:#e94b2f;--accent-2:#111827;--line:#e5e7eb}
.js2-wrap{margin:1rem 0}.js2-h2{font-size:1.25rem;font-weight:800;margin:.2rem 0 1rem;color:#0f172a}
.js2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}
@media(min-width:560px){.js2-grid{grid-template-columns:repeat(6,minmax(0,1fr));}}
.js2-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:1rem 0;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:background .15s,border-color .15s,transform .05s}
.js2-card:hover{background:#f8fafc;border-color:#c5c9d3}.js2-card:active{transform:translateY(1px)}
.js2-card.is-active{background:var(--accent-2);border-color:var(--accent-2)}.js2-card.is-active .js2-card-kana,.js2-card.is-active .js2-card-sub{color:#fff}
.js2-card-kana{font-size:1.4rem;line-height:1;color:#0f172a;font-weight:900;letter-spacing:.02em}.js2-card-sub{font-size:.78rem;color:#6b7280;font-weight:700}
.js2-card-clear{border-style:dashed}
.js2-searchbox{position:relative;display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:.2rem}
#js2_jockey_input{border:1px solid var(--line);border-radius:12px;padding:.6rem .85rem;min-width:260px}
.js2-btn{border:2px solid var(--accent-2);background:#fff;color:var(--accent-2);border-radius:999px;padding:.5rem 1rem;font-weight:800}.js2-btn:hover{background:#f8fafc}
.js2-suggest{position:absolute;z-index:20;top:calc(100% + .25rem);left:0;background:#fff;border:1px solid var(--line);border-radius:12px;min-width:260px;max-height:260px;overflow:auto;display:none;box-shadow:0 4px 20px rgba(0,0,0,.06)}
.js2-suggest-item{padding:.6rem .85rem;cursor:pointer;border-bottom:1px solid #f1f2f4}.js2-suggest-item:last-child{border-bottom:none}.js2-suggest-item:hover{background:#f5f6f8}
.js2-results{margin-top:1rem}.js2-schedule{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:.6rem 0;font-size:.95rem}
.js2-row{display:flex;justify-content:space-between;gap:.75rem;padding:.7rem .95rem;border-bottom:1px solid #edf0f3}.js2-row:last-child{border-bottom:none}
.js2-cell{display:flex;align-items:center}.js2-date{font-weight:800;color:#0f172a}.js2-date .js2-week{margin-left:.25rem;color:#6b7280;font-weight:700}
.js2-place{padding:.18rem .65rem;border:1px solid #9ca3af;border-radius:999px;color:#111;font-size:.85rem;background:#fff}