.tg-public-hikes { display:grid; gap:1rem; }
.tg-public-hikes__header h1 { margin-bottom:.35rem; }
.tg-public-hikes__header p { margin:0; opacity:.78; }
.tg-public-hikes__list { display:grid; gap:.7rem; }
.tg-public-hikes__item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:center; padding:.9rem 1rem; border:1px solid color-mix(in srgb,currentColor 22%,transparent); border-radius:.7rem; background:color-mix(in srgb,Canvas 96%,transparent); color:CanvasText; }
.tg-public-hikes__main { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1rem; align-items:center; min-width:0; }
.tg-public-hikes__date { display:grid; gap:.1rem; min-width:6rem; }
.tg-public-hikes__date span { font-size:.75rem; opacity:.68; }
.tg-public-hikes__date strong { font-size:1rem; }
.tg-public-hikes__content { min-width:0; }
.tg-public-hikes__content h2 { margin:0 0 .25rem; font-size:1.08rem; }
.tg-public-hikes__meta { margin:0 0 .35rem; font-size:.86rem; opacity:.78; }
.tg-public-hikes__route { font-weight:650; }
.tg-public-hikes__button { display:inline-flex; align-items:center; justify-content:center; min-height:2.45rem; padding:.5rem .8rem; border:1px solid #2d3339; border-radius:.48rem; background:#2d3339; color:#fff; text-decoration:none; font:inherit; font-weight:700; cursor:pointer; }
.tg-public-hikes__button[data-joined="1"] { background:#1f6f43; border-color:#1f6f43; }
.tg-public-hikes__button:disabled { opacity:.55; cursor:wait; }
.tg-public-hikes__owner { font-size:.86rem; opacity:.75; white-space:nowrap; }
.tg-public-hikes__status { min-height:1.25rem; margin:0; font-size:.86rem; }
.tg-public-hikes__status.is-error { color:#c43d3d; }
.tg-public-hikes__empty { padding:.8rem 0; opacity:.75; }
@media (max-width:720px) {
  .tg-public-hikes__item { grid-template-columns:1fr; align-items:stretch; }
  .tg-public-hikes__main { grid-template-columns:1fr; gap:.45rem; }
  .tg-public-hikes__date { grid-template-columns:auto 1fr; min-width:0; gap:.45rem; align-items:baseline; }
  .tg-public-hikes__button { width:100%; }
}
.tg-public-hikes__meeting { margin:.15rem 0 .25rem; font-size:.9rem; }
.tg-public-hikes__info { margin:.15rem 0 .4rem; font-size:.9rem; opacity:.88; }

/* 0.1.142 – notification preferences belong with arranged/public hikes, not the route planner. */
.tg-public-hikes__preferences {
    margin-top: .35rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb,currentColor 22%,transparent);
    border-radius: .7rem;
    background: color-mix(in srgb,Canvas 96%,transparent);
}
.tg-public-hikes__preferences h2 { margin: 0 0 .3rem; font-size: 1.05rem; }
.tg-public-hikes__preferences > p { margin: 0 0 .8rem; opacity: .76; }
.tg-public-hikes__preference-grid { display: grid; gap: .7rem; }
.tg-public-hikes__notify { display: flex; align-items: center; gap: .5rem; }
.tg-public-hikes__reminder { display: grid; grid-template-columns: minmax(0,max-content) max-content; gap: .25rem .55rem; align-items: center; }
.tg-public-hikes__reminder-control { display: inline-flex; align-items: center; gap: .4rem; }
.tg-public-hikes__reminder-control input { width: 5rem; }
.tg-public-hikes__reminder small { grid-column: 1 / -1; opacity: .72; }
.tg-public-hikes__preference-status { min-height: 1.2rem; margin: .65rem 0 0; font-size: .86rem; }
.tg-public-hikes__preference-status.is-error { color: #c43d3d; }
@media (max-width:720px) {
  .tg-public-hikes__reminder { grid-template-columns: 1fr; }
}
