:root{color-scheme:light dark;--bg: #f6f7f9;--surface: #ffffff;--text: #1a1f27;--text-muted: #5b6472;--border: #dde1e7;--accent: #1f6feb;--accent-soft: #e7f0fe}@media(prefers-color-scheme:dark){:root{--bg: #14181e;--surface: #1d232c;--text: #e8ebef;--text-muted: #9aa4b1;--border: #313945;--accent: #5c9dff;--accent-soft: #23334c}}*{box-sizing:border-box}body{margin:0;font-family:Hiragino Sans,Noto Sans JP,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.site-header{padding:2rem 1.5rem 1rem;max-width:960px;margin:0 auto}.site-header h1{margin:0;font-size:1.5rem}.subtitle{margin:.25rem 0 0;color:var(--text-muted);font-size:.9rem}main{max-width:960px;margin:0 auto;padding:0 1.5rem 3rem}.toolbar{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}#search{width:100%;padding:.6rem .9rem;font-size:1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}#search:focus{outline:2px solid var(--accent);outline-offset:1px}.categories{display:flex;flex-wrap:wrap;gap:.5rem}.category-chip{padding:.3rem .85rem;font-size:.85rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer}.category-chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.status{color:var(--text-muted)}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.app-card{display:flex;flex-direction:column;gap:.4rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:inherit;transition:border-color .15s ease,transform .15s ease}.app-card:hover,.app-card:focus-visible{border-color:var(--accent);transform:translateY(-2px)}.app-category{font-size:.75rem;color:var(--accent);background:var(--accent-soft);align-self:flex-start;padding:.1rem .6rem;border-radius:999px}.app-card h2{margin:0;font-size:1.05rem}.app-card p{margin:0;font-size:.85rem;color:var(--text-muted);flex-grow:1}.app-tags{display:flex;flex-wrap:wrap;gap:.35rem}.tag{font-size:.72rem;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:.05rem .5rem}.site-footer{max-width:960px;margin:0 auto;padding:1rem 1.5rem 2rem;color:var(--text-muted);font-size:.8rem;border-top:1px solid var(--border)}
