/* Shared by every generated page. Deliberately small: the planner's own
   stylesheet is 100KB inline, which is fine for one page and wrong for 2,000. */
:root{
  --ink:#16202E; --ink-soft:#4A576B; --paper:#FBF9F4; --card:#FFF;
  --rule:#DBD5C8; --rule-soft:#EDE8DE; --sea:#1F6F7A; --stamp:#B4304A;
  --sand:#EFE8D9; --amber:#9A6A12; --amber-bg:#FBF0D8;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font:16px/1.6 "IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif}
.wrap{max-width:820px;margin:0 auto;padding:0 20px 72px}
a{color:var(--sea)}
header.top{border-bottom:2px solid var(--ink);padding:22px 0 14px;margin-bottom:26px}
header.top a.home{font-weight:600;text-decoration:none;color:var(--ink)}
header.top a.home span{color:var(--sea)}
nav.crumb{font-size:13px;color:var(--ink-soft);margin:18px 0 10px}
nav.crumb a{color:var(--ink-soft)}
h1{font-size:34px;line-height:1.12;margin:0 0 8px;letter-spacing:-.01em}
h2{font-size:21px;margin:34px 0 10px}
h3{font-size:16px;margin:22px 0 6px}
.sub{color:var(--ink-soft);margin:0 0 4px}
.stars{color:var(--amber);letter-spacing:2px}
.lede{font-size:18px;line-height:1.55;margin:18px 0}
table.facts{border-collapse:collapse;width:100%;margin:18px 0;background:var(--card)}
table.facts th,table.facts td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--rule-soft);
  vertical-align:top;font-size:15px}
table.facts th{width:38%;font-weight:600;color:var(--ink-soft)}
table.facts tr:last-child th,table.facts tr:last-child td{border-bottom:0}
.cost{background:var(--sand);border:1px solid var(--rule);padding:18px 20px;margin:24px 0}
.cost .big{font-size:27px;font-weight:600;color:var(--sea);display:block;margin:4px 0}
.cost .note{font-size:14px;color:var(--ink-soft);margin:6px 0 0}
.warn{background:var(--amber-bg);border-left:3px solid var(--amber);padding:12px 16px;margin:16px 0;font-size:15px}
.cta{display:inline-block;background:var(--sea);color:#fff;text-decoration:none;
  padding:11px 20px;border-radius:3px;font-weight:600;margin:8px 0}
ul.grid{list-style:none;padding:0;margin:14px 0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;background:var(--rule-soft);
  border:1px solid var(--rule-soft)}
ul.grid li{background:var(--card);padding:12px 14px}
ul.grid a{text-decoration:none;font-weight:600;display:block}
ul.grid .m{font-size:13px;color:var(--ink-soft)}
footer{border-top:1px solid var(--rule);margin-top:44px;padding-top:16px;
  font-size:13px;color:var(--ink-soft)}
@media(max-width:600px){h1{font-size:27px}.wrap{padding:0 16px 48px}}
