:root{--text:#1f2430;--text-sub:#5b6270;--text-mute:#858b97;--border:#d9dce3;--surface:#fff;--surface-hover:#f5f7fb;--accent:#2563eb;--accent-soft:#e8effd;--danger:#b42318;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}body{color:var(--text);background:var(--surface);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.5}html:has(dialog[open]){overflow:hidden}.app{max-width:800px;margin:0 auto;padding:16px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select{font:inherit;color:inherit;font-size:16px}input[type=date],input[type=search],select,.multi-select-button,.pagination button,.notice button,.multi-select-done{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:40px;padding:6px 10px}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}.link-button{color:var(--accent);background:0 0;border:none;padding:4px;font-size:14px}.link-button:hover:not(:disabled){text-decoration:underline}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.site-header h1{margin:0;font-size:26px;line-height:1.2}.site-header h1 a{color:inherit;text-decoration:none}.tagline{color:var(--text-sub);margin:2px 0 0;font-size:13px}.last-crawled{color:var(--text-mute);font-size:12px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;display:flex;position:relative}.filter-bar .keyword{flex:160px;min-width:0}.date-range{align-items:center;gap:4px;display:flex}.checkbox{cursor:pointer;align-items:center;gap:6px;min-height:40px;display:inline-flex}.checkbox input,.multi-select-options input{width:18px;height:18px;accent-color:var(--accent);margin:0}.multi-select{position:relative}.multi-select-button{align-items:center;gap:6px;max-width:100%;display:inline-flex}.multi-select-button.is-active{border-color:var(--accent);background:var(--accent-soft)}.multi-select-summary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.multi-select-caret{color:var(--text-mute);font-size:12px}.multi-select-panel{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:max-content;max-width:min(560px,100vw - 32px);padding:12px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #00000024}.multi-select-head{color:var(--text-sub);justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;font-size:13px;display:flex}.multi-select-options{grid-template-columns:repeat(var(--columns,1), minmax(0, 1fr));overscroll-behavior:contain;gap:0 12px;max-height:min(50vh,420px);display:grid;overflow:hidden auto}.multi-select-options label{white-space:nowrap;cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:36px;padding:0 4px;font-size:14px;display:flex}.multi-select-options label:hover{background:var(--surface-hover)}.multi-select-options .count{color:var(--text-mute);margin-left:auto;padding-left:8px;font-size:12px}.multi-select-done{width:100%;margin-top:8px}.total{color:var(--text-sub);margin:0 0 8px;font-size:13px}.event-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;transition:opacity .15s;display:flex}.event-list.is-loading{opacity:.5}.event-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px;position:relative}.event-card:hover{background:var(--surface-hover)}.event-card:has(a:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.event-card h3{overflow-wrap:anywhere;margin:4px 0;font-size:16px}.event-card h3 a{color:inherit;outline:none;text-decoration:none}.event-card h3 a:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.event-card-meta{color:var(--text-sub);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px;display:flex}.event-card-sub{color:var(--text-sub);overflow-wrap:anywhere;font-size:13px}.badge{white-space:nowrap;color:var(--text);background:#eee;border-radius:4px;padding:2px 6px;font-size:11px}.badge-city_league{background:#ffd54f}.badge-gym_battle{background:#90caf9}.badge-independent{background:#a5d6a7}.badge-open{background:#ef9a9a}.badge-full{background:#bdbdbd}.badge-closed{color:#666;background:#e0e0e0}.badge-upcoming{background:#b3e5fc}.pagination{justify-content:center;align-items:center;gap:12px;margin:16px 0;display:flex}.pagination button{min-width:72px}.notice{border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-sub);text-align:center;margin:24px 0;padding:24px 16px}.notice p{margin:0 0 12px}p.notice{margin:24px 0}.notice-error{color:var(--danger);background:#fef3f2;border-style:solid;border-color:#f3c7c2}.modal{border-radius:var(--radius);width:min(480px,100vw - 32px);max-height:min(80vh,100dvh - 32px);color:var(--text);background:var(--surface);overscroll-behavior:contain;border:none;padding:0;overflow-y:auto}.modal::backdrop{background:#0006}.modal-body{padding:24px;position:relative}.modal h2{overflow-wrap:anywhere;margin:0 32px 16px 0;font-size:20px;line-height:1.4}.modal-close{background:0 0;border:none;border-radius:50%;width:40px;height:40px;font-size:22px;line-height:1;position:absolute;top:8px;right:8px}.modal-close:hover{background:var(--surface-hover)}.modal dl{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}.modal dt{color:var(--text-mute)}.modal dd{overflow-wrap:anywhere;margin:0}.source-link{color:var(--accent);margin-top:16px;padding:8px 0;display:inline-block}.site-footer{border-top:1px solid var(--border);color:var(--text-mute);margin-top:32px;padding-top:12px;font-size:11px;line-height:1.6}.site-footer p{margin:4px 0}@media (width<=640px){.app{padding:12px 16px}.site-header h1{font-size:22px}.filter-bar{grid-template-columns:1fr 1fr;display:grid}.filter-bar>*{min-width:0}.multi-select{position:static}.multi-select-button{justify-content:space-between;width:100%}.multi-select-panel{width:auto;max-width:none;margin-top:4px;top:auto;left:0;right:0}.multi-select-options{grid-template-columns:repeat(var(--columns-narrow,1), minmax(0, 1fr))}.date-range,.filter-bar .keyword{grid-column:1/-1}.date-range input{flex:1;min-width:0}.filter-bar select{width:100%}.modal dl{grid-template-columns:1fr;gap:0}.modal dt{margin-top:10px;font-size:12px}}@media (prefers-reduced-motion:reduce){.event-list{transition:none}}
