:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);--bg:#f5f6fa;--card:#fff;--tx:#1b1f2a;--mu:#6b7280;--ac:#4f46e5;--bd:#e5e7eb;--hi:#eef2ff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#10131a;--card:#1a1f2b;--tx:#e8eaf0;--mu:#9aa3b2;--ac:#818cf8;--bd:#2a3140;--hi:#232a45}}
:root[data-theme="dark"]{--bg:#10131a;--card:#1a1f2b;--tx:#e8eaf0;--mu:#9aa3b2;--ac:#818cf8;--bd:#2a3140;--hi:#232a45}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{background:var(--bg);color:var(--tx);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;margin:0}
.card{background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:16px}
.btn{background:var(--ac);color:#fff;border-radius:12px;padding:10px 20px;font-weight:600;border:0;cursor:pointer}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn2{background:transparent;color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:8px 14px;cursor:pointer}
.tab{padding:8px 18px;border-radius:999px;border:1px solid var(--bd);background:var(--card);color:var(--mu);cursor:pointer;font-weight:600}
.tab.on{background:var(--ac);color:#fff;border-color:var(--ac)}
.mu{color:var(--mu)}
.today{border-color:var(--ac);background:var(--hi)}
.st{padding:2px 12px;font-size:18px;line-height:1.3}
.tab.td::after{content:" •"}
#wrap{position:relative;width:min(94vw,720px);aspect-ratio:1}
#hub{position:absolute;top:50%;left:50%;width:17%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:4px solid #4f46e5;background:#fff;color:#4f46e5;font-weight:800;font-size:clamp(11px,3vw,22px);cursor:pointer;z-index:3;box-shadow:0 2px 10px rgba(0,0,0,.4)}
#hub:active{transform:translate(-50%,-50%) scale(.94)}
#hub:disabled{opacity:.6;cursor:not-allowed}
#wheel{width:100%;height:100%}
#ptr{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:28px solid var(--tx);z-index:2}
