:root{--bg:#f5f6f8;--card:#fff;--fg:#1f2328;--sub:#636c76;--line:#d8dee4;--accent:#2f6fde}
@media (prefers-color-scheme:dark){:root{--bg:#16181c;--card:#22252b;--fg:#e6e8eb;--sub:#9aa3ad;--line:#353a42;--accent:#6ea0ff}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,"Hiragino Sans","Yu Gothic UI",sans-serif;line-height:1.6}
.wrap{max-width:1000px;margin:0 auto;padding:0 16px}
.top{background:var(--card);border-bottom:1px solid var(--line)}
.brand{display:block;padding:14px 0;font-weight:700;font-size:1.2rem;color:var(--fg);text-decoration:none}
h2{font-size:1rem;color:var(--sub);margin:28px 0 10px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;color:var(--fg);text-decoration:none;transition:border-color .15s,transform .15s}
a.card:hover{border-color:var(--accent);transform:translateY(-2px)}
.card.off{opacity:.55}
.icon{font-size:1.8rem}
.title{font-weight:700;margin-top:4px}
.desc{color:var(--sub);font-size:.88rem}
.badge{font-size:.7rem;font-weight:400;border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--sub)}
.notices ul{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:10px}
.notices li{padding:10px 14px;border-top:1px solid var(--line)}
.notices li:first-child{border-top:0}
.date{color:var(--sub);font-size:.85rem}
.notices .body{color:var(--sub);font-size:.9rem}
.foot{color:var(--sub);font-size:.8rem;padding:32px 16px}
