*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f3f6fb;color:#101828}#root{min-height:100vh}h1,h2,h3,p{margin:0}button,input{font:inherit}button{border:0;border-radius:14px;background:#2f80ed;color:#fff;padding:.9rem 1.2rem;font-weight:700;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}input{width:100%;border:1px solid #d0d5dd;border-radius:14px;padding:.95rem 1rem;background:#fff}input:focus{outline:2px solid #bfd6fb;border-color:#2f80ed}.app-shell{max-width:960px;margin:0 auto;padding:1.5rem;display:grid;gap:1rem}header{max-width:960px;margin:0 auto;padding:1.5rem 1.5rem 0}header h1{font-size:2.25rem}.panel{background:#fff;border-radius:24px;padding:1.25rem;box-shadow:0 18px 45px #0f172a0f}.panel h2{margin-bottom:.4rem;font-size:1.3rem}.panel__description{color:#667085;line-height:1.5}.panel__subheading{margin-top:1rem;font-size:1rem;color:#344054}.beach-list{margin-top:.75rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}.beach-list__item{background:#f8fafc;color:#101828;border:1px solid #e4e7ec;border-radius:12px;padding:.8rem;display:grid;align-content:center;justify-items:center;text-align:center;gap:.3rem;font-weight:500;cursor:pointer;aspect-ratio:1 / 1;min-height:120px}.beach-list__item:hover{border-color:#2f80ed;background:#eef4ff}.field+.field{margin-top:.9rem}.field{display:grid;gap:.45rem;margin-top:1rem}.field label{font-size:.95rem;font-weight:600;color:#344054}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.actions--top{margin-top:.55rem}.location-icon-button{width:34px;height:34px;border:1px solid #d0d5dd;border-radius:10px;padding:0;font-size:1rem;background:transparent;color:#344054;display:grid;place-items:center;line-height:1}.location-icon-button:hover{background:#f8fafc;border-color:#98a2b3}.feedback{margin-top:.9rem;font-size:.95rem}.feedback--warning{color:#9a6700}.feedback--error{color:#b42318}.tide-card{display:grid;gap:1.5rem;border-radius:28px;padding:1.5rem;background:#fff;box-shadow:0 18px 45px #0f172a14}.tide-card__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.tide-card__header h3{font-size:1.9rem;line-height:1.1}.tide-card__header p{margin-top:.45rem;color:#667085;font-size:1.1rem}.tide-card__badge{background:#dbeafe;color:#2f80ed;padding:.8rem 1rem;border-radius:14px;font-size:.95rem;font-weight:700;white-space:nowrap}.tide-card__body{display:block}.tide-card__status{display:grid;gap:.45rem}.tide-card__status-line{display:grid;gap:.75rem}.tide-card__status-item{display:flex;align-items:baseline;flex-wrap:wrap;gap:.55rem}.tide-card__status-label{font-weight:800;line-height:1}.tide-card__status-label--primary{font-size:clamp(2.6rem,7vw,4rem)}.tide-card__status-label--secondary{font-size:clamp(1.3rem,3.5vw,1.9rem);opacity:.65}.tide-card__status--high{color:#dc2626}.tide-card__status--low{color:#16a34a}.tide-card__status-time{color:#475467;font-size:.95rem;font-weight:600}.tide-card__trend{display:grid;gap:.5rem}.tide-card__trend-header{display:flex;align-items:center;gap:.5rem}.tide-card__trend-icon{font-size:1.45rem;font-weight:800;line-height:1;animation:tideArrowBlink 1.2s ease-in-out infinite}.tide-card__trend--rising{color:#dc2626}.tide-card__trend--falling{color:#16a34a}.tide-card__trend-label{font-weight:700;color:#344054}.tide-card__next{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.2rem 1.4rem;background:#f2f4f7;border-radius:20px}.tide-card__next-label{font-size:1.2rem;font-weight:700}.tide-card__next-meta{margin-top:.3rem;color:#667085}.tide-card__next-time{font-size:1.8rem;font-weight:800;color:#2f80ed;white-space:nowrap}.tide-card__upcoming{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.tide-card__upcoming-item{display:grid;gap:.35rem;padding:.9rem 1rem;border-radius:18px;background:#f8fafc}@keyframes tideArrowBlink{0%,to{opacity:.35;transform:scale(.95)}50%{opacity:1;transform:scale(1.12)}}@media(max-width:640px){.app-shell,header{padding-left:1rem;padding-right:1rem}.tide-card__header,.tide-card__next{flex-direction:column;align-items:flex-start}}
