:root{color-scheme:light dark;--bg: #fff;--fg: #111;--muted: #666;--grid: #e6e6e6;--card: #f4f4f4}@media (prefers-color-scheme: dark){:root{--bg: #151515;--fg: #eee;--muted: #999;--grid: #333;--card: #1f1f1f}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg)}header{padding:16px 16px 0;border-bottom:1px solid var(--grid)}h1{margin:0;font-size:19px}.parks{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:8px}.park-link{font-size:14px;color:var(--muted);text-decoration:none}.park-link.active{color:var(--fg);font-weight:600}.tabs{display:flex;gap:4px;margin-top:12px;overflow-x:auto}.tab{padding:10px 14px;font-size:14px;color:var(--muted);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent}.tab.active{color:var(--fg);font-weight:600;border-bottom-color:var(--fg)}main{padding:0 16px 48px}.page-meta{color:var(--muted);font-size:12px;padding:12px 0 0}.empty{color:var(--muted);padding:24px 0}.months{margin-top:12px}.detail-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;gap:12px;font-size:13px;background:var(--card);border-top:1px solid var(--grid);box-shadow:0 -2px 12px #0000001f;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.detail-text{flex:1 1 auto;min-width:0}.detail-text strong{font-variant-numeric:tabular-nums}.detail-product{text-transform:uppercase;font-size:11px;letter-spacing:.05em;font-weight:600;color:var(--muted)}.detail-close{flex:none;border:none;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;padding:0 4px}main.with-bar{padding-bottom:96px}.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;max-width:920px}.month h3{margin:0 0 6px;font-size:13px;font-weight:600}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.dow{font-size:10px;color:var(--muted);text-align:center;padding-bottom:2px}.cell{aspect-ratio:1;min-width:0;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#0d0d0d;background:var(--grid);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.cell.empty{background:transparent;cursor:default}.cell.sold{outline:2px solid #c0392b;outline-offset:-2px}.cell.sel{box-shadow:inset 0 0 0 3px var(--fg)}.err{color:#c0392b;padding:12px 0}
