/* Coastal theme layer on top of Bootstrap 5.3 */
:root{
  --navy:#1b5a73;--deep:#0f3f55;--teal:#2aa6b0;--seafoam:#c9ece6;--foam:#eaf8f6;
  --sand:#f7ecd6;--sand-deep:#e9d3a6;--ink:#24424f;--muted:#678490;--line:#d6e8e8;
  --coral:#ff7f6b;--sun:#ffc86b;--bg:#fdf9f0;--shadow:0 6px 18px rgba(27,90,115,.10);
  --font-body:'Nunito','Segoe UI',system-ui,sans-serif;--font-head:'Fredoka','Nunito',system-ui,sans-serif;
  --bs-primary:#2aa6b0;--bs-primary-rgb:42,166,176;--bs-link-color:#1f8a94;--bs-link-hover-color:#ff7f6b;
  --bs-body-color:#24424f;--bs-body-bg:#fdf9f0;--bs-border-color:#d6e8e8;--bs-body-font-family:var(--font-body)
}
body{font-family:var(--font-body);background:linear-gradient(180deg,#eaf8f6 0,#fdf9f0 340px) no-repeat,var(--bg);background-color:var(--bg)}
h1,h2,h3,h4,.navbar-brand{font-family:var(--font-head);font-weight:500}
a{text-underline-offset:3px}

.btn{border-radius:999px;font-weight:700;padding:.45rem 1.2rem}
.btn-primary{--bs-btn-bg:#2aa6b0;--bs-btn-border-color:#2aa6b0;--bs-btn-hover-bg:#ff7f6b;--bs-btn-hover-border-color:#ff7f6b;--bs-btn-active-bg:#ee6c58;--bs-btn-active-border-color:#ee6c58;--bs-btn-disabled-bg:#2aa6b0;--bs-btn-disabled-border-color:#2aa6b0;--bs-btn-color:#fff;--bs-btn-hover-color:#fff;box-shadow:0 3px 8px rgba(42,166,176,.3)}
.btn-outline-navy{--bs-btn-color:#1b5a73;--bs-btn-border-color:#b9dcdc;--bs-btn-hover-bg:#1b5a73;--bs-btn-hover-border-color:#1b5a73;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#1b5a73;--bs-btn-active-color:#fff}
.form-control,.form-select{border-radius:999px;border-color:#bfe0df;background:#fff;padding:.5rem 1.1rem}
textarea.form-control{border-radius:16px}
.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--teal);box-shadow:0 0 0 .25rem rgba(42,166,176,.2)}
.form-check-input:checked{background-color:var(--teal);border-color:var(--teal)}
.alert-success{background:var(--foam);border-color:var(--seafoam);color:var(--deep);border-radius:16px}

main{min-height:70vh}
.site-header{background:linear-gradient(120deg,var(--teal),var(--navy));position:relative;box-shadow:0 2px 12px rgba(15,63,85,.18)}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:14px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 14' preserveAspectRatio='none'%3E%3Cpath d='M0 0h80v3C70 3 70 12 60 12S50 3 40 3 30 12 20 12 10 3 0 3z' fill='%231b5a73'/%3E%3C/svg%3E") repeat-x;background-size:80px 14px}
.site-header .navbar-brand{font-size:1.25rem;white-space:normal;color:#fff}
.site-header .nav-link{color:#e3f7f5;font-weight:600;border-radius:999px;padding-left:.9rem;padding-right:.9rem}
.site-header .nav-link:hover{color:#fff;background:rgba(255,255,255,.15)}
.site-header form .nav-link{background:none;border:0;text-decoration:none}
.site-footer{color:var(--muted);font-size:.9rem;text-align:center;border-top:2px dotted var(--sand-deep);margin-top:1.5rem}
.site-footer::before{content:"🐚 🌴 🐚";display:block;margin-bottom:.4rem;letter-spacing:.4em}
main.container{padding-top:2rem!important}

.hero{background:linear-gradient(160deg,#ffe9b8 0,#ffd6a0 38%,#9fdcdc 100%);color:var(--deep);border-radius:28px;padding:2rem 1.5rem 2.6rem;margin-bottom:1.25rem;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.hero::before{content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,#fff6d6 0,var(--sun) 60%,rgba(255,200,107,0) 72%);opacity:.9}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:26px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26' preserveAspectRatio='none'%3E%3Cpath d='M0 14C20 4 40 4 60 14S100 24 120 14V26H0z' fill='%23fdf9f0'/%3E%3C/svg%3E") repeat-x;background-size:120px 26px}
.hero h1,.hero p{position:relative}
.hero h1{margin:0 0 6px;font-size:calc(1.4rem + .8vw);font-weight:600;color:var(--deep)}
.hero p{margin:0;color:#35606e;font-weight:600}

.daybar{display:flex;gap:8px;margin:14px 0;overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px;-webkit-overflow-scrolling:touch}
@media(min-width:768px){.daybar{flex-wrap:wrap;overflow:visible}}
.chip{flex:0 0 auto;padding:7px 16px;border:2px solid var(--seafoam);border-radius:999px;text-decoration:none;color:var(--navy);background:#fff;font-size:.92rem;font-weight:700;white-space:nowrap;transition:transform .15s,background .15s,box-shadow .15s}
.chip:hover{background:var(--foam);transform:translateY(-2px);box-shadow:0 4px 10px rgba(27,90,115,.12);color:var(--navy)}
.chip.on{background:linear-gradient(135deg,var(--teal),var(--navy));color:#fff;border-color:transparent;box-shadow:0 4px 10px rgba(27,90,115,.25)}
.count{color:var(--muted);font-weight:600}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px;margin-bottom:28px}
.card{padding:18px 20px;background:#fff;border:0;border-top:5px solid var(--teal);box-shadow:var(--shadow);border-radius:20px;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(27,90,115,.16)}
.card:nth-child(3n+2){border-top-color:var(--coral)}
.card:nth-child(3n+3){border-top-color:var(--sun)}
.card h2{margin:8px 0 0;font-size:1.25rem;color:var(--deep)}
.card p{margin:0 0 8px}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{background:var(--seafoam);color:#1a6a6a;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700}
.tag.alt{background:var(--sand);color:#8a6420}
dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:10px 0;font-size:.92rem}
dt{color:var(--muted)}dd{margin:0}
.empty{padding:14px 18px;border-radius:16px;background:var(--sand);margin:12px 0;border:2px dashed var(--sand-deep)}
.panel{background:#fff;border:0;border-radius:22px;padding:1.4rem;margin-bottom:24px;box-shadow:var(--shadow)}
.panel.narrow{max-width:420px;margin:24px auto}
label.check{display:inline-flex;gap:6px;align-items:center;font-weight:400;margin-right:12px}
.validation,.field-validation-error{color:#c0392b;font-size:.85rem}
.validation-summary-valid{display:none}
.validation ul{margin:4px 0}
tr.off td{color:var(--muted);background:#f3f8f7}
.table{--bs-table-bg:transparent}
.actions{white-space:nowrap}
form.inline{display:inline;margin:0}
.linklike{background:none;border:0;padding:0;cursor:pointer;color:var(--teal);text-decoration:underline;font-size:inherit}
.linklike.danger{color:#c0392b}
h1 small{color:var(--muted);font-weight:400}
.special-text{white-space:pre-line}
.card .note{color:var(--muted);font-size:.9rem;border-top:2px dotted var(--sand-deep);padding-top:8px}
dd.closed{color:var(--muted);font-style:italic}
dl.week{grid-template-columns:3em 1fr}dl.week dt{font-weight:800;color:var(--navy)}
.dayrow{display:grid;grid-template-columns:1fr;gap:8px;align-items:start;padding:6px 10px}
@media(min-width:768px){.dayrow{grid-template-columns:110px 1fr auto}}
.dayrow label:first-child{margin:8px 0 0}
.hint{color:var(--muted);font-size:.85rem;margin:6px 10px}
.more{background:linear-gradient(180deg,#fff,var(--foam))}
.more ul{margin:0;padding-left:20px}.more li{margin:.25rem 0}.more h2{margin-top:0;font-size:1.2rem;color:var(--deep)}

/* Client-side day switching: show only the selected day's text, or the week list */
[hidden]{display:none!important}
.day-only{display:none}
#results[data-day="all"] .day-only{display:none}
#results:not([data-day="all"]) dl.week{display:none}
#results[data-day="Mon"] .day-only[data-d="Mon"],
#results[data-day="Tue"] .day-only[data-d="Tue"],
#results[data-day="Wed"] .day-only[data-d="Wed"],
#results[data-day="Thu"] .day-only[data-d="Thu"],
#results[data-day="Fri"] .day-only[data-d="Fri"],
#results[data-day="Sat"] .day-only[data-d="Sat"],
#results[data-day="Sun"] .day-only[data-d="Sun"]{display:block}
