/* Mobile-first presentation override. Shared app.js and config.js preserve one data engine. */
@media (max-width: 900px) {
 body { overflow:auto; }
 .screen { width:100%; min-height:100vh; height:auto; padding:12px; gap:12px; }
 .topbar { min-height:0; padding:10px 4px 14px; }
 .topbar h1 { font-size:clamp(23px,6vw,34px); }
 .subtitle { font-size:10px; }
 .hero-meta .target-date { font-size:11px; }
 .clock { font-size:20px; }
 .main-grid { height:auto; grid-template-columns:minmax(0,1fr); gap:12px; }
 .panel { min-height:0; overflow:visible; }
 .weather-panel,.crab-panel,.tide-panel { padding:15px; }
 .section-heading.panel-main-heading { text-align:center; font-size:16px; margin-bottom:14px; }
 .weather-hero { justify-content:center; }
 .weather-details { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .hourly-strip { overflow-x:auto; }
 .score-factors { grid-template-columns:1fr; }
 .tide-graph { min-height:190px; }
 .tide-list { max-height:none; }
 .clam-grid-photo-match { height:auto; grid-template-columns:1fr; gap:12px; }
 .clam-grid-photo-match .bed-redesign { min-height:0; }
 .bed-forecast-list { gap:6px; }
 .bed-row { min-height:38px; }
 .water-quality-card { margin-top:12px; }
 .fineprint { font-size:11px; }
}
@media (min-width:901px) {
 .screen { height:auto; min-height:100vh; }
}
