/* ═══════════════════════════════════════════════════════════
   PULSE — Main stylesheet
   Extracted from index.html inline <style> block (2026-06-11)
   ═══════════════════════════════════════════════════════════ */

:root {
  --bg:#F0F9FF; --bg-card:#fff; --bg-surface:#F7FBFF; --bg-main:#F0F9FF;
  --ocean:#0077B6; --ocean-mid:#0096C7; --ocean-light:#48CAE4;
  --ocean-pale:#ADE8F4; --ocean-mist:#E8F7FD;
  --foam:#00B4A0; --foam-mid:#2EC4B6; --foam-light:#CBF3F0; --foam-text:#008577;
  --coral:#F4845F; --coral-light:#FFE8E1;
  --sand:#F9C74F; --sand-light:#FFF8E1;
  --sky:#74C2E1; --sky-light:#DCF3FC;
  --sunset:#FF9F43; --sunset-light:#FFF0DA;
  --lavender:#9B72CF; --lavender-light:#F0E8FF;
  --text:#1B3A4B; --text-mid:#4A6C7A; --text-muted:#5E8A9B;
  --shadow-sm:0 1px 4px rgba(0,100,150,.08),0 2px 8px rgba(0,100,150,.04);
  --shadow-md:0 4px 16px rgba(0,100,150,.12),0 2px 6px rgba(0,100,150,.06);
  --shadow-lg:0 8px 32px rgba(0,100,150,.14),0 4px 12px rgba(0,100,150,.08);
  /* Z-Index Scale (documented layers) */
  --z-base:1; --z-sticky:50; --z-floating:100; --z-panel:200;
  --z-overlay:300; --z-modal:400; --z-toast:500; --z-system:600;
  --z-fullscreen:700; --z-admin:800; --z-skip:900;
  --border:rgba(0,150,199,.12); --border-mid:rgba(0,150,199,.22);
  --r:18px; --r-sm:12px;
}
body.dark-mode {
  --bg:#0D1B2A; --bg-card:#1B2838; --bg-surface:#152232; --bg-main:#0D1B2A;
  --ocean:#48CAE4; --ocean-mid:#90E0EF; --ocean-light:#ADE8F4;
  --ocean-pale:#1B3A4B; --ocean-mist:#1B2838;
  --foam:#2EC4B6; --foam-mid:#5DD9CB; --foam-light:#1B3A4B; --foam-text:#2EC4B6;
  --coral:#FF7B5F; --coral-light:#2A1F1D;
  --sand:#FFD166; --sand-light:#2A2618;
  --sky:#90E0EF; --sky-light:#1B3A4B;
  --sunset:#FFB347; --sunset-light:#2A2118;
  --lavender:#B68FE8; --lavender-light:#1E1A2E;
  --text:#E8F7FD; --text-mid:#90B8C8; --text-muted:#7A9AAA;
  --shadow-sm:0 1px 4px rgba(0,0,0,.3),0 2px 8px rgba(0,0,0,.2);
  --shadow-md:0 4px 16px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.25);
  --shadow-lg:0 8px 32px rgba(0,0,0,.45),0 4px 12px rgba(0,0,0,.3);
  --border:rgba(72,202,228,.12); --border-mid:rgba(72,202,228,.2);
}
body.dark-mode::before{background:radial-gradient(ellipse 130% 60% at 50% -10%,rgba(72,202,228,.06) 0%,transparent 55%),linear-gradient(180deg,#0D1B2A 0%,#121F2F 60%,#1B2838 100%);}

/* Dark Mode - Cards & Surfaces */
body.dark-mode .card,body.dark-mode .eat-card,body.dark-mode .biz-card,body.dark-mode .event-card,body.dark-mode .deal-card{background:linear-gradient(145deg,#1B2838 0%,#152232 100%);border:1px solid rgba(72,202,228,.1);box-shadow:0 2px 12px rgba(0,0,0,.25);}
body.dark-mode .weather-card{background:linear-gradient(145deg,#1B3A4B 0%,#152232 100%);border:1px solid rgba(72,202,228,.15);}
body.dark-mode .panel-section{background:rgba(27,40,56,.6);border:1px solid rgba(72,202,228,.08);}
body.dark-mode .qt-item{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .explore-item{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .more-item{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.08);}
body.dark-mode .s-row{background:rgba(27,40,56,.5);border-bottom:1px solid rgba(72,202,228,.06);}
body.dark-mode .tip-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .vibe-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}

/* Dark Mode - Headers & Navigation */
body.dark-mode .top-bar{background:linear-gradient(180deg,rgba(13,27,42,.98) 0%,rgba(21,34,50,.95) 100%);border-bottom:1px solid rgba(72,202,228,.1);}
body.dark-mode .bottom-nav{background:rgba(21,34,50,.98);border-color:rgba(72,202,228,.12);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);}
body.dark-mode .nav-item.active .nav-icon{color:var(--ocean);}
body.dark-mode .nav-item.active .nav-label{color:var(--ocean);}
body.dark-mode .section-header{color:var(--text);border-bottom:1px solid rgba(72,202,228,.08);}
body.dark-mode .back-btn{background:rgba(72,202,228,.1);color:var(--ocean);border:1px solid rgba(72,202,228,.15);}

/* Dark Mode - Slide Panel */
body.dark-mode .slide-panel{background:linear-gradient(180deg,#152232 0%,#0D1B2A 100%);}
body.dark-mode .panel-handle{background:rgba(72,202,228,.3);}
body.dark-mode .panel-header{border-bottom:1px solid rgba(72,202,228,.1);}
body.dark-mode .biz-header-title{color:var(--text);}
body.dark-mode .biz-quick-stat{background:rgba(27,40,56,.8);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .biz-desc{color:var(--text-mid);}
body.dark-mode .biz-hours-badge{background:rgba(46,196,182,.15);color:#5DD9CB;}
body.dark-mode .biz-hours-badge.closed{background:rgba(255,123,95,.15);color:#FF9B85;}

/* Dark Mode - Buttons */
body.dark-mode .primary-btn{background:linear-gradient(135deg,var(--ocean),var(--foam));color:#0D1B2A;}
body.dark-mode .secondary-btn{background:rgba(72,202,228,.12);color:var(--ocean);border:1px solid rgba(72,202,228,.2);}
body.dark-mode .eat-cta{background:linear-gradient(135deg,#1E3040,#152232);border:1px solid rgba(72,202,228,.15);}
body.dark-mode .search-chip{background:rgba(72,202,228,.1);color:var(--ocean);border:1px solid rgba(72,202,228,.15);}
body.dark-mode .vibe-tag{background:var(--bg-card);color:var(--text);border:2px solid var(--border-mid);}
body.dark-mode .vibe-tag.on,body.dark-mode .vibe-tag.selected{background:#0077B6;color:#fff;border-color:#0077B6;}
body.dark-mode .filter-chip{background:var(--bg-card);color:var(--text);border:1px solid var(--border-mid);}
body.dark-mode .filter-chip.active{background:var(--ocean);color:#fff;}

/* Dark Mode - Inputs & Search */
body.dark-mode .search-bar{background:rgba(27,40,56,.9);border:1px solid rgba(72,202,228,.12);}
body.dark-mode .search-bar input{color:var(--text);background:transparent;}
body.dark-mode .search-bar input::placeholder{color:var(--text-muted);}
body.dark-mode input,body.dark-mode textarea,body.dark-mode select{background:rgba(27,40,56,.8);color:var(--text);border:1px solid rgba(72,202,228,.15);}
body.dark-mode input:focus,body.dark-mode textarea:focus{border-color:var(--ocean);box-shadow:0 0 0 3px rgba(72,202,228,.15);}

/* Dark Mode - Lists & Tables */
body.dark-mode .ln-item{background:rgba(27,40,56,.5);border-bottom:1px solid rgba(72,202,228,.06);}
body.dark-mode .result-item{background:rgba(27,40,56,.5);border-bottom:1px solid rgba(72,202,228,.06);}
body.dark-mode .hours-row{border-bottom:1px solid rgba(72,202,228,.06);}
body.dark-mode .hours-row.today{background:rgba(72,202,228,.08);}

/* Dark Mode - Badges & Tags */
body.dark-mode .badge{background:rgba(72,202,228,.12);color:var(--ocean);}
body.dark-mode .live-badge{background:rgba(244,132,95,.15);color:#FF9B85;}
body.dark-mode .open-badge{background:rgba(46,196,182,.12);color:#5DD9CB;}
body.dark-mode .closed-badge{background:rgba(255,123,95,.12);color:#FF9B85;}
body.dark-mode .price-badge{background:rgba(255,209,102,.1);color:#FFD166;}

/* Dark Mode - Status Indicators */
body.dark-mode .transport-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}

/* Dark Mode - Photos & Media */
body.dark-mode .biz-photo{background-color:#1B2838;}
body.dark-mode .photo-source-badge{background:rgba(27,40,56,.95);color:var(--text-mid);}
body.dark-mode .gallery-thumb{border:2px solid rgba(72,202,228,.1);}
body.dark-mode .gallery-thumb.active{border-color:var(--ocean);}

/* Dark Mode - Toasts & Alerts */
body.dark-mode .toast{background:rgba(27,40,56,.98);color:var(--text);border:1px solid rgba(72,202,228,.15);box-shadow:0 4px 20px rgba(0,0,0,.4);}
body.dark-mode .happy-hour-banner{background:linear-gradient(135deg,#2A4A3A,#1E3A2A);border:1px solid rgba(46,196,182,.2);}

/* Dark Mode - Toggles & Controls */
body.dark-mode .toggle{background:rgba(72,202,228,.15);}
body.dark-mode .toggle.on{background:var(--ocean);}
body.dark-mode .toggle::after{background:#E8F7FD;}

/* Dark Mode - Elements only covered by [data-theme="dark"] — now mirrored */
body.dark-mode .insider-tip{background:linear-gradient(135deg,#1B2838,#152232);border-color:rgba(72,202,228,.15);}
body.dark-mode .insider-tip-text{color:#ADE8F4;}
body.dark-mode .insider-tip-secret{color:#48CAE4;border-color:rgba(72,202,228,.15);}
body.dark-mode .insider-tip-label{color:#48CAE4;}
body.dark-mode .search-overlay{background:var(--bg);}
body.dark-mode .search-header{background:#1B2838;border-color:rgba(72,202,228,.1);}
body.dark-mode .search-input-wrap{background:rgba(27,40,56,.8);border-color:rgba(72,202,228,.15);}
body.dark-mode .search-input{color:var(--text);}
body.dark-mode .search-body{background:var(--bg);}
body.dark-mode .search-result{background:#1B2838;border-color:rgba(72,202,228,.08);}
body.dark-mode .search-result-name{color:var(--text);}
body.dark-mode .search-result-icon{background:rgba(27,40,56,.8);}
body.dark-mode .search-cat{background:rgba(72,202,228,.1);border-color:rgba(72,202,228,.15);color:var(--text);}
body.dark-mode .discover-card{background:linear-gradient(145deg,#1B2838,#152232);}
body.dark-mode .area-score-card{background:linear-gradient(135deg,#1B2838,#152232);}
body.dark-mode .biz-detail-photo{filter:brightness(.85);}
body.dark-mode .mode-card{background:#1B2838;border-color:rgba(72,202,228,.1);}
body.dark-mode .qt-icon{box-shadow:0 4px 12px rgba(0,0,0,.4);}

/* Dark Mode - Skeleton Loaders */
body.dark-mode .skeleton{background:linear-gradient(90deg,#1B2838 25%,#243548 50%,#1B2838 75%);background-size:200% 100%;}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:'Nunito',sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh;}
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 130% 60% at 50% -10%,rgba(0,150,199,.06) 0%,transparent 55%),linear-gradient(180deg,#F0F9FF 0%,#FFFDF8 60%,#F5FBF8 100%);}
.screen{display:none;min-height:100vh;flex-direction:column;position:relative;z-index:1;}
.screen.active{display:flex;}

/* ══════════════════════════════════════════════════════════════ */
/* ACCESSIBILITY - Focus, keyboard nav, screen reader support   */
/* ══════════════════════════════════════════════════════════════ */

/* Skip to content link */
.skip-link{position:absolute;top:-100%;left:50%;transform:translateX(-50%);background:var(--ocean);color:#fff;padding:12px 24px;border-radius:0 0 12px 12px;font-weight:700;font-size:14px;z-index:var(--z-skip);text-decoration:none;transition:top .2s;}
.skip-link:focus{top:0;}

/* Visually hidden but accessible to screen readers */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Focus indicators - visible on keyboard nav only */
*:focus-visible{outline:3px solid var(--ocean);outline-offset:2px;border-radius:4px;}
/* Suppress focus ring on mouse/touch clicks */
*:focus:not(:focus-visible){outline:none;}

/* Interactive elements - ensure keyboard focusability looks good */
.nav-item:focus-visible{outline:3px solid var(--ocean);outline-offset:-2px;border-radius:14px;}
.biz-item:focus-visible,.more-item:focus-visible,.eat-cat:focus-visible,
.deal-card:focus-visible,.event-item:focus-visible,.sc-card:focus-visible,
.live-near-card:focus-visible{outline:3px solid var(--ocean);outline-offset:2px;}
.vibe-tag:focus-visible,.fpill:focus-visible,.filter-chip:focus-visible,
.search-chip:focus-visible,.price-pill:focus-visible,.radius-pill:focus-visible,
.interest-pill:focus-visible{outline:3px solid var(--ocean);outline-offset:2px;border-radius:50px;}
.toggle:focus-visible{outline:3px solid var(--ocean);outline-offset:3px;border-radius:14px;}
.btn-primary:focus-visible,.btn-google:focus-visible,.biz-btn:focus-visible{outline:3px solid var(--ocean);outline-offset:3px;}
.panel-close:focus-visible{outline:3px solid var(--ocean);outline-offset:2px;border-radius:50%;}

/* Dark mode focus indicators */
body.dark-mode *:focus-visible{outline-color:var(--ocean-light);}

/* Touch target minimum sizes */
.toggle{min-width:50px;min-height:28px;}
.panel-close{min-width:44px;min-height:44px;}
.notif-btn{min-width:44px;min-height:44px;}
.pv-close{min-width:44px;min-height:44px;}
.search-clear{min-width:44px;min-height:44px;}
.biz-btn{min-height:44px;}

/* Reduced motion support */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
  .live-dot,.activity-pulse,.live-near-pulse,.la-pulse{animation:none !important;}
  .aip-glow{animation:none !important;}
  .hero-sun{animation:none !important;}
}

/* Keyframes */
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes cardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes sunPulse{0%,100%{box-shadow:0 0 30px rgba(255,214,10,.4)}50%{box-shadow:0 0 60px rgba(255,214,10,.7)}}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(244,132,95,.6)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes dotB{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-5px)}}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes loadBar{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes weatherIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

/* ══════════════════════════════════════════════════════════════ */
/* PHOTO SYSTEM - Multi-source business photos */
/* ══════════════════════════════════════════════════════════════ */
/* .biz-photo — consolidated rule is in the biz-item block below */
.biz-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.biz-photo:hover img{transform:scale(1.05);}
.biz-photo.loading{background:linear-gradient(90deg,#e8f4f8 25%,#f0f9ff 50%,#e8f4f8 75%);background-size:200% 100%;animation:loadBar 1.5s ease-in-out infinite;}
.photo-source-badge{position:absolute;bottom:6px;right:6px;background:rgba(255,255,255,.95);border-radius:6px;padding:2px 6px;font-size:10px;display:flex;align-items:center;gap:3px;box-shadow:0 1px 4px rgba(0,0,0,.15);}
.photo-source-badge.google{background:linear-gradient(135deg,#4285f4,#34a853);color:#fff;}
.photo-source-badge.official{background:linear-gradient(135deg,var(--ocean),var(--foam));color:#fff;}
.photo-verified{position:absolute;top:6px;left:6px;background:rgba(46,196,182,.95);color:#fff;font-size:9px;font-weight:700;padding:3px 8px;border-radius:10px;display:flex;align-items:center;gap:4px;}
.photo-verified::before{content:'✓';}

/* Instagram link styling */
.instagram-link{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045);color:#fff;border-radius:20px;font-size:12px;font-weight:700;text-decoration:none;transition:all .2s;}
.instagram-link:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(131,58,180,.3);}
.instagram-icon{font-size:14px;}

/* Enhanced business card with photo */
.biz-card-photo{display:flex;gap:14px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;cursor:pointer;transition:all .2s;}
.biz-card-photo:active{transform:scale(.98);}
.biz-card-photo .biz-photo{width:90px;height:90px;border-radius:12px;}
.biz-card-photo .biz-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;}
.biz-card-photo .biz-name{font-weight:700;color:var(--text);font-size:15px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.biz-card-photo .biz-desc{font-size:12px;color:var(--text-mid);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.biz-card-photo .biz-meta{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:11px;}
.biz-card-photo .biz-rating{color:var(--sand);font-weight:700;}
.biz-card-photo .biz-hours{color:var(--foam-text);font-weight:600;}
.biz-card-photo .biz-hours.closed{color:var(--coral);}
.biz-card-photo .biz-price{color:var(--text-muted);}
.biz-card-photo .biz-distance{color:var(--text-muted);}

/* Photo gallery grid */
.photo-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;}
.photo-gallery .gallery-item{aspect-ratio:1;border-radius:10px;overflow:hidden;cursor:pointer;}
.photo-gallery .gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.photo-gallery .gallery-item:hover img{transform:scale(1.1);}
.photo-gallery .gallery-more{background:rgba(0,0,0,.5);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;}

/* Business Gallery Component */
.biz-gallery{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.gallery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.gallery-title{font-weight:700;color:var(--text);font-size:15px;}
.gallery-count{font-size:12px;color:var(--text-muted);}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.gallery-item{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;cursor:pointer;background:var(--bg-surface);}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-item:first-child{grid-column:span 2;grid-row:span 2;border-radius:14px;}
.gallery-badge{position:absolute;bottom:6px;right:6px;font-size:10px;background:rgba(255,255,255,.9);padding:2px 6px;border-radius:6px;}
.gallery-more{position:absolute;inset:0;background:rgba(0,0,0,.6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);}
.gallery-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.gallery-social-label{width:100%;font-size:11px;color:var(--text-muted);margin-bottom:2px;}
.social-btn{padding:8px 14px;border-radius:20px;font-size:12px;font-weight:700;text-decoration:none;color:#fff;transition:all .2s;display:inline-flex;align-items:center;gap:4px;}
.social-btn:active{transform:scale(.95);}
.social-btn.social-ig{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);}
.social-btn.social-fb{background:#1877F2;}
.social-btn.social-tw{background:#1DA1F2;}

/* Full-screen Photo Viewer */
.photo-viewer{position:fixed;inset:0;z-index:var(--z-fullscreen);opacity:0;transition:opacity .3s;}
.photo-viewer.open{opacity:1;}
.pv-overlay{position:absolute;inset:0;background:rgba(0,0,0,.95);}
.pv-content{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px 100px;}
.pv-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);border:none;color:#fff;font-size:24px;cursor:pointer;z-index:10;transition:all .2s;}
.pv-close:hover{background:rgba(255,255,255,.2);}
.pv-prev,.pv-next{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:80px;background:rgba(255,255,255,.1);border:none;color:#fff;font-size:32px;cursor:pointer;transition:all .2s;border-radius:8px;}
.pv-prev{left:10px;}
.pv-next{right:10px;}
.pv-prev:hover,.pv-next:hover{background:rgba(255,255,255,.2);}
.pv-image-wrap{position:relative;max-width:90%;max-height:70vh;display:flex;align-items:center;justify-content:center;}
.pv-image{max-width:100%;max-height:70vh;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.5);}
.pv-source{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);color:#fff;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600;}
.pv-counter{position:absolute;bottom:70px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font-size:14px;font-weight:600;}
.pv-thumbs{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;max-width:90%;overflow-x:auto;padding:8px;background:rgba(0,0,0,.5);border-radius:12px;}
.pv-thumb{width:50px;height:50px;border-radius:8px;object-fit:cover;cursor:pointer;opacity:.5;transition:all .2s;flex-shrink:0;}
.pv-thumb.active,.pv-thumb:hover{opacity:1;transform:scale(1.1);}
@media (max-width:600px){
  .pv-prev,.pv-next{width:40px;height:60px;font-size:24px;}
  .pv-prev{left:5px;}
  .pv-next{right:5px;}
  .pv-thumb{width:40px;height:40px;}
}

/* Social Links Section */
.biz-social-links{margin-top:16px;padding:14px;background:var(--bg-surface);border-radius:12px;}
.social-links-title{font-size:12px;font-weight:700;color:var(--text-mid);margin-bottom:10px;}
.social-links-row{display:flex;flex-wrap:wrap;gap:8px;}

/* Photo Tap Hint */
.photo-tap-hint{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);color:#fff;padding:6px 14px;border-radius:20px;font-size:11px;font-weight:600;opacity:0;transition:opacity .3s;}
.biz-detail-photo-wrap:hover .photo-tap-hint{opacity:1;}
@media (hover:none){.photo-tap-hint{opacity:1;}}

/* App loading */
.app-loading{position:fixed;inset:0;background:#F0F9FF;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:var(--z-system);transition:opacity .4s;}
.app-loading.hidden{opacity:0;pointer-events:none;}
.app-loading-logo{font-family:'Paytone One',sans-serif;font-size:48px;letter-spacing:-2px;background:linear-gradient(135deg,var(--ocean),var(--ocean-mid));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:16px;}
.app-loading-spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--ocean-pale);border-top-color:var(--ocean-mid);animation:spin .8s linear infinite;}

/* Onboarding */
#screen-onboard{justify-content:flex-start;align-items:center;padding:0 22px 40px;background:linear-gradient(180deg,#E0F4FF 0%,#F0F9FF 50%,#FFFDF8 100%);}
.onboard-hero{width:calc(100% + 44px);margin:0 -22px;padding:44px 22px 72px;text-align:center;position:relative;overflow:hidden;background:linear-gradient(180deg,#0096C7 0%,#00B4D8 40%,#48CAE4 100%);}
.hero-sun{width:70px;height:70px;margin:0 auto 10px;background:radial-gradient(circle,#FFD60A 30%,#FFB700 60%,transparent 100%);border-radius:50%;animation:sunPulse 3s ease-in-out infinite;}
.hero-waves{position:absolute;bottom:-2px;left:0;right:0;}
.app-logo{font-family:'Paytone One',sans-serif;font-size:56px;letter-spacing:-2px;color:#fff;text-shadow:0 2px 20px rgba(0,70,120,.25);}
.app-tagline{font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-top:4px;}
.step-container{width:100%;max-width:400px;margin-top:-16px;}
.ob-dots{display:flex;gap:6px;justify-content:center;margin-bottom:20px;}
.ob-dot{height:5px;width:18px;border-radius:3px;background:rgba(0,150,199,.2);transition:all .3s;}
.ob-dot.active{background:var(--ocean-mid);width:30px;}
.ob-step{display:none;animation:fadeUp .3s ease both;}
.ob-step.active{display:block;}
.ob-lbl{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ocean-mid);margin-bottom:8px;}
.ob-step h2{font-family:'Paytone One',sans-serif;font-size:24px;letter-spacing:-.3px;margin-bottom:7px;color:var(--text);}
.ob-step p{font-size:14px;color:var(--text-mid);margin-bottom:14px;line-height:1.6;}
.field{width:100%;background:#fff;border:2px solid var(--ocean-pale);border-radius:var(--r-sm);padding:13px 15px;color:#1a1a2e;font-family:'Nunito',sans-serif;font-size:15px;font-weight:600;outline:none;margin-bottom:10px;transition:border-color .2s,box-shadow .2s;box-shadow:var(--shadow-sm);appearance:none;}
.field::placeholder{color:#999;font-weight:500;}
.field:focus{border-color:var(--ocean-mid);box-shadow:0 0 0 3px rgba(0,150,199,.15);background:#fff;}
.vibe-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.select-all-btn{flex-shrink:0;padding:6px 14px;border-radius:50px;border:1.5px solid var(--ocean-mid);background:transparent;color:var(--ocean-mid);font-family:'Nunito',sans-serif;font-size:12px;font-weight:800;cursor:pointer;transition:all .2s;white-space:nowrap;margin-left:10px;}
.select-all-btn.all-on{background:var(--ocean-mid);color:#fff;}
.tag-grid{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px;}
.vibe-tag{padding:8px 13px;border-radius:50px;border:2px solid #ccc;background:#fff;color:#555;font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;user-select:none;box-shadow:0 1px 3px rgba(0,0,0,.08);-webkit-appearance:none;appearance:none;outline:none;text-align:center;line-height:1.3;-webkit-tap-highlight-color:rgba(0,180,160,.2);touch-action:manipulation;}
.vibe-tag.on{border-color:#0077B6;background:#0077B6;color:#fff;box-shadow:0 2px 8px rgba(0,119,182,.35);}
.vibe-tag:active{transform:scale(.95);}
.vibe-section{margin-bottom:16px;}
.vibe-section-title{font-size:12px;font-weight:700;color:var(--text-mid);margin-bottom:8px;padding-left:4px;}
.btn-primary{width:100%;padding:15px;border-radius:var(--r-sm);border:none;background:linear-gradient(135deg,var(--ocean-mid),var(--ocean-light));color:#fff;font-family:'Paytone One',sans-serif;font-size:16px;cursor:pointer;transition:opacity .2s,transform .15s;box-shadow:0 4px 14px rgba(0,150,199,.3);}
.btn-primary:active{opacity:.88;transform:scale(.98);}
.auth-options{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;}
.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;border-radius:var(--r-sm);border:1.5px solid #DADCE0;background:#fff;font-family:'Nunito',sans-serif;font-size:15px;font-weight:700;color:#3C4043;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s;}
.btn-google:active{background:#F8F9FA;transform:scale(.98);}
.btn-apple{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;border-radius:var(--r-sm);border:none;background:#000;color:#fff;font-family:'Nunito',sans-serif;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .2s;}
.btn-apple:active{opacity:.8;}
.auth-divider{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12px;font-weight:600;margin:4px 0;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border-mid);}

/* Header */
.app-header{position:sticky;top:0;z-index:var(--z-sticky);background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);box-shadow:0 1px 8px rgba(0,100,150,.08);padding:12px 18px 0;}
.header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.header-logo{font-family:'Paytone One',sans-serif;font-size:21px;letter-spacing:-.5px;background:linear-gradient(135deg,var(--ocean),var(--ocean-mid));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:flex;align-items:center;gap:7px;}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--coral);animation:livePulse 1.8s ease-out infinite;display:inline-block;-webkit-text-fill-color:initial;}
.header-right{display:flex;align-items:center;gap:8px;}
.loc-pill{display:flex;align-items:center;gap:5px;background:var(--ocean-mist);border:1px solid var(--border-mid);border-radius:50px;padding:5px 11px;font-size:12px;font-weight:700;color:var(--ocean);cursor:pointer;transition:all .2s;}
.loc-pill:active{transform:scale(0.95);background:var(--ocean);color:#fff;}
.town-selector-header{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,var(--ocean),#0891b2);border-radius:16px;color:#fff;margin-bottom:20px;}
.town-list{display:flex;flex-direction:column;gap:10px;}
.town-card{display:flex;align-items:center;gap:14px;padding:16px;background:var(--bg-surface);border:2px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.town-card:active{transform:scale(0.98);}
.town-card.active{border-color:var(--ocean);background:var(--ocean-mist);}
.town-emoji{font-size:32px;}
.town-info{flex:1;}
.town-name{font-weight:700;font-size:16px;}
.town-tagline{color:var(--text-muted);font-size:13px;margin-top:2px;}
.town-check{width:28px;height:28px;background:var(--ocean);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;}
.town-arrow{color:var(--text-muted);font-size:20px;}
.loc-dot{width:6px;height:6px;border-radius:50%;background:var(--foam);animation:blink 2s ease-in-out infinite;}
.notif-btn{width:34px;height:34px;border-radius:50%;background:var(--bg-surface);border:1.5px solid var(--border-mid);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;position:relative;}
.notif-badge{position:absolute;top:-3px;right:-3px;width:14px;height:14px;background:var(--coral);border-radius:50%;font-size:9px;font-weight:800;color:#fff;display:none;align-items:center;justify-content:center;border:2px solid #fff;}
.avatar-btn{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--ocean-mid),var(--foam));border:none;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;color:#fff;font-weight:800;font-family:'Nunito',sans-serif;flex-shrink:0;}
.filter-row{display:flex;gap:8px;overflow-x:auto;padding:12px 18px;scrollbar-width:none;align-items:center;background:var(--bg-surface);border-bottom:1px solid var(--border);}
.filter-row::-webkit-scrollbar{display:none;}
.filter-label{flex-shrink:0;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;}
.fpill{flex-shrink:0;padding:8px 14px;border-radius:50px;border:2px solid var(--border-mid);background:var(--bg-card);color:var(--text);font-family:'Nunito',sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,0.06);}
.fpill:active{transform:scale(0.95);}
.fpill.active{border-color:var(--ocean);background:var(--ocean);color:#fff;box-shadow:0 2px 8px rgba(0,150,199,0.35);}
.area-pills{display:flex;gap:8px;overflow-x:auto;padding:8px 0 12px;scrollbar-width:none;margin-bottom:8px;}
.area-pills::-webkit-scrollbar{display:none;}
.area-pill{flex-shrink:0;padding:6px 12px;border-radius:50px;border:1.5px solid var(--border-mid);background:var(--bg-card);color:var(--text);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;}
.area-pill:active{transform:scale(0.95);}
.area-pill.active{border-color:var(--coral);background:var(--coral);color:#fff;}
.area-pill.excluded{border-color:#ccc;background:#f5f5f5;color:#999;text-decoration:line-through;}

/* Weather Banner */
.weather-banner{margin:12px 18px 0;border-radius:var(--r);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm);animation:weatherIn .5s ease both;cursor:pointer;background:linear-gradient(135deg,var(--sky-light),var(--ocean-mist));border:1px solid var(--border);}
.weather-banner.w-perfect{background:linear-gradient(135deg,#FFF8E1,#FFF0DA);border-color:rgba(249,199,79,.3);}
.weather-banner.w-good{background:linear-gradient(135deg,#E8F7FD,#CBF3F0);border-color:rgba(0,150,199,.2);}
.weather-banner.w-coral{background:linear-gradient(135deg,#FFE8E1,#FFDDD3);border-color:rgba(244,132,95,.3);}
.wb-left{display:flex;align-items:center;gap:10px;}
.wb-emoji{font-size:28px;}
.wb-temp{font-family:'Paytone One',sans-serif;font-size:22px;color:var(--text);}
.wb-cond{font-size:12px;color:var(--text-mid);margin-top:1px;}
.wb-right{text-align:right;}
.wb-rating{font-family:'Paytone One',sans-serif;font-size:13px;color:var(--ocean);}
.wb-wind{font-size:11px;color:var(--text-muted);margin-top:2px;}
.wb-skeleton{height:68px;border-radius:var(--r);background:linear-gradient(90deg,var(--border) 25%,rgba(0,150,199,.04) 50%,var(--border) 75%);background-size:200% 100%;animation:loadBar 1.4s infinite;}
.beach-conditions{margin:8px 18px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.beach-item{background:linear-gradient(135deg,rgba(0,150,199,.06),rgba(46,196,182,.04));border:1px solid rgba(0,150,199,.12);border-radius:10px;padding:10px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;}
body.dark-mode .beach-item{background:linear-gradient(135deg,rgba(72,202,228,.1),rgba(46,196,182,.08));border-color:rgba(72,202,228,.18);}
.bc-icon{font-size:16px;}
.bc-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);}
.bc-value{font-family:'Paytone One',sans-serif;font-size:13px;color:var(--ocean);margin-top:1px;}
.beach-item.bc-high .bc-value{color:#E63946;}
.beach-item.bc-moderate .bc-value{color:#F9A826;}
.beach-item.bc-low .bc-value{color:var(--foam-text);}

/* CONTEXT BANNER - Smart time-based suggestions */
.context-banner{margin:12px 18px;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;color:#fff;}
.context-greeting{font-family:'Paytone One',sans-serif;font-size:18px;margin-bottom:4px;}
.context-suggestion{font-size:13px;opacity:.95;}

/* QUICK ACTIONS */
.quick-actions{margin:12px 18px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.qa-item{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:12px 6px;text-align:center;cursor:pointer;transition:all .2s;position:relative;}
.qa-item:active{transform:scale(.96);}
.qa-icon{font-size:22px;display:block;margin-bottom:4px;}
.qa-label{font-size:11px;font-weight:700;color:var(--text-mid);}
.qa-badge{position:absolute;top:6px;right:6px;background:var(--coral);color:#fff;font-size:9px;font-weight:800;padding:2px 5px;border-radius:6px;}
.qa-badge-hot{background:linear-gradient(135deg,#FF6B6B,#FF8E53);animation:pulse-hot 1.5s ease-in-out infinite;}
.qa-badge-live{background:linear-gradient(135deg,#00C853,#69F0AE);animation:pulse-live 2s ease-in-out infinite;}
@keyframes pulse-hot{0%,100%{transform:scale(1);}50%{transform:scale(1.1);}}
@keyframes pulse-live{0%,100%{opacity:1;}50%{opacity:.7;}}
.qa-open{background:linear-gradient(135deg,#E8F5E9,#C8E6C9);border-color:#4CAF50;}
.qa-deals{background:linear-gradient(135deg,var(--sand-light),var(--sunset-light));border-color:var(--sand);}

/* OPEN NOW LIST */
.open-now-list{display:flex;flex-direction:column;gap:10px;}
.open-item{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.open-item:active{transform:scale(.98);}
.open-item-icon{font-size:28px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:12px;flex-shrink:0;}
.open-item-info{flex:1;min-width:0;}
.open-item-name{font-weight:700;color:var(--text);font-size:15px;}
.open-item-status{font-size:12px;color:#4CAF50;margin-top:2px;}
.open-item-status.closed{color:var(--coral);}
.open-item-meta{font-size:11px;color:var(--text-muted);margin-top:2px;}
.open-item-arrow{font-size:20px;color:var(--text-muted);}
.verified-badge{display:inline-flex;align-items:center;gap:4px;background:#E8F5E9;color:#2E7D32;font-size:10px;font-weight:700;padding:3px 8px;border-radius:12px;margin-top:6px;}
.verified-badge::before{content:'✓';}

/* SAVINGS HUB */
.savings-filter{display:flex;gap:8px;padding:12px 0;overflow-x:auto;}
.savings-pill{flex-shrink:0;padding:8px 14px;background:var(--bg-card);border:1.5px solid var(--border-mid);border-radius:20px;font-size:12px;font-weight:700;color:var(--text);cursor:pointer;}
.savings-pill.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.deal-card{padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin-bottom:10px;}
.deal-card.active{border-color:#4CAF50;background:linear-gradient(135deg,#E8F5E9,#fff);}
body.dark-mode .deal-card.active{border-color:#2E7D32;background:linear-gradient(135deg,rgba(46,125,50,.15),rgba(27,40,56,.9));}
.deal-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.deal-emoji{font-size:24px;}
.deal-name{font-weight:700;color:var(--text);font-size:15px;}
.deal-status{font-size:11px;padding:3px 8px;border-radius:10px;background:#E8F5E9;color:#2E7D32;}
.deal-status.inactive{background:#FFF3E0;color:#E65100;}
.deal-content{font-size:14px;color:var(--ocean);font-weight:600;margin-bottom:6px;}
.deal-time{font-size:12px;color:var(--text-mid);}
.deal-tip{font-size:12px;color:var(--text-mid);background:#FFF8E1;padding:8px 10px;border-radius:8px;margin-top:8px;}

.area-scroll{display:flex;gap:8px;padding:12px 18px;overflow-x:auto;scrollbar-width:none;}
.area-scroll::-webkit-scrollbar{display:none;}
.area-chip{flex-shrink:0;padding:10px 16px;background:var(--bg-card);border:1.5px solid var(--border-mid);border-radius:24px;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;transition:all .2s;white-space:nowrap;}
.area-chip:active{transform:scale(.95);}
.area-chip.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.golf-feature{margin:14px 18px 0;border-radius:16px;overflow:hidden;cursor:pointer;position:relative;background:linear-gradient(135deg,#1a472a,#2d5016);box-shadow:0 4px 16px rgba(0,0,0,.15);}
.golf-feature:active{transform:scale(.99);}
.golf-bg{position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="80" cy="20" r="8" fill="white" opacity="0.1"/><path d="M0 100 Q25 60 50 80 T100 60 V100 H0Z" fill="rgba(255,255,255,0.05)"/></svg>');background-size:cover;}
.golf-content{position:relative;padding:16px;}
.golf-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.golf-emoji{font-size:24px;}
.golf-title{font-family:'Paytone One',sans-serif;font-size:16px;color:#fff;}
.golf-badge{background:rgba(255,255,255,.2);color:#fff;font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px;margin-left:auto;}
.golf-courses-preview{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none;}
.golf-courses-preview::-webkit-scrollbar{display:none;}
.golf-course-mini{flex-shrink:0;background:rgba(255,255,255,.15);border-radius:10px;padding:10px 12px;min-width:110px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.golf-course-mini:active{background:rgba(255,255,255,.25);}
.gcm-rating{font-size:10px;color:rgba(255,255,255,.8);}
.gcm-name{font-size:12px;font-weight:700;color:#fff;margin:2px 0;}
.gcm-price{font-size:11px;color:#90EE90;}
.golf-cta{text-align:center;font-size:12px;font-weight:700;color:#90EE90;margin-top:6px;}
.outdoors-section{margin:14px 18px 0;background:linear-gradient(135deg,#E8F5E9,#F1F8E9);border-radius:16px;padding:14px;border:1px solid rgba(76,175,80,.2);}
.outdoors-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.outdoors-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.outdoors-item{background:#fff;border-radius:10px;padding:10px 6px;text-align:center;cursor:pointer;border:1px solid var(--border);transition:all .2s;}
.outdoors-item:active{transform:scale(.95);}
.outdoors-icon{font-size:22px;display:block;margin-bottom:4px;}
.outdoors-label{font-size:10px;font-weight:700;color:var(--text-mid);}
.deals-banner{margin:12px 18px;padding:14px 16px;background:linear-gradient(135deg,#FFD93D,#FF6B6B);border-radius:16px;display:flex;align-items:center;gap:12px;cursor:pointer;box-shadow:0 4px 16px rgba(255,107,107,.25);transition:transform .2s;}
.deals-banner:active{transform:scale(.98);}
.deals-icon{font-size:32px;background:rgba(255,255,255,.3);width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;}
.deals-content{flex:1;}
.deals-title{font-family:'Paytone One',sans-serif;font-size:16px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1);}
.deals-sub{font-size:12px;color:rgba(255,255,255,.9);margin-top:2px;}
.deals-arrow{font-size:24px;color:rgba(255,255,255,.8);}
.info-panel{position:fixed;bottom:0;left:0;right:0;max-height:92vh;background:var(--bg-card);border-radius:20px 20px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.15);z-index:var(--z-panel);transform:translateY(100%);transition:transform .3s cubic-bezier(.32,.72,0,1);overflow:hidden;}
.info-panel .panel-handle{width:36px;height:4px;background:rgba(0,0,0,.15);border-radius:2px;margin:10px auto 0;flex-shrink:0;cursor:grab;}
.info-panel .panel-handle:active{cursor:grabbing;}
body.dark-mode .info-panel .panel-handle{background:rgba(255,255,255,.2);}
.info-panel.open{transform:translateY(0);}
.panel-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);z-index:10;gap:10px;}
.panel-header h3{font-family:'Paytone One',sans-serif;font-size:18px;color:var(--text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.panel-close{width:36px;height:36px;border-radius:50%;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:var(--text);font-weight:700;border:1px solid var(--border);transition:all .2s;}
.panel-close:active{background:var(--coral);color:#fff;transform:scale(.95);}
.panel-back{width:36px;height:36px;border-radius:50%;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:22px;color:var(--ocean);font-weight:700;border:1px solid var(--border);transition:all .2s;flex-shrink:0;}
.panel-back:active{background:var(--ocean-mist);transform:scale(.95);}
.panel-body{padding:16px 20px 32px;overflow-y:auto;max-height:calc(92vh - 80px);-webkit-overflow-scrolling:touch;}
.panel-section{margin-bottom:16px;}
.panel-title{font-weight:700;color:var(--text);margin-bottom:12px;font-size:15px;}
.hh-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:8px;}
.hh-item.hh-upcoming{opacity:.7;}
.hh-name{font-weight:700;color:var(--text);margin-bottom:3px;}
.hh-deal{color:var(--foam-text);font-size:13px;font-weight:600;}
.hh-time{color:var(--text-muted);font-size:12px;margin-top:4px;}
.hh-food{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);}
.hh-food-title{font-size:11px;font-weight:700;color:var(--coral);margin-bottom:4px;}
.hh-food-list{font-size:12px;color:var(--text-mid);line-height:1.5;}
.open-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.open-category{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center;cursor:pointer;transition:all .2s;}
.open-category:active{transform:scale(.97);}
.open-cat-icon{font-size:28px;display:block;margin-bottom:6px;}
.open-cat-label{font-weight:700;color:var(--text);font-size:13px;}
.cam-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.cam-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center;text-decoration:none;display:block;transition:all .2s;}
.cam-item:active{transform:scale(.97);}
.cam-thumb{font-size:32px;margin-bottom:6px;}
.cam-name{font-weight:700;color:var(--text);font-size:13px;margin-bottom:2px;}
.cam-loc{color:var(--text-muted);font-size:11px;}
.hh-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.hh-link{font-size:12px;font-weight:700;color:var(--ocean);text-decoration:none;}
.cam-desc{font-size:10px;color:var(--foam-text);margin-top:2px;}
.biz-list{display:flex;flex-direction:column;gap:12px;}
.biz-item{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:14px;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.biz-item:active{transform:scale(.98);box-shadow:0 1px 4px rgba(0,0,0,.08);}
.biz-emoji{font-size:28px;flex-shrink:0;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-surface),var(--bg-card));border-radius:12px;border:1px solid var(--border);}
.biz-photo{width:64px;height:64px;border-radius:12px;background-color:var(--bg-surface);background-size:cover;background-position:center;overflow:hidden;flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,.1);}
.biz-info{flex:1;min-width:0;}
.biz-name{font-weight:700;color:var(--text);font-size:15px;margin-bottom:3px;line-height:1.2;}
.biz-desc{font-size:12px;color:var(--text-mid);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.biz-meta{font-size:11px;color:var(--text-muted);margin-top:5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.biz-meta .rating-star{color:#FFC107;}
.biz-meta a{color:var(--ocean);text-decoration:none;}
.biz-arrow{font-size:20px;color:var(--text-muted);flex-shrink:0;opacity:.6;}
.biz-detail{padding:4px 0;}
.biz-detail-photo-wrap{position:relative;margin-bottom:16px;}
.biz-detail-photo{width:100%;height:180px;border-radius:14px;background-size:cover;background-position:center;}
.biz-detail-photo-wrap .photo-source-badge{position:absolute;bottom:10px;right:10px;padding:4px 10px;font-size:11px;font-weight:700;border-radius:8px;}
.biz-detail-photo-wrap .photo-count-badge{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.7);color:#fff;font-size:11px;font-weight:700;padding:6px 10px;border-radius:8px;}

/* Photo Gallery Overlay */
.photo-gallery-overlay{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:var(--z-modal);display:none;flex-direction:column;}
.photo-gallery-overlay.active{display:flex;}
.photo-gallery-header{display:flex;justify-content:space-between;align-items:center;padding:16px;color:#fff;}
.photo-gallery-title{font-size:16px;font-weight:700;}
.photo-gallery-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:8px;}
.photo-gallery-main{flex:1;display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden;}
.photo-gallery-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;}
.photo-gallery-nav{display:flex;justify-content:center;gap:8px;padding:16px;}
.photo-gallery-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;transition:all .2s;}
.photo-gallery-dot.active{background:#fff;transform:scale(1.2);}
.photo-gallery-counter{text-align:center;color:rgba(255,255,255,.7);font-size:12px;padding-bottom:20px;}
.biz-hours-status{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--bg-surface);border-radius:12px;margin-bottom:16px;}
.biz-hours-status .status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.biz-hours-status.open .status-dot{background:#4CAF50;box-shadow:0 0 8px rgba(76,175,80,.5);}
.biz-hours-status.closed .status-dot{background:var(--coral);box-shadow:0 0 8px rgba(244,132,95,.5);}
.biz-hours-status .status-text{flex:1;font-weight:600;color:var(--text);}
.biz-hours-status.open .status-text{color:#2E7D32;}
.biz-hours-status.closed .status-text{color:var(--coral);}
.biz-hours-status .verified-tag{font-size:10px;color:var(--text-muted);background:var(--bg-card);padding:3px 8px;border-radius:10px;}
.biz-hours-status.seasonal .status-dot{background:#FF9800;box-shadow:0 0 8px rgba(255,152,0,.5);}
.biz-hours-status.seasonal .status-text{color:#E65100;}
.season-note{font-size:12px;color:#E65100;background:rgba(255,152,0,.1);padding:8px 12px;border-radius:8px;margin-bottom:12px;border-left:3px solid #FF9800;}
.report-issue-section{margin-top:20px;padding:16px;background:var(--bg-surface);border-radius:12px;text-align:center;border:1px dashed var(--border);}
.report-issue-btn{background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:10px 20px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s;}
.report-issue-btn:hover{background:var(--bg-card);color:var(--text);}
.report-hint{font-size:11px;color:var(--text-muted);margin-top:6px;}
.report-type-options{display:flex;flex-direction:column;gap:8px;}
.report-type-option{padding:12px;background:var(--bg-card);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;}
.report-type-option:hover{border-color:var(--ocean-mist);}
.report-type-option.selected{border-color:var(--ocean);background:rgba(0,150,199,.05);}
.report-type-label{font-weight:600;font-size:14px;color:var(--text);}
.report-type-desc{font-size:12px;color:var(--text-muted);margin-top:2px;}

/* Happy Hour in Business Detail */
.biz-happy-hour{padding:14px;border-radius:12px;margin-bottom:16px;}
.biz-happy-hour.active{background:linear-gradient(135deg,rgba(255,213,79,.15),rgba(255,193,7,.1));border:1.5px solid #FFD54F;}
.biz-happy-hour.upcoming{background:var(--bg-surface);border:1px solid var(--border);}
.bhh-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.bhh-icon{font-size:20px;}
.bhh-title{font-weight:700;font-size:14px;color:var(--text);}
.biz-happy-hour.active .bhh-title{color:#F57C00;}
.bhh-specials{font-size:13px;color:var(--text-mid);line-height:1.4;}
.bhh-food{font-size:12px;color:var(--text-muted);margin-top:6px;}

/* Live Music in Business Detail */
.biz-live-music{padding:14px;border-radius:12px;margin-bottom:16px;background:var(--bg-surface);border:1px solid var(--border);}
.biz-live-music.active{background:linear-gradient(135deg,rgba(123,31,162,.1),rgba(156,39,176,.08));border-color:#9C27B0;}
.blm-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.blm-icon{font-size:20px;}
.blm-title{font-weight:700;font-size:14px;color:var(--text);}
.biz-live-music.active .blm-title{color:#7B1FA2;}
.blm-info{font-size:13px;color:var(--text-mid);}

/* Wait Time in Business Detail */
.biz-wait-time{padding:14px;border-radius:12px;margin-bottom:16px;background:var(--bg-surface);border:1px solid var(--border);}
.bwt-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.bwt-icon{font-size:18px;}
.bwt-title{font-weight:700;font-size:14px;color:var(--text);}
.bwt-info{display:flex;align-items:center;gap:12px;}
.bwt-minutes{font-size:18px;font-weight:700;color:var(--text);}
.bwt-status{font-size:11px;font-weight:600;padding:4px 10px;border-radius:10px;}
.bwt-status.short{background:#E8F5E9;color:#2E7D32;}
.bwt-status.moderate{background:#FFF8E1;color:#F57C00;}
.bwt-status.long{background:#FFEBEE;color:#C62828;}
.bwt-tip{font-size:12px;color:var(--text-muted);margin-top:8px;padding-top:8px;border-top:1px solid var(--border);}

.biz-detail-header{display:flex;align-items:center;gap:14px;margin-bottom:16px;position:relative;}
.biz-detail-header .like-btn{position:relative;top:auto;right:auto;flex-shrink:0;margin-left:auto;}
.biz-detail-emoji{font-size:42px;}
.biz-detail-name{font-family:'Paytone One',sans-serif;font-size:18px;color:var(--text);}
.biz-detail-desc{font-size:13px;color:var(--text-mid);margin-top:2px;}
.biz-detail-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);}
.bdr-label{font-weight:600;color:var(--text-mid);}
.bdr-value{color:var(--text);}
.biz-detail-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap;}
.biz-btn{flex:1;min-width:80px;padding:14px 12px;border-radius:12px;text-align:center;font-weight:700;font-size:14px;text-decoration:none;transition:all .2s;}
.biz-btn:active{transform:scale(.97);}
.biz-btn-phone{background:var(--foam);color:#fff;}
.biz-btn-web{background:var(--ocean);color:#fff;}
.biz-btn-map{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);}
.biz-social{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border);}
.social-link{flex:1;padding:12px 8px;border-radius:10px;text-align:center;font-size:12px;font-weight:700;text-decoration:none;color:#fff;}
.social-fb{background:#1877F2;}
.social-ig{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);}
.social-tw{background:#1DA1F2;}
.deals-list{display:flex;flex-direction:column;gap:12px;}

/* ══════════════════════════════════════════════════════════════ */
/* DEALS & COMMERCE LAYER                                        */
/* ══════════════════════════════════════════════════════════════ */
.commerce-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:8px;margin-bottom:14px;}
.commerce-tabs::-webkit-scrollbar{display:none;}
.commerce-tab{flex-shrink:0;padding:8px 16px;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-mid);transition:all .2s;white-space:nowrap;}
.commerce-tab.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.commerce-tab .tab-count{display:inline-block;min-width:16px;height:16px;line-height:16px;text-align:center;border-radius:8px;font-size:9px;font-weight:800;margin-left:4px;background:rgba(255,255,255,.25);color:inherit;}
.commerce-tab.active .tab-count{background:rgba(255,255,255,.3);}

.deal-of-day{margin:0 18px 14px;padding:16px;background:linear-gradient(135deg,#FFD700,#FFA500);border-radius:16px;cursor:pointer;position:relative;overflow:hidden;}
.deal-of-day::after{content:'⭐';position:absolute;top:-10px;right:-10px;font-size:60px;opacity:.15;transform:rotate(15deg);}
.deal-of-day-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(0,0,0,.15);color:#fff;font-size:10px;font-weight:800;padding:3px 10px;border-radius:8px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;}
.deal-of-day-title{font-size:16px;font-weight:800;color:#fff;margin-bottom:4px;text-shadow:0 1px 3px rgba(0,0,0,.2);}
.deal-of-day-desc{font-size:13px;color:rgba(255,255,255,.9);margin-bottom:8px;}
.deal-of-day-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:rgba(255,255,255,.8);}

.coupon-card{background:var(--bg-card);border:1.5px dashed var(--ocean);border-radius:14px;padding:14px;position:relative;overflow:hidden;}
.coupon-card::before{content:'';position:absolute;left:-8px;top:50%;width:16px;height:16px;background:var(--bg);border-radius:50%;transform:translateY(-50%);}
.coupon-card::after{content:'';position:absolute;right:-8px;top:50%;width:16px;height:16px;background:var(--bg);border-radius:50%;transform:translateY(-50%);}
.coupon-code{display:inline-block;padding:6px 14px;background:var(--ocean-mist);border:1.5px dashed var(--ocean);border-radius:8px;font-family:monospace;font-size:15px;font-weight:800;color:var(--ocean);letter-spacing:2px;cursor:pointer;}
.coupon-saved{background:#E8F5E9;border-color:#4CAF50;}
.coupon-saved .coupon-code{background:#E8F5E9;border-color:#4CAF50;color:#2E7D32;}
.coupon-redeemed{opacity:.6;border-style:solid;border-color:var(--border);}
.coupon-actions{display:flex;gap:8px;margin-top:10px;}
.coupon-btn{flex:1;padding:10px;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer;text-align:center;border:none;transition:all .2s;}
.coupon-btn:active{transform:scale(.97);}
.coupon-btn.save{background:var(--ocean);color:#fff;}
.coupon-btn.redeem{background:linear-gradient(135deg,#4CAF50,#45a049);color:#fff;}
.coupon-btn.remove{background:var(--bg-surface);color:var(--coral);border:1px solid var(--border);}

.wallet-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;background:var(--coral);color:#fff;font-size:9px;font-weight:800;}

.hh-timer{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:8px;font-size:11px;font-weight:700;}
.hh-timer.active{background:#E8F5E9;color:#2E7D32;}
.hh-timer.soon{background:#FFF3E0;color:#E65100;}
.hh-timer.ended{background:var(--bg-surface);color:var(--text-muted);}

.booking-row{display:flex;gap:8px;margin-top:10px;}
.booking-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;border-radius:12px;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;border:none;transition:all .2s;}
.booking-btn:active{transform:scale(.97);}
.booking-btn.opentable{background:#DA3743;color:#fff;}
.booking-btn.yelp{background:#FF1A1A;color:#fff;}
.booking-btn.phone{background:var(--ocean);color:#fff;}
.booking-btn.web{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);}
.deal-card{display:flex;align-items:center;gap:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;padding:12px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;}
.deal-card:active{transform:scale(.98);}
.deal-photo{width:70px;height:70px;border-radius:10px;background-size:cover;background-position:center;flex-shrink:0;}
.deal-info{flex:1;min-width:0;}
.deal-name{font-weight:700;color:var(--text);font-size:14px;margin-bottom:2px;}
.deal-desc{font-size:13px;color:var(--coral);font-weight:600;}
.deal-meta{font-size:11px;color:var(--text-muted);margin-top:4px;}
.deal-badge{position:absolute;top:8px;right:8px;background:linear-gradient(135deg,#FFD93D,#FF6B6B);color:#fff;font-size:9px;font-weight:800;padding:3px 8px;border-radius:6px;}
.deal-card-home{min-width:160px !important;}

/* AI TRIP PLANNER */
.ai-planner-card{margin:12px 18px;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:18px;display:flex;align-items:center;gap:14px;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 8px 24px rgba(102,126,234,.35);}
.aip-glow{position:absolute;top:-50%;right:-50%;width:100%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 60%);animation:glow-rotate 8s linear infinite;}
@keyframes glow-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.aip-icon{font-size:36px;background:rgba(255,255,255,.2);width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;}
.aip-content{flex:1;z-index:1;}
.aip-title{font-family:'Paytone One',sans-serif;font-size:16px;color:#fff;}
.aip-sub{font-size:12px;color:rgba(255,255,255,.85);margin-top:2px;}
.aip-arrow{font-size:24px;z-index:1;}

/* LIVE BEACH DASHBOARD */
.beach-dash{margin:12px 18px;padding:14px;background:linear-gradient(135deg,var(--ocean-mist),var(--foam-light));border:1.5px solid var(--foam);border-radius:16px;}
.bd-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-family:'Paytone One',sans-serif;font-size:13px;color:var(--ocean);}
.bd-live{font-size:10px;color:var(--coral);font-weight:700;animation:pulse-live 2s ease-in-out infinite;}
@keyframes pulse-live{0%,100%{opacity:1}50%{opacity:.5}}
.bd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.bd-item{background:#fff;border-radius:12px;padding:10px 8px;text-align:center;cursor:pointer;transition:transform .2s;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.bd-item:active{transform:scale(.95);}
.bd-icon{font-size:20px;margin-bottom:4px;}
.bd-label{font-size:10px;color:var(--text-muted);font-weight:600;}
.bd-val{font-size:13px;font-weight:800;color:var(--text);margin-top:2px;}
.bd-ok{color:var(--foam-text);}
.bd-warn{color:var(--sand);}
.bd-alert-val{color:var(--coral);}
.bd-alert{margin-top:10px;padding:10px 12px;background:rgba(244,132,95,.15);border:1px solid var(--coral);border-radius:10px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--coral);}

/* SMART MODES */
.smart-modes{display:flex;gap:8px;padding:0 18px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:12px 0;}
.smart-modes::-webkit-scrollbar{display:none;}
.sm-pill{flex-shrink:0;padding:10px 16px;background:var(--bg-card);border:1.5px solid var(--border-mid);border-radius:24px;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;}
.sm-pill:active{transform:scale(.95);}
.sm-pill.active{background:var(--ocean);border-color:var(--ocean);color:#fff;}

/* LOCAL SECRETS */
.secrets-card{margin:12px 18px;padding:14px;background:linear-gradient(135deg,#2d3436,#636e72);border-radius:16px;cursor:pointer;}
.secrets-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.secrets-icon{font-size:28px;}
.secrets-title{font-family:'Paytone One',sans-serif;color:#fff;font-size:14px;}
.secrets-badge{background:var(--coral);color:#fff;font-size:9px;font-weight:800;padding:3px 8px;border-radius:10px;}
.secrets-list{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;}
.secret-chip{flex-shrink:0;padding:8px 12px;background:rgba(255,255,255,.15);border-radius:10px;font-size:12px;color:#fff;font-weight:600;}

/* SUNRISE SUNSET */
.sun-card{margin:12px 18px;padding:16px;border-radius:16px;position:relative;overflow:hidden;}
.sun-card.sunrise{background:linear-gradient(135deg,#fa709a,#fee140);}
.sun-card.sunset{background:linear-gradient(135deg,#f093fb,#f5576c);}
.sun-content{display:flex;align-items:center;gap:14px;}
.sun-icon{font-size:40px;}
.sun-info{flex:1;}
.sun-label{font-size:11px;color:rgba(255,255,255,.85);font-weight:600;}
.sun-time{font-family:'Paytone One',sans-serif;font-size:20px;color:#fff;}
.sun-countdown{font-size:12px;color:rgba(255,255,255,.9);margin-top:2px;}
.sun-spot{font-size:11px;color:rgba(255,255,255,.8);margin-top:6px;}

/* INSTAGRAM SPOTS */
/* EMERGENCY CARD */
.emergency-card{margin:12px 18px;padding:12px 14px;background:linear-gradient(135deg,#fff5f5,#ffe3e3);border:1.5px solid var(--coral);border-radius:14px;display:flex;align-items:center;gap:12px;cursor:pointer;}
.emergency-icon{font-size:24px;}
.emergency-content{flex:1;}
.emergency-title{font-weight:800;font-size:13px;color:var(--coral);}
.emergency-sub{font-size:11px;color:var(--text-mid);}

/* SHARE MY DAY */
.share-fab{position:fixed;bottom:90px;right:18px;width:56px;height:56px;background:linear-gradient(135deg,var(--ocean),var(--foam));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;box-shadow:0 4px 16px rgba(0,150,199,.4);cursor:pointer;z-index:var(--z-sticky);transition:transform .2s;}
.share-fab:active{transform:scale(.9);}

/* AI PLANNER MODAL */
.planner-modal{position:fixed;inset:0;background:var(--bg);z-index:var(--z-overlay);transform:translateY(100%);transition:transform .3s ease-out;overflow-y:auto;}
.planner-modal.open{transform:translateY(0);}
.planner-header{padding:20px 18px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:sticky;top:0;z-index:10;}
.planner-close{position:absolute;top:20px;right:18px;font-size:24px;cursor:pointer;}
.planner-title{font-family:'Paytone One',sans-serif;font-size:22px;}
.planner-sub{font-size:13px;opacity:.9;margin-top:4px;}
.planner-ctx-badge{display:inline-flex;flex-wrap:wrap;gap:6px;margin-top:8px;font-size:11px;font-weight:700;background:rgba(255,255,255,.18);padding:6px 12px;border-radius:20px;letter-spacing:.2px;}
.planner-body{padding:18px;}
.planner-q{margin-bottom:20px;}
.planner-q-label{font-weight:700;font-size:14px;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.planner-opts{display:flex;flex-wrap:wrap;gap:8px;}
.planner-opt{padding:10px 16px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:12px;font-size:13px;font-weight:600;color:var(--text-mid);cursor:pointer;transition:all .2s;}
.planner-opt.selected{background:var(--ocean);border-color:var(--ocean);color:#fff;}
.planner-time-row{display:flex;gap:10px;}
.planner-time{flex:1;padding:12px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:12px;text-align:center;cursor:pointer;transition:all .2s;}
.planner-time.selected{background:var(--foam);border-color:var(--foam);color:#fff;}
.planner-time-icon{font-size:24px;margin-bottom:4px;}
.planner-time-label{font-size:12px;font-weight:700;}
.planner-generate{margin-top:24px;width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:14px;font-family:'Paytone One',sans-serif;font-size:16px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;}
.planner-generate:disabled{opacity:.6;}
.planner-result{padding:18px;}
.itinerary-card{background:var(--bg-surface);border-radius:16px;padding:16px;margin-bottom:12px;border:1px solid var(--border);}
.itinerary-time{font-size:11px;font-weight:800;color:var(--foam-text);margin-bottom:4px;}
.itinerary-title{font-weight:700;font-size:15px;color:var(--text);}
.itinerary-desc{font-size:12px;color:var(--text-mid);margin-top:4px;}
.itinerary-tip{margin-top:8px;padding:8px 10px;background:var(--sand-light);border-radius:8px;font-size:11px;color:var(--text-mid);}

/* Feed */
#screen-main{padding-bottom:90px;overflow-y:auto;}

/* ═══════════════════════════════════════════════════ */
/* NEW CLEAN HOME PAGE STYLES */
/* ═══════════════════════════════════════════════════ */

/* Hero Greeting — replaced by .compound-hero (Mock D). Selectors removed 2026-04. */

/* Weather Card - Compact */
.weather-card{margin:0 18px 12px;padding:16px;background:linear-gradient(135deg,#E0F4FF,#F0FAFF);border:1px solid rgba(0,150,199,.15);border-radius:16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.wc-main{display:flex;align-items:center;gap:12px;}
.wc-temp{font-family:'Paytone One',sans-serif;font-size:42px;color:var(--ocean);line-height:1;}
.wc-icon{font-size:36px;}
.wc-details{text-align:right;}
.wc-location{font-size:11px;font-weight:700;color:var(--ocean);margin-bottom:2px;}
.wc-cond{font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px;}
.wc-wind{font-size:11px;color:var(--text-muted);margin-bottom:4px;}
.wc-rating{font-size:11px;font-weight:700;color:var(--foam-text);background:var(--foam-light);padding:4px 10px;border-radius:10px;display:inline-block;}

/* Beach Strip - Horizontal */
.beach-strip{display:flex;gap:4px;padding:0 18px 16px;overflow-x:auto;scrollbar-width:none;}
.beach-strip::-webkit-scrollbar{display:none;}
.bs-item{flex:1;min-width:70px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;}
.bs-item:active{transform:scale(.95);background:var(--ocean-mist);}
.bs-icon{font-size:18px;}
.bs-label{font-size:9px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;}
.bs-val{font-size:13px;font-weight:700;color:var(--text);}

/* Live Near You Section */
.live-near-section{padding:0 18px 16px;}
.live-near-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.live-near-pulse{width:10px;height:10px;border-radius:50%;background:#4CAF50;animation:livePulse 2s infinite;}
.live-near-title{font-family:'Paytone One',sans-serif;font-size:14px;color:var(--text);}
.live-near-count{font-size:11px;color:var(--text-muted);margin-left:auto;background:var(--bg-surface);padding:4px 10px;border-radius:12px;}
.live-near-scroll{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:0 18px 8px;}
.live-near-scroll::-webkit-scrollbar{display:none;}
.near-me-pills{display:flex;gap:8px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;}
.near-me-pills::-webkit-scrollbar{display:none;}
.near-me-pill{flex-shrink:0;padding:6px 14px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap;}
.near-me-pill.active{background:var(--ocean-deep,#0096C7);border-color:var(--ocean-deep,#0096C7);color:#fff;}
.near-me-pill:active{transform:scale(.95);}
.live-near-deal{position:absolute;top:8px;left:8px;background:linear-gradient(135deg,#FF6B35,#E8460B);color:#fff;font-size:9px;font-weight:800;padding:3px 7px;border-radius:6px;z-index:2;letter-spacing:.3px;box-shadow:0 2px 6px rgba(232,70,11,.4);}
.live-near-no-photo-emoji{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:36px;z-index:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));}
.live-near-card{flex-shrink:0;width:150px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.live-near-card:active{transform:scale(.97);box-shadow:0 1px 4px rgba(0,0,0,.1);}
.live-near-photo{height:90px;background-size:cover;background-position:center;position:relative;overflow:hidden;}
.live-near-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.7));}
.live-near-emoji{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:32px;z-index:1;}
.live-near-open{position:absolute;top:8px;right:8px;background:#2E7D32;color:#fff;font-size:9px;font-weight:700;padding:4px 8px;border-radius:6px;z-index:1;letter-spacing:.5px;box-shadow:0 2px 4px rgba(0,0,0,.2);}
.live-near-dist{position:absolute;bottom:8px;left:8px;background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:10px;font-weight:700;padding:3px 8px;border-radius:6px;z-index:1;}
.live-near-body{padding:10px 12px;}
.live-near-name{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.live-near-meta{font-size:11px;color:var(--text-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Recently Viewed Section */
.recently-viewed-section{padding:0 18px 16px;}
.rv-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.rv-title{font-family:'Paytone One',sans-serif;font-size:14px;color:var(--text);}
.rv-clear{font-size:11px;color:var(--text-muted);cursor:pointer;}
.rv-scroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;}
.rv-scroll::-webkit-scrollbar{display:none;}
.rv-item{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;}
.rv-item:active{transform:scale(.97);}
.rv-emoji{font-size:20px;}
.rv-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis;}

/* Pulse feed row (legacy; still used by activity feed rendering) */
.pulse-feed-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;margin-bottom:6px;transition:transform .1s;}
.pulse-feed-item:active{transform:scale(0.98);}
/* Retired Mock D step 5 — .daily-specials-section + .ds-header/.ds-icon/.ds-day
   /.ds-scroll/.ds-card/.ds-venue/.ds-special/.ds-time/the earlier .ds-title
   have been replaced by the Today's Deals h-scroll (.tdeal-* above).
   The other .ds-* block (.ds-badge/.ds-content/.ds-title/.ds-preview/.ds-arrow)
   lives under .deals-strip below and is intentionally preserved. */

/* ⚡ Compound Hero (Mock D) — weather band fused with Perfect Moment.
   Replaces the old .hero-weather-row + .perfect-moment-section pair. */
.compound-hero{margin:10px 18px 20px;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-lg);background:var(--bg-card);animation:pmSlideIn .5s ease-out;}
@keyframes pmSlideIn{from{opacity:0;transform:translateY(-20px);}to{opacity:1;transform:translateY(0);}}

/* Weather band (always shown — click opens weather detail) */
.ch-weather{padding:12px 18px;background:linear-gradient(135deg,#48CAE4 0%,#0077B6 100%);color:#fff;display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;position:relative;overflow:hidden;cursor:pointer;}
.ch-weather::after{content:'';position:absolute;top:-20px;right:-10px;width:70px;height:70px;background:radial-gradient(circle,#FFE9B8 0%,#FFB877 60%,transparent 75%);border-radius:50%;opacity:.7;pointer-events:none;}
.ch-w-emoji{font-size:22px;position:relative;z-index:1;}
.ch-w-temp{font-size:22px;font-weight:800;position:relative;z-index:1;font-family:'Paytone One',sans-serif;}
.ch-w-cond{flex:1;opacity:.95;font-size:12px;position:relative;z-index:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ch-w-wind{font-size:11px;font-weight:600;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:3px 8px;border-radius:14px;position:relative;z-index:1;white-space:nowrap;}
.ch-w-water{font-size:12px;font-weight:700;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:3px 8px;border-radius:14px;position:relative;z-index:1;white-space:nowrap;margin-left:auto;}
.ch-w-rating{font-size:11px;background:rgba(255,255,255,.22);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px 10px;border-radius:20px;font-weight:800;letter-spacing:.3px;position:relative;z-index:1;white-space:nowrap;}

/* Moment panel (shown when PerfectMoment has a suggestion OR when
   /api/signals-feed has a top signal to surface; else hidden). */
.ch-moment{padding:0;background:linear-gradient(135deg,#FF8C5A 0%,#F4845F 50%,#D96942 100%);color:#fff;position:relative;overflow:hidden;cursor:pointer;}
.ch-moment-photo{display:none;height:140px;background-size:cover;background-position:center;position:relative;}
.ch-moment-photo::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(transparent,rgba(217,105,66,.95));}
.ch-moment-body{padding:18px 20px 20px;position:relative;}
.ch-moment::before{content:'';position:absolute;top:-30%;right:-20%;width:250px;height:250px;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 70%);border-radius:50%;pointer-events:none;}
.ch-moment:active{filter:brightness(.97);}
.ch-badge-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;position:relative;gap:8px;}
.ch-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.22);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:5px 12px;border-radius:20px;font-size:11px;font-weight:800;letter-spacing:1px;}
.ch-countdown{font-size:11px;font-weight:700;opacity:.95;background:rgba(0,0,0,.15);padding:4px 10px;border-radius:20px;white-space:nowrap;}
.ch-title{font-size:26px;font-weight:800;line-height:1.15;margin-bottom:3px;position:relative;font-family:'Paytone One',sans-serif;}
.ch-sub{font-size:13px;opacity:.9;margin-bottom:14px;position:relative;}
.ch-reasons{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;position:relative;}
.ch-reason{background:rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:5px 10px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap;}
.ch-btn{width:100%;padding:13px;background:#fff;color:#D96942;border:none;border-radius:12px;font-size:15px;font-weight:800;letter-spacing:.3px;position:relative;box-shadow:0 4px 12px rgba(0,0,0,.1);cursor:pointer;}
.ch-btn:active{transform:scale(.98);}
.ch-dismiss{position:absolute;top:12px;right:12px;width:24px;height:24px;background:rgba(0,0,0,.18);border:none;border-radius:50%;color:rgba(255,255,255,.85);font-size:13px;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;}
.ch-dismiss:hover{background:rgba(0,0,0,.28);color:#fff;}

/* 🔔 Push opt-in banner — one-time soft ask shown after first beach load */
.push-optin-banner{display:flex;align-items:center;gap:10px;margin:0 18px 12px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;}
.push-optin-icon{font-size:22px;flex-shrink:0;}
.push-optin-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.push-optin-text strong{font-size:13px;font-weight:600;color:var(--text-primary);}
.push-optin-text span{font-size:11px;color:var(--text-secondary);}
.push-optin-btn{flex-shrink:0;padding:6px 14px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;}
.push-optin-dismiss{flex-shrink:0;background:none;border:none;color:var(--text-secondary);font-size:16px;padding:4px 6px;cursor:pointer;line-height:1;}

/* 📹 Live Strip (Mock D 2026-04) — compact utility row under the compound hero.
   3 chips: Beach Cam / Traffic / Parking. Lightweight — ~40px tall, no shadow,
   stays out of the way but gives the user one-tap access to real-time data. */
.live-strip{display:flex;gap:8px;margin:0 18px 14px;}
.live-chip{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:9px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:transform .15s,border-color .15s,background .15s;}
.live-chip:active{transform:scale(.97);background:var(--ocean-mist);border-color:var(--ocean);}
.live-chip .lc-emoji{font-size:18px;flex-shrink:0;line-height:1;}
.live-chip .lc-text{min-width:0;flex:1;display:flex;flex-direction:column;line-height:1.1;}
.live-chip .lc-label{font-size:12px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.live-chip .lc-status{font-size:10px;font-weight:700;letter-spacing:.2px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.live-chip .lc-status.light{color:#10B981;}
.live-chip .lc-status.moderate{color:#F59E0B;}
.live-chip .lc-status.busy{color:#EF4444;}
.live-chip .lc-status.live{color:var(--coral);}
.live-chip .lc-dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;margin-right:4px;animation:lcPulse 2s ease-in-out infinite;vertical-align:middle;}
@keyframes lcPulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.55;transform:scale(.85);}}
@media (max-width:360px){.live-strip{margin:0 12px 14px;}.live-chip .lc-label{font-size:11px;}}

/* 🏄 SURF HOME CARD */
.surf-home-card{display:flex;align-items:center;gap:12px;margin:0 18px 14px;padding:14px 16px;background:linear-gradient(135deg,#0077B6,#023E8A);border-radius:14px;cursor:pointer;color:#fff;transition:transform .2s;box-shadow:0 4px 14px rgba(0,119,182,.25);}
.surf-home-card:active{transform:scale(.98);}
/* 📅 7-day beach forecast widget */
.forecast-widget-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;}
.forecast-widget-title{font-size:14px;font-weight:700;color:var(--text-primary);}
.forecast-widget-sub{font-size:11px;color:var(--text-secondary);}
.forecast-7day-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;}
.forecast-7day-scroll::-webkit-scrollbar{display:none;}
.forecast-day-card{flex-shrink:0;width:72px;padding:10px 6px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;text-align:center;cursor:default;}
.forecast-day-card.today{background:linear-gradient(135deg,#0077B6,#023E8A);color:#fff;border-color:transparent;}
.forecast-day-card.today .fdc-label,.forecast-day-card.today .fdc-temp,.forecast-day-card.today .fdc-wave,.forecast-day-card.today .fdc-cond{color:#fff !important;}
.fdc-label{font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:4px;}
.fdc-icon{font-size:20px;margin-bottom:2px;}
.fdc-temp{font-size:14px;font-weight:700;color:var(--text-primary);}
.fdc-wave{font-size:11px;color:var(--ocean);margin-top:3px;}
.fdc-cond{font-size:10px;color:var(--text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70px;}
.forecast-day-card.tappable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;}
.forecast-day-card.tappable:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12);}
.forecast-day-card.tappable:active{transform:translateY(0);}
.fdc-more{font-size:9px;font-weight:600;color:var(--ocean);margin-top:5px;letter-spacing:.2px;}
.forecast-day-card.today .fdc-more{color:#cdebff;}
/* Hourly forecast modal */
.hourly-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center;z-index:4000;animation:hourlyFade .15s ease;}
@keyframes hourlyFade{from{opacity:0;}to{opacity:1;}}
.hourly-modal{background:var(--bg-card,#fff);width:100%;max-width:520px;max-height:80vh;border-radius:18px 18px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:hourlySlide .2s ease;}
@keyframes hourlySlide{from{transform:translateY(24px);}to{transform:translateY(0);}}
@media(min-width:560px){.hourly-modal-overlay{align-items:center;}.hourly-modal{border-radius:18px;}}
.hourly-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card,#fff);}
.hourly-modal-title{font-size:16px;font-weight:700;color:var(--text-primary);}
.hourly-modal-close{background:none;border:none;font-size:18px;color:var(--text-secondary);cursor:pointer;padding:4px 8px;line-height:1;border-radius:8px;}
.hourly-modal-close:hover{background:var(--bg-hover,rgba(0,0,0,.06));}
.hourly-modal-body{overflow-y:auto;padding:6px 0;}
.hourly-row{display:grid;grid-template-columns:54px 32px 48px 1fr 1fr;align-items:center;gap:6px;padding:9px 18px;border-bottom:1px solid var(--border);font-size:13px;}
.hourly-row:last-child{border-bottom:none;}
.hr-time{font-weight:600;color:var(--text-secondary);}
.hr-icon{font-size:18px;text-align:center;}
.hr-temp{font-weight:700;color:var(--text-primary);font-size:15px;}
.hr-precip{color:var(--ocean);font-size:12px;}
.hr-wind{color:var(--text-secondary);font-size:12px;white-space:nowrap;}
.hourly-empty{padding:28px 18px;text-align:center;color:var(--text-secondary);font-size:13px;}
.surf-home-icon{font-size:28px;flex-shrink:0;}
.surf-home-body{flex:1;min-width:0;}
.surf-home-title{font-family:'Paytone One',sans-serif;font-size:15px;line-height:1.2;}
.surf-home-stats{font-size:12px;opacity:.85;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.surf-home-verdict{font-size:11px;font-weight:800;letter-spacing:0.5px;padding:4px 10px;border-radius:20px;background:rgba(255,255,255,.2);white-space:nowrap;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.surf-home-arrow{font-size:22px;opacity:.6;font-weight:300;flex-shrink:0;}

/* 🎯 Intent Chips (Mock D) — 2×4 grid of contextual intents.
   Replaces the old horizontal .smart-actions strip. Labels are stable;
   sub-labels shift with time of day / prefs / SunsetCountdown state. */
.intent-section{margin:0 0 4px;}
.intent-label{padding:0 18px 8px;display:flex;justify-content:space-between;align-items:baseline;}
.intent-label-title{font-size:13px;font-weight:700;color:var(--text);}
.intent-label-count{font-size:11px;color:var(--text-muted);font-weight:600;}
.intent-grid{margin:0 18px 20px;display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.intent-chip{padding:11px 12px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border);display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s,border-color .15s,background .15s;}
.intent-chip:active{transform:scale(.97);background:var(--ocean-mist);border-color:var(--ocean);}
.intent-chip--market{background:linear-gradient(135deg,#E8F5E9,#F1F8E9);border-color:#81C784;}
.intent-chip--market .ic-label{color:#2E7D32;}
.intent-chip--market .ic-sub{color:#388E3C;}
.intent-chip .ic-emoji{font-size:22px;flex-shrink:0;line-height:1;}
.intent-chip .ic-text{min-width:0;flex:1;}
.intent-chip .ic-label{font-size:13px;font-weight:800;line-height:1.2;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.intent-chip .ic-sub{font-size:10px;color:var(--text-mid);line-height:1.2;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* 📍 Location Alerts */
.location-alert{position:fixed;top:-200px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:400px;z-index:var(--z-system);transition:top .4s cubic-bezier(.68,-.55,.265,1.55),opacity .3s;opacity:0;pointer-events:none;visibility:hidden;display:none;}
.location-alert.visible{top:16px;opacity:1;pointer-events:auto;visibility:visible;display:block !important;}
.location-alert.visible.has-notch{top:calc(env(safe-area-inset-top) + 8px);}
.la-card{background:linear-gradient(135deg,#1e3a5f,#0d253f);border-radius:16px;padding:14px;box-shadow:0 8px 32px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.1);}
.la-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.la-pulse{width:10px;height:10px;border-radius:50%;background:#4ADE80;animation:laPulse 1.5s ease-in-out infinite;}
@keyframes laPulse{0%,100%{box-shadow:0 0 0 0 rgba(74,222,128,.7);}50%{box-shadow:0 0 0 8px rgba(74,222,128,0);}}
.la-badge{padding:4px 10px;background:linear-gradient(135deg,#4ADE80,#22C55E);color:#fff;font-size:10px;font-weight:700;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;}
.la-distance{margin-left:auto;font-size:11px;color:rgba(255,255,255,.7);}
.la-content{display:flex;align-items:center;gap:12px;}
.la-icon{font-size:36px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));}
.la-details{flex:1;min-width:0;}
.la-place{font-weight:700;font-size:15px;color:#fff;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.la-deal{font-size:13px;color:rgba(255,255,255,.9);line-height:1.4;}
.la-deal strong{color:#FCD34D;}
.la-actions{display:flex;gap:8px;margin-top:12px;}
.la-btn{flex:1;padding:10px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;}
.la-btn.primary{background:linear-gradient(135deg,#4ADE80,#22C55E);color:#fff;}
.la-btn.secondary{background:rgba(255,255,255,.1);color:rgba(255,255,255,.9);}
.la-btn:active{transform:scale(.97);}
.la-dismiss{position:absolute;top:8px;right:8px;width:24px;height:24px;background:rgba(255,255,255,.1);border:none;border-radius:50%;color:rgba(255,255,255,.5);font-size:14px;cursor:pointer;}

/* Location Alert Settings */
.la-settings{padding:16px;background:var(--bg-card);border-radius:16px;margin-bottom:16px;}
.la-settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.la-settings-title{font-weight:700;font-size:15px;color:var(--text);}
.la-toggle{position:relative;width:50px;height:28px;background:var(--border);border-radius:14px;cursor:pointer;transition:background .3s;}
.la-toggle.active{background:#4ADE80;}
.la-toggle-knob{position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;transition:left .3s;box-shadow:0 2px 4px rgba(0,0,0,.2);}
.la-toggle.active .la-toggle-knob{left:24px;}
.la-alert-types{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px;}
.la-type{padding:12px;background:var(--bg-surface);border:2px solid var(--border);border-radius:12px;text-align:center;cursor:pointer;transition:all .2s;}
.la-type.active{border-color:#4ADE80;background:rgba(74,222,128,.1);}
.la-type-icon{font-size:24px;margin-bottom:4px;}
.la-type-name{font-size:12px;font-weight:600;color:var(--text);}
.la-sensitivity{margin-top:16px;}
.la-sensitivity-label{font-size:13px;font-weight:600;color:var(--text);margin-bottom:10px;}
.la-sensitivity-options{display:flex;gap:8px;}
.la-sens-opt{flex:1;padding:10px 8px;background:var(--bg-surface);border:2px solid var(--border);border-radius:10px;text-align:center;cursor:pointer;transition:all .2s;}
.la-sens-opt.active{border-color:var(--ocean);background:rgba(14,165,233,.1);}
.la-sens-opt-label{font-size:12px;font-weight:700;color:var(--text);}
.la-sens-opt-desc{font-size:10px;color:var(--text-muted);margin-top:2px;}
/* Traffic Conditions */
.traffic-section{margin:0 18px 16px;}
.traffic-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.traffic-header:active{transform:scale(.98);}
.traffic-status{display:flex;align-items:center;gap:12px;}
.traffic-icon{font-size:20px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(76,175,80,.15);}
.traffic-icon.moderate{background:rgba(255,193,7,.15);}
.traffic-icon.heavy{background:rgba(244,67,54,.15);}
.traffic-title{font-weight:700;font-size:14px;color:var(--text);}
.traffic-subtitle{font-size:12px;color:var(--text-mid);}
.traffic-arrow{font-size:18px;color:var(--text-muted);}

/* Live Activity Feed */
.activity-section{margin:0 18px 16px;}
.activity-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.activity-header-left{display:flex;align-items:center;gap:8px;}
.activity-pulse{width:8px;height:8px;border-radius:50%;background:#4CAF50;animation:livePulse 2s infinite;}
.activity-title{font-family:'Paytone One',sans-serif;font-size:15px;color:var(--text);}
.activity-friends-btn{padding:6px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;}
.activity-friends-btn:active{transform:scale(.97);}
.activity-feed{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto;}
.activity-item{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;animation:slideInLeft .3s ease;}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px);}to{opacity:1;transform:translateX(0);}}
.activity-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ocean),var(--foam));display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;font-weight:700;flex-shrink:0;}
.activity-content{flex:1;min-width:0;}
.activity-text{font-size:13px;color:var(--text);line-height:1.4;}
.activity-text strong{font-weight:700;color:var(--ocean);}
.activity-meta{font-size:11px;color:var(--text-muted);margin-top:4px;}
.activity-action{display:flex;gap:8px;margin-top:6px;}
.activity-btn{padding:4px 10px;border-radius:12px;border:none;font-size:11px;font-weight:600;cursor:pointer;}
.activity-btn.like{background:#FEE2E2;color:#DC2626;}
.activity-btn.view{background:var(--bg-surface);color:var(--text-mid);}
.activity-empty{text-align:center;padding:24px;color:var(--text-muted);font-size:13px;}

/* Friends Panel */
.friends-header{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(135deg,var(--ocean),#0891b2);border-radius:16px;margin-bottom:20px;color:#fff;}
.friends-header-icon{font-size:40px;}
.friends-header-title{font-size:18px;font-weight:700;}
.friends-header-sub{font-size:13px;opacity:.9;}
.friends-search{position:relative;margin-bottom:16px;}
.friends-search input{width:100%;padding:12px 16px 12px 40px;border:1.5px solid var(--border);border-radius:12px;font-size:14px;background:var(--bg-card);color:var(--text);}
.friends-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;}
.friends-list{display:flex;flex-direction:column;gap:10px;}
.friend-card{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;}
.friend-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;font-weight:700;}
.friend-info{flex:1;}
.friend-name{font-weight:700;font-size:14px;color:var(--text);}
.friend-status{font-size:12px;color:var(--text-muted);}
.friend-actions{display:flex;gap:6px;}
.friend-btn{padding:6px 12px;border-radius:10px;border:none;font-size:11px;font-weight:600;cursor:pointer;}
.friend-btn.primary{background:var(--ocean);color:#fff;}
.friend-btn.secondary{background:var(--bg-surface);color:var(--text-mid);}
.friend-btn.remove{background:#FEE2E2;color:#DC2626;}
.add-friend-section{padding:16px;background:var(--bg-surface);border-radius:14px;margin-top:16px;}
.add-friend-title{font-weight:700;font-size:14px;color:var(--text);margin-bottom:10px;}
.add-friend-input{display:flex;gap:8px;}
.add-friend-input input{flex:1;padding:10px 14px;border:1.5px solid var(--border);border-radius:10px;font-size:14px;background:var(--bg-card);}
.add-friend-input button{padding:10px 16px;background:var(--ocean);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;}

/* Check-in Button */
.checkin-btn{display:flex;align-items:center;gap:8px;padding:12px 18px;background:linear-gradient(135deg,#4CAF50,#45a049);border:none;border-radius:12px;color:#fff;font-weight:700;font-size:14px;cursor:pointer;margin-top:12px;}
.checkin-btn:active{transform:scale(.97);}
.checkin-btn.checked{background:linear-gradient(135deg,#9E9E9E,#757575);}

/* Traffic Detail Panel */
.traffic-detail-header{padding:20px;background:linear-gradient(135deg,#4CAF50,#45a049);border-radius:16px;margin-bottom:20px;color:#fff;text-align:center;}
.traffic-detail-header.moderate{background:linear-gradient(135deg,#FFC107,#FF9800);}
.traffic-detail-header.heavy{background:linear-gradient(135deg,#f44336,#E91E63);}
.tdh-status{font-size:48px;margin-bottom:8px;}
.tdh-title{font-size:20px;font-weight:700;}
.tdh-subtitle{font-size:14px;opacity:.9;}
.traffic-routes{display:flex;flex-direction:column;gap:12px;}
.traffic-route{padding:14px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:14px;}
.traffic-route.recommended{border-color:var(--ocean);background:linear-gradient(135deg,rgba(0,150,199,.05),rgba(0,150,199,.02));}
.tr-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.tr-name{font-weight:700;font-size:15px;color:var(--text);}
.tr-badge{padding:4px 10px;border-radius:10px;font-size:11px;font-weight:700;}
.tr-badge.fastest{background:#DCFCE7;color:#16A34A;}
.tr-badge.scenic{background:#E0F2FE;color:#0284C7;}
.tr-details{display:flex;gap:16px;font-size:13px;color:var(--text-mid);}
.tr-time{font-weight:600;}

/* Menu Prices */
.menu-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);}
.menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.menu-title{font-weight:700;font-size:15px;color:var(--text);}
.menu-updated{font-size:11px;color:var(--text-muted);}
.menu-categories{display:flex;gap:8px;overflow-x:auto;margin-bottom:12px;padding-bottom:4px;}
.menu-cat{padding:6px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;font-size:12px;font-weight:600;color:var(--text-mid);cursor:pointer;white-space:nowrap;}
.menu-cat.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.menu-items{display:flex;flex-direction:column;gap:8px;}
.menu-item{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 12px;background:var(--bg-surface);border-radius:10px;}
.menu-item-info{flex:1;}
.menu-item-name{font-weight:600;font-size:13px;color:var(--text);}
.menu-item-desc{font-size:11px;color:var(--text-muted);margin-top:2px;}
.menu-item-price{font-weight:700;font-size:14px;color:var(--ocean);}
.menu-item-price.market{font-style:italic;color:var(--text-muted);font-size:12px;}

/* Cash Only Badge */
.cash-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#E8F5E9;border:1px solid #4CAF50;border-radius:8px;font-size:10px;font-weight:700;color:#2E7D32;}
.cash-badge.warning{background:#FFF8E1;border-color:#FFB300;color:#F57C00;}

/* Kid/Pet Friendly Badges */
.friendly-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.friendly-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:10px;font-size:11px;font-weight:600;}
.friendly-badge.kids{background:#E3F2FD;color:#1976D2;}
.friendly-badge.pets{background:#FFF3E0;color:#E65100;}
.friendly-badge.reservations{background:#F3E5F5;color:#7B1FA2;}
.friendly-badge.playground{background:#FFF8E1;color:#E65100;border:1px solid #FFE082;}
.playground-callout{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-top:8px;border-radius:12px;background:linear-gradient(135deg,#FFF8E1,#FFECB3);border:1px solid #FFE082;}
.playground-callout .pg-icon{font-size:24px;flex-shrink:0;}
.playground-callout .pg-text{font-size:13px;color:#4E342E;line-height:1.4;}
.playground-callout .pg-type{font-weight:700;color:#E65100;text-transform:uppercase;font-size:11px;letter-spacing:0.5px;}
body.dark-mode .playground-callout{background:linear-gradient(135deg,#3E2723,#4E342E);border-color:#6D4C41;}
body.dark-mode .playground-callout .pg-text{color:#FFCC80;}
body.dark-mode .playground-callout .pg-type{color:#FFB74D;}
.vibe-pg-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:8px;font-size:10px;font-weight:600;background:#FFF8E1;color:#E65100;border:1px solid #FFE082;margin-top:4px;}
body.dark-mode .vibe-pg-tag{background:#3E2723;color:#FFB74D;border-color:#6D4C41;}

/* ATM Nearby */
.atm-info{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-surface);border-radius:10px;margin-top:10px;}
.atm-icon{font-size:18px;}
.atm-text{flex:1;font-size:12px;color:var(--text-mid);}
.atm-dist{font-size:11px;font-weight:600;color:var(--ocean);}

/* Smart Actions — retired in Mock D step 2 (replaced by .intent-grid).
   Kept: .smart-alert .sa-* scoped toast rules further below. */

/* ⚡ Mock D pick cards — "More for right now" h-scroll row.
   Replaces .rn-card and friends. Class names scoped with `pick-` prefix
   so they don't collide with existing .section / .h-scroll rules. */
.mock-section{margin:0 0 18px;}
.pick-header{padding:0 18px 10px;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.pick-header-title{font-size:15px;font-weight:800;color:var(--text);font-family:'Paytone One',sans-serif;}
.pick-header-more{font-size:12px;color:var(--ocean);font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0;}
.pick-header-more:active{opacity:.6;}
.pick-scroll{display:flex;gap:10px;overflow-x:auto;padding:0 18px 4px;scrollbar-width:none;}
.pick-scroll::-webkit-scrollbar{display:none;}
.pick-card{flex:0 0 170px;background:var(--bg-card);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border);cursor:pointer;transition:transform .15s,border-color .15s;}
.pick-card:active{transform:scale(.97);border-color:var(--ocean);}
.pick-img{height:90px;position:relative;display:flex;align-items:center;justify-content:center;font-size:34px;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.2);}
.pick-live{position:absolute;top:8px;left:8px;background:#FF3B30;color:#fff;font-size:9px;padding:3px 7px;border-radius:6px;font-weight:800;letter-spacing:.5px;display:flex;align-items:center;gap:4px;}
.pick-live::before{content:'';width:5px;height:5px;background:#fff;border-radius:50%;animation:pickLiveDot 1.2s infinite;}
@keyframes pickLiveDot{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.45;transform:scale(.85);}}
.pick-live.amber{background:#FF9500;}
.pick-live.green{background:#34C759;}
.pick-live.teal{background:#0077B6;}
.pick-body{padding:10px 12px 12px;}
.pick-name{font-size:12.5px;font-weight:800;margin-bottom:3px;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.pick-sub{font-size:11px;color:var(--text-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* 🎟️ Events tonight (Mock D) — horizontal event rows with time chip.
   Scoped class names (evt-row-*) so they don't collide with the existing
   .event-card thumbnail card used in other sections. */
.evt-row{margin:0 18px 10px;padding:14px 16px;background:var(--bg-card);border-radius:14px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow-sm);border:1px solid var(--border);cursor:pointer;transition:transform .15s,border-color .15s;}
.evt-row:active{transform:scale(.98);border-color:var(--ocean);}
.evt-row-time{flex:0 0 60px;text-align:center;padding:8px 4px;background:var(--ocean-mist);border-radius:10px;overflow:hidden;}
.evt-row-time-big{font-size:15px;font-weight:800;color:var(--ocean);line-height:1;font-family:'Paytone One',sans-serif;white-space:nowrap;}
.evt-row-time-sm{font-size:10px;color:var(--text-mid);margin-top:2px;font-weight:700;letter-spacing:.3px;white-space:nowrap;}
.evt-row-info{flex:1;min-width:0;}
.evt-row-name{font-size:14px;font-weight:700;color:var(--text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.evt-row-meta{font-size:12px;color:var(--text-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.evt-row-empty{margin:0 18px 10px;padding:20px 16px;text-align:center;color:var(--text-muted);font-size:13px;background:var(--bg-card);border:1px dashed var(--border);border-radius:14px;}

/* 🔥 Today's Deals (Mock D) — h-scroll of deal cards.
   Uses .tdeal-* prefix because .deal-card and .deal-name are already
   defined elsewhere in this file for unrelated components. Wrapped in
   the shared .mock-section + .pick-header + .pick-scroll shell. */
.tdeal-card{flex:0 0 180px;background:linear-gradient(135deg,#FFE8E1 0%,#fff 60%);border-radius:14px;padding:0;border:1px solid rgba(255,140,90,.22);cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 3px rgba(0,0,0,.04);overflow:hidden;}
.tdeal-card:active{transform:scale(.97);}
.tdeal-card.highlight{border-color:var(--coral,#FF8C5A);box-shadow:0 2px 10px rgba(255,140,90,.25);}
body.dark-mode .tdeal-card{background:linear-gradient(135deg,#2A1F1D,#1B2838);border-color:rgba(255,140,90,.15);}
body.dark-mode .tdeal-card.highlight{border-color:rgba(255,140,90,.35);}
.tdeal-photo{height:80px;background-size:cover;background-position:center;position:relative;}
.tdeal-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.4) 100%);}
.tdeal-no-photo{height:80px;display:flex;align-items:center;justify-content:center;font-size:28px;background:linear-gradient(135deg,var(--coral,#F4845F),var(--sunset,#FF9F43));}
body.dark-mode .tdeal-no-photo{background:linear-gradient(135deg,#D96942,#BA7517);}
.tdeal-text{padding:10px 12px;}
.tdeal-badge{font-size:10px;font-weight:800;letter-spacing:.5px;color:var(--coral-dark,#D96942);margin-bottom:4px;text-transform:uppercase;}
.tdeal-badge.ends-soon{color:#D32F2F;}
.tdeal-badge.day-only{color:#7B1FA2;}
body.dark-mode .tdeal-badge{color:#FF9B85;}
body.dark-mode .tdeal-badge.ends-soon{color:#FF6B6B;}
body.dark-mode .tdeal-badge.day-only{color:#CE93D8;}
.tdeal-name{font-size:13px;font-weight:800;color:var(--text);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tdeal-offer{font-size:12px;color:var(--text-mid);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* 🔒 Local Secret (Mock D) — editorial insider card. Dark ocean gradient
   so it visually separates from the lighter signal/deal cards above.
   Rotates daily through LOCAL_SECRETS; future Tier 3 `editorial_pick`
   signals will override when present. */
.secret-card{margin:0 18px 14px;padding:16px 18px;background:linear-gradient(135deg,#0F2D3D 0%,#0077B6 100%);color:#fff;border-radius:16px;box-shadow:var(--shadow-md);cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden;}
.secret-card::after{content:'';position:absolute;top:-40px;right:-30px;width:140px;height:140px;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 70%);border-radius:50%;pointer-events:none;}
.secret-card:active{transform:scale(.98);}
.secret-tag{font-size:10px;letter-spacing:1px;opacity:.85;font-weight:800;margin-bottom:6px;text-transform:uppercase;position:relative;z-index:1;}
.secret-title{font-size:16px;font-weight:800;margin-bottom:4px;line-height:1.25;position:relative;z-index:1;}
.secret-desc{font-size:12px;opacity:.92;line-height:1.4;position:relative;z-index:1;}

/* Explore Row */
.explore-row{display:flex;gap:8px;padding:0 18px 16px;overflow-x:auto;scrollbar-width:none;}
.explore-row::-webkit-scrollbar{display:none;}
.explore-chip{display:flex;align-items:center;gap:6px;padding:10px 16px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:25px;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;white-space:nowrap;transition:all .2s;}
.explore-chip:active{transform:scale(.95);background:var(--ocean-mist);border-color:var(--ocean);}

/* Section Card */
.section-card{margin:0 18px 16px;}
.sc-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.sc-icon{font-size:18px;}
.sc-title{font-family:'Paytone One',sans-serif;font-size:15px;color:var(--text);flex:1;}
.sc-more{font-size:12px;color:var(--ocean);font-weight:600;cursor:pointer;}
.sc-scroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin:0 -18px;padding-left:18px;padding-right:18px;}
.sc-scroll::-webkit-scrollbar{display:none;}
.sc-card{flex-shrink:0;width:180px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.sc-card:active{transform:scale(.97);}
.sc-card-img{height:80px;border-radius:10px;background:var(--ocean-mist);margin-bottom:10px;display:flex;align-items:center;justify-content:center;font-size:28px;overflow:hidden;}
.sc-card-img img{width:100%;height:100%;object-fit:cover;}
.sc-card-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:3px;}
.sc-card-sub{font-size:11px;color:var(--text-mid);}

/* Event Cards - Mini horizontal scroll */
.event-card-mini{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;min-width:200px;}
.event-card-mini:active{transform:scale(.97);}
.ecm-emoji{font-size:24px;flex-shrink:0;}
.ecm-body{flex:1;min-width:0;}
.ecm-title{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ecm-meta{font-size:11px;color:var(--text-muted);margin-top:2px;}

/* Event Cards - With Photos */
.event-card{flex-shrink:0;width:160px;background:var(--bg-card);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s;}
.event-card:active{transform:scale(.97);}
.ec-photo{height:100px;background-size:cover;background-position:center;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.ec-emoji{font-size:36px;text-shadow:0 2px 8px rgba(0,0,0,0.3);}
.ec-badge{position:absolute;bottom:8px;left:8px;background:rgba(0,0,0,0.7);color:#fff;font-size:10px;font-weight:700;padding:4px 8px;border-radius:6px;}
.ec-body{padding:10px 12px;}
.ec-title{font-size:13px;font-weight:700;color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ec-meta{font-size:11px;color:var(--text-muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.no-events-msg{padding:20px;text-align:center;color:var(--text-muted);font-size:13px;}

/* Events Panel - Full list */
.events-header{margin-bottom:16px;}
.events-count{font-size:18px;font-weight:700;color:var(--text);margin-bottom:12px;}
.events-filter-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;}
.events-filter-row::-webkit-scrollbar{display:none;}
.ef-btn{flex-shrink:0;padding:8px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-mid);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;}
.ef-btn.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.ef-btn:active{transform:scale(.95);}

.events-list{display:flex;flex-direction:column;gap:10px;}
.event-item{display:flex;align-items:flex-start;gap:14px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.event-item:active{transform:scale(.98);}
.ei-emoji{font-size:28px;flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:12px;}
.ei-info{flex:1;min-width:0;}
.ei-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:3px;}
.ei-meta{font-size:12px;color:var(--ocean);font-weight:600;margin-bottom:4px;}
.ei-desc{font-size:12px;color:var(--text-mid);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ei-arrow{font-size:20px;color:var(--text-muted);flex-shrink:0;align-self:center;}

.load-more-section{margin-top:16px;text-align:center;}
.load-more-btn{padding:14px 28px;background:var(--ocean);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;}
.load-more-btn:active{transform:scale(.97);opacity:.9;}

/* Event Detail */
.event-detail{padding:0;}
.ed-header{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.ed-emoji{font-size:42px;flex-shrink:0;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:16px;}
.ed-info{flex:1;}
.ed-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:4px;}
.ed-cat{font-size:13px;color:var(--ocean);font-weight:600;}
.ed-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border);}
.edr-icon{font-size:18px;}
.edr-text{font-size:14px;color:var(--text);}
.ed-desc{padding:16px 0;font-size:14px;color:var(--text-mid);line-height:1.6;}
.ed-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.ed-pill{padding:6px 12px;background:var(--bg-card);border:1px solid var(--border-mid);border-radius:16px;font-size:12px;color:var(--text);font-weight:700;}
.ed-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.ed-btn{padding:14px;text-align:center;border-radius:12px;font-size:14px;font-weight:700;text-decoration:none;transition:all .2s;border:1px solid var(--border);background:var(--bg-surface);color:var(--text);cursor:pointer;font-family:'Nunito',sans-serif;}
.ed-btn:active{transform:scale(.97);}
.ed-btn-primary{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.ed-btn-close{background:var(--bg-card);color:var(--text-mid);border-color:var(--border);margin-top:4px;}
.ed-website{margin:12px 0 16px;padding:12px 14px;background:var(--bg-surface);border-radius:12px;border:1px solid var(--border);}
.ed-website-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);}
.edw-icon{font-size:18px;}
.edw-url{flex:1;font-size:13px;font-weight:600;color:var(--ocean);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.edw-arrow{font-size:14px;color:var(--ocean);font-weight:700;}
.ed-source{font-size:11px;color:var(--text-muted);margin-bottom:12px;font-style:italic;}

/* Golf Section - Clean */
.golf-section{margin:0 18px 16px;background:linear-gradient(135deg,#1a472a 0%,#2d5a3f 100%);border-radius:18px;padding:18px;overflow:hidden;}
.golf-header{margin-bottom:14px;}
.golf-title-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.golf-icon{font-size:22px;}
.golf-title{font-family:'Paytone One',sans-serif;font-size:18px;color:#fff;}
.golf-count{font-size:11px;font-weight:700;background:rgba(255,255,255,.2);color:#fff;padding:4px 10px;border-radius:10px;margin-left:auto;}
.golf-subtitle{font-size:12px;color:rgba(255,255,255,.7);}
.golf-scroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:0 18px 10px;}
.golf-scroll::-webkit-scrollbar{display:none;}
.golf-card{flex-shrink:0;width:150px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s;}
.golf-card:active{transform:scale(.97);background:rgba(255,255,255,.15);}
.golf-card-photo{height:80px;background-size:cover;background-position:center;position:relative;overflow:hidden;}
.golf-card-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.5));}
.golf-card-body{padding:10px;}
.golf-card-name{font-size:13px;font-weight:700;color:#fff;margin-bottom:4px;}
.golf-card-rating{font-size:11px;color:rgba(255,255,255,.8);margin-bottom:6px;}
.golf-card-price{font-size:12px;font-weight:700;color:#90EE90;}
.golf-cta{width:100%;padding:12px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:10px;color:#fff;font-size:13px;font-weight:700;cursor:pointer;text-align:center;transition:all .2s;}
.golf-cta:active{background:rgba(255,255,255,.25);}

/* Sun Strip */
.sun-strip{display:flex;align-items:center;gap:12px;margin:0 18px 16px;padding:14px 16px;background:linear-gradient(135deg,#FFF8E1,#FFECB3);border:1px solid #FFD54F;border-radius:14px;cursor:pointer;}
.sun-strip .sun-icon{font-size:28px;}
.sun-strip .sun-info{display:flex;align-items:center;gap:8px;}
.sun-strip .sun-label{font-size:11px;font-weight:700;color:#F57C00;text-transform:uppercase;}
.sun-strip .sun-time{font-family:'Paytone One',sans-serif;font-size:18px;color:#E65100;}
.sun-strip .sun-countdown{font-size:12px;color:#FF8F00;margin-left:auto;font-weight:600;}
.sun-strip .sun-spot{font-size:11px;color:#F57C00;white-space:nowrap;}

/* Activities Grid */
.activities-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 18px 16px;}
.act-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.act-card:active{transform:scale(.95);background:var(--ocean-mist);}
.act-icon{font-size:24px;}
.act-label{font-size:10px;font-weight:700;color:var(--text-mid);}

/* AI Planner - Simple */
.ai-planner{display:flex;align-items:center;gap:14px;margin:0 18px 16px;padding:16px;background:linear-gradient(135deg,rgba(182,143,232,.15),rgba(0,150,199,.1));border:1.5px solid rgba(182,143,232,.3);border-radius:16px;cursor:pointer;transition:all .2s;}
.ai-planner:active{transform:scale(.98);}
.aip-icon{font-size:28px;}
.aip-text{flex:1;}
.aip-title{font-size:14px;font-weight:700;color:var(--text);}
.aip-sub{font-size:12px;color:var(--text-mid);}
.aip-go{font-size:20px;}

/* Universal Search */
.search-container{padding:0 18px 12px;}
.search-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.search-bar:active{border-color:var(--ocean);background:var(--bg-card);}
.search-icon{font-size:16px;}
.search-placeholder{color:var(--text-muted);font-size:14px;}

/* Search Overlay */
.search-overlay{position:fixed;inset:0;background:var(--bg-main);z-index:var(--z-overlay);display:none;flex-direction:column;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
.search-overlay.active{display:flex;}
.search-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-card);border-bottom:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,0.1);}
.search-input-wrap{flex:1;display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-card);border:2px solid var(--border);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,0.05);}
.search-input-wrap:focus-within{border-color:var(--ocean);box-shadow:0 0 0 3px var(--ocean-mist);}
.search-icon-lg{font-size:18px;}
.search-input{flex:1;border:none;background:transparent;font-size:16px;color:var(--text);outline:none;}
.search-input::placeholder{color:var(--text-muted);}
.search-clear{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px;}
.search-cancel{background:none;border:none;color:var(--ocean);font-size:14px;font-weight:700;cursor:pointer;padding:8px;}
.search-body{flex:1;overflow-y:auto;padding:16px;background:var(--bg-main);}
.search-section-title{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;margin-bottom:10px;}
.search-chips{display:flex;flex-wrap:wrap;gap:8px;}
.search-chip{padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;font-size:13px;color:var(--text);cursor:pointer;transition:all .2s;}
.search-chip:active{background:var(--ocean-mist);border-color:var(--ocean);}
.search-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.search-cat{padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;font-size:14px;color:var(--text);cursor:pointer;transition:all .2s;}
.search-cat:active{background:var(--ocean-mist);border-color:var(--ocean);}
.search-results{display:flex;flex-direction:column;gap:8px;}
.search-result{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;}
.search-result:active{background:var(--ocean-mist);}
.search-result-icon{font-size:28px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:10px;}
.search-result-info{flex:1;min-width:0;}
.search-result-name{font-weight:700;font-size:14px;color:var(--text);}
.search-result-meta{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-result-type{font-size:10px;padding:3px 8px;background:var(--ocean-mist);color:var(--ocean);border-radius:10px;font-weight:600;}
.search-no-results{text-align:center;padding:40px 20px;color:var(--text-muted);}

/* Deal Filters */
.deal-filter{padding:8px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .2s;}
.deal-filter.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.deal-filter:not(.active):hover{background:var(--ocean-mist);}

/* Quick Tools Grid */
.quick-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 18px 16px;}
.qt-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;position:relative;transition:all .2s;}
.qt-item:active{transform:scale(.96);background:var(--bg-surface);}
.qt-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;}
.qt-label{font-size:11px;font-weight:700;color:var(--text);text-align:center;}
.qt-badge{position:absolute;top:6px;right:6px;background:#EF5350;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:10px;min-width:16px;text-align:center;}
.qt-badge:empty{display:none;}
.qt-live{position:absolute;top:6px;right:6px;background:#2E7D32;color:#fff;font-size:8px;font-weight:700;padding:2px 5px;border-radius:6px;animation:pulse 2s infinite;}

/* Modes Section */
.modes-section{padding:0 18px 16px;}
.modes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.modes-title{font-size:13px;font-weight:700;color:var(--text);}
.modes-scroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;}
.modes-scroll::-webkit-scrollbar{display:none;}
.mode-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;cursor:pointer;min-width:80px;transition:all .2s;}
.mode-card:active{transform:scale(.95);background:var(--ocean-mist);border-color:var(--ocean);}
.mode-card-icon{font-size:24px;}
.mode-card-label{font-size:10px;font-weight:700;color:var(--text-mid);white-space:nowrap;}

/* Live Now Strip */
.live-now-strip{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 18px;background:var(--bg-surface);margin:0 18px 12px;border-radius:10px;font-size:12px;}
.ln-item{display:flex;align-items:center;gap:5px;cursor:pointer;}
.ln-dot{width:6px;height:6px;border-radius:50%;background:#9E9E9E;}
.ln-dot.active{background:#4CAF50;animation:pulse 2s infinite;}
.ln-divider{color:var(--text-muted);}
.ln-text{color:var(--text-mid);}
.ln-text strong{color:var(--text);}

/* Google Places Integration */
.google-data-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px;color:var(--text-muted);}
.loading-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--ocean);border-radius:50%;animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

.google-photos-section{margin:16px 0;}
.google-photos-section .section-header{font-size:12px;font-weight:700;color:var(--text-mid);margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.google-photos-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;}
.google-photos-scroll::-webkit-scrollbar{display:none;}
.google-photo{width:140px;height:100px;object-fit:cover;border-radius:10px;cursor:pointer;flex-shrink:0;transition:transform .2s;}
.google-photo:active{transform:scale(.95);}

.street-view-section{margin:16px 0;}
.street-view-section .section-header{font-size:12px;font-weight:700;color:var(--text-mid);margin-bottom:10px;}
.street-view-container{display:block;position:relative;border-radius:12px;overflow:hidden;}
.street-view-img{width:100%;height:160px;object-fit:cover;display:block;}
.street-view-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.7));padding:12px;color:#fff;font-size:12px;font-weight:600;}

.google-rating-section{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg-surface);border-radius:10px;margin:16px 0;}
.google-rating{display:flex;align-items:center;gap:8px;}
.rating-stars{color:#FFB300;font-size:14px;letter-spacing:1px;}
.rating-value{font-weight:700;font-size:16px;color:var(--text);}
.rating-count{font-size:12px;color:var(--text-muted);}
.google-badge{font-size:10px;color:var(--ocean);font-weight:600;background:var(--ocean-mist);padding:4px 8px;border-radius:12px;}

/* Open/Closed Status Banner */
.open-status-banner{display:flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:10px;font-weight:700;font-size:13px;margin-bottom:12px;}
.open-status-banner.open{background:linear-gradient(135deg,#E8F5E9,#C8E6C9);color:#2E7D32;}
.open-status-banner.closed{background:linear-gradient(135deg,#FFEBEE,#FFCDD2);color:#C62828;}

/* Features/Amenities Badges */
.features-section{margin-bottom:12px;}
.features-grid{display:flex;flex-wrap:wrap;gap:6px;}
.feature-badge{display:inline-flex;align-items:center;padding:5px 10px;background:var(--bg-surface);border-radius:16px;font-size:11px;color:var(--text-mid);white-space:nowrap;}

/* Hours Section */
.hours-section{margin:12px 0;background:var(--bg-surface);border-radius:12px;overflow:hidden;}
.hours-today{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;cursor:pointer;font-size:13px;color:var(--text);}
.hours-today:hover{background:rgba(0,0,0,.03);}
.hours-expand-icon{font-size:10px;color:var(--text-muted);transition:transform .2s;}
.hours-full{padding:0 14px 12px;}
.hours-row{padding:6px 0;font-size:12px;color:var(--text-mid);border-bottom:1px solid var(--border);}
.hours-row:last-child{border-bottom:none;}
.hours-row.today{font-weight:700;color:var(--ocean);}

/* Google Reviews Section */
.google-reviews-section{margin:16px 0;}
.google-reviews-section .section-header{font-size:12px;font-weight:700;color:var(--text-mid);margin-bottom:12px;}
.reviews-summary{display:flex;align-items:center;gap:16px;margin-bottom:12px;padding:12px;background:var(--bg-surface);border-radius:12px;}
.reviews-rating-big{font-size:36px;font-weight:800;color:var(--text);}
.reviews-meta{}
.rating-stars-big{color:#FFB300;font-size:18px;letter-spacing:2px;}
.reviews-count{font-size:12px;color:var(--text-muted);margin-top:2px;}
.reviews-list{display:flex;flex-direction:column;gap:10px;}
.review-card{padding:12px;background:var(--bg-surface);border-radius:12px;}
.review-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.review-author-photo{width:32px;height:32px;border-radius:50%;object-fit:cover;}
.review-author-avatar{width:32px;height:32px;border-radius:50%;background:var(--ocean);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;}
.review-author-info{}
.review-author-name{font-size:13px;font-weight:600;color:var(--text);}
.review-meta{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:6px;}
.review-stars{color:#FFB300;}
.review-text{font-size:13px;color:var(--text-mid);line-height:1.5;}
.view-all-reviews-btn{display:block;text-align:center;padding:10px;margin-top:10px;background:var(--ocean-mist);color:var(--ocean);border-radius:10px;text-decoration:none;font-size:13px;font-weight:600;transition:all .2s;}
.view-all-reviews-btn:hover{background:var(--ocean);color:#fff;}

/* Google Summary */
.google-summary{padding:12px;background:var(--bg-surface);border-radius:10px;font-size:13px;color:var(--text-mid);line-height:1.5;margin-top:12px;}

/* Discover Section on Home */
.discover-section{margin:0 18px 20px;}
.discover-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.discover-title{font-weight:700;font-size:15px;color:var(--text);display:flex;align-items:center;gap:8px;}
.discover-subtitle{font-size:12px;color:var(--text-muted);}
.discover-scroll{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;}
.discover-scroll::-webkit-scrollbar{display:none;}
.discover-card{flex-shrink:0;width:160px;border-radius:14px;overflow:hidden;background:var(--bg-card);box-shadow:var(--shadow);cursor:pointer;transition:transform .2s;}
.discover-card:active{transform:scale(.97);}
.discover-card-photo{width:100%;height:100px;background:var(--bg-surface);background-size:cover;background-position:center;overflow:hidden;}
.discover-card-info{padding:10px 12px;}
.discover-card-name{font-weight:600;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.discover-card-meta{font-size:11px;color:var(--text-muted);margin-top:4px;display:flex;align-items:center;gap:6px;}
.discover-card-rating{color:#FFB300;}
.hidden-gem-badge{position:absolute;top:8px;right:8px;background:rgba(255,255,255,.95);padding:3px 8px;border-radius:10px;font-size:9px;font-weight:700;color:#FF6F00;}

/* Open Now Button */
.open-now-filter{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-card);border:1.5px solid var(--ocean);border-radius:20px;font-size:12px;font-weight:600;color:var(--ocean);cursor:pointer;transition:all .2s;}
.open-now-filter.active{background:var(--ocean);color:#fff;}
.open-now-filter:hover{transform:scale(1.02);}

/* Discover Categories */
.discover-categories{display:flex;gap:8px;margin-top:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;}
.discover-categories::-webkit-scrollbar{display:none;}
.discover-cat-btn{flex-shrink:0;padding:8px 14px;border:1.5px solid var(--border);border-radius:20px;background:var(--bg-card);font-size:12px;font-weight:600;color:var(--text-mid);cursor:pointer;transition:all .2s;}
.discover-cat-btn:hover{border-color:var(--ocean);}
.discover-cat-btn.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.price-filter-row{display:flex;gap:6px;margin-top:10px;}
.price-filter-btn{padding:6px 12px;border:1.5px solid var(--border);border-radius:16px;background:var(--bg-card);font-size:11px;font-weight:700;color:var(--text-mid);cursor:pointer;transition:all .2s;}
.price-filter-btn:hover{border-color:var(--ocean);}
.price-filter-btn.active{background:var(--coral);color:#fff;border-color:var(--coral);}

/* Skeleton loading */
.discover-card.skeleton{opacity:.6;pointer-events:none;}
.discover-card.skeleton .discover-card-photo{animation:pulse 1.5s infinite;}
@keyframes pulse{0%,100%{opacity:.6;}50%{opacity:.3;}}

/* Area Score Card */
.area-score-card{margin:0 18px 16px;padding:14px 16px;background:linear-gradient(135deg,var(--bg-card) 0%,var(--ocean-mist) 100%);border-radius:16px;box-shadow:var(--shadow);cursor:pointer;transition:transform .2s;}
.area-score-card:active{transform:scale(.98);}
.area-score-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.area-score-title{font-weight:700;font-size:14px;color:var(--text);}
.area-score-badge{background:var(--ocean);color:#fff;padding:4px 12px;border-radius:12px;font-weight:800;font-size:14px;}
.area-score-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.score-bar-item{display:flex;flex-direction:column;align-items:center;gap:4px;}
.score-bar-label{font-size:16px;}
.score-bar-track{width:100%;height:6px;background:rgba(0,0,0,.1);border-radius:3px;overflow:hidden;}
.score-bar-fill{height:100%;background:var(--ocean);border-radius:3px;transition:width .5s ease-out;}
.score-bar-fill[data-cat="dining"]{background:linear-gradient(90deg,#FF6B6B,#FF8E53);}
.score-bar-fill[data-cat="nightlife"]{background:linear-gradient(90deg,#667eea,#764ba2);}
.score-bar-fill[data-cat="coffee"]{background:linear-gradient(90deg,#8B4513,#D2691E);}
.score-bar-fill[data-cat="seafood"]{background:linear-gradient(90deg,#0077B6,#00B4D8);}
.area-score-footer{font-size:11px;color:var(--text-muted);text-align:center;margin-top:10px;}

/* Area Insights Panel */
.area-insights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;}
.area-insight-card{padding:14px;background:var(--bg-surface);border-radius:12px;text-align:center;}
.area-insight-icon{font-size:24px;margin-bottom:6px;}
.area-insight-count{font-size:22px;font-weight:800;color:var(--text);}
.area-insight-label{font-size:11px;color:var(--text-muted);}
.area-insight-score{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;}
.area-insight-score.high{background:#E8F5E9;color:#2E7D32;}
.area-insight-score.medium{background:#FFF3E0;color:#EF6C00;}
.area-insight-score.low{background:#FFEBEE;color:#C62828;}
.hotspot-list{margin-top:16px;}
.hotspot-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg-surface);border-radius:10px;margin-bottom:8px;}
.hotspot-name{font-weight:600;font-size:13px;color:var(--text);}
.hotspot-count{font-size:12px;color:var(--text-muted);}
.hotspot-bar{flex:1;height:8px;background:rgba(0,0,0,.1);border-radius:4px;margin:0 12px;overflow:hidden;}
.hotspot-bar-fill{height:100%;background:linear-gradient(90deg,var(--ocean),var(--coral));border-radius:4px;}

/* Photo Viewer Overlay */
.photo-viewer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.95);z-index:var(--z-fullscreen);display:flex;flex-direction:column;opacity:0;transition:opacity .3s;}
.photo-viewer-overlay.active{opacity:1;}
.photo-viewer-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;color:#fff;}
.photo-viewer-title{font-weight:700;font-size:16px;}
.photo-viewer-close{font-size:24px;cursor:pointer;padding:8px;}
.photo-viewer-main{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:0 50px;}
.photo-viewer-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;}
.photo-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.2);border:none;color:#fff;font-size:32px;width:44px;height:44px;border-radius:50%;cursor:pointer;}
.photo-nav.prev{left:10px;}
.photo-nav.next{right:10px;}
.photo-viewer-counter{text-align:center;padding:12px;color:#fff;font-size:13px;display:flex;justify-content:center;gap:20px;}
.photo-source{color:rgba(255,255,255,.6);}
.photo-viewer-thumbs{display:flex;justify-content:center;gap:8px;padding:12px 20px 20px;overflow-x:auto;}
.photo-viewer-thumbs .thumb{width:50px;height:50px;object-fit:cover;border-radius:6px;opacity:.5;cursor:pointer;transition:opacity .2s;}
.photo-viewer-thumbs .thumb.active{opacity:1;box-shadow:0 0 0 2px #fff;}

/* Data Freshness Notice */
.data-freshness-notice{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;margin-top:16px;font-size:11px;color:var(--text-muted);background:var(--bg-surface);border-radius:8px;}
.data-freshness-notice.verified{color:var(--ocean);background:var(--ocean-mist);}

/* Photo Placeholder */
.biz-detail-photo-placeholder{height:200px;background:var(--bg-surface);border-radius:16px;display:flex;align-items:center;justify-content:center;}

/* ══════════════════════════════════════════════════════════════ */
/* AUTHENTICATION MODAL */
/* ══════════════════════════════════════════════════════════════ */
.auth-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .3s;}
.auth-modal-overlay.active{opacity:1;}
.auth-modal{background:var(--bg-card);border-radius:20px;width:100%;max-width:400px;max-height:90vh;overflow:hidden;transform:translateY(20px);transition:transform .3s;box-shadow:var(--shadow-lg);}
.auth-modal-overlay.active .auth-modal{transform:translateY(0);}
.auth-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);}
.auth-tabs{display:flex;gap:8px;}
.auth-tab{padding:8px 16px;border:none;background:transparent;color:var(--text-muted);font-size:14px;font-weight:600;cursor:pointer;border-radius:8px;transition:all .2s;}
.auth-tab.active{background:var(--ocean);color:#fff;}
.auth-close{width:32px;height:32px;border:none;background:var(--bg-surface);border-radius:50%;cursor:pointer;font-size:16px;color:var(--text-muted);transition:all .2s;}
.auth-close:hover{background:var(--coral);color:#fff;}
.auth-body{padding:20px;}
.auth-google-btn{width:100%;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;font-weight:600;color:var(--text);transition:all .2s;}
.auth-google-btn:hover{background:var(--bg-surface);border-color:var(--ocean);}
.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-muted);font-size:12px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.auth-form{display:none;}
.auth-form.active{display:block;}
.auth-input{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--bg-surface);color:var(--text);font-size:14px;margin-bottom:12px;transition:all .2s;box-sizing:border-box;}
.auth-input:focus{outline:none;border-color:var(--ocean);box-shadow:0 0 0 3px rgba(0,150,199,.15);}
.auth-pw-wrap{position:relative;margin-bottom:12px;}
.auth-pw-wrap .auth-input{margin-bottom:0;padding-right:46px;}
.auth-pw-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-muted);padding:4px;line-height:1;}
.auth-submit-btn{width:100%;padding:14px;border:none;border-radius:12px;background:var(--ocean);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;}
.auth-submit-btn:hover{background:var(--ocean-mid);}
.auth-forgot-btn{width:100%;padding:10px;border:none;background:transparent;color:var(--ocean);font-size:13px;cursor:pointer;margin-top:8px;}
.auth-message{padding:12px;border-radius:10px;margin-top:12px;font-size:13px;text-align:center;display:none;}
.auth-message:not(:empty){display:block;}
.auth-message.error{background:#FFEBEE;color:#C62828;}
.auth-message.success{background:#E8F5E9;color:#2E7D32;}
.auth-footer{padding:16px 20px;border-top:1px solid var(--border);text-align:center;}
.auth-footer p{font-size:11px;color:var(--text-muted);}

/* User Button (header) */
.auth-login-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--ocean);color:#fff;border:none;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;}
.auth-login-btn:hover{background:var(--ocean-mid);}
.auth-user-btn{display:none;align-items:center;gap:8px;padding:6px 12px 6px 6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;cursor:pointer;transition:all .2s;}
.auth-user-btn:hover{border-color:var(--ocean);}
.auth-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--ocean);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background-size:cover;background-position:center;}
.auth-user-name{font-size:12px;font-weight:600;color:var(--text);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ══════════════════════════════════════════════════════════════ */
/* LIKE BUTTONS */
/* ══════════════════════════════════════════════════════════════ */
.like-btn{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.9);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10;}
.like-btn:hover{transform:scale(1.1);}
.like-btn:active{transform:scale(.95);}
.like-btn.liked{background:#FFEBEE;}
.like-btn.liked .like-icon{color:#E53935;}
.like-icon{transition:transform .2s;}
.like-btn.liked .like-icon{animation:likeHeart .4s ease-out;}
@keyframes likeHeart{0%{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(.9)}75%{transform:scale(1.1)}100%{transform:scale(1)}}

/* Inline like button (for cards) */
.like-btn-inline{padding:6px 12px;border-radius:16px;background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-mid);transition:all .2s;}
.like-btn-inline:hover{border-color:var(--coral);color:var(--coral);}
.like-btn-inline.liked{background:#FFEBEE;border-color:#FFCDD2;color:#E53935;}

/* ══════════════════════════════════════════════════════════════ */
/* TRENDING & POPULAR SECTIONS */
/* ══════════════════════════════════════════════════════════════ */
.trending-section{margin:0 18px 20px;padding:16px;background:linear-gradient(135deg,#FFF3E0,#FFE0B2);border-radius:16px;}
.trending-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.trending-icon{font-size:20px;}
.trending-title{font-weight:700;font-size:15px;color:#E65100;}
.trending-subtitle{font-size:11px;color:#BF360C;margin-left:auto;}
.trending-list{display:flex;flex-direction:column;gap:8px;}
.trending-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.8);border-radius:12px;cursor:pointer;transition:all .2s;}
.trending-item:hover{background:#fff;transform:translateX(4px);}
.trending-rank{width:24px;height:24px;border-radius:50%;background:var(--sand);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.trending-rank.top{background:#FF6F00;}
.trending-name{flex:1;font-weight:600;font-size:13px;color:var(--text);}
.trending-count{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:3px;}

.popular-section{margin:0 18px 20px;padding:16px;background:linear-gradient(135deg,#E3F2FD,#BBDEFB);border-radius:16px;}
.popular-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.popular-title{font-weight:700;font-size:15px;color:#1565C0;}
.popular-subtitle{font-size:11px;color:#0D47A1;margin-left:auto;}
.popular-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;}
.popular-scroll::-webkit-scrollbar{display:none;}
.popular-card{flex-shrink:0;width:120px;padding:12px;background:rgba(255,255,255,.9);border-radius:12px;text-align:center;cursor:pointer;transition:all .2s;}
.popular-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1);}
.popular-emoji{font-size:28px;margin-bottom:6px;}
.popular-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.popular-likes{font-size:10px;color:var(--text-muted);margin-top:4px;}

.recommend-section{margin:0 18px 20px;padding:16px;background:linear-gradient(135deg,#F3E5F5,#E1BEE7);border-radius:16px;}
.recommend-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.recommend-title{font-weight:700;font-size:15px;color:#7B1FA2;}
.recommend-reason{font-size:11px;color:#6A1B9A;margin-bottom:12px;}

/* Account Section */
.account-section-title{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;padding-left:4px;}
.account-profile-card{display:flex;align-items:center;gap:14px;padding:20px;background:linear-gradient(135deg,var(--ocean-mist),#E3F2FD);border-radius:16px;margin-bottom:20px;}
body.dark-mode .account-profile-card{background:linear-gradient(135deg,#1B3A4B,#152232);}
.account-avatar{width:60px;height:60px;border-radius:50%;background:var(--ocean);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;background-size:cover;background-position:center;flex-shrink:0;}
.account-name{font-weight:700;font-size:18px;color:var(--text);margin-bottom:2px;}
.account-email{font-size:12px;color:var(--text-mid);}
.account-badge{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:3px 8px;border-radius:10px;font-size:10px;font-weight:600;}
.account-badge.verified{background:#E8F5E9;color:#2E7D32;}
.account-badge.unverified{background:#FFF3E0;color:#E65100;}
body.dark-mode .account-badge.verified{background:rgba(46,196,182,.12);color:#5DD9CB;}
body.dark-mode .account-badge.unverified{background:rgba(255,152,0,.12);color:#FFB347;}
.settings-list{display:flex;flex-direction:column;gap:2px;margin-bottom:20px;}
.settings-item{display:flex;align-items:center;gap:12px;padding:14px 12px;background:var(--bg-surface);border-radius:12px;cursor:pointer;transition:all .2s;}
.settings-item:active{transform:scale(.98);background:var(--bg-card);}
.settings-icon{font-size:18px;flex-shrink:0;}
.settings-label{flex:1;font-weight:600;font-size:14px;color:var(--text);}
.settings-arrow{color:var(--text-muted);font-size:18px;}
.settings-item.danger{color:var(--coral);}
.settings-item.danger .settings-label{color:var(--coral);}

/* ══════════════════════════════════════════════════════════════ */
/* TIPS & REVIEWS */
/* ══════════════════════════════════════════════════════════════ */
.tips-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.tips-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.tips-title{font-weight:700;font-size:15px;color:var(--text);display:flex;align-items:center;gap:6px;}
.tips-count{font-size:12px;color:var(--text-muted);font-weight:400;}
.add-tip-btn{padding:6px 12px;border:1px solid var(--ocean);border-radius:16px;background:transparent;color:var(--ocean);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;}
.add-tip-btn:hover{background:var(--ocean);color:#fff;}
.tips-list{display:flex;flex-direction:column;gap:10px;}
.tip-card{padding:12px;background:var(--bg-surface);border-radius:12px;position:relative;}
.tip-card.pro-tip{background:linear-gradient(135deg,#E8F5E9,#C8E6C9);border-left:3px solid #4CAF50;}
.tip-card.must-try{background:linear-gradient(135deg,#FFF3E0,#FFE0B2);border-left:3px solid #FF9800;}
.tip-card.avoid{background:linear-gradient(135deg,#FFEBEE,#FFCDD2);border-left:3px solid #F44336;}
.tip-type-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;margin-bottom:6px;}
.tip-type-badge.pro-tip{background:#2E7D32;color:#fff;}
.tip-type-badge.must-try{background:#FF9800;color:#fff;}
.tip-type-badge.avoid{background:#F44336;color:#fff;}
.tip-text{font-size:14px;color:var(--text);line-height:1.5;margin-bottom:8px;}
.tip-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-muted);}
.tip-author{display:flex;align-items:center;gap:4px;}
.tip-author-avatar{width:18px;height:18px;border-radius:50%;background:var(--ocean);color:#fff;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;}
.tip-actions{display:flex;align-items:center;gap:8px;}
.tip-helpful-btn{padding:4px 10px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);cursor:pointer;font-size:11px;color:var(--text-mid);transition:all .2s;display:flex;align-items:center;gap:4px;}
.tip-helpful-btn:hover{border-color:var(--ocean);color:var(--ocean);}
.tip-helpful-btn.active{background:var(--ocean-mist);border-color:var(--ocean);color:var(--ocean);}
.tip-delete-btn{padding:4px 8px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;}
.tip-delete-btn:hover{color:var(--coral);}
.no-tips{text-align:center;padding:20px;color:var(--text-muted);font-size:13px;}
.no-tips-icon{font-size:32px;margin-bottom:8px;}

/* Add Tip Modal */
.add-tip-modal{padding:16px;}
.tip-type-select{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.tip-type-option{padding:8px 14px;border:1.5px solid var(--border);border-radius:20px;background:var(--bg-card);cursor:pointer;font-size:12px;font-weight:600;transition:all .2s;display:flex;align-items:center;gap:4px;}
.tip-type-option:hover{border-color:var(--ocean);}
.tip-type-option.selected{border-color:var(--ocean);background:var(--ocean-mist);color:var(--ocean);}
.tip-textarea{width:100%;min-height:80px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-surface);color:var(--text);font-size:14px;resize:none;font-family:inherit;}
.tip-textarea:focus{outline:none;border-color:var(--ocean);}
.tip-char-count{text-align:right;font-size:11px;color:var(--text-muted);margin-top:4px;}
.tip-char-count.warning{color:var(--coral);}
.submit-tip-btn{width:100%;padding:12px;border:none;border-radius:12px;background:var(--ocean);color:#fff;font-size:14px;font-weight:700;cursor:pointer;margin-top:12px;transition:all .2s;}
.submit-tip-btn:hover{background:var(--ocean-mid);}
.submit-tip-btn:disabled{background:var(--border);cursor:not-allowed;}

/* Recent Tips on Home */
.recent-tips-section{margin:0 18px 20px;padding:16px;background:linear-gradient(135deg,#FFFDE7,#FFF9C4);border-radius:16px;}
.recent-tips-title{font-weight:700;font-size:15px;color:#F57F17;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.recent-tip-item{padding:10px;background:rgba(255,255,255,.8);border-radius:10px;margin-bottom:8px;cursor:pointer;transition:all .2s;}
.recent-tip-item:hover{background:#fff;transform:translateX(4px);}
.recent-tip-item:last-child{margin-bottom:0;}
.recent-tip-place{font-size:11px;color:var(--text-muted);margin-bottom:2px;}
.recent-tip-text{font-size:13px;color:var(--text);line-height:1.4;}

/* Beach Cams */
.cam-grid{display:grid;grid-template-columns:1fr;gap:12px;}
.cam-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden;}
.cam-preview{position:relative;height:180px;background:#1a1a2e;}
.cam-preview iframe{width:100%;height:100%;border:none;}
.cam-preview img{width:100%;height:100%;object-fit:cover;}
.cam-live-badge{position:absolute;top:10px;left:10px;background:#EF5350;color:#fff;font-size:10px;font-weight:700;padding:4px 8px;border-radius:6px;display:flex;align-items:center;gap:4px;}
.cam-live-dot{width:6px;height:6px;background:#fff;border-radius:50%;animation:pulse 1.5s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.5;}}
.cam-info{padding:12px;display:flex;justify-content:space-between;align-items:center;}
.cam-name{font-weight:700;font-size:14px;}
.cam-location{font-size:12px;color:var(--text-muted);}
.cam-expand{padding:8px 12px;background:var(--ocean);color:#fff;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;}

.search-icon{font-size:16px;}
.search-placeholder{font-size:14px;color:var(--text-muted);}

/* Search Modal */
.search-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg);z-index:var(--z-overlay);transform:translateY(100%);transition:transform .3s ease;}
.search-modal.active{transform:translateY(0);}
.search-modal-header{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border);}
.search-modal-input{flex:1;font-size:16px;border:none;background:transparent;color:var(--text);outline:none;}
.search-modal-input::placeholder{color:var(--text-muted);}
.search-modal-close{font-size:24px;color:var(--text-muted);cursor:pointer;padding:4px;}
.search-results{padding:16px 18px;overflow-y:auto;max-height:calc(100vh - 70px);}
.search-section-title{font-size:11px;font-weight:700;color:var(--text-muted);margin:16px 0 8px;text-transform:uppercase;}
.search-result-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-surface);border-radius:12px;margin-bottom:8px;cursor:pointer;}
.search-result-item:active{background:var(--ocean-mist);}
.search-result-emoji{font-size:24px;width:40px;text-align:center;}
.search-result-info{flex:1;}
.search-result-name{font-size:14px;font-weight:700;color:var(--text);}
.search-result-meta{font-size:12px;color:var(--text-muted);}
.search-quick-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.search-quick-tag{padding:8px 14px;background:var(--bg-surface);border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;}

/* Beach Cams */
.beach-cams-strip{display:flex;align-items:center;gap:12px;margin:0 18px 16px;padding:14px 16px;background:linear-gradient(135deg,#E0F7FA,#B2EBF2);border:1.5px solid #00ACC1;border-radius:14px;cursor:pointer;transition:all .2s;}
.beach-cams-strip:active{transform:scale(.98);}
.bcs-icon{font-size:28px;}
.bcs-content{flex:1;}
.bcs-title{font-size:14px;font-weight:700;color:var(--text);}
.bcs-status{font-size:11px;color:var(--text-mid);}
.bcs-live{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#00897B;}
.bcs-live::before{content:'';width:6px;height:6px;background:#00E676;border-radius:50%;animation:pulse 1.5s infinite;}
.bcs-arrow{font-size:18px;color:var(--text-muted);}

/* Mode Row */
.mode-section{padding:0 18px 16px;}
.mode-title{font-size:12px;font-weight:700;color:var(--text-muted);margin-bottom:8px;}
.mode-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;}
.mode-row::-webkit-scrollbar{display:none;}
.mode-pill{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:25px;font-size:12px;font-weight:700;color:var(--text-mid);cursor:pointer;white-space:nowrap;transition:all .2s;}
.mode-pill:active{transform:scale(.95);background:var(--ocean-mist);color:var(--ocean);}
.mode-pill.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}

/* Safety Strip */
.safety-strip{display:flex;align-items:center;gap:12px;margin:0 18px 16px;padding:12px 16px;background:linear-gradient(135deg,#E8F5E9,#C8E6C9);border:1.5px solid #4CAF50;border-radius:12px;cursor:pointer;transition:all .2s;}
.safety-strip.warning{background:linear-gradient(135deg,#FFF8E1,#FFECB3);border-color:#FF9800;}
.safety-strip.danger{background:linear-gradient(135deg,#FFEBEE,#FFCDD2);border-color:#F44336;}
.safety-icon{font-size:24px;}
.safety-content{flex:1;}
.safety-title{font-size:13px;font-weight:700;color:var(--text);}
.safety-status{font-size:11px;color:var(--text-mid);}
.safety-arrow{font-size:18px;color:var(--text-muted);}

/* Beach Essentials */
.beach-essentials{margin:0 18px 16px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;}
.be-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px;}
.be-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.be-item{display:flex;flex-direction:column;align-items:center;padding:12px 8px;background:var(--bg-surface);border-radius:12px;cursor:pointer;transition:all .2s;}
.be-item:active{transform:scale(.95);background:var(--ocean-mist);}
.be-icon{font-size:24px;margin-bottom:4px;}
.be-label{font-size:11px;font-weight:600;color:var(--text-mid);text-align:center;}

/* Secrets Strip */
/* .secrets-strip retired — replaced by the Local Secret card (Mock D step 6). */

/* Parking & Traffic Card */
.parking-traffic-card{display:flex;align-items:center;justify-content:space-between;margin:0 18px 16px;padding:14px 16px;background:linear-gradient(135deg,#E3F2FD,#BBDEFB);border:1.5px solid #64B5F6;border-radius:14px;cursor:pointer;transition:all .2s;}
.parking-traffic-card:active{transform:scale(.98);}
.ptc-left{display:flex;align-items:center;gap:12px;}
.ptc-icon{font-size:28px;}
.ptc-info{display:flex;flex-direction:column;}
.ptc-title{font-size:14px;font-weight:700;color:var(--text);}
.ptc-status{font-size:11px;color:var(--text-mid);}
.ptc-right{display:flex;align-items:center;gap:8px;}
.ptc-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:10px;background:rgba(76,175,80,.15);color:#2E7D32;}
.ptc-badge.moderate{background:rgba(255,193,7,.15);color:#F57F17;}
.ptc-badge.busy{background:rgba(244,67,54,.15);color:#C62828;}
.ptc-arrow{font-size:18px;color:var(--text-muted);}

/* Deals Strip */
.deals-strip{display:flex;align-items:center;gap:12px;margin:0 18px 16px;padding:14px 16px;background:linear-gradient(135deg,#FFF8E1,#FFECB3);border:1.5px solid #FFB300;border-radius:14px;cursor:pointer;transition:all .2s;}
.deals-strip:active{transform:scale(.98);}
.ds-badge{font-size:11px;font-weight:700;padding:5px 10px;border-radius:10px;background:#FF6D00;color:#fff;white-space:nowrap;}
.ds-content{flex:1;min-width:0;}
.ds-title{font-size:14px;font-weight:700;color:var(--text);}
.ds-preview{font-size:11px;color:var(--text-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ds-arrow{font-size:20px;color:var(--text-muted);}

/* Smart Alerts Toast */
.smart-alert{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(100px);background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;padding:14px 20px;border-radius:14px;display:flex;align-items:center;gap:12px;box-shadow:0 8px 32px rgba(0,0,0,.3);z-index:var(--z-panel);opacity:0;pointer-events:none;visibility:hidden;transition:all .4s cubic-bezier(.68,-.55,.27,1.55);max-width:calc(100% - 40px);}
.smart-alert.show{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto;visibility:visible;}
.smart-alert .sa-emoji{font-size:28px;}
.smart-alert .sa-body{flex:1;}
.smart-alert .sa-title{font-size:14px;font-weight:700;}
.smart-alert .sa-msg{font-size:12px;opacity:.85;margin-top:2px;}
.smart-alert .sa-action{background:var(--ocean);color:#fff;border:none;padding:8px 14px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;}
.smart-alert .sa-close{background:none;border:none;color:#fff;opacity:.6;font-size:18px;cursor:pointer;padding:4px;}

/* Loading placeholder */
.loading-placeholder{padding:20px;text-align:center;color:var(--text-muted);font-size:13px;}

/* ══════════════════════════════════════════════════════════════ */
/* LOADING & EMPTY STATES - Consistent patterns                  */
/* ══════════════════════════════════════════════════════════════ */
.section-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:32px 20px;color:var(--text-muted);font-size:13px;font-weight:600;}
.section-loading .loading-dot{width:8px;height:8px;border-radius:50%;background:var(--ocean-light);animation:dotB .6s ease-in-out infinite;}
.section-loading .loading-dot:nth-child(2){animation-delay:.15s;}
.section-loading .loading-dot:nth-child(3){animation-delay:.3s;}
.section-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;text-align:center;}
.section-empty-icon{font-size:36px;margin-bottom:10px;opacity:.7;}
.section-empty-title{font-weight:700;font-size:14px;color:var(--text-mid);margin-bottom:4px;}
.section-empty-sub{font-size:12px;color:var(--text-muted);line-height:1.5;max-width:240px;}
.section-empty-action{margin-top:12px;padding:10px 20px;background:var(--ocean);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;}
.section-empty-action:active{transform:scale(.97);}

/* ══════════════════════════════════════════════════════════════ */
/* CARD SYSTEM - 3 standardized card variants                    */
/* Compact (list rows), Standard (grid/scroll), Featured (hero)  */
/* ══════════════════════════════════════════════════════════════ */

/* Base card - shared properties */
.card-base{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.card-base:active{transform:scale(.97);box-shadow:0 1px 4px rgba(0,0,0,.08);}
body.dark-mode .card-base{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);box-shadow:0 2px 12px rgba(0,0,0,.25);}

/* Compact card - horizontal list row (businesses, search results) */
.card-compact{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;}
.card-compact .card-thumb{width:64px;height:64px;border-radius:12px;flex-shrink:0;overflow:hidden;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;font-size:28px;}
.card-compact .card-thumb img{width:100%;height:100%;object-fit:cover;}
.card-compact .card-body{flex:1;min-width:0;}
.card-compact .card-title{font-weight:700;font-size:15px;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.card-compact .card-desc{font-size:12px;color:var(--text-mid);line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.card-compact .card-meta{font-size:11px;color:var(--text-muted);margin-top:5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.card-compact .card-arrow{font-size:20px;color:var(--text-muted);flex-shrink:0;opacity:.6;}

/* Standard card - vertical, for scroll carousels */
.card-standard{flex-shrink:0;width:160px;border-radius:14px;overflow:hidden;}
.card-standard .card-img{height:100px;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;font-size:32px;overflow:hidden;position:relative;}
.card-standard .card-img img{width:100%;height:100%;object-fit:cover;}
.card-standard .card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(0,0,0,.15));}
.card-standard .card-content{padding:10px 12px;}
.card-standard .card-title{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.card-standard .card-sub{font-size:11px;color:var(--text-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.card-standard .card-badge{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.7);color:#fff;font-size:10px;font-weight:700;padding:4px 8px;border-radius:6px;}

/* Featured card - large hero with gradient overlay */
.card-featured{border-radius:16px;overflow:hidden;position:relative;}
.card-featured .card-hero{height:160px;background:linear-gradient(135deg,var(--ocean),var(--foam));display:flex;align-items:center;justify-content:center;font-size:48px;overflow:hidden;position:relative;}
.card-featured .card-hero img{width:100%;height:100%;object-fit:cover;}
.card-featured .card-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(0,0,0,.6));}
.card-featured .card-hero-content{position:absolute;bottom:14px;left:16px;right:16px;color:#fff;z-index:1;}
.card-featured .card-hero-title{font-family:'Paytone One',sans-serif;font-size:18px;text-shadow:0 2px 4px rgba(0,0,0,.3);}
.card-featured .card-hero-sub{font-size:12px;opacity:.9;margin-top:2px;}
.card-featured .card-footer{padding:12px 16px;display:flex;align-items:center;gap:8px;}

/* Status badges for cards */
.card-status{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:3px 8px;border-radius:8px;}
.card-status.open{background:#E8F5E9;color:#2E7D32;}
.card-status.closed{background:var(--coral-light);color:var(--coral);}
.card-status.live{background:rgba(244,132,95,.15);color:var(--coral);animation:livePulse 2s infinite;}
.card-status.deal{background:var(--sand-light);color:#E65100;}
body.dark-mode .card-status.open{background:rgba(46,196,182,.12);color:#5DD9CB;}
body.dark-mode .card-status.closed{background:rgba(255,123,95,.12);color:#FF9B85;}
body.dark-mode .card-status.deal{background:rgba(255,209,102,.1);color:#FFD166;}
/* Inline skeleton for card scrollers */
.skeleton-card-inline{flex-shrink:0;width:150px;height:140px;border-radius:14px;background:var(--bg-surface);border:1px solid var(--border);overflow:hidden;}
.skeleton-card-inline::after{content:'';display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent 25%,rgba(0,150,199,.04) 50%,transparent 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s ease-in-out infinite;}

/* Skeleton Loading States */
.skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,var(--bg-card) 50%,var(--bg-surface) 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s ease-in-out infinite;border-radius:8px;}
@keyframes skeletonShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-card{height:140px;border-radius:14px;margin-bottom:12px;}
.skeleton-row{height:16px;margin-bottom:8px;width:80%;}
.skeleton-row.short{width:50%;}
.skeleton-row.full{width:100%;}
.skeleton-avatar{width:48px;height:48px;border-radius:50%;}
.skeleton-img{width:100%;height:120px;border-radius:12px;margin-bottom:10px;}

/* Pull to Refresh */
.ptr-wrapper{position:relative;overflow:hidden;}
.ptr-indicator{position:absolute;top:-50px;left:50%;transform:translateX(-50%);width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:top .2s ease;z-index:10;}
.ptr-indicator.visible{top:10px;}
.ptr-spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--ocean);border-radius:50%;animation:ptrSpin 1s linear infinite;}
@keyframes ptrSpin{to{transform:rotate(360deg)}}
.ptr-arrow{font-size:24px;color:var(--ocean);transition:transform .3s ease;}
.ptr-arrow.flip{transform:rotate(180deg);}
.ptr-success{width:24px;height:24px;color:var(--foam-text);font-size:20px;font-weight:700;animation:ptrCheckIn .4s ease both;}
@keyframes ptrCheckIn{from{transform:scale(0) rotate(-45deg);opacity:0;}to{transform:scale(1) rotate(0);opacity:1;}}

/* Open Now Toggle */
.filter-toggle-row{display:flex;align-items:center;gap:12px;padding:0 18px 12px;}
.open-now-toggle{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:20px;cursor:pointer;transition:all .2s;}
.open-now-toggle.active{background:var(--foam);border-color:var(--ocean);color:var(--ocean);}
.open-now-toggle .toggle-dot{width:8px;height:8px;background:#4CAF50;border-radius:50%;animation:livePulse 2s infinite;}
.open-now-toggle span{font-size:13px;font-weight:600;color:var(--text-mid);}
.open-now-toggle.active span{color:var(--ocean);}

/* Time-Aware Section Header */
.time-aware-header{display:flex;align-items:center;gap:10px;padding:0 18px 12px;}
.tah-icon{font-size:24px;}
.tah-text{flex:1;}
.tah-title{font-family:'Paytone One',sans-serif;font-size:16px;color:var(--text);}
.tah-sub{font-size:12px;color:var(--text-mid);}

/* Happy Hour Banner */
.happy-hour-banner{margin:0 18px 16px;padding:14px 16px;background:linear-gradient(135deg,#FFD54F,#FFC107);border-radius:14px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .2s;}
.happy-hour-banner:active{transform:scale(.98);}
.hh-icon{font-size:28px;}
.hh-content{flex:1;}
.hh-title{font-weight:700;font-size:14px;color:#5D4037;}
.hh-sub{font-size:12px;color:#795548;}
.hh-badge{background:#fff;color:#F57C00;font-size:11px;font-weight:700;padding:4px 10px;border-radius:12px;}

/* Live Music Now Banner */
.live-music-banner{margin:0 18px 16px;padding:14px 16px;background:linear-gradient(135deg,#7B1FA2,#9C27B0);border-radius:14px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .2s;}
.live-music-banner:active{transform:scale(.98);}
.lm-icon{font-size:28px;}
.lm-content{flex:1;}
.lm-title{font-weight:700;font-size:14px;color:#fff;}
.lm-sub{font-size:12px;color:rgba(255,255,255,.8);}
.lm-badge{background:rgba(255,255,255,.2);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:12px;}

/* Live Music Section (Bandsintown) */
.lm-section{margin:0 0 20px;}
.lm-section .sc-header{padding:0 18px 10px;}
.lm-scroll{display:flex;gap:12px;overflow-x:auto;padding:0 18px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.lm-scroll::-webkit-scrollbar{display:none;}
.lm-card{flex:0 0 220px;scroll-snap-align:start;border-radius:14px;overflow:hidden;background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;transition:transform .2s;}
.lm-card:active{transform:scale(.97);}
.lm-card-img{height:140px;background-size:cover;background-position:center;position:relative;}
.lm-card-img::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(transparent,rgba(0,0,0,.6));}
.lm-card-time{position:absolute;bottom:8px;left:10px;z-index:1;font-size:11px;font-weight:700;color:#fff;background:rgba(123,31,162,.85);padding:3px 8px;border-radius:6px;}
.lm-card-rsvp{position:absolute;top:8px;right:10px;z-index:1;font-size:10px;font-weight:700;color:#fff;background:rgba(0,0,0,.5);padding:2px 7px;border-radius:6px;}
.lm-card-body{padding:10px 12px;}
.lm-card-artist{font-weight:700;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lm-card-venue{font-size:12px;color:var(--text-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.lm-card-link{font-size:11px;color:#7B1FA2;font-weight:600;margin-top:4px;display:block;}
[data-theme="dark"] .lm-card-link{color:#CE93D8;}

/* ═══════════════════════════════════════════════════ */
/* LEGACY STYLES (kept for compatibility) */
/* ═══════════════════════════════════════════════════ */
.greeting-band{padding:16px 18px 4px;}
.greet-time{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--foam-text);margin-bottom:3px;}
.greet-name{font-family:'Paytone One',sans-serif;font-size:22px;margin-bottom:2px;color:var(--text);}
.greet-sub{font-size:13px;color:var(--text-mid);}
.sync-badge{display:none;align-items:center;gap:4px;padding:3px 9px;border-radius:50px;background:linear-gradient(135deg,rgba(0,180,160,.12),rgba(0,150,199,.08));border:1px solid rgba(0,180,160,.2);font-size:11px;font-weight:700;color:var(--foam-text);margin-top:5px;}
.ai-banner{margin:12px 18px 0;background:linear-gradient(135deg,rgba(0,150,199,.06),rgba(46,196,182,.05));border:1.5px solid rgba(0,150,199,.15);border-radius:var(--r);padding:12px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;box-shadow:var(--shadow-sm);}
.ai-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--ocean-mist),var(--foam-light));display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.ai-lbl{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ocean-mid);margin-bottom:2px;}
.ai-msg{font-size:13px;line-height:1.4;color:var(--text);}
.section{margin-top:22px;}
.section-hdr{display:flex;align-items:center;justify-content:space-between;padding:0 18px;margin-bottom:11px;}
.section-hdr h3{font-family:'Paytone One',sans-serif;font-size:16px;color:var(--text);}
.section-hdr span{font-size:12px;color:var(--text-muted);}
.h-scroll{display:flex;gap:12px;overflow-x:auto;padding:3px 18px 6px;scrollbar-width:none;}
.h-scroll::-webkit-scrollbar{display:none;}

/* Cards */
.card{flex-shrink:0;width:210px;border-radius:var(--r);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;animation:cardIn .35s ease both;position:relative;}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.card:active{transform:scale(.97);}
.fav-btn{position:absolute;top:8px;right:8px;z-index:5;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:all .2s;}
.fav-btn.saved{background:rgba(244,132,95,.12);border-color:var(--coral);}
.card-thumb{height:112px;display:flex;align-items:center;justify-content:center;font-size:40px;position:relative;overflow:hidden;background-size:cover;background-position:center;}
.card-thumb.has-photo{background-color:#1B3A4B;background-size:cover;background-position:center;overflow:hidden;}
.card-thumb.has-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,rgba(0,0,0,.3) 100%);}
.a-teal{background:linear-gradient(135deg,#CBF3F0,#B2EBE0);}
.a-coral{background:linear-gradient(135deg,#FFE8E1,#FFDDD3);}
.a-sand{background:linear-gradient(135deg,#FFF8E1,#FFEDBB);}
.a-sky{background:linear-gradient(135deg,#DCFBFF,#B9F0FD);}
.a-sunset{background:linear-gradient(135deg,#FFF0DA,#FFE0B0);}
.a-purple{background:linear-gradient(135deg,#F0E8FF,#E0D0FF);}
.a-green{background:linear-gradient(135deg,#E8F8F0,#C8EDD8);}
.badge{position:absolute;top:9px;left:9px;padding:3px 9px;border-radius:50px;font-size:10px;font-weight:800;text-transform:uppercase;}
.b-live{background:var(--coral);color:#fff;}
.b-open{background:var(--foam);color:#fff;}
.b-soon{background:var(--sand);color:var(--text);}
.b-deal{background:var(--sunset);color:#fff;}
.match-chip{position:absolute;top:9px;right:36px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50px;padding:3px 7px;border:1px solid rgba(0,0,0,.06);font-size:11px;font-weight:700;color:var(--ocean);}
.card-body{padding:11px 13px 13px;}
.card-cat{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:3px;}
.card-title{font-family:'Paytone One',sans-serif;font-size:14px;line-height:1.3;margin-bottom:6px;color:var(--text);}
.card-meta{display:flex;gap:10px;font-size:11px;color:var(--text-mid);}
.card-full{display:flex;margin:0 18px 10px;border-radius:var(--r);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden;cursor:pointer;transition:transform .2s;animation:cardIn .35s ease both;}
.card-full:active{transform:scale(.98);}
.cf-thumb{width:88px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:36px;overflow:hidden;background-size:cover;background-position:center;}
.cf-body{flex:1;padding:12px 13px;}
.urgency-bar{height:3px;background:var(--bg-surface);border-radius:2px;margin-top:6px;overflow:hidden;}
.urgency-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--coral),var(--sand));}

/* Map */
#screen-map{display:none;flex-direction:column;padding-bottom:90px;}
#screen-map.active{display:flex;}
#map-container{flex:1;position:relative;min-height:calc(100vh - 90px);}
#google-map{width:100%;height:100%;min-height:calc(100vh - 90px);display:none;}
.map-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);}
.map-spinner{width:48px;height:48px;border-radius:50%;border:3px solid var(--border-mid);border-top-color:var(--ocean-mid);animation:spin .8s linear infinite;margin-bottom:14px;}
.map-loading p{font-size:14px;color:var(--text-mid);}
.map-loading small{font-size:12px;color:var(--text-muted);text-align:center;max-width:260px;margin-top:6px;}
.map-error{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);padding:30px;text-align:center;}
.map-error.show{display:flex;}
.map-error h3{font-family:'Paytone One',sans-serif;font-size:19px;color:var(--text);margin:12px 0 8px;}
.map-error p{font-size:13px;color:var(--text-mid);line-height:1.7;max-width:300px;}
.map-error code{background:var(--ocean-mist);border-radius:4px;padding:2px 7px;font-size:12px;color:var(--ocean);}
.map-overlay-header{position:absolute;top:0;left:0;right:0;z-index:10;padding:14px 18px;background:linear-gradient(180deg,rgba(240,249,255,.95) 0%,transparent 100%);pointer-events:none;}
.map-title{font-family:'Paytone One',sans-serif;font-size:17px;color:var(--ocean);}
.map-sub{font-size:12px;color:var(--text-mid);margin-top:2px;}
.map-fab{position:absolute;bottom:18px;right:18px;z-index:10;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--ocean-mid),var(--ocean-light));border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 4px 16px rgba(0,150,199,.4);transition:transform .2s;}
.map-fab:active{transform:scale(.93);}
.map-legend{position:absolute;bottom:18px;left:18px;z-index:10;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-mid);border-radius:var(--r-sm);padding:9px 12px;box-shadow:var(--shadow-md);}
.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--text-mid);margin-bottom:4px;}
.legend-item:last-child{margin-bottom:0;}
.map-filters{position:absolute;top:60px;left:0;right:0;z-index:10;display:flex;gap:6px;padding:0 12px;overflow-x:auto;scrollbar-width:none;}
.map-filters::-webkit-scrollbar{display:none;}
.map-filter-btn{flex-shrink:0;padding:8px 14px;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:20px;font-size:12px;font-weight:700;color:var(--text-mid);cursor:pointer;transition:all .2s;}
.map-filter-btn.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}

/* Stay */
#screen-stay{display:none;flex-direction:column;padding-bottom:90px;overflow-y:auto;}
#screen-stay.active{display:flex;}
#screen-ride{display:none;flex-direction:column;padding-bottom:90px;overflow-y:auto;}
#screen-ride.active{display:flex;}
#screen-explore{display:none;flex-direction:column;padding-bottom:100px;overflow-y:auto;}
#screen-explore.active{display:flex;}

/* NEW SCREENS */
#screen-eat,#screen-play,#screen-hotels,#screen-transport,#screen-emergency{display:none;flex-direction:column;padding-bottom:100px;overflow-y:auto;}
#screen-eat.active,#screen-play.active,#screen-hotels.active,#screen-transport.active,#screen-emergency.active{display:flex;}

/* EAT SCREEN */
.eat-featured{padding:12px 18px;display:flex;flex-direction:column;gap:10px;}
.eat-cta{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#FFF8E1,#FFECB3);border:1.5px solid #FFC107;border-radius:14px;cursor:pointer;transition:all .2s;}
.eat-cta:active{transform:scale(.98);}
.eat-cta.deals{background:linear-gradient(135deg,#FFEBEE,#FFCDD2);border-color:#EF5350;}
.eat-cta-icon{font-size:28px;}
.eat-cta-text{flex:1;}
.eat-cta-text strong{display:block;font-size:15px;color:var(--text);}
.eat-cta-text span{font-size:12px;color:var(--text-mid);}
.eat-cta-arrow{font-size:18px;color:var(--text-muted);}
.eat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 18px 16px;}
.eat-cat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;cursor:pointer;transition:all .2s;}
.eat-cat:active{transform:scale(.95);background:var(--ocean-mist);}
.eat-emoji{font-size:32px;}
.eat-label{font-size:12px;font-weight:700;color:var(--text-mid);}
.eat-section-title{font-family:'Paytone One',sans-serif;font-size:16px;color:var(--text);padding:8px 18px;}
.eat-popular{padding:0 18px;display:flex;flex-direction:column;gap:10px;}
.vibe-scroll{display:flex;gap:10px;padding:0 18px 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.vibe-scroll::-webkit-scrollbar{display:none;}
.vibe-chip{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-card);border:2px solid var(--border);border-radius:24px;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0;}
.vibe-chip:hover{border-color:var(--ocean);transform:translateY(-2px);}
.vibe-chip:active{transform:scale(.95);}
.vibe-chip-emoji{font-size:20px;}
.vibe-chip-name{font-size:13px;font-weight:700;color:var(--text);}
.vibe-chip-count{font-size:11px;color:var(--text-muted);background:var(--bg-surface);padding:2px 6px;border-radius:10px;}
.vibe-restaurant-card{display:flex;align-items:center;justify-content:space-between;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;cursor:pointer;transition:all .2s;}
.vibe-restaurant-card:hover{border-color:var(--ocean);transform:translateX(4px);}
.vrc-main{display:flex;align-items:center;gap:12px;flex:1;}
.vrc-emoji{font-size:28px;}
.vrc-info{flex:1;}
.vrc-name{font-weight:700;font-size:15px;color:var(--text);}
.vrc-meta{font-size:12px;color:var(--text-muted);margin-top:2px;}
.vrc-right{display:flex;align-items:center;gap:10px;}
.vrc-status{font-size:11px;font-weight:600;}
.vrc-status.open{color:#4CAF50;}
.vrc-status.closed{color:#EF5350;}
.vrc-arrow{font-size:20px;color:var(--text-muted);}

/* PLAY SCREEN */
/* 🔥 Proximity deal alert banner */
.deal-alert-banner{position:fixed;left:50%;bottom:88px;transform:translate(-50%,24px);width:calc(100% - 32px);max-width:440px;z-index:6000;display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;background:linear-gradient(135deg,#FF9248,#E0552B);box-shadow:0 14px 34px rgba(0,0,0,.45);opacity:0;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .3s ease;}
.deal-alert-banner.show{transform:translate(-50%,0);opacity:1;}
.deal-alert-banner .da-icon{font-size:26px;flex-shrink:0;line-height:1;}
.deal-alert-banner .da-body{flex:1;min-width:0;cursor:pointer;}
.deal-alert-banner .da-title{font-size:13px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.deal-alert-banner .da-text{font-size:12px;color:rgba(255,255,255,.94);margin-top:2px;line-height:1.3;}
.deal-alert-banner .da-close{flex-shrink:0;background:rgba(255,255,255,.22);border:none;color:#fff;width:28px;height:28px;border-radius:50%;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.deal-alert-banner .da-close:active{transform:scale(.92);}

/* ══════════════════════════════════════════════════════════
   UNIFIED CATEGORY CARDS — shared by Play / Shop / Ride
   Photo-forward: drop a .cc-photo layer in for a real image;
   the themed gradient + icon is the fallback shown otherwise.
   ══════════════════════════════════════════════════════════ */
.sec-head{font-family:'Paytone One',sans-serif;font-size:15px;color:var(--text);padding:20px 18px 12px;display:flex;align-items:center;gap:8px;}
.sec-head::before{content:"";width:5px;height:16px;border-radius:3px;background:var(--ocean);flex-shrink:0;}
.sec-head .sh-right{margin-left:auto;font-family:'Inter',system-ui,sans-serif;font-size:12px;font-weight:600;color:var(--muted,#7A9AAA);}
.cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:4px 18px 12px;}
.cat-card{position:relative;border-radius:18px;padding:15px 14px 14px;min-height:108px;cursor:pointer;overflow:hidden;border:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;justify-content:space-between;transition:transform .14s ease,box-shadow .14s ease;background:linear-gradient(140deg,var(--cc1,#1f3a52),var(--cc2,#152232));}
.cat-card:active{transform:scale(.97);}
.cat-card:hover{box-shadow:0 8px 22px rgba(0,0,0,.4);}
.cat-card .cc-glow{position:absolute;right:-18px;top:-18px;width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.10);z-index:1;pointer-events:none;}
.cat-card .cc-photo{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;}
.cat-card .cc-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.66));z-index:1;pointer-events:none;}
.cat-card .cc-icon,.cat-card .cc-body{position:relative;z-index:2;}
.cat-card .cc-icon{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;background:rgba(255,255,255,.18);}
.cat-card .cc-title{font-size:14.5px;font-weight:800;color:#fff;line-height:1.15;}
.cat-card .cc-body{margin-top:14px;}
.cat-card .cc-sub{font-size:11px;font-weight:600;color:rgba(255,255,255,.8);margin-top:2px;}
.cat-card.cc-wide{min-height:96px;}

.play-hero{margin:12px 18px;padding:18px;background:linear-gradient(135deg,#0096C7,#0077B6);border-radius:16px;display:flex;align-items:center;cursor:pointer;transition:all .2s;}
.play-hero:active{transform:scale(.98);}
.play-hero-content{flex:1;color:#fff;}
.play-hero-title{font-family:'Paytone One',sans-serif;font-size:18px;}
.play-hero-sub{font-size:13px;opacity:.9;margin-top:2px;}
.play-hero-arrow{font-size:24px;color:rgba(255,255,255,.8);}
.play-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 18px 16px;}
.play-cat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.play-cat:active{transform:scale(.95);background:var(--ocean-mist);}
.play-emoji{font-size:26px;}
.play-label{font-size:10px;font-weight:700;color:var(--text-mid);text-align:center;}
.play-section-title{font-family:'Paytone One',sans-serif;font-size:16px;color:var(--text);padding:8px 18px;}
.play-weather-tip{margin:0 18px 12px;padding:14px 16px;border-radius:14px;display:flex;align-items:center;gap:12px;}
.play-tip-emoji{font-size:28px;flex-shrink:0;}
.play-tip-body{color:#fff;}
.play-tip-title{font-family:'Paytone One',sans-serif;font-size:14px;}
.play-tip-sub{font-size:12px;opacity:.9;margin-top:2px;line-height:1.4;}
.play-tonight-row{display:flex;gap:10px;padding:0 18px 16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
.play-tonight-row::-webkit-scrollbar{display:none;}
.play-tonight-card{min-width:180px;max-width:200px;display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;scroll-snap-align:start;transition:transform .2s;flex-shrink:0;}
.play-tonight-card:active{transform:scale(.97);}
.play-tonight-emoji{font-size:22px;flex-shrink:0;}
.play-tonight-info{min-width:0;}
.play-tonight-name{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.play-tonight-when{font-size:11px;color:var(--sunset);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* STAY SCREEN */
.stay-search{display:flex;align-items:center;gap:10px;margin:12px 18px;padding:14px 18px;background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;cursor:pointer;}
.stay-search-icon{font-size:18px;}
.stay-search-text{font-size:14px;color:var(--text-muted);}
.stay-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:12px 18px;}
.stay-cat-card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:16px;padding:20px 16px;text-align:center;cursor:pointer;transition:all .2s;}
.stay-cat-card:active{transform:scale(.97);border-color:var(--ocean);}
.stay-cat-icon{font-size:36px;margin-bottom:8px;}
.stay-cat-name{font-size:15px;font-weight:700;color:var(--text);}
.stay-cat-desc{font-size:11px;color:var(--text-muted);margin-top:4px;}
.stay-section-title{font-family:'Paytone One',sans-serif;font-size:14px;color:var(--text);padding:16px 18px 10px;}
.stay-links{display:flex;flex-wrap:wrap;gap:10px;padding:0 18px;}
.stay-link-btn{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:45%;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text);font-size:13px;font-weight:600;transition:all .2s;}
.stay-link-btn:active{background:var(--ocean-mist);}
.stay-link-arrow{color:var(--ocean);}
.stay-agencies{padding:0 18px;display:flex;flex-direction:column;gap:10px;}
.stay-agency{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;transition:all .2s;}
.stay-agency:active{background:var(--ocean-mist);}
.stay-agency-name{font-size:14px;font-weight:700;color:var(--text);}
.stay-agency-desc{font-size:12px;color:var(--text-muted);margin-top:2px;}
.stay-tip{margin:16px 18px;padding:14px 16px;background:linear-gradient(135deg,#E3F2FD,#BBDEFB);border-radius:12px;font-size:13px;color:#1565C0;line-height:1.5;}

/* RIDE SCREEN */
.ride-status{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 18px 0;}
.ride-status:empty{display:none;}
.ride-status-pill{background:var(--bg-card);border:1.5px solid var(--border);border-radius:14px;padding:12px 14px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;min-width:0;}
.ride-status-pill:active{transform:scale(.98);}
.ride-status-pill .rsp-top{display:flex;align-items:center;justify-content:space-between;gap:6px;}
.ride-status-pill .rsp-label{font-size:11px;font-weight:700;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ride-status-pill .rsp-src{font-size:9px;font-weight:700;color:var(--ocean);background:var(--ocean-mist);padding:1px 6px;border-radius:8px;flex-shrink:0;}
.ride-status-pill .rsp-value{font-size:15px;font-weight:800;color:var(--text);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ride-status-pill .rsp-sub{font-size:10px;color:var(--text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rsp-traffic.light{border-color:#66BB6A;background:linear-gradient(135deg,#E8F5E9,#C8E6C9);}
.rsp-traffic.moderate{border-color:#FFC107;background:linear-gradient(135deg,#FFF8E1,#FFECB3);}
.rsp-traffic.busy{border-color:#EF5350;background:linear-gradient(135deg,#FFEBEE,#FFCDD2);}
.rsp-traffic.light .rsp-value,.rsp-traffic.moderate .rsp-value,.rsp-traffic.busy .rsp-value{color:#1b1b1b;}
body.dark-mode .rsp-traffic.light{background:linear-gradient(135deg,#13301c,#0f2417);}
body.dark-mode .rsp-traffic.moderate{background:linear-gradient(135deg,#332a0e,#241d08);}
body.dark-mode .rsp-traffic.busy{background:linear-gradient(135deg,#3a1416,#2a0e10);}
body.dark-mode .rsp-traffic.light .rsp-value,body.dark-mode .rsp-traffic.moderate .rsp-value,body.dark-mode .rsp-traffic.busy .rsp-value{color:#fff;}
.ride-urgent{display:flex;align-items:center;gap:14px;margin:12px 18px;padding:16px;background:linear-gradient(135deg,#FFF8E1,#FFECB3);border:2px solid #FFC107;border-radius:16px;}
.ride-urgent-icon{font-size:36px;}
.ride-urgent-text{flex:1;}
.ride-urgent-title{font-size:15px;font-weight:800;color:#7A4F1D;}
.ride-urgent-sub{font-size:12px;color:#9A6A36;margin-top:2px;}
.ride-urgent-btns{display:flex;gap:8px;}
.ride-btn-uber{background:#000;color:#fff;padding:10px 16px;border-radius:8px;font-size:13px;font-weight:700;text-decoration:none;}
.ride-btn-lyft{background:#FF00BF;color:#fff;padding:10px 16px;border-radius:8px;font-size:13px;font-weight:700;text-decoration:none;}
.ride-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:12px 18px;}
.ride-card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:16px;padding:16px;cursor:pointer;transition:all .2s;}
.ride-card:active{transform:scale(.97);border-color:var(--ocean);}
.ride-card-icon{font-size:32px;margin-bottom:8px;}
.ride-card-title{font-size:14px;font-weight:700;color:var(--text);}
.ride-card-desc{font-size:11px;color:var(--text-muted);margin-top:4px;}
.ride-card-tag{display:inline-block;font-size:10px;font-weight:700;color:var(--ocean);background:var(--ocean-mist);padding:4px 8px;border-radius:6px;margin-top:8px;}
.ride-section-title{font-family:'Paytone One',sans-serif;font-size:14px;color:var(--text);padding:16px 18px 10px;}
.ride-options{padding:0 18px;display:flex;flex-direction:column;gap:10px;}
.ride-option{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;text-decoration:none;transition:all .2s;}
.ride-option:active{background:var(--ocean-mist);}
.ride-option-logo{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;}
.ride-option-info{flex:1;}
.ride-option-name{font-size:15px;font-weight:700;color:var(--text);}
.ride-option-desc{font-size:12px;color:var(--text-muted);margin-top:2px;}
.ride-option-action{font-size:13px;font-weight:700;color:var(--ocean);}
.ride-rentals{display:flex;flex-wrap:wrap;gap:10px;padding:0 18px;}
.ride-rental{flex:1;min-width:45%;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;text-decoration:none;color:var(--text);font-size:13px;font-weight:600;text-align:center;transition:all .2s;}
.ride-rental:active{background:var(--ocean-mist);}
.ride-tip{margin:16px 18px;padding:14px 16px;background:linear-gradient(135deg,#E8F5E9,#C8E6C9);border-radius:12px;font-size:13px;color:#2E7D32;line-height:1.5;}
.play-areas{display:flex;flex-direction:column;gap:8px;padding:0 18px;}
.play-area{display:flex;align-items:center;gap:10px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;font-weight:600;color:var(--text);transition:all .2s;}
.play-area:active{transform:scale(.98);background:var(--ocean-mist);}
.play-area span{font-size:20px;}

/* SHOP SCREEN */
.shop-hero{position:relative;margin:0 18px 16px;border-radius:16px;overflow:hidden;cursor:pointer;display:flex;align-items:center;min-height:120px;background:linear-gradient(135deg,#1976D2,#0D47A1);transition:transform .2s;}
.shop-hero:active{transform:scale(.98);}
.shop-hero-bg{position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");}
.shop-hero-content{position:relative;padding:20px;flex:1;z-index:1;}
.shop-hero-badge{display:inline-block;font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.9);background:rgba(255,255,255,.15);padding:4px 10px;border-radius:20px;margin-bottom:8px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.shop-hero-title{font-family:'Paytone One',sans-serif;font-size:22px;color:#fff;line-height:1.2;}
.shop-hero-sub{font-size:13px;color:rgba(255,255,255,.8);margin-top:4px;}
.shop-hero-arrow{font-size:28px;color:rgba(255,255,255,.6);padding-right:16px;font-weight:300;}
.shop-picks-row{display:flex;gap:12px;padding:0 18px 18px;justify-content:space-between;}
.shop-pick{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;flex:1;transition:transform .2s;}
.shop-pick:active{transform:scale(.92);}
.shop-pick-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 4px 12px rgba(0,0,0,.15);}
.shop-pick span{font-size:11px;font-weight:700;color:var(--text-mid);}
.shop-section-title{font-family:'Paytone One',sans-serif;font-size:16px;color:var(--text);padding:8px 18px;}
.shop-deals-row{display:flex;gap:12px;padding:0 18px 16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
.shop-deals-row::-webkit-scrollbar{display:none;}
.shop-deal-card{min-width:220px;max-width:240px;border-radius:16px;overflow:hidden;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;scroll-snap-align:start;transition:transform .2s;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.shop-deal-card:active{transform:scale(.97);}
.shop-deal-photo{height:110px;background-size:cover;background-position:center;}
.shop-deal-body{padding:12px 14px;}
.shop-deal-name{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.shop-deal-text{font-size:12px;color:var(--sunset);font-weight:600;margin-top:4px;line-height:1.3;}
.shop-grid-v2{display:flex;flex-direction:column;gap:6px;padding:0 18px 16px;}
.shop-cat-v2{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.shop-cat-v2:active{transform:scale(.98);background:var(--bg-surface);}
.shop-cat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.12);}
.shop-cat-info{flex:1;min-width:0;}
.shop-cat-name{font-size:15px;font-weight:700;color:var(--text);}
.shop-cat-count{font-size:11px;color:var(--text-muted);margin-top:1px;}
.shop-cat-arrow{font-size:22px;color:var(--text-muted);font-weight:300;}
.shop-popular-v2{padding:0 18px 24px;display:flex;flex-direction:column;gap:8px;}
.shop-pop-card{display:flex;align-items:center;gap:14px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.shop-pop-card:active{transform:scale(.98);background:var(--bg-surface);}
.shop-pop-photo{width:56px;height:56px;border-radius:12px;background-size:cover;background-position:center;flex-shrink:0;}
.shop-pop-info{flex:1;min-width:0;}
.shop-pop-name{font-size:15px;font-weight:700;color:var(--text);}
.shop-pop-desc{font-size:12px;color:var(--text-mid);line-height:1.3;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.shop-pop-meta{font-size:11px;color:var(--text-muted);margin-top:3px;}
.shop-pop-arrow{font-size:22px;color:var(--text-muted);font-weight:300;flex-shrink:0;}

/* MORE SCREEN */
.more-grid{padding:0 18px 12px;display:flex;flex-direction:column;gap:8px;}
.more-section-title{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;padding:16px 18px 8px;}
.more-item{display:flex;align-items:center;gap:14px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.more-item.featured{background:linear-gradient(135deg,var(--bg-card),var(--ocean-mist));border-color:var(--ocean-light);}
.more-item.featured .more-icon{color:#fff;}
.more-item:active{transform:scale(.98);background:var(--bg-surface);}
.more-item.emergency{background:linear-gradient(135deg,#fff5f5,#ffe3e3);border-color:var(--coral);}
.more-icon{font-size:28px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:12px;}
.more-item.emergency .more-icon{background:var(--coral);color:#fff;}
.more-text{flex:1;}
.more-text strong{display:block;font-size:15px;color:var(--text);}
.more-text span{font-size:12px;color:var(--text-mid);}
.more-arrow{font-size:22px;color:var(--text-muted);}
.more-extras{display:flex;gap:10px;padding:16px 18px;flex-wrap:wrap;}
.more-extra{padding:12px 20px;background:linear-gradient(135deg,var(--ocean-mist),var(--foam-light));border-radius:24px;font-size:13px;font-weight:700;color:var(--ocean);cursor:pointer;transition:all .2s;}
.more-extra:active{transform:scale(.95);}

/* HOTELS SCREEN */
.back-btn{font-size:14px;color:var(--ocean);font-weight:700;cursor:pointer;margin-bottom:8px;}
.hotels-search{padding:12px 18px;}
.hotels-search input{width:100%;padding:14px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:15px;background:var(--bg-card);}
.hotels-list{padding:0 18px;display:flex;flex-direction:column;gap:10px;}
.hotel-card{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.hotel-card:active{transform:scale(.98);}
.hotel-info{flex:1;}
.hotel-name{font-weight:700;color:var(--text);font-size:15px;}
.hotel-loc{font-size:12px;color:var(--text-mid);margin-top:2px;}
.hotel-arrow{font-size:20px;color:var(--text-muted);}
.hotel-tip{padding:16px;background:#FFF8E1;border-radius:12px;font-size:13px;color:#5D4037;margin-top:8px;}

/* TRANSPORTATION SCREEN */
.transport-grid{padding:12px 18px;display:flex;flex-direction:column;gap:10px;}
.transport-card{display:flex;align-items:center;gap:14px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;}
.transport-card:active{transform:scale(.98);}
.transport-icon{font-size:28px;}
.transport-info{flex:1;}
.transport-name{font-weight:700;color:var(--text);font-size:15px;}
.transport-detail{font-size:12px;color:var(--text-mid);margin-top:2px;}
.transport-arrow{font-size:20px;color:var(--text-muted);}

/* BATHROOM LOCATIONS */
.bathroom-card{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;margin-bottom:8px;transition:all .2s;}
.bathroom-card:hover{border-color:var(--ocean);transform:translateX(4px);}
.bc-icon{font-size:24px;}
.bc-info{flex:1;min-width:0;}
.bc-name{font-weight:700;font-size:14px;color:var(--text);}
.bc-addr{font-size:12px;color:var(--text-mid);margin-top:2px;}
.bc-note{font-size:11px;color:var(--ocean);margin-top:3px;}
.bc-amenities{font-size:14px;display:flex;gap:4px;}
.bc-arrow{font-size:18px;color:var(--text-muted);}

/* EMERGENCY SCREEN */
.emergency-list{padding:12px 18px;display:flex;flex-direction:column;gap:10px;}
.emergency-row{display:flex;align-items:center;gap:14px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;text-decoration:none;transition:all .2s;}
.emergency-row:active{transform:scale(.98);}
.emergency-row.critical{background:linear-gradient(135deg,#FFEBEE,#FFCDD2);border-color:#EF5350;}
.emergency-icon-lg{font-size:32px;}
.emergency-info{flex:1;}
.emergency-name{font-weight:700;color:var(--text);font-size:15px;}
.emergency-sub{font-size:12px;color:var(--text-mid);margin-top:2px;}
.emergency-action{background:var(--ocean);color:#fff;padding:8px 16px;border-radius:20px;font-size:12px;font-weight:700;}
.emergency-row.critical .emergency-action{background:#EF5350;}
.emergency-tip{padding:16px;background:#E3F2FD;border-radius:12px;margin-top:8px;}
.emergency-tip strong{display:block;margin-bottom:8px;color:var(--text);}
.emergency-tip ul{margin:0;padding-left:20px;font-size:13px;color:var(--text-mid);line-height:1.8;}

.explore-section{padding:0 18px;margin-bottom:20px;}
.explore-title{font-family:'Paytone One',sans-serif;font-size:16px;color:var(--text);margin-bottom:12px;margin-top:8px;}
.explore-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.explore-item{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:14px 8px;text-align:center;cursor:pointer;transition:all .2s;}
.explore-item:active{transform:scale(.95);background:var(--bg-surface);}
.explore-icon{font-size:28px;margin-bottom:6px;}
.explore-label{font-size:11px;font-weight:700;color:var(--text-mid);}
.explore-count{font-size:9px;font-weight:800;color:var(--ocean);background:var(--ocean-mist);padding:2px 6px;border-radius:8px;margin-top:4px;}
.featured-list{display:flex;flex-direction:column;gap:10px;}
.featured-item{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:14px;cursor:pointer;transition:all .2s;}
.featured-item:active{transform:scale(.98);}
.featured-emoji{font-size:32px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--ocean-mist),var(--foam-light));border-radius:12px;flex-shrink:0;}
.featured-info{flex:1;min-width:0;}
.featured-name{font-weight:700;color:var(--text);font-size:15px;}
.featured-desc{font-size:12px;color:var(--text-mid);margin-top:2px;}
.featured-meta{font-size:11px;color:var(--text-muted);margin-top:4px;}
.screen-header{padding:20px 18px 14px;border-bottom:1px solid var(--border);}
.screen-header h2{font-family:'Paytone One',sans-serif;font-size:22px;color:var(--text);margin-bottom:3px;}
.screen-header p{font-size:13px;color:var(--text-mid);}
.screen-body{padding:18px;padding-bottom:100px;overflow-y:auto;}

/* ══════════════════════════════════════════════════════════════ */
/* UTILITY CLASSES - Replace common inline styles                */
/* ══════════════════════════════════════════════════════════════ */

/* Display */
.u-flex{display:flex;}.u-flex-col{display:flex;flex-direction:column;}.u-flex-center{display:flex;align-items:center;justify-content:center;}
.u-flex-between{display:flex;align-items:center;justify-content:space-between;}.u-flex-wrap{flex-wrap:wrap;}.u-flex-1{flex:1;min-width:0;}
.u-items-center{align-items:center;}.u-items-start{align-items:flex-start;}.u-justify-center{justify-content:center;}
.u-grid-2{display:grid;grid-template-columns:repeat(2,1fr);}.u-grid-3{display:grid;grid-template-columns:repeat(3,1fr);}.u-grid-4{display:grid;grid-template-columns:repeat(4,1fr);}
.u-block{display:block;}.u-hidden{display:none;}

/* Spacing - margin */
.u-mb-0{margin-bottom:0;}.u-mb-4{margin-bottom:4px;}.u-mb-8{margin-bottom:8px;}.u-mb-10{margin-bottom:10px;}.u-mb-12{margin-bottom:12px;}.u-mb-16{margin-bottom:16px;}.u-mb-20{margin-bottom:20px;}.u-mb-24{margin-bottom:24px;}
.u-mt-0{margin-top:0;}.u-mt-4{margin-top:4px;}.u-mt-8{margin-top:8px;}.u-mt-12{margin-top:12px;}.u-mt-16{margin-top:16px;}.u-mt-20{margin-top:20px;}

/* Spacing - padding */
.u-p-0{padding:0;}.u-p-8{padding:8px;}.u-p-10{padding:10px;}.u-p-12{padding:12px;}.u-p-14{padding:14px;}.u-p-16{padding:16px;}.u-p-20{padding:20px;}.u-p-24{padding:24px;}
.u-px-18{padding-left:18px;padding-right:18px;}

/* Spacing - gap */
.u-gap-4{gap:4px;}.u-gap-6{gap:6px;}.u-gap-8{gap:8px;}.u-gap-10{gap:10px;}.u-gap-12{gap:12px;}.u-gap-14{gap:14px;}.u-gap-16{gap:16px;}.u-gap-20{gap:20px;}

/* Typography - size */
.u-text-xs{font-size:10px;}.u-text-sm{font-size:11px;}.u-text-base{font-size:12px;}.u-text-md{font-size:13px;}.u-text-lg{font-size:14px;}.u-text-xl{font-size:16px;}.u-text-2xl{font-size:18px;}.u-text-3xl{font-size:20px;}.u-text-4xl{font-size:22px;}.u-text-5xl{font-size:24px;}.u-text-hero{font-size:48px;}

/* Typography - weight */
.u-normal{font-weight:400;}.u-semibold{font-weight:600;}.u-bold{font-weight:700;}.u-extrabold{font-weight:800;}

/* Typography - color */
.u-color-text{color:var(--text);}.u-color-mid{color:var(--text-mid);}.u-color-muted{color:var(--text-muted);}.u-color-ocean{color:var(--ocean);}.u-color-foam{color:var(--foam-text);}.u-color-coral{color:var(--coral);}.u-color-white{color:#fff;}

/* Typography - align */
.u-text-center{text-align:center;}.u-text-right{text-align:right;}.u-text-left{text-align:left;}

/* Typography - family */
.u-font-display{font-family:'Paytone One',sans-serif;}

/* Background */
.u-bg-surface{background:var(--bg-surface);}.u-bg-card{background:var(--bg-card);}.u-bg-ocean{background:var(--ocean);}.u-bg-white{background:#fff;}

/* Border radius */
.u-rounded-sm{border-radius:8px;}.u-rounded{border-radius:10px;}.u-rounded-md{border-radius:12px;}.u-rounded-lg{border-radius:14px;}.u-rounded-xl{border-radius:16px;}.u-rounded-full{border-radius:50px;}

/* Width */
.u-w-full{width:100%;}.u-max-w-full{max-width:100%;}

/* Cursor */
.u-pointer{cursor:pointer;}

/* Opacity */
.u-opacity-90{opacity:0.9;}.u-opacity-70{opacity:0.7;}.u-opacity-50{opacity:0.5;}

/* Overflow */
.u-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.u-overflow-hidden{overflow:hidden;}
.transport-row{display:flex;gap:10px;padding:14px 18px 0;}
.transport-btn{flex:1;padding:13px 8px;border-radius:var(--r-sm);border:1.5px solid var(--border-mid);background:#fff;cursor:pointer;text-align:center;transition:all .2s;text-decoration:none;display:block;box-shadow:var(--shadow-sm);}
.transport-btn:active{transform:scale(.97);background:var(--ocean-mist);}
.tb-icon{font-size:24px;margin-bottom:4px;display:block;}
.tb-label{font-family:'Paytone One',sans-serif;font-size:13px;display:block;margin-bottom:1px;color:var(--text);}
.tb-sub{font-size:11px;color:var(--text-muted);display:block;}
.taxi-row{margin:13px 18px 0;background:#fff;border:1px solid var(--border);border-radius:var(--r-sm);padding:13px 15px;box-shadow:var(--shadow-sm);}
.taxi-title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;}
.taxi-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);}
.taxi-item:last-child{border-bottom:none;}
.taxi-name{font-size:14px;font-weight:700;color:var(--text);}
.taxi-num{font-size:13px;color:var(--ocean-mid);font-weight:700;text-decoration:none;cursor:pointer;}
.hotel-card{display:flex;margin:11px 18px 0;border-radius:var(--r);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden;cursor:pointer;transition:transform .2s;animation:cardIn .35s ease both;}
.hotel-card:active{transform:scale(.98);}
.hotel-thumb{width:90px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:36px;background:linear-gradient(135deg,var(--sky-light),var(--ocean-mist));}
.hotel-body{flex:1;padding:12px 13px;}
.hotel-name{font-family:'Paytone One',sans-serif;font-size:14px;margin-bottom:3px;color:var(--text);}
.hotel-meta{font-size:12px;color:var(--text-mid);margin-bottom:5px;}
.hotel-price{font-family:'Paytone One',sans-serif;font-size:15px;color:var(--ocean);}
.hotel-price span{font-size:11px;color:var(--text-muted);font-family:'Nunito',sans-serif;}
.hotel-pills{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px;}
.hotel-pill{font-size:10px;font-weight:700;padding:3px 7px;border-radius:50px;background:var(--ocean-mist);color:var(--ocean);}

/* Favorites */
#screen-favs{display:none;flex-direction:column;padding:0 18px 100px;overflow-y:auto;}
#screen-favs.active{display:flex;}
.favs-header{padding:20px 0 14px;border-bottom:1px solid var(--border);margin-bottom:14px;}
.favs-header h2{font-family:'Paytone One',sans-serif;font-size:22px;color:var(--text);margin-bottom:3px;}
.favs-header p{font-size:13px;color:var(--text-mid);}
.favs-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;}
.favs-empty-icon{font-size:52px;margin-bottom:12px;}
.favs-empty h3{font-family:'Paytone One',sans-serif;font-size:18px;color:var(--text-mid);margin-bottom:7px;}
.favs-empty p{font-size:13px;color:var(--text-muted);line-height:1.6;}
.fav-list-item{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--border);cursor:pointer;}
.fav-list-item:last-child{border-bottom:none;}
.fav-icon{width:50px;height:50px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;}
.fav-info{flex:1;}
.fav-name{font-family:'Paytone One',sans-serif;font-size:14px;color:var(--text);margin-bottom:2px;}
.fav-meta{font-size:12px;color:var(--text-mid);}
.fav-remove{font-size:18px;color:var(--text-muted);padding:4px;cursor:pointer;}

/* Profile */
#screen-profile{display:none;flex-direction:column;padding:0 18px 100px;overflow-y:auto;}
#screen-profile.active{display:flex;}
.profile-hero{display:flex;flex-direction:column;align-items:center;padding:24px 0 20px;text-align:center;}
.profile-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--ocean-mid),var(--foam));display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;font-weight:800;font-family:'Nunito',sans-serif;margin-bottom:12px;box-shadow:0 4px 16px rgba(0,150,199,.3);}
.profile-name{font-family:'Paytone One',sans-serif;font-size:22px;color:var(--text);margin-bottom:3px;}
.profile-email{font-size:13px;color:var(--text-muted);margin-bottom:8px;}
.sync-status{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:50px;font-size:12px;font-weight:700;}
.sync-on{background:rgba(0,180,160,.1);border:1px solid rgba(0,180,160,.25);color:var(--foam-text);}
.sync-off{background:var(--bg-surface);border:1px solid var(--border-mid);color:var(--text-muted);}
.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 18px;}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 10px;text-align:center;box-shadow:var(--shadow-sm);}
.stat-num{font-family:'Paytone One',sans-serif;font-size:24px;color:var(--ocean-mid);margin-bottom:2px;}
.stat-lbl{font-size:11px;color:var(--text-muted);font-weight:700;}
.p-section{margin-bottom:20px;}
.p-title{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ocean-mid);margin-bottom:10px;}
.p-row{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--border);border-radius:var(--r-sm);padding:13px 15px;margin-bottom:8px;box-shadow:var(--shadow-sm);cursor:pointer;}
.p-label{font-size:14px;font-weight:700;color:var(--text);}
.p-value{font-size:13px;color:var(--text-mid);}
.btn-signout{width:100%;padding:14px;border-radius:var(--r-sm);border:1.5px solid rgba(244,132,95,.4);background:rgba(244,132,95,.07);color:var(--coral);font-family:'Paytone One',sans-serif;font-size:14px;cursor:pointer;margin-top:8px;}

/* Settings */
#screen-settings{display:none;flex-direction:column;padding:0 18px 100px;overflow-y:auto;}
#screen-settings.active{display:flex;}
.settings-header{padding:20px 0 14px;border-bottom:1px solid var(--border);margin-bottom:18px;}
.settings-header h2{font-family:'Paytone One',sans-serif;font-size:22px;color:var(--text);margin-bottom:3px;}
.settings-header p{font-size:13px;color:var(--text-mid);}
.s-section{margin-bottom:22px;}
.s-title{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ocean-mid);margin-bottom:10px;}
.s-row{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--border);border-radius:var(--r-sm);padding:13px 15px;margin-bottom:8px;box-shadow:var(--shadow-sm);}
.s-label{font-size:14px;font-weight:700;color:var(--text);}
.s-sub{font-size:12px;color:var(--text-mid);margin-top:1px;}
.toggle{width:44px;height:25px;border-radius:13px;background:#DDE7EE;position:relative;cursor:pointer;transition:background .3s;flex-shrink:0;}
.toggle.on{background:var(--foam-mid);}
.toggle::after{content:'';position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .3s;box-shadow:0 1px 4px rgba(0,0,0,.2);}
.toggle.on::after{transform:translateX(19px);}
input[type=range]{width:100%;-webkit-appearance:none;height:4px;background:var(--ocean-pale);border-radius:2px;outline:none;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--ocean-mid),var(--ocean-light));cursor:pointer;box-shadow:0 0 6px rgba(0,150,199,.4);}
.range-val{font-family:'Paytone One',sans-serif;font-size:14px;color:var(--ocean-mid);text-align:right;margin-bottom:4px;}
.price-pills{display:flex;gap:8px;}
.price-pill{flex:1;padding:10px 6px;border-radius:var(--r-sm);border:1.5px solid var(--border-mid);background:#fff;text-align:center;font-family:'Paytone One',sans-serif;font-size:12px;color:var(--text-muted);cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm);}
.price-pill.on{border-color:var(--sand);background:var(--sand-light);color:var(--text);}
.radius-pills{display:flex;gap:8px;flex-wrap:wrap;}
.radius-pill{padding:10px 16px;border-radius:20px;border:2px solid var(--border);background:var(--bg-card);font-size:13px;font-weight:700;color:var(--text-mid);cursor:pointer;transition:all .2s;}
.radius-pill.on{border-color:var(--ocean);background:var(--ocean-mist);color:var(--ocean);}
.radius-pill:active{transform:scale(.95);}
.trip-cat-btn{padding:8px 14px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg-card);font-size:12px;font-weight:600;color:var(--text-mid);cursor:pointer;transition:all .2s;}
.trip-cat-btn.on{border-color:var(--ocean);background:var(--ocean);color:#fff;}
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.mode-btn{padding:14px 10px;border-radius:var(--r-sm);border:1.5px solid var(--border-mid);background:#fff;text-align:center;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm);}
.mode-btn.on{border-color:var(--ocean-mid);background:var(--ocean-mist);}
.interests-grid{display:flex;flex-wrap:wrap;gap:8px;}
.interest-pill{padding:8px 14px;border-radius:20px;border:1.5px solid var(--border-mid);background:#fff;font-size:13px;font-weight:600;color:var(--text-mid);cursor:pointer;transition:all .2s;-webkit-appearance:none;appearance:none;outline:none;font-family:'Nunito',sans-serif;text-align:center;line-height:1.3;-webkit-tap-highlight-color:rgba(0,180,160,.2);touch-action:manipulation;}
.interest-pill.on{border-color:var(--foam);background:var(--foam-light);color:var(--foam-text);}
.interest-pill:active{transform:scale(.95);}
.mode-icon{font-size:22px;margin-bottom:4px;display:block;}
.mode-lbl{font-size:12px;font-weight:800;color:var(--text);}
.mode-sub{font-size:11px;color:var(--text-mid);}

/* Bottom Nav */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-sticky);background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border);box-shadow:0 -4px 20px rgba(0,50,100,.1);display:none;padding:8px 12px max(env(safe-area-inset-bottom),12px);}
body.dark-mode .bottom-nav{background:rgba(21,34,50,.98);border-color:rgba(72,202,228,.12);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);}

/* Dark Mode - Settings Panel */
body.dark-mode .price-pill{background:rgba(27,40,56,.6);border-color:rgba(72,202,228,.12);color:var(--text-mid);}
body.dark-mode .price-pill.on{background:var(--sand-light);border-color:var(--sand);color:var(--sand);}
body.dark-mode .mode-btn{background:rgba(27,40,56,.6);border-color:rgba(72,202,228,.12);box-shadow:none;}
body.dark-mode .mode-btn.on{background:var(--ocean-mist);border-color:var(--ocean-mid);}
body.dark-mode .mode-lbl{color:var(--text);}
body.dark-mode .mode-sub{color:var(--text-mid);}
body.dark-mode .interest-pill{background:rgba(27,40,56,.6);border-color:rgba(72,202,228,.12);color:var(--text-mid);}
body.dark-mode .interest-pill.on{background:var(--foam-light);border-color:var(--foam);color:var(--foam-text);}

/* Dark Mode - Profile Rows */
body.dark-mode .p-row{background:rgba(27,40,56,.5);border:1px solid rgba(72,202,228,.08);box-shadow:none;}

/* Dark Mode - Other Common Elements */
body.dark-mode .stat-card{background:rgba(27,40,56,.6);border:1px solid rgba(72,202,228,.08);box-shadow:none;}
body.dark-mode .transport-btn{background:rgba(27,40,56,.6);border-color:rgba(72,202,228,.12);box-shadow:none;}
body.dark-mode .taxi-row{background:rgba(27,40,56,.5);border:1px solid rgba(72,202,228,.08);box-shadow:none;}
body.dark-mode .card-full{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .fpill{background:rgba(27,40,56,.6);border-color:rgba(72,202,228,.12);color:var(--text-mid);box-shadow:none;}
body.dark-mode .fpill.on{background:var(--ocean-mist);border-color:var(--ocean);color:var(--ocean);}
body.dark-mode .area-pill{background:rgba(27,40,56,.6);border-color:rgba(72,202,228,.12);color:var(--text-mid);}
body.dark-mode .area-pill.on{background:var(--ocean-mist);border-color:var(--ocean);color:var(--ocean);}
body.dark-mode .outdoors-item{background:rgba(27,40,56,.6);border:1px solid rgba(72,202,228,.08);}
body.dark-mode .bd-item{background:rgba(27,40,56,.6);box-shadow:0 2px 8px rgba(0,0,0,.2);}
body.dark-mode .ds-card{background:rgba(27,40,56,.6);box-shadow:0 2px 8px rgba(0,0,0,.2);}
body.dark-mode .field{background:rgba(27,40,56,.8);border-color:rgba(72,202,228,.15);color:var(--text);}
body.dark-mode .field:focus{background:rgba(27,40,56,.9);border-color:var(--ocean);}
body.dark-mode .btn-google{background:rgba(27,40,56,.6);border-color:rgba(72,202,228,.15);color:var(--text);}
body.dark-mode .modal-sheet{background:linear-gradient(180deg,#1B2838,#0D1B2A);border-top:2px solid rgba(72,202,228,.15);}
body.dark-mode .btn-sheet-sec{background:rgba(27,40,56,.6);border-color:rgba(72,202,228,.12);color:var(--text-mid);}
body.dark-mode .notif-panel{background:#152232;border-left:1px solid rgba(72,202,228,.1);}
body.dark-mode .browser-overlay{background:#0D1B2A;}
body.dark-mode .browser-bar{background:#152232;border-color:rgba(72,202,228,.1);}
body.dark-mode .browser-blocked{background:#0D1B2A;}

/* Dark Mode - Events Tab */
body.dark-mode .event-hero{background:linear-gradient(145deg,#1E3040,#152232);}
body.dark-mode .event-countdown{background:rgba(72,202,228,.1);color:var(--ocean);}
body.dark-mode .event-list-item{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.08);}

/* Dark Mode - Shop Tab */
body.dark-mode .shop-category{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.08);}
body.dark-mode .deal-badge{background:linear-gradient(135deg,#FF7B5F,#FF9B85);color:#fff;}

/* Dark Mode - Ride/Stay Tab */
body.dark-mode .hotel-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.08);}
body.dark-mode .ride-option{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.08);}

/* Dark Mode - Map & Location */
body.dark-mode .map-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .location-pill{background:rgba(72,202,228,.1);color:var(--ocean);border:1px solid rgba(72,202,228,.15);}

/* Dark Mode - Profile & Auth */
body.dark-mode .profile-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .auth-modal{background:linear-gradient(180deg,#152232,#0D1B2A);}
body.dark-mode .profile-tag{background:rgba(72,202,228,.1);color:var(--text-mid);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .profile-tag.selected{background:var(--ocean);color:#0D1B2A;}

/* Dark Mode - Onboarding */
body.dark-mode .onboarding-screen{background:linear-gradient(180deg,#0D1B2A,#152232);}
body.dark-mode .onboarding-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}

/* Dark Mode - Activity Feed */
body.dark-mode .activity-item{background:rgba(27,40,56,.5);border-bottom:1px solid rgba(72,202,228,.06);}
body.dark-mode .activity-avatar{background:linear-gradient(135deg,var(--ocean),var(--foam));}

/* Dark Mode - AI & Chat Features */
body.dark-mode .ai-chat-bubble{background:linear-gradient(145deg,#1E3040,#152232);border:1px solid rgba(72,202,228,.15);}
body.dark-mode .ai-suggestion{background:rgba(72,202,228,.08);border:1px solid rgba(72,202,228,.12);}

/* Dark Mode - Admin Dashboard */
body.dark-mode .admin-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .admin-stat{background:rgba(72,202,228,.08);}

/* Dark Mode - Trip Planner */
body.dark-mode .trip-item{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.08);}
body.dark-mode .trip-mode-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .trip-mode-card.selected{border-color:var(--ocean);background:rgba(72,202,228,.1);}

/* Dark Mode - Scavenger Hunt */
body.dark-mode .hunt-card{background:linear-gradient(145deg,#1B2838,#152232);border:1px solid rgba(72,202,228,.1);}
body.dark-mode .hunt-task{background:rgba(27,40,56,.6);border:1px solid rgba(72,202,228,.08);}
body.dark-mode .hunt-task.completed{background:rgba(46,196,182,.1);border-color:rgba(46,196,182,.2);}

/* Dark Mode - Text Colors */
body.dark-mode h1,body.dark-mode h2,body.dark-mode h3,body.dark-mode h4{color:var(--text);}
body.dark-mode p{color:var(--text-mid);}
body.dark-mode .muted,body.dark-mode .text-muted{color:var(--text-muted);}
body.dark-mode a{color:var(--ocean);}
body.dark-mode .price{color:var(--sand);}
body.dark-mode .rating{color:var(--sand);}

/* QUICK ACTION FLOATING BAR */
.quick-action-bar{position:fixed;bottom:90px;left:18px;right:18px;z-index:var(--z-floating);background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 4px 24px rgba(0,0,0,.15);display:none;padding:12px 16px;transform:translateY(100px);opacity:0;transition:all .3s ease;}
.quick-action-bar.visible{transform:translateY(0);opacity:1;}
.quick-action-buttons{display:flex;justify-content:space-around;gap:8px;}
.qab-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 16px;border:none;background:var(--bg-surface);border-radius:12px;cursor:pointer;transition:all .2s;flex:1;}
.qab-btn:active{transform:scale(.95);background:var(--ocean-mist);}
.qab-btn-icon{font-size:20px;}
.qab-btn-label{font-size:11px;font-weight:600;color:var(--text);}
.qab-btn.primary{background:var(--ocean);}.qab-btn.primary .qab-btn-label{color:#fff;}

/* PHOTO CAROUSEL */
.photo-carousel{position:relative;margin:-16px -20px 16px;height:220px;overflow:hidden;}
.photo-carousel-track{display:flex;height:100%;transition:transform .3s ease;scroll-snap-type:x mandatory;overflow-x:auto;scrollbar-width:none;}
.photo-carousel-track::-webkit-scrollbar{display:none;}
.photo-carousel-slide{flex:0 0 100%;height:100%;scroll-snap-align:start;}
.photo-carousel-slide img{width:100%;height:100%;object-fit:cover;}
.photo-carousel-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px;}
.photo-carousel-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:all .2s;}
.photo-carousel-dot.active{background:#fff;width:20px;border-radius:4px;}
.photo-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.4);border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.photo-carousel-nav.prev{left:8px;}
.photo-carousel-nav.next{right:8px;}
.photo-carousel-count{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.6);color:#fff;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;}

/* CLEANER CARD LAYOUTS */
.clean-card{background:var(--bg-card);border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid var(--border);transition:all .2s;}
.clean-card:active{transform:scale(.98);box-shadow:0 1px 6px rgba(0,0,0,.1);}
.clean-card-photo{height:140px;background-size:cover;background-position:center;position:relative;}
.clean-card-gradient{position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(transparent,rgba(0,0,0,.6));}
.clean-card-badge{position:absolute;top:10px;left:10px;padding:4px 10px;border-radius:8px;font-size:10px;font-weight:700;text-transform:uppercase;}
.clean-card-badge.open{background:#2E7D32;color:#fff;}
.clean-card-badge.closed{background:#E53935;color:#fff;}
.clean-card-badge.deal{background:#FF9800;color:#fff;}
.clean-card-body{padding:14px;}
.clean-card-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.clean-card-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);}
.clean-card-rating{display:flex;align-items:center;gap:3px;color:var(--text);}
.clean-card-rating .star{color:#FFC107;}
.clean-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.clean-card-tag{padding:4px 8px;background:var(--bg-surface);border-radius:6px;font-size:10px;font-weight:600;color:var(--text-muted);}

/* INSIDER TIP STYLE */
.insider-tip{background:linear-gradient(135deg,#FFF8E1,#FFECB3);border:1px solid #FFD54F;border-radius:12px;padding:14px;margin-bottom:16px;}
.insider-tip-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.insider-tip-icon{font-size:18px;}
.insider-tip-label{font-size:11px;font-weight:700;color:#F57C00;text-transform:uppercase;}
.insider-tip-text{font-size:13px;color:#5D4037;line-height:1.5;}
.insider-tip-secret{font-size:12px;color:#E65100;font-style:italic;margin-top:8px;padding-top:8px;border-top:1px dashed #FFD54F;}
[data-theme="dark"] .insider-tip{background:linear-gradient(135deg,#3E2723,#4E342E);border-color:#6D4C41;}
[data-theme="dark"] .insider-tip-text{color:#FFCC80;}
[data-theme="dark"] .insider-tip-secret{color:#FFB74D;border-color:#6D4C41;}
[data-theme="dark"] .insider-tip-label{color:#FFB74D;}

/* MENU HIGHLIGHTS */
.menu-highlights{background:var(--bg-surface);border-radius:14px;padding:16px;margin-bottom:16px;}
.menu-highlight-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.menu-highlight-item{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border);}
.menu-highlight-item:last-child{border-bottom:none;padding-bottom:0;}
.menu-highlight-info{flex:1;}
.menu-highlight-name{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px;}
.menu-highlight-must{background:#2E7D32;color:#fff;font-size:9px;padding:2px 6px;border-radius:4px;font-weight:700;}
.menu-highlight-desc{font-size:11px;color:var(--text-muted);margin-top:2px;}
.menu-highlight-price{font-size:13px;font-weight:700;color:var(--ocean);}
.nav-items{display:flex;justify-content:center;gap:4px;max-width:480px;margin:0 auto;}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;cursor:pointer;transition:all .2s;position:relative;border-radius:14px;max-width:68px;min-width:48px;}
.nav-item:active{transform:scale(.95);}
.nav-item.active{background:linear-gradient(135deg,rgba(0,150,199,.12),rgba(46,196,182,.08));}
.nav-icon{font-size:24px;transition:transform .2s,color .2s;line-height:1;color:var(--text-muted);display:flex;align-items:center;justify-content:center;}
.nav-label{font-size:9px;font-weight:700;letter-spacing:.02em;color:var(--text-muted);text-align:center;}
.nav-item.active .nav-label{color:var(--ocean);font-weight:800;}
.nav-item.active .nav-icon{transform:scale(1.1);color:var(--ocean);}
.nav-badge{position:absolute;top:4px;right:calc(50% - 18px);background:var(--coral);color:#fff;font-size:10px;font-weight:800;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px;}
.nav-badge{position:absolute;top:3px;right:calc(50% - 18px);background:var(--coral);color:#fff;width:14px;height:14px;border-radius:50%;font-size:9px;font-weight:800;display:none;align-items:center;justify-content:center;border:2px solid #fff;}
.nav-badge.show{display:flex;}

/* Modal */
.modal-overlay{display:none;position:fixed;inset:0;z-index:var(--z-panel);background:rgba(0,50,80,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .18s ease;}
.modal-overlay.open{display:flex;align-items:flex-end;}
.modal-sheet{width:100%;max-height:91vh;overflow-y:auto;background:#fff;border-radius:22px 22px 0 0;border-top:2px solid var(--border-mid);padding:14px 20px 44px;animation:sheetUp .28s ease;box-shadow:0 -8px 40px rgba(0,100,150,.14);}
.sheet-handle{width:34px;height:4px;border-radius:2px;background:var(--ocean-pale);margin:0 auto 16px;}
.sheet-emoji{font-size:46px;text-align:center;margin-bottom:9px;}
.sheet-title{font-family:'Paytone One',sans-serif;font-size:21px;text-align:center;margin-bottom:3px;color:var(--text);}
.sheet-cat{text-align:center;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:13px;}
.sheet-pills{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-bottom:13px;}
.sheet-pill{padding:5px 11px;border-radius:50px;background:var(--ocean-mist);font-size:12px;font-weight:700;color:var(--ocean);}
.weather-pill{padding:5px 11px;border-radius:50px;font-size:12px;font-weight:700;background:var(--sand-light);color:var(--text);border:1px solid rgba(249,199,79,.3);}
.ai-blurb-block{background:linear-gradient(135deg,rgba(0,150,199,.05),rgba(46,196,182,.04));border:1.5px solid rgba(0,150,199,.14);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:13px;display:none;}
.ai-blurb-block.loaded{display:block;animation:fadeUp .4s ease;}
.ai-blurb-header{display:flex;align-items:center;gap:7px;margin-bottom:6px;}
.ai-blurb-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ocean-mid);}
.ai-hook-chip{margin-left:auto;padding:2px 8px;border-radius:50px;font-size:10px;font-weight:800;background:var(--ocean-mid);color:#fff;}
.ai-blurb-text{font-size:13.5px;line-height:1.6;color:var(--text);}
.ai-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-mid);margin-bottom:12px;}
.ai-dots span{animation:dotB .8s ease-in-out infinite;display:inline-block;}
.ai-dots span:nth-child(2){animation-delay:.15s}.ai-dots span:nth-child(3){animation-delay:.3s}
.match-block{background:var(--bg-surface);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:13px;border:1px solid var(--border);}
.match-lbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ocean-mid);margin-bottom:6px;}
.match-track{height:6px;background:var(--ocean-pale);border-radius:3px;overflow:hidden;margin-bottom:4px;}
.match-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--foam),var(--ocean-mid));transition:width 1s ease .2s;}
.match-reason{font-size:12px;color:var(--text-mid);}
.menu-section{margin-bottom:13px;}
.menu-title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sand);margin-bottom:9px;}
.menu-item{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--border);}
.menu-item:last-child{border-bottom:none;}
.menu-item-name{font-size:13px;font-weight:700;color:var(--text);}
.menu-item-price{font-size:13px;color:var(--ocean);font-weight:800;flex-shrink:0;margin-left:10px;}
.menu-item-desc{font-size:11px;color:var(--text-muted);margin-top:2px;}
.sheet-desc{font-size:14px;color:var(--text-mid);line-height:1.7;margin-bottom:16px;}
.sheet-actions{display:flex;gap:8px;flex-wrap:wrap;}
.btn-sheet-primary{flex:2;padding:14px;border-radius:var(--r-sm);border:none;background:linear-gradient(135deg,var(--ocean-mid),var(--ocean-light));color:#fff;font-family:'Paytone One',sans-serif;font-size:14px;cursor:pointer;box-shadow:0 3px 12px rgba(0,150,199,.3);min-width:100px;}
.btn-sheet-web{flex:1.2;padding:14px;border-radius:var(--r-sm);border:none;background:linear-gradient(135deg,var(--foam),var(--foam-mid));color:#fff;font-family:'Paytone One',sans-serif;font-size:13px;cursor:pointer;}
.btn-sheet-sec{flex:1;padding:14px;border-radius:var(--r-sm);border:1.5px solid var(--border-mid);background:#fff;color:var(--text-mid);font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;}
.btn-sheet-sec.saved-btn{border-color:var(--coral);color:var(--coral);}
.btn-sheet-alert{flex:1;padding:14px;border-radius:var(--r-sm);border:1.5px solid var(--sand);background:var(--sand-light);color:var(--text);font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;}
.btn-sheet-alert.alerted{border-color:var(--foam);background:var(--foam-light);color:var(--foam-text);}
.sheet-source{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.sheet-source a{color:var(--ocean);font-size:13px;font-weight:600;text-decoration:none;}

/* Browser */
.browser-overlay{display:none;position:fixed;inset:0;z-index:var(--z-overlay);flex-direction:column;background:#fff;}
.browser-overlay.open{display:flex;}
.browser-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:#fff;border-bottom:1px solid var(--border);box-shadow:0 1px 6px rgba(0,100,150,.07);}
.browser-close{width:34px;height:34px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-mid);display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;flex-shrink:0;color:var(--text);}
.browser-url{flex:1;background:var(--bg-surface);border:1px solid var(--border);border-radius:50px;padding:6px 14px;font-size:12px;font-weight:600;color:var(--text-mid);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.browser-open-btn{flex-shrink:0;padding:6px 12px;border-radius:50px;background:var(--ocean-mist);border:1px solid var(--border-mid);font-size:12px;font-weight:700;color:var(--ocean-mid);cursor:pointer;white-space:nowrap;}
.browser-frame{flex:1;border:none;width:100%;background:#fff;}
.browser-loading{position:absolute;top:0;left:0;right:0;height:3px;z-index:10;background:linear-gradient(90deg,var(--ocean-mid),var(--ocean-light),var(--foam));background-size:200% 100%;animation:loadBar 1.5s ease-in-out infinite;display:none;}
.browser-loading.show{display:block;}
.browser-blocked{display:none;position:absolute;inset:56px 0 0;flex-direction:column;align-items:center;justify-content:center;background:#fff;text-align:center;padding:30px;}
.browser-blocked.show{display:flex;}
.browser-blocked h3{font-family:'Paytone One',sans-serif;font-size:18px;color:var(--text);margin:12px 0 8px;}
.browser-blocked p{font-size:13px;color:var(--text-mid);line-height:1.7;max-width:280px;margin-bottom:18px;}
.btn-open-browser{padding:13px 24px;border-radius:var(--r-sm);border:none;background:linear-gradient(135deg,var(--ocean-mid),var(--ocean-light));color:#fff;font-family:'Paytone One',sans-serif;font-size:14px;cursor:pointer;}

/* Notifications */
.notif-overlay{position:fixed;inset:0;z-index:var(--z-overlay);display:none;background:rgba(0,50,80,.2);}
.notif-overlay.open{display:block;}
.notif-panel{position:fixed;top:0;right:0;bottom:0;width:min(340px,100vw);background:#fff;border-left:1px solid var(--border);box-shadow:-8px 0 32px rgba(0,100,150,.12);z-index:calc(var(--z-overlay) + 1);transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;}
.notif-panel.open{transform:translateX(0);}
.notif-panel-header{padding:52px 18px 14px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,var(--ocean-mist),var(--foam-light));}
.notif-panel-header h3{font-family:'Paytone One',sans-serif;font-size:19px;color:var(--text);margin-bottom:3px;}
.notif-panel-header p{font-size:13px;color:var(--text-mid);}
.notif-close{position:absolute;top:52px;right:18px;font-size:22px;cursor:pointer;color:var(--text-mid);}
.notif-list{flex:1;overflow-y:auto;padding:12px 18px;}
.notif-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);}
.notif-item:last-child{border-bottom:none;}
.notif-item-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.notif-item-title{font-size:13.5px;font-weight:700;color:var(--text);margin-bottom:2px;}
.notif-item-msg{font-size:12px;color:var(--text-mid);line-height:1.5;}
.notif-item-time{font-size:11px;color:var(--text-muted);margin-top:2px;}
.notif-enable-btn{margin:12px 18px 18px;padding:13px;border-radius:var(--r-sm);border:none;background:linear-gradient(135deg,var(--ocean-mid),var(--ocean-light));color:#fff;font-family:'Paytone One',sans-serif;font-size:14px;cursor:pointer;width:calc(100% - 36px);}

/* Toast */
.toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(14px);background:var(--text);border-radius:50px;padding:10px 20px;font-size:13px;font-weight:700;color:#fff;z-index:var(--z-toast);white-space:nowrap;opacity:0;transition:all .26s;pointer-events:none;box-shadow:0 4px 16px rgba(0,50,80,.2);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ══════════════════════════════════════════════════════════════ */
/* DARK MODE */
/* ══════════════════════════════════════════════════════════════ */
[data-theme="dark"]{
  --bg:#0d1117;--bg-card:#161b22;--bg-surface:#21262d;--bg-main:#0d1117;--bg-overlay:rgba(0,0,0,.8);
  --text:#f0f6fc;--text-mid:#8b949e;--text-muted:#6e7681;
  --border:#30363d;--border-light:#21262d;
  --ocean:#58a6ff;--ocean-light:#1f6feb;--ocean-mid:#388bfd;--ocean-mist:rgba(56,139,253,.15);
  --coral:#f97583;--coral-light:rgba(249,117,131,.2);
  --sand:#f0e68c;--sand-light:rgba(240,230,140,.15);
  --foam:#c9d1d9;--foam-light:#21262d;
  --shadow:0 8px 24px rgba(0,0,0,.4);--shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow-lg:0 16px 48px rgba(0,0,0,.5);
}
[data-theme="dark"] .app-header{background:linear-gradient(135deg,#161b22,#0d1117);border-color:#30363d;}
[data-theme="dark"] .weather-card{background:linear-gradient(145deg,#1f6feb,#388bfd);}
[data-theme="dark"] .beach-strip{background:#161b22;border-color:#30363d;}
[data-theme="dark"] .notif-panel{background:#161b22;border-color:#30363d;}
[data-theme="dark"] .panel{background:#161b22;}
[data-theme="dark"] .panel-header{background:linear-gradient(135deg,#21262d,#161b22);border-color:#30363d;}
[data-theme="dark"] .auth-modal{background:#161b22;}
[data-theme="dark"] .biz-detail-photo{filter:brightness(.9);}
[data-theme="dark"] .mode-card{background:#21262d;border-color:#30363d;}
[data-theme="dark"] .qt-icon{box-shadow:0 4px 12px rgba(0,0,0,.4);}
[data-theme="dark"] .discover-card{background:#161b22;}
[data-theme="dark"] .area-score-card{background:linear-gradient(135deg,#161b22,#21262d);}
[data-theme="dark"] input,[data-theme="dark"] textarea{background:#21262d;border-color:#30363d;color:#f0f6fc;}
[data-theme="dark"] .search-bar{background:#21262d;border-color:#30363d;}
[data-theme="dark"] .search-overlay{background:#0d1117;}
[data-theme="dark"] .search-header{background:#161b22;border-color:#30363d;}
[data-theme="dark"] .search-input-wrap{background:#21262d;border-color:#30363d;}
[data-theme="dark"] .search-input{color:#e6edf3;}
[data-theme="dark"] .search-body{background:#0d1117;}
[data-theme="dark"] .search-chip{background:#21262d;border-color:#30363d;color:#e6edf3;}
[data-theme="dark"] .search-cat{background:#21262d;border-color:#30363d;color:#e6edf3;}
[data-theme="dark"] .search-result{background:#161b22;border-color:#30363d;}
[data-theme="dark"] .search-result-name{color:#e6edf3;}
[data-theme="dark"] .search-result-icon{background:#21262d;}
[data-theme="dark"] .bottom-nav{background:linear-gradient(180deg,rgba(22,27,34,.95),#0d1117);border-color:#30363d;}

/* Dark mode toggle moved to Settings only */

/* ══════════════════════════════════════════════════════════════ */
/* LIVE GPS LOCATION TRACKING */
/* ══════════════════════════════════════════════════════════════ */
.location-indicator{position:fixed;top:106px;left:50%;transform:translateX(-50%);z-index:var(--z-sticky);display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--bg-card);border-radius:20px;box-shadow:var(--shadow-sm);font-size:12px;color:var(--text-mid);opacity:0;transition:opacity .3s;pointer-events:none;}
.location-indicator.active{opacity:1;pointer-events:auto;}
.location-indicator .pulse-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;animation:locationPulse 2s infinite;}
@keyframes locationPulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.3);}}
.location-indicator.error .pulse-dot{background:#ef4444;animation:none;}
.location-accuracy{font-size:10px;color:var(--text-muted);}

.near-me-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border-radius:10px;font-size:10px;font-weight:700;}
.walk-time{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:4px;}
.walk-time::before{content:'🚶';font-size:12px;}

/* ══════════════════════════════════════════════════════════════ */
/* AI SMART SEARCH */
/* ══════════════════════════════════════════════════════════════ */
.ai-search-overlay{position:fixed;inset:0;z-index:var(--z-system);background:var(--bg-main);opacity:0;visibility:hidden;transition:all .3s;}
.ai-search-overlay.active{opacity:1;visibility:visible;}
.ai-search-container{max-width:600px;margin:0 auto;padding:20px;height:100%;display:flex;flex-direction:column;}
.ai-search-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:10px;background:var(--bg-card);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,0.1);}
.ai-search-back{font-size:24px;cursor:pointer;padding:8px;}
.ai-search-title{font-size:18px;font-weight:700;color:var(--text);}
.ai-search-input-wrap{position:relative;margin-bottom:16px;}
.ai-search-input{width:100%;padding:16px 50px 16px 20px;border:2px solid var(--ocean);border-radius:16px;font-size:16px;background:var(--bg-card);color:var(--text);outline:none;box-shadow:0 4px 12px rgba(0,150,199,0.15);}
.ai-search-input::placeholder{color:var(--text-muted);}
.ai-search-submit{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:12px;border:none;background:var(--ocean);color:#fff;font-size:18px;cursor:pointer;}
.ai-search-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:12px;background:var(--bg-card);border-radius:12px;}
.ai-suggestion{padding:8px 14px;background:var(--bg-surface);border-radius:20px;font-size:13px;color:var(--text-mid);cursor:pointer;transition:all .2s;}
.ai-suggestion:hover{background:var(--ocean-mist);color:var(--ocean);}
.ai-search-results{flex:1;overflow-y:auto;}
.ai-thinking{display:flex;align-items:center;gap:12px;padding:20px;color:var(--text-mid);}
.ai-thinking-dots{display:flex;gap:4px;}
.ai-thinking-dots span{width:8px;height:8px;border-radius:50%;background:var(--ocean);animation:aiThink 1.4s infinite both;}
.ai-thinking-dots span:nth-child(2){animation-delay:.2s;}
.ai-thinking-dots span:nth-child(3){animation-delay:.4s;}
@keyframes aiThink{0%,80%,100%{transform:scale(0);opacity:.5;}40%{transform:scale(1);opacity:1;}}
.ai-response{padding:16px;background:var(--bg-surface);border-radius:16px;margin-bottom:12px;}
.ai-response-text{font-size:14px;line-height:1.6;color:var(--text);margin-bottom:12px;}
.ai-response-places{display:flex;flex-direction:column;gap:8px;}
.ai-context-line{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--ocean);background:var(--ocean-mist,rgba(0,150,199,.08));padding:6px 10px;border-radius:8px;margin-bottom:10px;}
.ai-source-label{font-size:10px;color:var(--text-muted);text-align:right;margin-top:8px;letter-spacing:.3px;}
.ai-no-results{font-size:13px;color:var(--text-muted);padding:16px 0;text-align:center;}

/* AI Search result cards — photo + deal badge */
.ai-place-card{display:flex;align-items:stretch;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.ai-place-card:active{transform:scale(.98);box-shadow:0 1px 4px rgba(0,0,0,.1);}
.ai-place-photo{flex-shrink:0;width:72px;position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);}
.ai-place-emoji{font-size:28px;}
.ai-place-deal-badge{position:absolute;top:6px;left:6px;background:linear-gradient(135deg,#FF6B35,#E8460B);color:#fff;font-size:8px;font-weight:800;padding:2px 6px;border-radius:5px;z-index:1;}
.ai-place-dist{position:absolute;bottom:6px;left:6px;background:rgba(0,0,0,.6);color:#fff;font-size:9px;font-weight:700;padding:2px 6px;border-radius:5px;}
.ai-place-body{flex:1;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:3px;}
.ai-place-name{font-size:14px;font-weight:700;color:var(--text);line-height:1.3;}
.ai-place-reason{font-size:12px;color:var(--text-muted);line-height:1.4;}
.ai-place-cat{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-top:2px;}

/* ══════════════════════════════════════════════════════════════ */
/* POPULAR TIMES / BUSY INDICATOR */
/* ══════════════════════════════════════════════════════════════ */
.popular-times{margin:12px 0;}
.popular-times-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.popular-times-title{font-size:12px;font-weight:700;color:var(--text-mid);}
.busy-now{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:700;}
.busy-now.busy{background:#FEE2E2;color:#DC2626;}
.busy-now.moderate{background:#FEF3C7;color:#D97706;}
.busy-now.quiet{background:#DCFCE7;color:#16A34A;}
.popular-times-bars{display:flex;align-items:flex-end;gap:2px;height:40px;}
.popular-bar{flex:1;background:var(--bg-surface);border-radius:2px 2px 0 0;min-width:8px;transition:all .2s;}
.popular-bar.current{background:var(--ocean);}
.popular-bar.high{background:#f87171;}
.popular-bar.medium{background:#fbbf24;}
.popular-bar.low{background:#86efac;}

/* ══════════════════════════════════════════════════════════════ */
/* BEACH BUDDY */
/* ══════════════════════════════════════════════════════════════ */
.beach-buddy-card{margin:0 18px 16px;padding:16px;background:linear-gradient(135deg,#0ea5e9,#06b6d4);border-radius:16px;color:#fff;cursor:pointer;}
.beach-buddy-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.beach-buddy-title{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;}
.beach-buddy-status{font-size:12px;opacity:.9;}
.beach-buddy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.beach-buddy-item{text-align:center;padding:8px;background:rgba(255,255,255,.15);border-radius:10px;}
.beach-buddy-icon{font-size:20px;margin-bottom:4px;}
.beach-buddy-value{font-size:14px;font-weight:700;}
.beach-buddy-label{font-size:10px;opacity:.8;}
.beach-buddy-sun{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:10px;padding:10px;background:rgba(255,255,255,.2);border-radius:10px;}
.bb-sun-item{display:flex;align-items:center;gap:6px;}
.bb-sun-icon{font-size:18px;}
.bb-sun-label{font-size:11px;opacity:.8;}
.bb-sun-time{font-size:14px;font-weight:700;}
/* Sunset Countdown */
.sunset-countdown{display:none;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;background:linear-gradient(135deg,#FF6B6B,#FF8E53,#FFC947);border-radius:12px;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(255,107,107,.3);}
.sunset-countdown.visible{display:flex;}
.sunset-countdown:active{transform:scale(0.98);}
.sunset-countdown.past-sunset{background:linear-gradient(135deg,#2C3E50,#34495E,#1A1A2E);}
.sunset-countdown.golden-hour{background:linear-gradient(135deg,#F093FB,#F5576C,#FF6B6B);animation:goldenPulse 2s ease-in-out infinite;}
@keyframes goldenPulse{0%,100%{box-shadow:0 2px 8px rgba(255,107,107,.3);}50%{box-shadow:0 4px 20px rgba(255,107,107,.6);}}
.sc-icon{font-size:28px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));}
.sc-content{flex:1;}
.sc-label{font-size:11px;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:0.5px;font-weight:600;}
.sc-time{font-size:22px;font-weight:800;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.2);font-family:'SF Mono',Monaco,monospace;letter-spacing:1px;}
.sc-arrow{color:rgba(255,255,255,.7);font-size:20px;font-weight:700;}
/* Sunset Spots Panel */
.sunset-header{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(135deg,#FF6B6B,#FF8E53,#FFC947);border-radius:16px;margin-bottom:16px;}
.sh-icon{font-size:48px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.2));}
.sh-label{font-size:13px;color:rgba(255,255,255,.9);font-weight:600;}
.sh-time{font-size:32px;font-weight:800;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2);font-family:'Paytone One',sans-serif;}
.sunset-tip{display:flex;align-items:center;gap:10px;padding:14px;background:linear-gradient(135deg,#FFF8E1,#FFECB3);border-radius:12px;margin-bottom:20px;font-size:13px;color:#E65100;border-left:4px solid #FF9800;}
.sunset-spots-title{font-weight:700;font-size:14px;color:var(--text);margin-bottom:12px;}
.sunset-spot{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;cursor:pointer;transition:all .2s;}
.sunset-spot:hover{border-color:var(--ocean);transform:translateX(4px);}
.ss-emoji{font-size:28px;}
.ss-info{flex:1;}
.ss-name{font-weight:700;font-size:15px;color:var(--text);}
.ss-desc{font-size:12px;color:var(--text-muted);margin-top:2px;}
.ss-rating{padding:4px 10px;background:linear-gradient(135deg,#f5f5f5,#eeeeee);border-radius:6px;font-size:11px;font-weight:700;color:#666;}
.sunset-camera-tip{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#E3F2FD,#BBDEFB);border-radius:12px;margin-top:16px;}
.sct-icon{font-size:24px;}
.sct-text{font-size:13px;color:#1565C0;font-weight:500;}
/* Open Now Filter Toggle */
.open-now-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-card);border:2px solid var(--border);border-radius:20px;font-size:13px;font-weight:600;color:var(--text-mid);cursor:pointer;transition:all .2s;white-space:nowrap;}
.open-now-toggle:hover{border-color:var(--ocean-mist);}
.open-now-toggle.active{background:linear-gradient(135deg,#4CAF50,#45a049);border-color:#4CAF50;color:#fff;box-shadow:0 2px 8px rgba(76,175,80,.3);}
.open-now-toggle:active{transform:scale(0.97);}
.open-now-bar{display:flex;gap:10px;padding:12px 18px;overflow-x:auto;scrollbar-width:none;}
.open-now-bar::-webkit-scrollbar{display:none;}
.make-reservation-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(135deg,#DA3743,#C23040);border:none;border-radius:20px;font-size:13px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 2px 8px rgba(218,55,67,.3);}
.make-reservation-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(218,55,67,.4);}
.make-reservation-btn:active{transform:scale(0.97);}
/* Reservable Restaurant Cards */
.reservation-browse-header{display:flex;align-items:center;gap:14px;padding:18px;background:linear-gradient(135deg,#DA3743,#E91E63);border-radius:14px;margin-bottom:20px;color:#fff;}
.rbh-icon{font-size:36px;}
.rbh-title{font-size:18px;font-weight:700;}
.rbh-sub{font-size:13px;opacity:.9;}
.res-group-title{font-weight:700;font-size:14px;color:var(--text);margin-bottom:12px;}
.reservable-card{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden;transition:all .2s;}
.reservable-card:hover{border-color:var(--ocean);}
.rc-main{display:flex;justify-content:space-between;align-items:center;padding:14px;cursor:pointer;}
.rc-main:hover{background:var(--bg-surface);}
.rc-left{flex:1;}
.rc-name{font-weight:700;font-size:15px;color:var(--text);}
.rc-cuisine{font-size:12px;color:var(--text-mid);margin-top:2px;}
.rc-policy{font-size:11px;color:var(--text-muted);margin-top:4px;}
.rc-wait{font-size:11px;color:var(--ocean);margin-top:4px;}
.rc-right{text-align:right;}
.rc-status{font-size:11px;font-weight:700;margin-bottom:4px;}
.rc-status.open{color:#4CAF50;}
.rc-status.closed{color:#EF5350;}
.rc-status.unknown{color:var(--text-muted);}
.rc-provider{font-size:10px;color:var(--ocean);font-weight:600;}
.rc-book-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;color:#fff;font-weight:700;font-size:14px;text-decoration:none;border-top:1px solid var(--border);transition:opacity .2s;}
.rc-book-btn:hover{opacity:.9;}
.bb-sun-divider{opacity:.5;}

/* COMPACT TOP SECTION */
.top-compact{padding:8px 16px 0;}
.top-compact .search-container{margin-bottom:0;}
.top-compact .search-bar{padding:10px 14px;}
.beach-alerts{margin:12px 0;}
.beach-alert{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;margin-bottom:8px;font-size:13px;}
.beach-alert.warning{background:#FEF3C7;color:#92400E;}
.beach-alert.danger{background:#FEE2E2;color:#991B1B;}
.beach-alert.info{background:var(--ocean-mist);color:var(--ocean);}

.sunscreen-reminder{position:fixed;bottom:90px;left:18px;right:18px;padding:14px 18px;background:linear-gradient(135deg,#f59e0b,#fbbf24);border-radius:14px;color:#fff;display:flex;align-items:center;justify-content:space-between;z-index:var(--z-floating);transform:translateY(120%);transition:transform .3s;box-shadow:0 4px 20px rgba(245,158,11,.4);}
.sunscreen-reminder.show{transform:translateY(0);}
.sunscreen-reminder-text{font-size:13px;font-weight:600;}
.sunscreen-dismiss{background:rgba(255,255,255,.3);border:none;padding:6px 12px;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;}

/* ══════════════════════════════════════════════════════════════ */
/* GAMIFICATION & ACHIEVEMENTS */
/* ══════════════════════════════════════════════════════════════ */
.achievements-section{margin:20px 18px;}
.achievements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.achievements-title{font-weight:700;font-size:15px;color:var(--text);}
.achievements-points{display:flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:20px;color:#fff;font-weight:700;font-size:13px;}
.achievements-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.achievement-badge{text-align:center;padding:12px 8px;background:var(--bg-surface);border-radius:12px;transition:all .2s;}
.achievement-badge.unlocked{background:linear-gradient(135deg,var(--ocean-mist),var(--foam-light));border:2px solid var(--ocean);}
.achievement-badge.locked{opacity:.5;filter:grayscale(1);}
.achievement-icon{font-size:28px;margin-bottom:6px;}
.achievement-name{font-size:10px;color:var(--text-mid);font-weight:600;}
.achievement-progress{width:100%;height:4px;background:var(--border);border-radius:2px;margin-top:6px;overflow:hidden;}
.achievement-progress-fill{height:100%;background:var(--ocean);border-radius:2px;}

.level-up-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:var(--z-system);background:linear-gradient(135deg,#fbbf24,#f59e0b);padding:30px 40px;border-radius:20px;text-align:center;color:#fff;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:levelUp .5s ease-out;}
@keyframes levelUp{from{transform:translate(-50%,-50%) scale(.5);opacity:0;}to{transform:translate(-50%,-50%) scale(1);opacity:1;}}
.level-up-icon{font-size:48px;margin-bottom:12px;}
.level-up-title{font-size:24px;font-weight:800;margin-bottom:6px;}
.level-up-subtitle{font-size:14px;opacity:.9;}

.streak-indicator{display:flex;align-items:center;gap:8px;padding:8px 14px;background:linear-gradient(135deg,#ec4899,#f43f5e);border-radius:20px;color:#fff;font-size:12px;font-weight:700;}
.streak-fire{font-size:16px;animation:fireWiggle 1s infinite;}
@keyframes fireWiggle{0%,100%{transform:rotate(-5deg);}50%{transform:rotate(5deg);}}

/* ══════════════════════════════════════════════════════════════ */
/* SOCIAL FEATURES */
/* ══════════════════════════════════════════════════════════════ */
.share-itinerary-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--bg-surface);border-radius:12px;color:var(--text);font-weight:600;cursor:pointer;margin-top:12px;}
.share-itinerary-btn:hover{background:var(--ocean-mist);color:var(--ocean);}

.friends-nearby{margin:16px 0;}
.friends-nearby-header{font-size:12px;font-weight:700;color:var(--text-mid);margin-bottom:8px;}
.friends-list{display:flex;gap:-8px;}
.friend-avatar{width:36px;height:36px;border-radius:50%;border:3px solid var(--bg-card);margin-left:-10px;background:var(--ocean);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px;}
.friend-avatar:first-child{margin-left:0;}
.friend-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;}

.check-in-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:12px;color:#fff;font-weight:600;font-size:13px;cursor:pointer;border:none;}
.check-in-btn:hover{transform:scale(1.02);}

/* ══════════════════════════════════════════════════════════════ */
/* SMART NOTIFICATIONS */
/* ══════════════════════════════════════════════════════════════ */
.smart-notif{position:fixed;top:60px;left:18px;right:18px;padding:14px 16px;border-radius:14px;z-index:var(--z-floating);transform:translateY(-200%);transition:transform .4s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 8px 30px rgba(0,0,0,.2);opacity:0;pointer-events:none;visibility:hidden;}
.smart-notif.show{transform:translateY(0);opacity:1;pointer-events:auto;visibility:visible;}
.smart-notif.deal{background:linear-gradient(135deg,#10b981,#059669);}
.smart-notif.weather{background:linear-gradient(135deg,#3b82f6,#2563eb);}
.smart-notif.sunset{background:linear-gradient(135deg,#f97316,#ea580c);}
.smart-notif.traffic{background:linear-gradient(135deg,#ef4444,#dc2626);}
.smart-notif-content{display:flex;align-items:center;gap:12px;color:#fff;}
.smart-notif-icon{font-size:28px;}
.smart-notif-text{flex:1;}
.smart-notif-title{font-weight:700;font-size:14px;margin-bottom:2px;}
.smart-notif-msg{font-size:12px;opacity:.9;}
.smart-notif-action{padding:8px 14px;background:rgba(255,255,255,.2);border:none;border-radius:8px;color:#fff;font-weight:600;font-size:12px;cursor:pointer;}
.smart-notif-close{position:absolute;top:8px;right:8px;font-size:18px;cursor:pointer;opacity:.7;}

/* ══════════════════════════════════════════════════════════════ */
/* RESERVATIONS & WAITLIST */
/* ══════════════════════════════════════════════════════════════ */
.reservation-section{margin:16px 0;padding:14px;background:var(--bg-surface);border-radius:12px;}
.reservation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.wait-time-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--coral-light);color:var(--coral);border-radius:20px;font-size:12px;font-weight:700;}
.reservation-btns{display:flex;gap:8px;}
.reserve-btn{flex:1;padding:12px;border-radius:10px;border:none;font-weight:600;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;}
.reserve-btn.primary{background:var(--ocean);color:#fff;}
.reserve-btn.secondary{background:var(--bg-card);color:var(--text);border:1.5px solid var(--border);}

/* ══════════════════════════════════════════════════════════════ */
/* OFFLINE MODE */
/* ══════════════════════════════════════════════════════════════ */
.offline-banner{position:fixed;top:0;left:0;right:0;padding:10px;background:#fbbf24;color:#78350f;text-align:center;font-size:12px;font-weight:600;z-index:var(--z-overlay);transform:translateY(-100%);transition:transform .3s;pointer-events:none;}
.offline-banner.show{transform:translateY(0);pointer-events:auto;}
.offline-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:rgba(0,0,0,.1);border-radius:10px;font-size:10px;}

/* ══════════════════════════════════════════════════════════════ */
/* ADMIN DASHBOARD */
/* ══════════════════════════════════════════════════════════════ */
.admin-dashboard{padding:0 4px;}
.admin-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px;}
.admin-stat-card{padding:16px;background:var(--bg-surface);border-radius:14px;text-align:center;}
.admin-stat-value{font-size:28px;font-weight:800;color:var(--text);}
.admin-stat-label{font-size:11px;color:var(--text-muted);margin-top:4px;}
.admin-stat-card.warning{background:#FEF3C7;}.admin-stat-card.warning .admin-stat-value{color:#D97706;}
.admin-stat-card.success{background:#DCFCE7;}.admin-stat-card.success .admin-stat-value{color:#16A34A;}

.admin-section{margin-bottom:24px;}
.admin-section-title{font-weight:700;font-size:15px;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.admin-section-title .badge{padding:3px 8px;background:var(--coral);color:#fff;border-radius:10px;font-size:11px;}

.admin-tip-card{padding:14px;background:var(--bg-surface);border-radius:12px;margin-bottom:10px;}
.admin-tip-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;}
.admin-tip-place{font-weight:700;font-size:14px;color:var(--text);}
.admin-tip-meta{font-size:11px;color:var(--text-muted);}
.admin-tip-content{font-size:13px;color:var(--text-mid);line-height:1.5;margin-bottom:10px;}
.admin-tip-actions{display:flex;gap:8px;}
.admin-btn{padding:8px 14px;border-radius:8px;border:none;font-weight:600;font-size:12px;cursor:pointer;}
.admin-btn.approve{background:#DCFCE7;color:#16A34A;}
.admin-btn.reject{background:#FEE2E2;color:#DC2626;}
.admin-btn.edit{background:var(--bg-card);color:var(--text);border:1px solid var(--border);}

.admin-table{width:100%;border-collapse:collapse;}
.admin-table th,.admin-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:13px;}
.admin-table th{font-weight:700;color:var(--text-mid);background:var(--bg-surface);}
.admin-table tr:hover{background:var(--bg-surface);}

/* Enhanced Admin Dashboard */
.admin-header{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(135deg,#7c3aed,#8b5cf6);border-radius:16px;margin-bottom:20px;color:#fff;}
.ah-icon{font-size:40px;}
.ah-title{font-size:20px;font-weight:700;}
.ah-sub{font-size:13px;opacity:0.9;}
.admin-stat-card{cursor:pointer;transition:all .2s;}
.admin-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1);}
.admin-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.admin-action-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;position:relative;}
.admin-action-btn:hover{border-color:var(--ocean);transform:translateY(-2px);}
.aab-icon{font-size:24px;}
.aab-label{font-size:11px;font-weight:600;color:var(--text-mid);}
.aab-badge{position:absolute;top:8px;right:8px;background:#EF4444;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:10px;}
.admin-report-card{padding:14px;background:var(--bg-surface);border-radius:12px;margin-bottom:10px;border-left:4px solid #FF9800;}
.arc-type{font-size:11px;color:var(--text-muted);text-transform:uppercase;font-weight:600;margin-bottom:4px;}
.arc-business{font-weight:700;font-size:15px;color:var(--text);margin-bottom:6px;}
.arc-details{font-size:13px;color:var(--text-mid);margin-bottom:8px;}
.arc-meta{font-size:11px;color:var(--text-muted);}
.arc-actions{display:flex;gap:8px;margin-top:10px;}
.admin-view-all-btn{width:100%;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;font-weight:600;font-size:13px;color:var(--text);cursor:pointer;margin-top:12px;}
.admin-info-grid{background:var(--bg-surface);border-radius:12px;overflow:hidden;}
.admin-info-row{display:flex;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px;}
.admin-info-row:last-child{border-bottom:none;}
.admin-info-row span:first-child{color:var(--text-muted);}
.admin-info-row span:last-child{font-weight:600;color:var(--text);}
.admin-empty{text-align:center;padding:40px 20px;}
.ae-icon{font-size:48px;margin-bottom:12px;opacity:0.5;}
.ae-text{font-size:14px;color:var(--text-muted);}
.admin-reservation-card{padding:14px;background:var(--bg-surface);border-radius:12px;margin-bottom:12px;}
.admin-reservation-card .arc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.admin-reservation-card .arc-restaurant{font-weight:700;font-size:16px;color:var(--text);}
.admin-reservation-card .arc-status{padding:4px 10px;border-radius:8px;font-size:11px;font-weight:700;text-transform:uppercase;}
.admin-reservation-card .arc-status.pending{background:#FEF3C7;color:#D97706;}
.admin-reservation-card .arc-status.confirmed{background:#DCFCE7;color:#16A34A;}
.admin-reservation-card .arc-status.cancelled{background:#FEE2E2;color:#DC2626;}
.admin-reservation-card .arc-details-row{display:flex;justify-content:space-between;font-size:13px;color:var(--text-mid);margin-bottom:6px;}
.admin-reservation-card .arc-guest{display:flex;gap:16px;font-size:13px;color:var(--text-mid);margin-bottom:8px;}
.admin-reservation-card .arc-notes{font-size:12px;color:var(--text-muted);background:var(--bg-card);padding:8px 10px;border-radius:8px;margin-bottom:10px;}
.admin-fetch-btn{width:100%;padding:14px;background:var(--ocean);color:#fff;border:none;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;}
.admin-danger-btn{width:100%;padding:14px;background:#FEE2E2;color:#DC2626;border:none;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;}
.admin-list-item{padding:10px 14px;background:var(--bg-surface);border-radius:8px;margin-bottom:6px;font-size:13px;color:var(--text);}
.admin-issue-card{padding:12px;background:#FEF3C7;border-radius:10px;margin-bottom:8px;border-left:4px solid #D97706;}
.aic-type{font-size:11px;color:#92400E;font-weight:600;text-transform:uppercase;}
.aic-business{font-weight:700;font-size:14px;color:#78350F;}
.aic-detail{font-size:12px;color:#92400E;}
.admin-hours-list{max-height:300px;overflow-y:auto;}
.admin-hours-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-surface);border-radius:8px;margin-bottom:6px;cursor:pointer;}
.admin-hours-item:hover{background:var(--bg-card);}
.ahi-status{font-size:10px;}
.ahi-status.open{color:#16A34A;}
.ahi-status.closed{color:#DC2626;}
.ahi-status.unknown{color:var(--text-muted);}
.ahi-name{flex:1;font-size:13px;font-weight:600;color:var(--text);}
.ahi-verified{font-size:11px;color:var(--text-muted);}
.admin-list-more{text-align:center;padding:12px;font-size:12px;color:var(--text-muted);}
.admin-btn.secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border);}

/* ══════════════════════════════════════════════════════════════ */
/* BUSINESS PORTAL */
/* ══════════════════════════════════════════════════════════════ */
.business-portal{padding:0 4px;}
.claim-form{padding:20px;background:var(--bg-surface);border-radius:16px;}
.claim-form-title{font-weight:700;font-size:16px;color:var(--text);margin-bottom:16px;text-align:center;}
.claim-input-group{margin-bottom:14px;}
.claim-input-label{font-size:12px;font-weight:600;color:var(--text-mid);margin-bottom:6px;display:block;}
.claim-input{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:10px;font-size:14px;background:var(--bg-card);color:var(--text);}
.claim-input:focus{border-color:var(--ocean);outline:none;}
.claim-submit-btn{width:100%;padding:14px;background:var(--ocean);color:#fff;border:none;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;margin-top:8px;}

.my-business-card{padding:16px;background:var(--bg-surface);border-radius:14px;margin-bottom:12px;}
.my-business-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.my-business-name{font-weight:700;font-size:16px;color:var(--text);}
.my-business-verified{padding:4px 10px;background:#DCFCE7;color:#16A34A;border-radius:10px;font-size:11px;font-weight:600;}
.my-business-stats{display:flex;gap:16px;margin-bottom:12px;}
.my-business-stat{text-align:center;}
.my-business-stat-val{font-size:18px;font-weight:700;color:var(--text);}
.my-business-stat-label{font-size:10px;color:var(--text-muted);}
.my-business-actions{display:flex;gap:8px;}
.portal-btn{flex:1;padding:10px;border-radius:10px;border:none;font-weight:600;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;}
.portal-btn.primary{background:var(--ocean);color:#fff;}
.portal-btn.secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border);}

.deal-form{padding:16px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border);margin-top:12px;}
.deal-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;}

.claim-status-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;}
.claim-status-badge.pending{background:#FEF3C7;color:#D97706;}
.claim-status-badge.approved{background:#DCFCE7;color:#16A34A;}
.claim-status-badge.rejected{background:#FEE2E2;color:#DC2626;}

/* ══════════════════════════════════════════════════════════════ */
/* INLINE BEACH CAM VIEWER */
/* ══════════════════════════════════════════════════════════════ */
.cam-viewer-container{position:relative;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000;margin-bottom:12px;}
.cam-viewer-placeholder{position:relative;width:100%;height:100%;cursor:pointer;}
.cam-viewer-placeholder img{width:100%;height:100%;object-fit:cover;filter:brightness(0.7);}
.cam-play-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,0.3);}
.cam-play-btn{width:64px;height:64px;background:rgba(255,255,255,0.95);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;color:#0077B6;box-shadow:0 4px 20px rgba(0,0,0,0.3);}
.cam-play-text{color:#fff;font-size:13px;font-weight:600;margin-top:10px;text-shadow:0 1px 3px rgba(0,0,0,0.5);}
.cam-play-mini{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background:rgba(255,255,255,0.9);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;color:#0077B6;opacity:0;transition:opacity .2s;}
.cam-card:hover .cam-play-mini{opacity:1;}
.cam-viewer-info{position:absolute;bottom:0;left:0;right:0;padding:12px 14px;background:linear-gradient(transparent,rgba(0,0,0,0.8));display:flex;align-items:center;gap:10px;}
.cam-viewer-name{color:#fff;font-weight:600;font-size:14px;flex:1;}
.cam-fullscreen-btn,.cam-external-btn{padding:6px 12px;background:rgba(255,255,255,0.2);border:1px solid rgba(255,255,255,0.3);color:#fff;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;}
.cam-fullscreen-btn:hover,.cam-external-btn:hover{background:rgba(255,255,255,0.3);}
.cam-iframe{width:100%;height:100%;border:none;}
.cam-external-viewer{position:relative;width:100%;height:100%;}
.cam-iframe-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.cam-iframe-overlay-text{text-align:center;color:#fff;}

.cam-selector-strip{display:flex;gap:10px;overflow-x:auto;padding:4px 0 12px;-webkit-overflow-scrolling:touch;}
.cam-selector-strip::-webkit-scrollbar{display:none;}
.cam-selector-item{flex-shrink:0;width:72px;text-align:center;cursor:pointer;opacity:0.6;transition:all .2s;}
.cam-selector-item.active{opacity:1;}
.cam-selector-item img{width:72px;height:48px;object-fit:cover;border-radius:10px;border:2px solid transparent;transition:border-color .2s;}
.cam-selector-item.active img{border-color:var(--ocean);}
.cam-selector-name{font-size:10px;color:var(--text-muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cam-selector-item.active .cam-selector-name{color:var(--ocean);font-weight:600;}

.cam-open-btn{padding:6px 10px;background:var(--ocean);color:#fff;border-radius:8px;font-size:11px;font-weight:600;}

/* ══════════════════════════════════════════════════════════════ */
/* BOARDWALK GUIDE */
/* ══════════════════════════════════════════════════════════════ */
.filter-pill{padding:8px 12px;background:var(--bg-card);border:1.5px solid var(--border-mid);border-radius:20px;font-size:12px;font-weight:700;color:var(--text);cursor:pointer;white-space:nowrap;transition:all .15s;}
.filter-pill:hover{border-color:var(--ocean);color:var(--ocean);}
.filter-pill.active{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.biz-item.featured{background:linear-gradient(135deg,#FFF8E1,#FFECB3);border:1.5px solid #FFD54F;}
.biz-tip{font-size:11px;color:#D97706;margin-top:4px;font-style:italic;}
.seasonal-badge{padding:2px 6px;background:#E0F2FE;color:#0277BD;border-radius:6px;font-size:9px;font-weight:700;margin-right:4px;}
.iconic-badge{margin-right:4px;}

.beach-conditions-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px;background:linear-gradient(135deg,#E0F7FA,#B2EBF2);border-radius:14px;margin-bottom:16px;}
.beach-cond-item{text-align:center;}
.beach-cond-icon{font-size:18px;display:block;}
.beach-cond-val{font-size:16px;font-weight:800;color:#0077B6;display:block;margin:2px 0;}
.beach-cond-label{font-size:10px;color:#00838F;text-transform:uppercase;}

/* ══════════════════════════════════════════════════════════════ */
/* RESERVATION INTEGRATION */
/* ══════════════════════════════════════════════════════════════ */
.reservation-section{margin-top:16px;padding:16px;background:var(--bg-surface);border-radius:14px;}
.reservation-title{font-weight:700;font-size:14px;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.direct-booking-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 20px;border-radius:12px;color:#fff;font-weight:700;font-size:15px;text-decoration:none;transition:all .2s;border:none;cursor:pointer;}
.direct-booking-btn:hover{opacity:0.9;transform:translateY(-1px);}
.direct-booking-btn:active{transform:scale(0.98);}
.reservation-providers{display:flex;gap:10px;flex-wrap:wrap;}
.reservation-btn{flex:1;min-width:120px;padding:12px 16px;border-radius:12px;border:none;font-weight:600;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s;}
.reservation-btn:active{transform:scale(0.97);}
.reservation-btn.opentable{background:linear-gradient(135deg,#DA3743,#C23040);color:#fff;}
.reservation-btn.resy{background:linear-gradient(135deg,#1A1A2E,#16213E);color:#fff;}
.reservation-btn.yelp{background:linear-gradient(135deg,#FF1A1A,#D32323);color:#fff;}
.reservation-btn.phone{background:var(--bg-card);color:var(--text);border:1.5px solid var(--border);}
.reservation-btn-icon{font-size:18px;}
.reservation-btn-text{font-size:13px;}

/* Enhanced Reservation UI */
.reservation-header-card{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,var(--ocean-mist),var(--sky-light));border-radius:14px;margin-bottom:20px;}
.rhc-icon{font-size:36px;}
.rhc-name{font-weight:700;font-size:18px;color:var(--text);}
.rhc-meta{font-size:13px;color:var(--text-mid);margin-top:2px;}

.time-slots-section{margin-bottom:20px;}
.tss-title{font-weight:700;font-size:14px;color:var(--text);margin-bottom:12px;}
.reservation-time-slots{display:flex;flex-wrap:wrap;gap:8px;}
.time-slot{padding:12px 18px;border-radius:10px;border:2px solid var(--border);background:var(--bg-card);color:var(--text);font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;}
.time-slot.available:hover{border-color:var(--ocean);background:rgba(0,150,199,.05);}
.time-slot.available:active{transform:scale(0.97);}
.time-slot.unavailable{opacity:0.4;cursor:not-allowed;text-decoration:line-through;}
.no-availability{text-align:center;padding:20px;color:var(--text-mid);font-size:14px;}

.reservation-alternatives{padding:16px;background:var(--bg-surface);border-radius:12px;}
.ra-title{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:0.5px;}
.ra-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;text-decoration:none;margin-bottom:8px;cursor:pointer;transition:all .2s;}
.ra-btn:last-child{margin-bottom:0;}
.ra-btn:hover{border-color:var(--ocean);}

/* Confirmation Flow */
.reservation-confirm-header{text-align:center;margin-bottom:24px;}
.rch-icon{font-size:48px;margin-bottom:8px;}
.rch-title{font-size:20px;font-weight:700;color:var(--text);}

.reservation-details-card{background:linear-gradient(135deg,#E8F5E9,#E3F2FD);padding:20px;border-radius:14px;margin-bottom:20px;border:2px solid rgba(76,175,80,.2);}
.rdc-restaurant{font-weight:700;font-size:18px;color:var(--text);margin-bottom:12px;}
.rdc-row{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-mid);margin-bottom:6px;}
.rdc-row span{font-size:16px;}

.reservation-contact-form{margin-bottom:20px;}
.rcf-title{font-weight:600;font-size:14px;color:var(--text);margin-bottom:12px;}
.rcf-input{width:100%;padding:14px 16px;border:2px solid var(--border);border-radius:12px;font-size:15px;margin-bottom:10px;background:var(--bg-card);color:var(--text);font-family:inherit;box-sizing:border-box;}
.rcf-input:focus{outline:none;border-color:var(--ocean);}
.rcf-input::placeholder{color:var(--text-muted);}

.reservation-confirm-btn{width:100%;padding:16px;background:linear-gradient(135deg,#4CAF50,#45a049);color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 15px rgba(76,175,80,.3);}
.reservation-confirm-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(76,175,80,.4);}
.reservation-confirm-btn:active{transform:scale(0.98);}

.reservation-terms{font-size:11px;color:var(--text-muted);text-align:center;margin-top:16px;line-height:1.5;}

/* Success Screen */
.reservation-success-icon{font-size:64px;margin-bottom:12px;animation:bounceIn 0.5s ease;}
/* Confetti Animation */
.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:var(--z-fullscreen);overflow:hidden;}
.confetti{position:absolute;width:10px;height:10px;opacity:0;animation:confettiFall 3s ease-out forwards;}
@keyframes confettiFall{0%{transform:translateY(-100px) rotate(0deg);opacity:1;}100%{transform:translateY(100vh) rotate(720deg);opacity:0;}}
.reservation-success-title{font-size:24px;font-weight:700;color:#4CAF50;margin-bottom:6px;}
.reservation-success-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:24px;}
.reservation-success-details{background:var(--bg-surface);padding:16px;border-radius:12px;margin-bottom:20px;}
.rsd-name{font-size:18px;font-weight:700;color:var(--text);margin-bottom:6px;}
.rsd-info{font-size:14px;color:var(--text-mid);}

.reservation-confirmation-id{background:linear-gradient(135deg,#FFF8E1,#FFF3E0);padding:16px;border-radius:12px;margin-bottom:20px;border:2px dashed #FFB74D;}
.rci-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;}
.rci-code{font-size:24px;font-weight:700;color:#E65100;font-family:monospace;letter-spacing:2px;}

.reservation-next-steps{text-align:left;background:var(--bg-surface);padding:16px;border-radius:12px;margin-bottom:20px;}
.rns-title{font-weight:600;font-size:14px;color:var(--text);margin-bottom:10px;}
.rns-item{font-size:13px;color:var(--text-mid);padding:6px 0;display:flex;align-items:center;gap:8px;}

.reservation-actions{display:flex;gap:10px;}
.ra-primary{flex:1;padding:14px;background:var(--ocean);color:#fff;border:none;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;}
.ra-secondary{flex:1;padding:14px;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:12px;font-weight:600;font-size:14px;cursor:pointer;}

.reservation-call-note{margin-top:16px;font-size:13px;color:var(--text-muted);}
.reservation-call-note a{color:var(--ocean);font-weight:600;}

/* My Reservations */
.no-reservations{text-align:center;padding:40px 20px;}
.nr-icon{font-size:48px;margin-bottom:12px;opacity:0.5;}
.nr-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:6px;}
.nr-text{font-size:14px;color:var(--text-muted);margin-bottom:20px;}
.nr-btn{padding:12px 24px;background:var(--ocean);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;}

.reservations-section{margin-bottom:16px;}
.rs-title{font-weight:700;font-size:14px;color:var(--text);margin-bottom:12px;}
.reservation-card{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;}
.reservation-card.past{opacity:0.6;}
.rc-main{flex:1;}
.rc-restaurant{font-weight:700;font-size:15px;color:var(--text);}
.rc-datetime{font-size:13px;color:var(--text-mid);margin-top:2px;}
.rc-party{font-size:12px;color:var(--text-muted);}
.rc-status{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;color:#fff;text-transform:uppercase;}
.rc-actions{display:flex;gap:8px;}
.rc-actions button,.rc-actions a{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;font-size:14px;cursor:pointer;text-decoration:none;}

.reservation-widget{margin-top:12px;padding:14px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border);}
.reservation-form{display:grid;gap:10px;}
.reservation-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.reservation-input{padding:12px;border:1.5px solid var(--border);border-radius:10px;font-size:14px;background:var(--bg-surface);color:var(--text);}
.reservation-input:focus{border-color:var(--ocean);outline:none;}
.reservation-submit{padding:14px;background:var(--coral);color:#fff;border:none;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;}
.reservation-submit:disabled{opacity:0.6;cursor:not-allowed;}

.reservation-time-slots{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.time-slot{padding:10px 16px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:10px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;transition:all .15s;}
.time-slot:hover{border-color:var(--ocean);background:rgba(0,119,182,0.05);}
.time-slot.selected{background:var(--ocean);color:#fff;border-color:var(--ocean);}
.time-slot.unavailable{opacity:0.4;cursor:not-allowed;text-decoration:line-through;}

.reservation-confirmation{text-align:center;padding:20px;}
.reservation-confirmation-icon{font-size:48px;margin-bottom:12px;}
.reservation-confirmation-title{font-weight:700;font-size:18px;color:var(--text);margin-bottom:6px;}
.reservation-confirmation-details{font-size:14px;color:var(--text-mid);line-height:1.6;}

/* Live Beach Data Cards */
.live-beach-card{padding:16px;background:linear-gradient(135deg,#E3F2FD,#BBDEFB);border-radius:14px;margin-bottom:16px;}
.live-beach-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.live-beach-title{font-weight:700;font-size:15px;color:#1565C0;}
.live-beach-status{padding:4px 10px;border-radius:10px;font-size:11px;font-weight:700;}
.live-beach-status.good{background:#DCFCE7;color:#16A34A;}
.live-beach-status.fair{background:#FEF3C7;color:#D97706;}
.live-beach-status.poor{background:#FEE2E2;color:#DC2626;}
.live-beach-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.live-beach-item{padding:12px;background:rgba(255,255,255,0.7);border-radius:10px;text-align:center;}
.live-beach-val{font-size:20px;font-weight:800;color:#0D47A1;}
.live-beach-label{font-size:11px;color:#1976D2;margin-top:2px;}
.live-beach-alerts{margin-top:12px;}
.live-beach-alert{padding:10px 12px;background:rgba(255,255,255,0.8);border-radius:10px;font-size:12px;color:#1565C0;display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.live-beach-alert.warning{background:#FEF3C7;color:#92400E;}
.live-beach-alert.danger{background:#FEE2E2;color:#991B1B;}

/* ══════════════════════════════════════════════════════════════ */
/* PERFORMANCE - SKELETON LOADERS */
/* ══════════════════════════════════════════════════════════════ */
.skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,var(--border) 50%,var(--bg-surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;}
@keyframes shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
.skeleton-text{height:14px;border-radius:4px;margin-bottom:8px;}
.skeleton-text.short{width:60%;}
.skeleton-avatar{width:40px;height:40px;border-radius:50%;}
.skeleton-list-item{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-surface);border-radius:12px;margin-bottom:10px;}
.skeleton-text-group{flex:1;}
.skeleton-card{height:120px;border-radius:12px;}

/* ══════════════════════════════════════════════════════════════ */
/* PRIVACY CONSENT BANNER */
/* ══════════════════════════════════════════════════════════════ */
.privacy-banner{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-admin);background:var(--bg-card);border-top:2px solid var(--ocean);box-shadow:0 -4px 20px rgba(0,0,0,.15);padding:20px;animation:slideUp .3s ease;}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.privacy-content{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px;}
.privacy-icon{font-size:32px;}
.privacy-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:4px;}
.privacy-desc{font-size:13px;color:var(--text-muted);line-height:1.5;}
.privacy-actions{display:flex;gap:12px;justify-content:flex-end;}
.privacy-btn{padding:10px 18px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;border:none;transition:all .2s;white-space:nowrap;}
.privacy-btn.primary{background:var(--ocean);color:#fff;}
.privacy-btn.secondary{background:transparent;color:var(--text-muted);border:1px solid var(--border);}
.privacy-btn.outline{background:transparent;color:var(--ocean);border:1.5px solid var(--ocean);}

/* ══════════════════════════════════════════════════════════════ */
/* ADMIN LOGIN MODAL */
/* ══════════════════════════════════════════════════════════════ */
.admin-login-overlay{position:fixed;inset:0;z-index:var(--z-admin);background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:20px;}
.admin-login-box{background:var(--bg-card);border-radius:20px;padding:30px;width:100%;max-width:360px;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.3);}
.admin-login-header{margin-bottom:24px;}
.admin-login-icon{font-size:48px;margin-bottom:12px;}
.admin-login-title{font-size:22px;font-weight:800;color:var(--text);}
.admin-login-subtitle{font-size:13px;color:var(--text-muted);margin-top:4px;}
.admin-login-form{display:flex;flex-direction:column;gap:14px;}
.admin-input{width:100%;padding:14px 18px;border:2px solid var(--border);border-radius:12px;font-size:15px;text-align:center;background:var(--bg-surface);color:var(--text);box-sizing:border-box;}
.admin-input:focus{outline:none;border-color:var(--ocean);}
.admin-login-error{color:#DC2626;font-size:13px;font-weight:600;}
.admin-login-btn{padding:14px;background:linear-gradient(135deg,#7c3aed,#8b5cf6);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;}
.admin-login-cancel{padding:12px;background:none;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;}

/* ══════════════════════════════════════════════════════════════ */
/* RESPONSIVE DESIGN - Tablet & Desktop Adaptation              */
/* ══════════════════════════════════════════════════════════════ */

/* App Container - constrains width on larger screens */
.screen{max-width:100%;margin:0 auto;}

/* Tablet (768px+) */
@media (min-width:768px) {
  /* Constrain app width */
  .screen{max-width:640px;}
  #screen-main{max-width:640px;}
  
  /* Bottom nav - constrain and center */
  .bottom-nav{max-width:640px;left:50%;transform:translateX(-50%);border-radius:20px 20px 0 0;}
  
  /* Sticky header - match container */
  .app-header{max-width:640px;margin:0 auto;left:0;right:0;}
  
  /* Panels/overlays - constrain width */
  .info-panel{max-width:640px;left:50%;transform:translateX(-50%) translateY(100%);margin-left:0;}
  .info-panel.open{transform:translateX(-50%) translateY(0);}
  
  /* Search overlay - constrain */
  .search-overlay{max-width:640px;left:50%;transform:translateX(-50%);}
  
  /* Auth modal */
  .auth-overlay .auth-modal{max-width:420px;}
  
  /* Toast - center properly */
  .toast{max-width:400px;}
  
  /* Eat grid - 4 columns on tablet */
  .eat-grid{grid-template-columns:repeat(4,1fr);}
  
  /* More grid items - row layout */
  .more-grid{max-width:600px;}
  
  /* Horizontal scrollers - show more items */
  .live-near-card{width:170px;}
  .sc-card{width:200px;}
  .event-card{width:180px;}
  
  /* Business list items - larger photos */
  .biz-card-photo .biz-photo{width:110px;height:110px;}
  .biz-emoji{width:72px;height:72px;font-size:32px;}
  
  /* Settings - wider rows */
  .s-section{max-width:560px;margin-left:auto;margin-right:auto;}
  
  /* Onboarding - center content */
  .step-container{max-width:480px;margin-left:auto;margin-right:auto;}
  
  /* Photo viewer - bigger controls */
  .pv-prev,.pv-next{width:60px;height:100px;font-size:32px;}
  .pv-thumb{width:60px;height:60px;}
}

/* Desktop (1024px+) */
@media (min-width:1024px) {
  /* Tighter constraint */
  .screen{max-width:520px;}
  #screen-main{max-width:520px;}
  .bottom-nav{max-width:520px;}
  .info-panel{max-width:520px;}
  .search-overlay{max-width:520px;}
  
  /* Desktop background treatment */
  body::before{
    background:radial-gradient(ellipse 80% 50% at 50% -5%,rgba(0,150,199,.04) 0%,transparent 55%),
    linear-gradient(180deg,#E8F4F8 0%,#F0F9FF 40%,#FFFDF8 100%);
  }
  body{background:#E0EEF5;}
  body.dark-mode{background:#0A1520;}
  
  /* Add subtle app frame shadow on desktop */
  #screen-main,#screen-eat,#screen-play,#screen-shop,#screen-ride,
  #screen-settings,#screen-favs,#screen-map,#screen-stay,#screen-emergency,
  #screen-transport,#screen-hotels,#screen-profile,#screen-explore{
    box-shadow:0 0 40px rgba(0,50,100,.08);
    background:var(--bg);
  }
  body.dark-mode #screen-main,body.dark-mode #screen-eat,body.dark-mode #screen-play,
  body.dark-mode #screen-shop,body.dark-mode #screen-ride{
    box-shadow:0 0 40px rgba(0,0,0,.3);
  }
  
  /* Larger touch targets on desktop (hover capable) */
  .nav-item{min-width:56px;padding:10px 8px;}
  .biz-item{padding:16px;}
  .more-item{padding:14px 16px;}
  
  /* Photo viewer - use more space */
  .pv-image{max-height:80vh;}
  .pv-content{padding:40px 60px 100px;}
}

/* Large desktop (1440px+) - add side decoration */
@media (min-width:1440px) {
  body::after{
    content:'PULSE';
    position:fixed;
    top:50%;
    left:40px;
    transform:translateY(-50%) rotate(-90deg);
    font-family:'Paytone One',sans-serif;
    font-size:120px;
    letter-spacing:8px;
    color:rgba(0,150,199,.04);
    pointer-events:none;
    z-index:0;
  }
  body.dark-mode::after{color:rgba(72,202,228,.03);}
}

/* Small phones (360px and below) */
@media (max-width:360px) {
  /* Tighter spacing */
  .live-near-section,.section-card,
  .traffic-section,.activity-section{padding-left:12px;padding-right:12px;}
  .mock-section{margin-left:12px;margin-right:12px;}
  .compound-hero{margin-left:12px;margin-right:12px;}
  .weather-card,.weather-banner{margin-left:12px;margin-right:12px;}

  /* Smaller text */
  .ch-title{font-size:22px;}
  .wc-temp{font-size:36px;}
  .sc-title,.live-near-title,.activity-title{font-size:13px;}
  
  /* Eat grid - 2 columns on very small screens */
  .eat-grid{grid-template-columns:repeat(2,1fr);gap:8px;}

  /* 4-col grids collapse to 3 on narrow screens */
  .quick-actions,.outdoors-grid,.activities-grid,.area-score-bars,.be-grid,
  .play-grid,.shop-grid,.explore-grid,.u-grid-4,.beach-buddy-grid,
  .achievements-grid,.beach-conditions-strip{grid-template-columns:repeat(3,1fr);}

  /* Nav items - tighter */
  .nav-item{padding:6px 2px;gap:2px;}
  .nav-label{font-size:10px;}
  .nav-icon{font-size:18px;}
  
  /* Cards - less padding */
  .biz-item{padding:10px;gap:10px;}
  .biz-emoji{width:52px;height:52px;font-size:24px;}
}

/* Horizontal scroll containers - edge fade affordance */
.live-near-scroll,.ds-scroll,.sc-scroll,.explore-row,.beach-strip,
.rv-scroll,.area-scroll,.modes-scroll,.vibe-scroll,
.events-filter-row,.savings-filter,.menu-categories,.golf-courses-preview{
  -webkit-mask-image:linear-gradient(to right,transparent 0,black 18px,black calc(100% - 24px),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,black 18px,black calc(100% - 24px),transparent 100%);
}
/* Don't mask the first items - shift mask start */
.live-near-scroll,.ds-scroll,.sc-scroll{
  -webkit-mask-image:linear-gradient(to right,black 0,black calc(100% - 30px),transparent 100%);
  mask-image:linear-gradient(to right,black 0,black calc(100% - 30px),transparent 100%);
}


.u-mt16{margin-top:16px;}
.u-mt20{margin-top:20px;}
.u-mb10{margin-bottom:10px;}
.u-mb12{margin-bottom:12px;}
.u-mb16{margin-bottom:16px;}
.u-mb20{margin-bottom:20px;}
.u-bold{font-weight:700;}
.u-emoji-lg{font-size:32px;margin-bottom:12px;}
.u-emoji-lg-sm{font-size:32px;margin-bottom:8px;}
.u-title-xl{font-size:22px;font-weight:800;}
.u-text-sm-muted{font-size:10px;color:var(--text-muted);}
.u-heading-16{font-weight:700;font-size:16px;color:var(--text);}
.u-heading-14{font-size:14px;font-weight:700;color:var(--text);}
.u-fade-sm{font-size:14px;opacity:0.9;margin-top:4px;}
/* ═══ UTILITY CLASSES (extracted from inline styles) ═══ */
.u-muted{font-size:11px;color:var(--text-muted);}
.u-muted-sm{font-size:12px;color:var(--text-muted);}
.u-center{padding:40px;text-align:center;}
.u-center-muted{padding:40px;text-align:center;color:var(--text-muted);}
.u-heading{font-size:15px;font-weight:700;color:var(--text);}
.u-heading-sm{font-size:14px;font-weight:700;}
.u-hero-emoji{font-size:48px;margin-bottom:16px;}
.u-hero-emoji-sm{font-size:48px;margin-bottom:8px;}
.u-subtitle{font-size:18px;font-weight:700;margin-top:8px;}
.u-subtitle-fade{font-size:12px;opacity:0.9;margin-top:4px;}
.u-desc-mid{color:var(--text-mid);margin-bottom:16px;}
.u-desc-mid-sm{color:var(--text-mid);margin-bottom:12px;}
.u-label-muted{font-size:11px;color:var(--text-muted);margin-bottom:4px;}
