:root {
  color-scheme: light;
  --ink: #17372d; --soft: #4e6257; --green: #204b3b; --forest: #173a30;
  --canvas: #f8f7f1; --paper: #fffefa; --rule: #dce0d4; --warm: #f3ead3; --gold: #efd5a0;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--ink); background: var(--canvas); font-synthesis: none; line-height: 1.5;
}
* { box-sizing: border-box; }
body { margin: 0; min-inline-size: 280px; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, select, summary { cursor: pointer; }
button:disabled { cursor: default; opacity: .55; }
:focus-visible { outline: 3px solid #a15f24; outline-offset: 3px; }
h1, h2, h3, p, dl, dd { margin: 0; }
h1, h2, h3 { line-height: 1.12; overflow-wrap: anywhere; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; }
h2 { font-size: clamp(1.5rem, 2.8vw, 2.15rem); }
h3 { font-size: 1.2rem; }
p + p { margin-block-start: .4rem; }
.shell { width: min(1160px, calc(100% - 44px)); margin-inline: auto; }
.site-head { background: var(--paper); border-block-end: 1px solid var(--rule); }
.header-inner { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; min-block-size: 76px; align-items: center; }
.brand, .main-nav a, .hero-link { text-decoration: none; }
.brand { display: inline-flex; gap: .65rem; align-items: center; width: fit-content; font-size: 1.03rem; white-space: nowrap; }
.brand strong { font-family: Georgia, serif; font-size: 1.32rem; }
.main-nav { display: flex; gap: .22rem; }
.main-nav a, .workspace-tabs button { display: inline-flex; gap: .45rem; align-items: center; justify-content: center; border-radius: 9px; text-align: center; padding: .65rem .9rem; font-weight: 650; font-size: .91rem; min-block-size: 44px; }
.main-nav a[aria-current], .workspace-tabs button[aria-pressed="true"] { color: var(--forest); background: #e5eee4; }
.main-nav a:hover, .workspace-tabs button:hover { background: #edf1e9; }
.icon { width: 1.2em; height: 1.2em; flex: none; vertical-align: -.2em; }
.language { justify-self: end; display: flex; align-items: center; gap: .4rem; }
.language select { max-width: 8rem; min-height: 44px; }
main { padding-block: 32px 58px; min-block-size: calc(100vh - 145px); }
.hero { background: var(--forest); color: #fcf9ee; display: grid; grid-template-columns: 1fr .9fr; overflow: hidden; border-radius: 22px; }
.hero-copy { padding: clamp(1.6rem, 5vw, 4.2rem); align-self: center; }
.eyebrow { display: inline-flex; align-items: center; gap: .5rem; font-size: .78rem; font-weight: 720; letter-spacing: .055em; }
.hero .eyebrow, .workspace-hero .eyebrow { color: var(--gold); }
.hero h1, .workspace-hero h1 { font-size: clamp(2.5rem, 5vw, 4.55rem); margin-block: .65rem 1rem; font-weight: 500; text-wrap: balance; }
.hero p, .workspace-hero p { color: #dbe6d8; max-width: 48ch; }
.hero-link { color: var(--gold); display: inline-flex; gap: .55rem; align-items: center; min-height: 44px; margin-block-start: 1rem; }
.hero-link:hover { text-decoration: underline; }
.hero-art { min-height: 270px; display: grid; }
.hero-art img { width: 100%; height: 100%; object-fit: cover; min-width: 0; min-height: 0; }
.card { background: var(--paper); border: 1px solid var(--rule); border-radius: 15px; }
.search-panel { margin-block: 18px 38px; padding: clamp(1rem, 2.8vw, 1.85rem); }
.search-panel h2, .map-card h3 { display: flex; align-items: center; gap: .6rem; }
.place-form, .filter-form, .schedule-filter { display: grid; align-items: end; gap: .7rem; }
.place-form { grid-template-columns: minmax(0, 1fr) auto auto; margin-block-start: 1.05rem; }
.filter-form { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-block-start: .9rem; }
.field { display: flex; flex-direction: column; min-width: 0; gap: .32rem; color: var(--ink); font-size: .875rem; font-weight: 630; }
input:not([type="checkbox"]), select, textarea { width: 100%; min-width: 0; border: 1px solid #b9c7ba; background: var(--paper); color: var(--ink); border-radius: 8px; min-height: 44px; padding: .55rem .65rem; }
textarea { resize: vertical; }
.button { display: inline-flex; align-items: center; justify-content: center; text-align: center; gap: .42rem; min-block-size: 44px; padding: .55rem .85rem; border-radius: 8px; border: 1px solid transparent; text-decoration: none; font-weight: 670; font-size: .875rem; max-width: 100%; overflow-wrap: anywhere; }
.primary { background: var(--green); color: #fffef8; }
.primary:hover:not(:disabled) { background: #143d30; }
.secondary { border-color: #c9d4c6; background: var(--paper); color: var(--forest); }
.secondary:hover, .pill:hover { background: #e8efe5; }
.pill { background: #edf2e9; color: var(--forest); border-radius: 999px; }
.danger { color: #842928; background: #fff1ef; border-color: #f2ceca; }
.danger:hover { background: #f9dfdc; }
.row { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; }
.quick-places { margin-block-start: .65rem; }
.status { color: #6e401c; font-size: .91rem; margin-block: .6rem 0; }
.status:empty { margin: 0; }
.places { margin-block: .5rem; }
.filters { margin-block-start: .85rem; border-block-start: 1px solid var(--rule); padding-block-start: .65rem; }
summary { width: fit-content; font-weight: 690; padding: .3rem .1rem; min-block-size: 40px; }
summary .icon { margin-inline: .35rem; }
.checks { display: grid; gap: .1rem; }
.checkbox { display: flex; align-items: center; gap: .5rem; min-block-size: 33px; font-size: .86rem; }
input[type="checkbox"] { accent-color: var(--green); width: 1.13rem; height: 1.13rem; margin: 0; flex: none; }
.section-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .6rem; margin-block-end: 1rem; }
.section-head h2 { margin-block: .25rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.count, .tag { background: #e7efe5; color: #254c3a; display: inline-flex; align-items: center; border-radius: 999px; font-family: system-ui, sans-serif; font-size: .77rem; font-weight: 700; padding: .24rem .65rem; }
.warm { background: var(--warm); color: #654725; }
.result-layout { display: grid; align-items: start; grid-template-columns: 1.15fr .85fr; gap: 1rem; }
.result-list, .records { display: grid; gap: .75rem; }
.offer, .map-card, .record, .empty { padding: clamp(1rem, 2vw, 1.4rem); }
.offer-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.marker { min-width: 1.65rem; min-height: 1.65rem; border-radius: 50%; display: grid; place-items: center; background: var(--green); color: white; font-size: .8rem; }
.offer h3 { margin-block: .45rem .3rem; }
.location, .confirmation { display: flex; flex-wrap: wrap; align-items: center; gap: .36rem; font-size: .875rem; }
.location, .quiet, .empty p { color: var(--soft); }
.offer dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; padding-block: .75rem; margin-block: .65rem; border-block: 1px solid var(--rule); }
dt { font-size: .78rem; color: var(--soft); }
dd { font-weight: 630; overflow-wrap: anywhere; }
.confirmation { color: #684326; }
.confirmation.fresh { color: #22563a; }
.offer .row { margin-block-start: .8rem; }
.empty p { margin-block-start: .5rem; }
.map-card { background: #f1f3ea; }
.map-jump { display: none; }
.map-card p { font-size: .83rem; margin-block: .3rem .6rem; }
.map-plot { width: 100%; display: block; border-radius: 10px; background: #e6eddf; }
.map-ring { fill: #dae6d7; stroke: #819a84; }
.map-ring.inner, .map-axis { stroke: #9cad99; fill: none; stroke-dasharray: 3 4; }
.map-center { fill: #8b4f2b; stroke: white; stroke-width: 2; }
.map-plot a circle { fill: var(--green); stroke: #fff; stroke-width: 2; }
.map-plot a:is(:focus,:hover) circle { fill: #8b4f2b; }
.map-plot a text { font: 700 11px system-ui; fill: white; text-anchor: middle; pointer-events: none; }
.map-caption { display: flex; justify-content: space-between; gap: .5rem; margin-block-start: .55rem; font-size: .85rem; }
.workspace-hero { padding: clamp(1.3rem, 4vw, 3.2rem); background: var(--forest); border-radius: 18px; color: #fcf9ee; display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
.workspace-hero h1 { font-size: clamp(2.25rem, 5vw, 3.9rem); }
.workspace-tabs { display: flex; flex-wrap: wrap; gap: .3rem; margin-block: 1rem 1.8rem; }
.workspace-tabs button { border: 1px solid var(--rule); background: var(--paper); color: var(--ink); }
.schedule-filter { padding: .9rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; margin-block-end: .8rem; }
.section-head + .quiet { margin-block-end: .9rem; }
.record { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .85rem; }
.record-content { min-width: 0; }
.record h3 { margin-block: .35rem; }
.record p { overflow-wrap: anywhere; }
.record-notes { white-space: pre-wrap; color: var(--soft); }
.record dl { display: grid; gap: .5rem; }
.record dd { white-space: pre-wrap; }
.horse-back { margin-block-end: .8rem; }
.horse-hero h1 { margin-block-end: .5rem; }
.horse-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 1rem; margin-block: 1rem 2rem; align-items: start; }
.horse-facts { align-items: start; }
.horse-facts h2, .horse-photos h2 { margin-block-end: .7rem; }
.horse-photos { min-width: 0; padding: clamp(1rem, 2vw, 1.4rem); }
.horse-photos .quiet { margin-block-start: .4rem; font-size: .86rem; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(140px, 100%), 1fr)); gap: .6rem; }
.photo-grid:not(:empty) { margin-block-start: .75rem; }
.photo-grid figure { margin: 0; min-width: 0; display: grid; gap: .4rem; }
.photo-grid a { display: block; }
.photo-grid img { display: block; width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 8px; background: #edf2e9; }
.care-filter { width: min(18rem, 100%); margin-block-end: .75rem; }
.care-record dl:not(:empty) { margin-block-start: .45rem; }
.calendar-alert { display: inline-flex; gap: .45rem; align-items: center; background: var(--warm); color: #654725; text-decoration: none; font-weight: 700; border-radius: 9px; padding: .55rem .85rem; min-block-size: 44px; margin-block-end: .75rem; }
.calendar-alert:hover { text-decoration: underline; }
.calendar-hero { padding: clamp(1rem, 3vw, 2rem); }
.calendar-hero h1 { font-size: clamp(1.65rem, 4vw, 3rem); margin-block: .45rem; }
.calendar-hero p { font-size: .88rem; }
.calendar-hint { margin-block: -.4rem .75rem; }
.calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; align-items: start; margin-block-start: 1rem; }
.calendar-panel { min-width: 0; padding: clamp(.7rem, 2vw, 1.2rem); }
.push-panel { margin-block-end: .75rem; }
.push-panel .quiet { margin-block: .35rem .55rem; font-size: .9rem; }
.push-code { max-width: 23rem; margin-block: .55rem; }
.shared-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.shared-options .button { margin-block-start: .45rem; }
.calendar-controls { display: flex; justify-content: space-between; align-items: center; gap: .4rem; text-align: center; }
.calendar-controls .button { padding-inline: .45rem; }
.calendar-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; gap: .45rem; margin-block: .75rem; }
.calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .22rem; text-align: center; }
.weekday { color: var(--soft); font-size: .72rem; overflow-wrap: anywhere; }
.calendar-day { color: var(--ink); background: #f5f6ee; border: 1px solid var(--rule); border-radius: 7px; min-inline-size: 0; min-block-size: 44px; display: grid; place-content: center; padding: .08rem; font-size: .88rem; line-height: 1.2; }
.calendar-day:hover { background: #e8efe5; }
.calendar-day[aria-current] { border-color: var(--green); }
.calendar-day[aria-pressed=true] { background: var(--green); color: white; }
.calendar-day small { color: #4a624e; font-weight: 700; font-size: .64rem; }
.calendar-day[aria-pressed=true] small { color: var(--gold); }
.calendar-agenda h3 { margin-block-end: .65rem; }
.calendar-record h3 { margin-block: .35rem; }
.reminder-group { border-block-start: 1px solid var(--rule); margin-block-start: .35rem; }
.reminder-group ul { padding-inline-start: 0; list-style: none; margin-block: 0 .5rem; max-block-size: 16rem; overflow: auto; }
.reminder-group li { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-block: .3rem; font-size: .9rem; }
.reminder-group li span { overflow-wrap: anywhere; }
.site-foot { background: #edf0e7; padding-block: 1rem; color: var(--soft); font-size: .85rem; }
.site-foot .shell { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: space-between; }
dialog { width: min(560px, calc(100% - 24px)); border: 1px solid var(--rule); background: var(--paper); color: var(--ink); border-radius: 16px; padding: 1.3rem; max-height: calc(100dvh - 24px); }
dialog::backdrop { background: #102d25a8; }
.editor-fields { display: grid; gap: .7rem; margin-block: .9rem; }
.editor-fields [hidden] { display: none; }
.editor > .row { margin-block-start: .65rem; }
@media (max-width: 820px) {
  .header-inner { grid-template-columns: minmax(0, 1fr) auto; row-gap: 0; padding-block: .6rem; }
  .main-nav { grid-row: 2; grid-column: 1 / -1; padding-block-start: .35rem; }
  .main-nav a { flex: 1; }
  .hero h1 { font-size: clamp(2.2rem, 6vw, 3.5rem); }
  .filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-layout { grid-template-columns: 1fr; }
}
@media (max-width: 580px) {
  .shell { width: calc(100% - 26px); }
  main { padding-block-start: 15px; }
  .hero, .result-layout { grid-template-columns: 1fr; }
  .horse-overview { grid-template-columns: 1fr; }
  .shared-options { grid-template-columns: 1fr; }
  .calendar-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-controls h3 { grid-row: 1; grid-column: 1 / -1; }
  .hero-art { min-height: 0; height: clamp(105px, 32vw, 170px); grid-template-rows: minmax(0, 1fr); overflow: hidden; }
  .hero-art img { object-position: center 65%; }
  .hero-copy { padding: 1.3rem; }
  .hero h1 { margin-block: .45rem .65rem; }
  .hero-link { margin-block-start: .45rem; }
  .search-panel { margin-block-end: 25px; }
  .place-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .place-form .field { grid-column: 1 / -1; }
  .map-jump { display: inline-flex; }
  .schedule-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-filter button { grid-column: 1 / -1; }
  .workspace-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
