:root { --bg:#ffffff; --fg:#1a1d1a; --muted:#5c635c; --line:#e3e6e3; --card:#f7f9f7; --accent:#28754E;
  --header:#0C182A; --header-fg:#ffffff; --header-muted:#8b9bb4; --gold:#D9A741; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#14171a; --fg:#e8ebe8; --muted:#9aa39a; --line:#2a2f2a; --card:#1b1f1b; --accent:#5fb98a; }
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg);
  font:16px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.wrap { max-width:1100px; margin:0 auto; padding:0 20px 64px; }
header { background:var(--header); margin-bottom:28px; }
header .wrap { padding-top:20px; padding-bottom:0; }
.brand { display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--header-fg); }
.brand img { width:46px; height:46px; flex:none; }
h1 { font-size:21px; margin:0 0 2px; letter-spacing:-0.01em; color:var(--header-fg); }
.sub { color:var(--header-muted); font-size:13px; margin:0; }
nav { display:flex; gap:6px; margin-top:16px; }
nav a { padding:8px 14px; border-radius:7px 7px 0 0; text-decoration:none; color:var(--header-muted); font-size:14px; font-weight:500; }
nav a:hover { color:var(--header-fg); }
nav a[aria-current="page"] { background:var(--bg); color:var(--fg); box-shadow:inset 0 2px 0 var(--gold); }
h2 { font-size:17px; margin:34px 0 6px; }
main h2:first-child { margin-top:0; }
p.note { color:var(--muted); font-size:14px; margin:0 0 14px; }
.frame { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--card); }
.frame iframe { display:block; width:100%; border:0; }
#cal iframe { height:800px; }
#req iframe { height:1600px; }
#travel iframe { height:1200px; }
@media (max-width:700px) { #cal iframe { height:620px; } #travel iframe { height:800px; } }
.maps { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:16px; margin:0; }
.maps figure { margin:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--card); }
.maps img { display:block; width:100%; height:auto; }
.maps figcaption { padding:10px 12px; font-size:13px; color:var(--muted); }
.maps b { color:var(--fg); font-weight:600; display:block; margin-bottom:2px; }
ul.subs { list-style:none; padding:0; margin:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
ul.subs li { display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:10px 14px; background:var(--card); border-bottom:1px solid var(--line); font-size:14px; }
ul.subs li:last-child { border-bottom:0; }
.dot { width:11px; height:11px; border-radius:3px; flex:none; }
.fname { flex:1 1 190px; }
.btn { text-decoration:none; color:var(--accent); font-weight:500; white-space:nowrap; }
.ics { text-decoration:none; color:var(--muted); font-size:12px; border:1px solid var(--line);
  border-radius:5px; padding:2px 7px; }
.fallback { font-size:13px; color:var(--muted); margin:10px 0 0; }
.fallback a, .maps a, main p a { color:var(--accent); }
footer { margin-top:46px; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
