/* Shared header + footer for every page (TM-SPEC-14 W2). Uses each page's own colour tokens. */
.tm-hdr{padding:0;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:50}
.tm-hdr{box-shadow:0 1px 0 rgba(0,0,0,.02)}
html{scroll-padding-top:72px}
.tm-hdr-in{max-width:1040px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:14px}
.tm-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:19px;color:var(--ink);text-decoration:none;white-space:nowrap;margin-right:auto}
.tm-brand img{border-radius:7px}
.tm-nav{display:none;gap:4px;align-items:center}
.tm-nav a,.tm-menu nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:15px;padding:8px 10px;border-radius:8px;white-space:nowrap}
.tm-nav a:hover,.tm-menu nav a:hover{background:var(--surface,var(--line))}
.tm-nav a[aria-current="page"],.tm-menu nav a[aria-current="page"]{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);border-radius:0}
.tm-hdr .themebtn{background:none;border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:6px 12px;font:600 14px Inter,sans-serif;cursor:pointer;white-space:nowrap}
.tm-menu{position:static}
.tm-menu summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font:600 14px Inter,sans-serif;color:var(--ink)}
.tm-menu summary::-webkit-details-marker{display:none}
.tm-menu summary:after,.tm-menu[open] summary:after{content:none}
.tm-menu[open] summary{background:var(--surface,var(--line))}
.tm-menu nav{position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 20px 16px;display:grid;box-shadow:0 12px 24px rgba(0,0,0,.08)}
.tm-menu nav a{padding:13px 4px;border-bottom:1px solid var(--line);border-radius:0;font-size:17px}
.tm-menu nav a:last-child{border-bottom:0}
.tm-hdr a:focus-visible,.tm-hdr summary:focus-visible,.tm-ftr a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media(min-width:900px){.tm-nav{display:flex}.tm-menu{display:none}}
@media(max-width:380px){.tm-brand{font-size:17px}.tm-brand img{width:26px;height:26px}}

.tm-ftr{border-top:1px solid var(--line);background:var(--bg);color:var(--muted);font-size:14px;line-height:1.6;padding:36px 0 40px}
.tm-ftr-in{max-width:1040px;margin:0 auto;padding:0 20px;display:grid;gap:26px}
.tm-ftr-cols{display:grid;gap:22px;grid-template-columns:1fr 1fr}
@media(min-width:760px){.tm-ftr-cols{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.tm-ftr h2{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 8px;line-height:1.3}
.tm-ftr ul{list-style:none;margin:0;padding:0}
.tm-ftr li{margin:0 0 4px}
.tm-ftr a{color:var(--muted);text-decoration:none;margin-right:0}
body:has(.sticky) .tm-ftr{padding-bottom:96px}
.tm-ftr a:hover{color:var(--accent);text-decoration:underline}
.tm-ftr .tm-ftr-brand{color:var(--ink);font-weight:700;font-size:16px;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.tm-ftr .tm-ftr-brand img{border-radius:6px}
.tm-ftr-note{border-top:1px solid var(--line);padding-top:16px;font-size:13px}
