*{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}.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}.beach-search{display:grid;gap:.5rem}.beach-search label{font-size:.95rem;font-weight:600;color:#344054}.beach-search__results{margin-top:.6rem;display:grid;gap:.45rem}.beach-search__result-item{width:100%;background:#f8fafc;color:#101828;border:1px solid #e4e7ec;border-radius:12px;padding:.8rem .95rem;text-align:left;font-weight:600}.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-results__list{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}.tide-results__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-radius:12px;background:#f8fafc}.tide-results__type{font-weight:700}.tide-results__time{color:#344054}.tide-card__status--high{color:#dc2626}.tide-card__status--low{color:#16a34a}.tide-card__trend{display:grid;gap:.5rem}.tide-card__current-label{display:inline-flex;width:fit-content;padding:.3rem .65rem;border-radius:999px;background:#eef4ff;color:#2f80ed;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.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:#2f80ed}.tide-card__trend--falling{color:#e7c48d}.tide-card__trend-label{font-weight:700;color:#344054}.tide-mix{display:grid;gap:.45rem;margin-top:.5rem}.tide-mix__bar{width:100%;height:16px;background:#e7c48d;border-radius:999px;overflow:hidden}.tide-mix__bar-blue{height:100%;background:#2f80ed;border-radius:999px 0 0 999px;transition:width .4s ease}.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-title{font-size:.95rem;font-weight:700;color:#344054}.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}}
