.sr-only { clip: rect(0, 0, 0, 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
:root {
  --ink: #18342a;
  --muted: #607168;
  --paper: #f6f3e9;
  --panel: #fffdf7;
  --leaf: #286448;
  --leaf-dark: #153f2e;
  --sun: #e4aa43;
  --line: #d9ddcf;
  --danger: #8a2929;
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); line-height: 1.6; }
a { color: var(--leaf-dark); text-underline-offset: .18em; }
a:hover { color: #9a5d00; }
button, .button {
  appearance: none; border: 0; border-radius: .65rem; background: var(--leaf); color: white;
  cursor: pointer; display: inline-flex; font: inherit; font-weight: 750; min-height: 44px;
  align-items: center; justify-content: center; padding: .65rem 1rem; text-decoration: none;
}
.button-secondary { background: transparent; border: 1px solid var(--leaf); color: var(--leaf); }
.skip-link { background: white; left: -9999px; padding: .7rem; position: fixed; top: .5rem; z-index: 10000; }
.skip-link:focus { left: .5rem; }
.site-header, .admin-header {
  align-items: center; background: rgba(246,243,233,.96); border-bottom: 1px solid var(--line);
  display: flex; justify-content: space-between; min-height: 64px; padding: .7rem max(1rem, calc((100vw - 1120px) / 2)); position: sticky; top: 0; z-index: 1000;
}
.site-header nav { display: flex; gap: 1rem; }
.brand { font-size: 1.05rem; font-weight: 850; text-decoration: none; }
.brand span, .eyebrow { color: var(--leaf); }
.wide { margin-inline: auto; max-width: 1120px; padding-inline: 1rem; }
.narrow { margin: 4rem auto; max-width: 560px; padding: 1rem; }
.hero { display: grid; gap: 2rem; grid-template-columns: 1.15fr .85fr; padding-block: clamp(2rem, 6vw, 5rem); }
.hero h1 { font-family: Georgia, serif; font-size: clamp(2.35rem, 6vw, 5.5rem); line-height: .98; margin: .25rem 0 1.25rem; max-width: 12ch; }
.lede { color: var(--muted); font-size: 1.15rem; max-width: 58ch; }
.eyebrow { font-size: .78rem; font-weight: 850; letter-spacing: .14em; margin: 0; text-transform: uppercase; }
.hero-art {
  align-items: end; background: radial-gradient(circle at 25% 30%, #e7c979 0 5%, transparent 6%), linear-gradient(145deg, #b9d394 0 25%, #6da171 25% 48%, #d8b268 48% 65%, #527957 65%);
  border-radius: 1.3rem; box-shadow: inset 0 0 0 1px rgba(24,52,42,.18); color: white; display: flex;
  min-height: 320px; overflow: hidden; padding: 1rem; position: relative;
}
.hero-art::after { background: repeating-linear-gradient(105deg, transparent 0 22px, rgba(255,255,255,.17) 23px 25px); content: ""; inset: 0; position: absolute; }
.hero-art span { background: rgba(21,63,46,.88); border-radius: 99px; padding: .3rem .8rem; position: relative; z-index: 1; }
.mode-switch { background: #e8eadf; border-radius: .7rem; display: inline-flex; padding: .25rem; }
.mode-switch a { border-radius: .5rem; min-height: 40px; padding: .45rem .9rem; text-decoration: none; }
.mode-switch a[aria-current="page"] { background: var(--panel); box-shadow: 0 2px 8px #18342a22; font-weight: 800; }
.date-nav { display: flex; justify-content: space-between; padding-block: 1rem; }
.date-nav a { min-height: 44px; padding-block: .55rem; }
.alert { border: 1px solid #d99d2e; border-radius: .8rem; margin-block: 1.25rem; padding: 1rem; }
.alert.fixture { background: #fff4cf; }
.alert.error { background: #fff0f0; border-color: var(--danger); color: var(--danger); }
.today-summary { align-items: end; display: grid; gap: 2rem; grid-template-columns: 1fr 1fr; padding-block: 2rem; }
h2 { font-family: Georgia, serif; font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.1; margin: .2rem 0; }
.map-section, .weather-section, .content-section { padding-block: 2.5rem; }
.section-heading { align-items: end; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 1rem; }
.section-heading > p { color: var(--muted); margin: 0; }
.map { background: #dde5d4; border: 1px solid var(--line); border-radius: 1rem; height: min(62vh, 560px); min-height: 380px; overflow: hidden; z-index: 1; }
.map-unavailable { align-items: center; display: flex; justify-content: center; padding: 2rem; }
.map-alternative { background: var(--panel); border: 1px solid var(--line); border-radius: .8rem; margin-top: 1rem; padding: 1rem 1.25rem; }
.map-alternative ul { columns: 2; padding-left: 1.2rem; }
.weather-grid, .cards { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.weather-card, .content-card, .panel { background: var(--panel); border: 1px solid var(--line); border-radius: 1rem; padding: 1.25rem; }
.weather-card h3 { margin: 0; }
.temperature { color: var(--leaf); font-size: 2.25rem; font-weight: 850; margin: .2rem 0; }
.weather-card dl { display: grid; grid-template-columns: 1fr 1fr; }
.weather-card dl div { border-top: 1px solid var(--line); padding: .5rem 0; }
.weather-card dd { font-weight: 700; margin: 0; }
.content-card h3 { font-family: Georgia, serif; font-size: 1.45rem; line-height: 1.2; margin: .75rem 0; }
.card-meta { align-items: center; color: var(--muted); display: flex; flex-wrap: wrap; font-size: .85rem; gap: .6rem; }
.badge { background: #e5eadf; border-radius: 99px; display: inline-block; font-size: .74rem; font-weight: 800; padding: .15rem .55rem; }
.badge.fixture { background: #ffe3a8; }
.importance-a { background: #d7ead6; }
.importance-c { background: #ecece7; }
.details, .sources, .related { border-top: 1px solid var(--line); font-size: .9rem; margin-top: 1rem; padding-top: .75rem; }
.sources span, .sources a, .related a { margin-right: .6rem; }
.mode-temel .advanced-only { display: none !important; }
footer { align-items: center; border-top: 1px solid var(--line); display: flex; justify-content: space-between; margin-top: 4rem; padding: 2rem max(1rem, calc((100vw - 1120px) / 2)); }
.form { display: grid; gap: 1rem; margin-top: 1rem; }
.form-grid { grid-template-columns: 1fr 1fr; }
.form label { display: grid; font-size: .9rem; font-weight: 750; gap: .3rem; }
.form input, .form textarea, .form select { background: white; border: 1px solid #9ba89f; border-radius: .5rem; color: var(--ink); font: inherit; min-height: 44px; padding: .55rem .7rem; width: 100%; }
.form textarea { min-height: 110px; resize: vertical; }
.span-2 { grid-column: 1 / -1; }
fieldset { border: 1px solid var(--line); border-radius: .7rem; padding: 1rem; }
legend { font-weight: 800; }
.table-wrap { overflow-x: auto; }
table { background: var(--panel); border-collapse: collapse; width: 100%; }
th, td { border-bottom: 1px solid var(--line); padding: .8rem; text-align: left; }
.muted { color: var(--muted); }
@media (max-width: 760px) {
  .site-header nav { display: none; }
  .hero { grid-template-columns: 1fr; padding-top: 2rem; }
  .hero-art { min-height: 190px; order: -1; }
  .today-summary, .form-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .section-heading { align-items: start; flex-direction: column; gap: .35rem; }
  .weather-grid, .cards { grid-template-columns: 1fr; }
  .map { height: 430px; min-height: 360px; }
  .map-alternative ul { columns: 1; }
  footer { align-items: start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Phase 2.3 Atlas product surface */
:root { --soil: #9a5d00; --mist: #edf0e6; --shadow: 0 18px 50px rgba(24,52,42,.08); }
body { background: #f5f2e8; }
.site-header { background: rgba(245,242,232,.94); }
.site-header nav a, .brand { white-space: nowrap; }
.atlas-hero, .day-hero { align-items: stretch; display: grid; gap: clamp(1.5rem, 5vw, 4rem); grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr); padding-block: clamp(2.5rem, 8vw, 6.5rem); }
.atlas-hero h1, .day-hero h1, .entity-hero h1 { font-family: Georgia, serif; font-size: clamp(2.5rem, 6vw, 5.6rem); letter-spacing: -.045em; line-height: .98; margin: .25rem 0 1.25rem; max-width: 12ch; }
.atlas-hero .lede, .day-hero .lede, .entity-hero .lede { max-width: 52ch; }
.action-row { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.5rem 0; }
.atlas-art, .field-illustration { align-items: end; background: linear-gradient(155deg, #d4e1b4 0 18%, #87ad73 18% 43%, #d5b16b 43% 61%, #526f4c 61% 100%); border-radius: 1.5rem; box-shadow: var(--shadow); display: flex; min-height: 330px; overflow: hidden; padding: 1.25rem; position: relative; }
.atlas-art::before, .field-illustration::before { background: repeating-linear-gradient(105deg, transparent 0 22px, rgba(255,255,255,.22) 23px 26px); content: ""; inset: -20%; position: absolute; transform: rotate(-7deg); }
.atlas-art span, .field-illustration span { background: rgba(21,63,46,.9); border-radius: 999px; color: white; padding: .45rem .85rem; position: relative; }
.search-form { max-width: 520px; }
.search-form label { display: block; font-size: .85rem; font-weight: 800; margin-bottom: .35rem; }
.search-form > div { display: flex; gap: .5rem; }
.search-form input { background: white; border: 1px solid #aeb9a8; border-radius: .65rem; color: var(--ink); flex: 1; font: inherit; min-height: 46px; padding: .65rem .8rem; }
.quick-links { color: var(--muted); display: flex; flex-wrap: wrap; gap: .6rem; }
.today-panel { background: var(--leaf-dark); border-radius: 1.2rem; color: white; margin-block: 1rem 3rem; padding: clamp(1.4rem, 4vw, 2.5rem); }
.today-panel a { color: #f5d58b; }
.today-panel .eyebrow { color: #e9c36f; }
.today-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.today-grid article { border-left: 1px solid rgba(255,255,255,.25); padding-left: 1rem; }
.today-grid h3 { font-family: Georgia, serif; font-size: 1.2rem; line-height: 1.2; margin: .45rem 0 .8rem; }
.module-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0,1fr)); padding-block: 2rem 5rem; }
.module-grid > * { background: var(--panel); border: 1px solid var(--line); border-radius: 1rem; box-shadow: 0 8px 25px rgba(24,52,42,.04); padding: 1.25rem; text-decoration: none; }
.module-grid h3 { color: var(--ink); font-family: Georgia, serif; margin: .35rem 0; }
.module-grid p { color: var(--muted); margin: 0; }
.product-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.product-tile { align-items: start; background: var(--panel); border: 1px solid var(--line); border-radius: 1rem; display: flex; flex-direction: column; gap: .45rem; min-height: 140px; padding: 1.1rem; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.product-tile:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.product-tile strong { color: var(--ink); font-family: Georgia, serif; font-size: 1.2rem; }
.product-tile small { color: var(--muted); }
.product-icon { align-items: center; background: #e6efcf; border-radius: 50%; color: var(--leaf); display: inline-flex; height: 2rem; justify-content: center; width: 2rem; }
.day-summary { align-items: center; background: #e8eddd; border-radius: 1rem; display: grid; gap: 1rem 2rem; grid-template-columns: .8fr 1.2fr; margin-block: 1rem 2rem; padding: 1.25rem 1.5rem; }
.summary-facts { display: flex; flex-wrap: wrap; gap: .6rem; }
.summary-facts span { background: rgba(255,255,255,.76); border-radius: 999px; color: var(--muted); padding: .45rem .75rem; }
.summary-facts strong { color: var(--leaf-dark); font-size: 1.15rem; }
.layer-strip { display: flex; flex-wrap: wrap; gap: .45rem; margin: .8rem 0 1rem; }
.layer-chip { background: #e3ead9; border-radius: 999px; color: var(--leaf-dark); font-size: .78rem; font-weight: 800; padding: .35rem .65rem; }
.layer-chip.disabled { background: #e9e9e2; color: #7a847a; }
.map { box-shadow: var(--shadow); }
.map-alternative { box-shadow: 0 8px 25px rgba(24,52,42,.04); }
.map-alternative ul { line-height: 1.9; }
.card-meta { justify-content: space-between; }
.card-meta a, .card-link { font-weight: 750; }
.source-label { border-top: 1px solid var(--line); color: var(--muted); font-size: .88rem; margin-top: 1rem; padding-top: .75rem; }
.status-note { background: #e8eddd; border-radius: 999px; color: var(--leaf); font-size: .78rem; font-weight: 800; padding: .15rem .5rem; }
.expert-details { border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem; margin-top: 1rem; padding-top: .75rem; }
.entity-hero { padding-block: clamp(2rem, 6vw, 4.5rem) 1.5rem; }
.entity-hero h1 { max-width: 16ch; }
.place-hero h1 { color: var(--leaf-dark); }
.breadcrumbs { align-items: center; color: var(--muted); display: flex; gap: .5rem; padding-block: .5rem 2rem; }
.entity-grid { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); padding-bottom: 5rem; }
.entity-grid > div > h2 { margin-bottom: 1.25rem; }
.entity-aside { display: grid; gap: 1rem; align-content: start; }
.entity-aside h3 { font-family: Georgia, serif; margin: .3rem 0 .8rem; }
.link-list { list-style: none; margin: 0; padding: 0; }
.link-list li { border-bottom: 1px solid var(--line); padding: .55rem 0; }
.link-list li:last-child { border-bottom: 0; }
.link-list.compact { columns: 2; column-gap: 1.5rem; }
.link-list.compact li { break-inside: avoid; }
.empty-state { background: var(--mist); border: 1px dashed #b3bdac; border-radius: .8rem; color: var(--muted); padding: 1rem; }
.stat-list { display: grid; gap: .75rem; }
.stat-list div { border-top: 1px solid var(--line); padding-top: .65rem; }
.stat-list strong, .stat-list span { display: block; }
.stat-list span { color: var(--muted); font-size: .85rem; }
.pulse-card { border-left: 4px solid var(--sun); }
@media (max-width: 860px) { .today-grid, .module-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .entity-grid { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .site-header { align-items: start; flex-direction: column; gap: .55rem; position: static; } .site-header nav { display: flex; flex-wrap: wrap; gap: .7rem; } .atlas-hero, .day-hero { grid-template-columns: 1fr; padding-block: 2rem 3rem; } .atlas-art, .field-illustration { min-height: 190px; order: -1; } .atlas-hero h1, .day-hero h1, .entity-hero h1 { font-size: clamp(2.35rem, 14vw, 4rem); } .today-grid, .module-grid { grid-template-columns: 1fr; } .today-grid article { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); padding: 1rem 0 0; } .day-summary { grid-template-columns: 1fr; } .search-form > div { align-items: stretch; flex-direction: column; } .search-form button { width: 100%; } .link-list.compact { columns: 1; } }
/* Phase 2.4 calendar surface */
.calendar-hero { padding-bottom: 2rem; }
.calendar-art { align-items: end; background: radial-gradient(circle at 25% 30%, #f0d590 0 5%, transparent 6%), linear-gradient(145deg, #d7e3bc 0 25%, #79a56d 25% 48%, #d7b46b 48% 66%, #476c4d 66%); border-radius: 1.5rem; box-shadow: var(--shadow); display: flex; min-height: 300px; overflow: hidden; padding: 1.25rem; position: relative; }
.calendar-art span { background: rgba(21,63,46,.9); border-radius: 999px; color: white; padding: .45rem .85rem; }
.calendar-card { min-height: 250px; }
.calendar-nav strong { color: var(--leaf-dark); }
/* National-scope map control: a scope selector, never a geographic marker. */
.map-national-control{position:absolute;z-index:500;top:1rem;right:4rem;max-width:min(18rem,calc(100% - 2rem));font-size:.9rem}.map-national-toggle{display:block;border:1px solid #8b6a2b;border-radius:999px;background:#fff8e6;color:#5f4717;padding:.55rem .85rem;font:inherit;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.15);cursor:pointer}.map-national-toggle:focus-visible{outline:3px solid #166534;outline-offset:2px}.map-national-list{margin-top:.45rem;padding:.75rem;background:#fff;border:1px solid #d8c79b;border-radius:.65rem;box-shadow:0 3px 12px rgba(0,0,0,.16)}.map-national-list ul{margin:.5rem 0 0;padding-left:1.1rem}.map-national-list a{color:#14532d}@media (max-width:640px){.map-national-control{top:.75rem;right:.75rem;max-width:calc(100% - 1.5rem)}.map-national-list{max-height:12rem;overflow:auto}}
