/* SeaTrack v97.1 — Tides calendar button + month picker (sheet base reused from css/spot-picker.css) */
/* v97.2: calendar button in the Tides header row, right of the spot name, centred on the name row; name keeps room for it */
#tdv .tdv-nrow { display: flex; align-items: center; gap: 2px; }
#tdv .tdv-nrow > .tdv-spot { flex: 1 1 auto; min-width: 0; }
#tdv .tdv-calbtn { flex: 0 0 48px; margin: -6px -2px -6px 0; width: 48px; height: 44px; min-height: 44px;
  display: flex; align-items: center; justify-content: center; border: 0; padding: 0; background: transparent; color: #2dd4bf; cursor: pointer; -webkit-tap-highlight-color: transparent; }
#tdv .tdv-calbtn i { display: flex; align-items: center; justify-content: center; width: calc(34px * var(--ts, 1)); height: calc(34px * var(--ts, 1)); max-width: 38px; max-height: 38px; border-radius: 10px;
  border: 1.5px solid rgba(45,212,191,.55); background: rgba(45,212,191,.08); }
#tdv .tdv-calbtn svg { width: 60%; height: 60%; }
#tdv .tdv-calbtn.far i { background: #2dd4bf; color: #03221f; border-color: #2dd4bf; }
#tdv .tdv-calbtn:active i { opacity: .7; }
#tdv .tdv-calbtn:focus-visible { outline: 2px solid #2dd4bf; border-radius: 10px; }
#tdv .tdv-day.tdv-tchip { justify-content: center; }
#tdv .tdv-day.tdv-tchip b { font-size: calc(13px * var(--ts, 1)); color: #03221f; background: #2dd4bf; border-radius: 999px; padding: 5px 10px; }
#tdv .tdv-day.tdv-tchip span { display: none; }
#tdv .tdv-day.tdv-tchip::after { display: none; }
.tdv-when { font-size: calc(13.5px * var(--ts, 1)); color: #cbd5e1; margin: -4px 2px 6px; }
.tdv-when b { color: #2dd4bf; font-weight: 700; }
.tdv-when[hidden] { display: none; }

.tcal-sheet { max-width: 420px; }
body.tcal-open .tcal-wrap .spk-sheet { animation: spk-up .16s ease-out; }
@media (prefers-reduced-motion: reduce) { body.tcal-open .tcal-wrap .spk-sheet { animation: none; } }
body.tcal-open .tab-bar, body.tcal-open .cd-fab, body.tcal-open #cd-fab { visibility: hidden; }
.tcal-nav { display: flex; align-items: center; justify-content: space-between; padding: 0 6px; }
.tcal-nav b { font-size: calc(16px * var(--ts, 1)); font-weight: 700; }
.tcal-arw { width: 44px; height: 44px; border: 0; border-radius: 12px; background: transparent; color: #2dd4bf; font-size: calc(26px * var(--ts, 1)); line-height: 1; }
.tcal-arw:disabled { color: #475569; opacity: .5; }
.tcal-arw:active:not(:disabled) { background: rgba(45,212,191,.1); }
.tcal-dow, .tcal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); padding: 0 4px; }
.tcal-dow span { text-align: center; font-size: calc(11px * var(--ts, 1)); color: #7f9fb4; padding: 2px 0 4px; }
.tcal-grid { overflow-y: auto; touch-action: pan-y; }
.tcal-d { min-height: 44px; min-width: 0; border: 0; background: transparent; padding: 0; display: flex; align-items: center; justify-content: center; color: #e2e8f0; font: inherit; position: relative; -webkit-tap-highlight-color: transparent; }
.tcal-d span { display: flex; align-items: center; justify-content: center; width: calc(36px * var(--ts, 1)); height: calc(36px * var(--ts, 1)); max-width: 42px; max-height: 42px; border-radius: 10px;
  font-size: calc(15px * var(--ts, 1)); font-variant-numeric: tabular-nums; border: 1px solid transparent; }
.tcal-d.today span { border-color: #2dd4bf; color: #fff; font-weight: 700; }
.tcal-d.on span { background: #2dd4bf; color: #03221f; font-weight: 800; }
.tcal-d.saved::after, .tcal-dot { content: ""; width: 4px; height: 4px; border-radius: 50%; background: #5eead4; }
.tcal-d.saved::after { position: absolute; bottom: 3px; left: 50%; margin-left: -2px; }
.tcal-d.on.saved::after { background: #0f1d2b; bottom: 6px; }
.tcal-d:disabled { color: #475569; opacity: .45; }
.tcal-d:active:not(:disabled) span { background: rgba(45,212,191,.18); }
.tcal-d:focus-visible { outline: none; } .tcal-d:focus-visible span { outline: 2px solid #5eead4; }
.tcal-pad { min-height: 44px; }
.tcal-foot { display: flex; align-items: center; gap: 12px; padding: 6px 12px 12px; color: #8fb3c9; font-size: calc(12px * var(--ts, 1)); }
.tcal-foot small { display: inline-flex; align-items: center; gap: 6px; font-size: inherit; }
.tcal-dot { display: inline-block; }
.tcal-today { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid #2dd4bf; background: transparent; color: #2dd4bf; font: inherit; font-weight: 700; font-size: calc(14px * var(--ts, 1)); }
.tcal-today:active { background: rgba(45,212,191,.12); }
@media (max-height: 500px) and (orientation: landscape) { .tcal-sheet { max-width: 560px; } .tcal-sheet .spk-tt small { display: none; } .tcal-sheet { overflow-y: auto; } .tcal-grid { overflow: visible; } .tcal-foot { padding-bottom: 6px; } }
#tdv .tdv-strip .tdv-day.tdv-tchip { position: sticky; left: 0; z-index: 2; padding-right: 10px; background: linear-gradient(270deg, rgba(15,26,38,0), #0f1a26 10px); }
#tdv.tdv-far .tdv-lg-pres { display: none; } /* no pressure forecast that far ahead */
