/* Shared reading scale: native zoom remains available; Sheet text is never rewritten. */
html {font-size:18px;scroll-padding-top:1rem}
body {line-height:1.75}
button, select {font-family:inherit}
:where(a, button, select, summary, input):focus-visible {outline:3px solid #a64025;outline-offset:4px}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.trip-topbar {flex-wrap:wrap;font-size:.85rem}
.trip-topbar .brand {font-size:1rem}
.reading-controls {display:flex;align-items:center;gap:.7rem;margin-left:auto;flex-wrap:wrap}
.trip-topbar .reading-controls span {margin-left:0;font-size:.8rem;color:#31535d}
#reading-toggle {min-height:48px;padding:.45rem .8rem;border:2px solid #123a4a;border-radius:10px;background:#fff;color:#123a4a;font:600 .9rem/1.5 'Noto Sans Thai',sans-serif;cursor:pointer}
#reading-toggle[aria-pressed=true] {background:#123a4a;color:#fff}
.map-heading h2 {font-size:1.8rem;letter-spacing:0;line-height:1.5}
.map-heading p:not(.section-label), .section-label, .eyebrow {font-size:.85rem;letter-spacing:.03em}
.map-panel {min-width:0}
.map-panel select {font-size:1rem;line-height:1.6;min-height:52px;padding:.55rem .6rem}
.field-label, .past-points-toggle {font-size:.9rem}
.past-points-toggle input {width:24px;height:24px}
.trip-progress-note, .place-category, .location-status, .map-note {font-size:.85rem;line-height:1.8;color:#31535d}
.selected-place h3 {font-size:1.15rem;line-height:1.7}
.place-address {font-size:1rem;line-height:1.8}
.map-panel details, .lodging-details {font-size:.9rem;line-height:1.8;color:#31535d}
summary {padding:.5rem 0;min-height:48px}
.map-action {font-size:1rem;line-height:1.6;min-height:52px;padding:.6rem}
.location-actions {grid-template-columns:repeat(2,minmax(0,1fr))}
.map-caption {font-size:.85rem;flex-wrap:wrap;line-height:1.7}
.map-caption a {display:inline-flex;align-items:center;min-height:48px}
.sheet-sync-bar {flex-wrap:wrap}
.sheet-edit {font-size:1rem;display:inline-flex;align-items:center;min-height:48px}
.sheet-sync-bar p, .sheet-help {font-size:.85rem;line-height:1.8;color:#31535d}
.sheet-sync-bar button {font-size:.9rem;min-height:48px}
.intro-grid, .lede, .notes ul {font-size:1rem;line-height:1.9}
.intro h2, .section-head h2, .notes h2 {font-family:'Noto Sans Thai',sans-serif;letter-spacing:0;font-size:2rem;line-height:1.5}
.section-head>p {font-size:.9rem}
.schedule {padding:3rem clamp(20px,5vw,84px);background:#e7eeea}
.days {border:0;display:grid;gap:1.4rem}
.day, .day.feature {display:grid;grid-template-columns:85px minmax(0,1fr) minmax(220px,.45fr);gap:1.4rem;padding:1.5rem;margin:0;background:#fff;color:#123a4a;border:1px solid #b4c9c4;border-radius:16px}
.day.feature {border-top:5px solid #123a4a}
.day-body, .stay {min-width:0}
.date span, .date small {font:500 .85rem/1.7 'Noto Sans Thai',sans-serif}
.date strong, .feature .date strong {font-size:3rem;line-height:1.2;color:#a64025}
.date .day-progress {font-size:.85rem;white-space:normal}
.day .place, .feature .place {font:500 .9rem/1.8 'Noto Sans Thai',sans-serif;letter-spacing:0;color:#31535d}
.day h3 {font:600 1.35rem/1.7 'Noto Sans Thai',sans-serif;letter-spacing:0;overflow-wrap:anywhere}
.day ul {font-size:1rem;line-height:1.9}
.day li {padding:.8rem 0;margin:0;border-top:1px solid #d4dfda;overflow-wrap:anywhere}
.day time, .feature time {display:block;width:fit-content;max-width:100%;margin:0 0 .45rem;padding:.15rem .5rem;border-radius:6px;background:#edf3ef;color:#123a4a;font:600 .95rem/1.7 'Noto Sans Thai',sans-serif;font-variant-numeric:tabular-nums}
.activity-copy {display:block}
.activity-note {font-size:.9rem;line-height:1.8;color:#31535d;opacity:1;margin-top:.45rem}
.activity-map, .trip-map-link, .feature .trip-map-link {display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.4rem .65rem;margin:.5rem .4rem 0 0;border:1px solid #91a8a1;border-radius:8px;background:#f3f7f4;color:#123a4a;font:600 .85rem/1.6 'Noto Sans Thai',sans-serif;text-decoration:none;max-width:100%}
.stay, .feature .stay {font-size:1rem;line-height:1.85;color:#123a4a;padding:1rem;background:#f2f6f3;border-radius:10px;margin:0;overflow-wrap:anywhere;align-self:start}
.stay span, .confirmed-stay p, .stay p, .stay-navigation, .lodging-details {font-size:.9rem;color:#31535d}
.confirmed-stay a {display:block;min-height:48px;padding:.45rem 0}
.notes {background:#f4e5db;color:#123a4a}
.notes li {border-color:#c2aba0}
footer {font-size:.85rem;line-height:1.7;flex-wrap:wrap;gap:1rem}
footer a {display:inline-flex;align-items:center;min-height:48px}
html[data-reading=comfortable] {font-size:24px;--paper:#fffdf7;--ink:#102f3a;scroll-behavior:auto}
html[data-reading=comfortable] .day, html[data-reading=comfortable] .day.feature {grid-template-columns:1fr}
html[data-reading=comfortable] .date {display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.7rem;margin:0}
html[data-reading=comfortable] .day li {padding:1.1rem 0;line-height:2}
html[data-reading=comfortable] .date strong {font:700 1.7rem/1.5 'Noto Sans Thai',sans-serif;letter-spacing:0}
html[data-reading=comfortable] .date .day-progress {margin:0}
html[data-reading=comfortable] .hero {min-height:0}
html[data-reading=comfortable] .hero-copy {padding:2rem 1rem}
html[data-reading=comfortable] .hero h1 {font-size:2.8rem;line-height:1.2;letter-spacing:0}
html[data-reading=comfortable] .stamp {display:none}
html[data-reading=comfortable] .map-layout {grid-template-columns:1fr}
html[data-reading=comfortable] .map-view iframe {height:360px;min-height:360px;flex:initial}
html[data-reading=comfortable] .map-panel {border-left:0;border-top:1px solid #b4c9c4}
@media(max-width:1024px) {
  .day, .day.feature {grid-template-columns:1fr;padding:1.25rem}
  .date {display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:.65rem;margin:0}
  .date strong {font:700 1.6rem/1.5 'Noto Sans Thai',sans-serif;letter-spacing:0}
  .date .day-progress {margin:0}
}
@media(max-width:760px) {
  html {font-size:20px}
  html[data-reading=comfortable] {font-size:24px}
  .trip-map-section {padding:0 12px 1.5rem}
  .trip-topbar {display:grid;grid-template-columns:auto 1fr;gap:.4rem .6rem;padding:.65rem 0}
  .trip-topbar .brand {margin:0}
  .trip-topbar>span {font-size:.8rem;justify-self:end;margin:0}
  .trip-topbar>a:last-of-type {font-size:.85rem;grid-column:1;min-height:44px;display:flex;align-items:center}
  .reading-controls {grid-column:2;justify-self:end;margin:0;gap:0}
  .reading-controls #reading-hint {display:none}
  #reading-toggle {font-size:.8rem;padding:.4rem .55rem}
  .map-heading {padding:1rem 0 .7rem}
  .map-heading h2 {font-size:1.5rem}
  .map-heading>p {margin:.4rem 0 0}
  .map-view iframe {height:300px;min-height:300px}
  .map-panel {padding:1rem .8rem}
  .map-panel select {font-size:1rem}
  .map-caption {padding:.4rem .65rem;gap:.4rem}
  .location-actions {grid-template-columns:1fr}
  .sheet-sync-bar {padding:.75rem;gap:.6rem}
  .sheet-edit {font-size:1rem}
  .sheet-sync-bar button {font-size:.9rem;width:100%}
  .sheet-help {font-size:.85rem}
  .intro, .schedule, .notes {padding:2rem 12px}
  .intro-grid {display:block}
  .intro h2, .section-head h2, .notes h2 {font-size:1.6rem}
  .section-head {display:block;margin-bottom:1.2rem}
  .section-head>p {display:block}
  .day, .day.feature {padding:1rem .8rem;gap:.9rem}
  .day h3 {font-size:1.2rem}
  .day time {font-size:.95rem}
  .day .stay {margin:0}
  .day .date strong {font-size:1.6rem}
  .day .date .day-progress {grid-column:auto}
  .hero {min-height:360px}
  .hero-copy {padding:4rem 20px 2rem}
  .hero h1 {font-size:3.8rem}
  .stamp {display:none}
  .notes .section-label {margin-bottom:1rem}
}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto}}
