/* MyTown research layer — blueprint identity (matches mytown.theboringparts.com):
   blue drafting paper + IBM Plex Mono, gold flag accent + teal data links. */
@font-face{font-family:'IBM Plex Mono';font-weight:400;font-style:normal;font-display:swap;src:url(/static/ibm-plex-mono-400.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:500;font-style:normal;font-display:swap;src:url(/static/ibm-plex-mono-500.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:600;font-style:normal;font-display:swap;src:url(/static/ibm-plex-mono-600.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:700;font-style:normal;font-display:swap;src:url(/static/ibm-plex-mono-700.woff2) format('woff2')}
:root{
  --bg:#e9f0f9; --surface:#f8fbff; --fg:#16324e; --muted:#5d7794;
  --accent:#a9720a; --accent-bright:#c98a12; --link:#0e6d86;
  --border:#b9cbe0;
  --grid:rgba(30,74,128,.055); --grid2:rgba(30,74,128,.10);
  --mono:'IBM Plex Mono',ui-monospace,'Cascadia Code',Menlo,Consolas,'DejaVu Sans Mono',monospace;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#0d243c; --surface:#12304d; --fg:#dbe4f0; --muted:#89a6c6;
         --accent:#f0b544; --accent-bright:#f7c766; --link:#6cc6de; --border:#2a5178;
         --grid:rgba(126,183,222,.07); --grid2:rgba(126,183,222,.13); }
}
html{ background-color:var(--bg)!important;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px),linear-gradient(var(--grid2) 1px,transparent 1px),linear-gradient(90deg,var(--grid2) 1px,transparent 1px)!important;
  background-size:26px 26px,26px 26px,130px 130px,130px 130px!important;background-position:-1px -1px!important;background-attachment:fixed!important; }
body{ background:transparent!important; color:var(--fg)!important; font-family:var(--mono)!important; font-size:14px; line-height:1.55; font-variant-ligatures:none; -webkit-font-smoothing:antialiased; }
*{ font-family:var(--mono)!important; }
/* content sits on a faint sheet over the grid */
.content, main, section.content{ background:color-mix(in srgb,var(--surface) 62%,transparent)!important; }
/* top nav bar — blueprint, gold rule */
header, .hd, header.hd, body>header, .page-header{ background:color-mix(in srgb,var(--surface) 70%,transparent)!important; border-bottom:2px solid var(--accent)!important; box-shadow:none!important; }
header a, header p, .hd a, header.hd a, .hd p, .hd nav a{ color:var(--fg)!important; }
/* footer */
footer, .ft{ background:transparent!important; color:var(--muted)!important; border-top:1px solid var(--border)!important; }
footer a{ color:var(--link)!important; }
/* links — teal data */
a,a:visited{ color:var(--link)!important; } a:hover{ color:var(--accent-bright)!important; }
h1,h2,h3{ color:var(--fg)!important; font-weight:700; letter-spacing:-.01em; }
/* accent bar next to the DB title — gold */
.database h1::before, h1 .db-color{ background:var(--accent)!important; }
/* buttons — gold, hairline, square-ish */
button,input[type=submit],.core button,a.button,.datasette-table-download a{
  background:var(--accent)!important; color:#12304d!important; border:0!important; border-radius:2px; font-weight:600; font-family:var(--mono)!important; }
button:hover,input[type=submit]:hover{ background:var(--accent-bright)!important; }
/* tables — drafting hairlines, gold header rule */
table.rows-and-columns th{ background:transparent!important; border-bottom:2px solid var(--accent)!important; color:var(--fg)!important; }
table.rows-and-columns td,table.rows-and-columns th{ border-color:var(--border)!important; }
input,select,textarea{ font-family:var(--mono)!important; border:1px solid var(--border)!important; background:var(--surface)!important; color:var(--fg)!important; border-radius:2px; }
.mt-banner{ border-left:3px solid var(--accent); padding:.5rem .85rem; margin:.5rem 0 1rem; color:var(--muted); }

/* ---- landing page: lede + three routes (index page only) ---------------------- */
.mt-hero{ max-width:74ch; margin:.25rem 0 1.6rem; }
.mt-kicker{ margin:0 0 .7rem; font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); }
.mt-lede{ margin:0 0 1.1rem; font-size:15px; line-height:1.7; color:var(--fg); }
.mt-stats{ margin:0 0 1.1rem; padding:.6rem 0 .7rem; font-size:13px; color:var(--muted);
  border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.mt-num{ color:var(--fg); font-weight:700; }
.mt-note{ display:block; margin-top:.35rem; font-size:12px; line-height:1.6; color:var(--muted); }
.mt-readfirst{ margin:0; }
.mt-readfirst a{ display:inline-block; padding:.5rem .85rem; font-weight:600; font-size:13px;
  border:1px solid var(--accent); border-left:4px solid var(--accent); border-radius:2px;
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  color:var(--fg)!important; text-decoration:none; }
.mt-readfirst a:hover{ background:color-mix(in srgb,var(--accent) 22%,transparent);
  color:var(--fg)!important; }
.mt-routes{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));
  margin:0 0 2rem; align-items:start; }
.mt-route{ padding:.9rem 1rem 1rem; border:1px solid var(--border); border-top:3px solid var(--accent);
  border-radius:2px; background:color-mix(in srgb,var(--surface) 78%,transparent); }
.mt-route-n{ margin:0; font-size:11px; font-weight:700; letter-spacing:.18em; color:var(--muted); }
.mt-route h3{ margin:.15rem 0 .55rem; font-size:15px; }
.mt-route p{ margin:0 0 .7rem; font-size:13px; line-height:1.6; }
.mt-route ul{ margin:0 0 .7rem; padding-left:1.05rem; }
.mt-route li{ margin:0 0 .55rem; font-size:13px; line-height:1.55; }
.mt-route code{ font-size:12px; padding:0 .2em;
  background:color-mix(in srgb,var(--border) 40%,transparent); border-radius:2px; }
.mt-route .mt-note{ margin-top:.2rem; }
.mt-more{ margin:0 0 .5rem!important; font-weight:600; font-size:13px; }
.mt-sql{ margin:0 0 .7rem; padding:.6rem .7rem; overflow-x:auto; font-size:11.5px; line-height:1.5;
  color:var(--fg); border:1px solid var(--border); border-left:3px solid var(--link);
  border-radius:2px; background:color-mix(in srgb,var(--surface) 88%,transparent);
  white-space:pre-wrap; overflow-wrap:break-word; }
/* the table/query inventory below the routes is reference material, not the headline */
body.index .mt-inventory h2{ font-size:14px!important; padding-left:8px!important; }
body.index .mt-inventory{ font-size:13px; }
