  #cookieBanner{
    display:none;
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:2000;
    background:var(--deep);
    color:var(--on-dark, #F3F7FA);
    padding:16px 20px;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
    box-shadow:0 -6px 20px rgba(0,0,0,0.25);
  }
  #cookieBanner.show{display:flex;}
  .cookie-banner-text{
    font-family:'Inter',sans-serif;
    font-size:13px;
    line-height:1.5;
    flex:1;
    min-width:220px;
  }
  .cookie-banner-actions{
    display:flex;
    gap:10px;
    flex-shrink:0;
  }
  .cookie-decline-btn, .cookie-accept-btn{
    padding:9px 18px;
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    border:1px solid rgba(243,247,250,0.4);
  }
  .cookie-decline-btn{background:none;color:#F3F7FA;}
  .cookie-decline-btn:hover{background:rgba(243,247,250,0.1);}
  .cookie-accept-btn{background:var(--lake);border-color:var(--lake);color:white;}
  .cookie-accept-btn:hover{background:#166A9C;}

  :root{
    --deep:#0E3A5F;
    --deep2:#123F66;
    --foam:#F3F7FA;
    --card:#FFFFFF;
    --ink:#16263A;
    --lake:#1E88C7;
    --sail:#F2994A;
    --sail-dim:#FBD4A8;
    --line:#DCE6EC;
    --good:#2E9E5B;
    --muted:#8a97a3;
    --danger:#C0392B;
    --danger-bg:#FDECEC;
    --danger-border:#F0C4BC;
    --shadow-color:rgba(14,58,95,0.12);
    --on-dark:#F3F7FA;
  }
  [data-theme="dark"]{
    --deep:#0A2338;
    --deep2:#0F2E48;
    --foam:#0F1720;
    --card:#182430;
    --ink:#E7EDF3;
    --lake:#4FA8E0;
    --sail:#F2994A;
    --sail-dim:#5A3E22;
    --line:#2A3A48;
    --good:#3FB876;
    --muted:#8CA0B3;
    --danger:#E27C6E;
    --danger-bg:#3A2020;
    --danger-border:#5A2E28;
    --shadow-color:rgba(0,0,0,0.45);
  }
  *{box-sizing:border-box;}
  html,body{height:100%;margin:0;padding:0;}
  body{
    font-family:'Inter',sans-serif;
    background:var(--foam);
    color:var(--ink);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    height:100vh;
    height:100dvh;
  }
  #app{position:relative;flex:1;min-height:0;overflow:hidden;}

  #siteFooter{
    flex-shrink:0;
    border-top:1px solid var(--line);
    background:var(--card);
  }
  .footer-info{
    display:flex;
    align-items:center;
    gap:10px;
    background:#EAF4FB;
    color:var(--deep);
    font-size:12.5px;
    padding:10px 20px;
  }
  .footer-info svg{width:16px;height:16px;flex-shrink:0;color:var(--lake);}
  .footer-info a{color:var(--lake);font-weight:600;}
  .footer-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:8px 20px;
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    color:var(--muted);
  }
  @media (max-width:700px){
    .footer-row{flex-direction:column;gap:2px;text-align:center;}
    .footer-info{font-size:11.5px;}
  }
  #footerPageLinks a{
    color:var(--muted);
    text-decoration:none;
    margin:0 8px;
    cursor:pointer;
  }
  #footerPageLinks a:hover{color:var(--lake);text-decoration:underline;}

  .footer-banner-slot{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:8px 20px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    background:var(--foam);
  }
  .footer-banner-label{
    font-family:'JetBrains Mono',monospace;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:0.5px;
    color:var(--muted);
    flex-shrink:0;
  }
  .footer-banner-slot img{
    max-height:50px;
    max-width:100%;
    height:auto;
    width:auto;
    display:block;
    border-radius:4px;
  }
  .footer-banner-slot a{display:flex;align-items:center;}

  .banner-admin-thumb{
    width:64px;
    height:34px;
    flex-shrink:0;
    background:var(--foam);
    border:1px solid var(--line);
    border-radius:6px;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-right:10px;
  }
  .banner-admin-thumb img{max-width:100%;max-height:100%;object-fit:contain;}
  .banner-status-col{
    flex-shrink:0;
    display:flex;
    align-items:center;
  }
  .banner-status-select{
    font-family:'Inter',sans-serif;
    font-size:11.5px;
    font-weight:600;
    padding:6px 8px;
    border-radius:8px;
    border:1px solid var(--line);
    cursor:pointer;
  }
  .banner-status-select{background:#FDECD2;color:#B8791B;}
  .banner-status-select:has(option[value="paid"]:checked){background:#DFF3E6;color:#2E9E5B;}
  .banner-status-select:has(option[value="active"]:checked){background:#DCEEFB;color:#1E88C7;}
  .banner-status-select:has(option[value="deactivated"]:checked){background:#E8E8EA;color:#6B6B70;}
  .banner-stats-row{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    color:var(--lake);
    margin-top:4px;
  }
  .banner-contact-box{
    font-family:'Inter',sans-serif;
    font-size:11.5px;
    color:var(--muted);
    margin-top:6px;
    padding:8px 10px;
    background:var(--foam);
    border-radius:8px;
    display:flex;
    flex-direction:column;
    gap:2px;
  }
  .banner-contact-box a{color:var(--lake);}
  .banner-preview{
    background:var(--foam);
    border:1px solid var(--line);
    border-radius:8px;
    padding:10px;
    margin-bottom:10px;
    display:flex;
    justify-content:center;
  }
  .banner-preview img{max-height:60px;max-width:100%;}

  .banner-info-box{
    background:#EAF4FB;
    border:1px solid var(--lake);
    border-radius:9px;
    padding:12px 14px;
    margin-bottom:16px;
  }
  .banner-info-title{
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:12.5px;
    color:var(--deep);
  }
  .banner-info-text{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    color:var(--ink);
    margin-top:2px;
  }

  #pageView{
    display:none;
    position:absolute;
    inset:0;
    z-index:150;
    background:var(--foam);
    overflow-y:auto;
  }
  #pageView.open{display:block;}
  #myPostsView{
    display:none;
    position:absolute;
    inset:0;
    z-index:150;
    background:var(--foam);
    overflow-y:auto;
  }
  #myPostsView.open{display:block;}
  #friendsView, #friendFavoritesView, #windStatsView, #eventsView, #compareView{
    display:none;
    position:absolute;
    inset:0;
    z-index:150;
    background:var(--foam);
    overflow-y:auto;
    padding-bottom:76px;
  }
  #friendsView.open, #friendFavoritesView.open, #windStatsView.open, #eventsView.open, #compareView.open{display:block;}

  .compare-select-row{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:10px;
    margin:20px 0;
  }
  .compare-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:14px;
  }
  .compare-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:14px;
    padding:20px;
  }
  .compare-card-name{
    font-family:'Space Grotesk',sans-serif;
    font-size:17px;
    font-weight:700;
    line-height:1.25;
    color:var(--deep);
    margin:0 0 2px;
    min-height:2.5em;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .compare-card-name:hover{color:var(--lake);text-decoration:underline;}
  .compare-card-lake{
    font-family:'Inter',sans-serif;
    font-size:12px;
    color:var(--muted);
    margin-bottom:14px;
    min-height:1.4em;
  }
  .compare-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:9px 0;
    border-top:1px solid var(--line);
  }
  .compare-row:first-of-type{border-top:none;}
  .compare-row-label{
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    color:var(--muted);
  }
  .compare-row-value{
    font-family:'JetBrains Mono',monospace;
    font-size:13px;
    font-weight:600;
    color:var(--ink);
    text-align:right;
  }
  .compare-wind-match{color:var(--good);}
  .compare-wind-nomatch{color:var(--muted);}

  .event-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:18px 20px;
    margin-bottom:12px;
    display:flex;
    gap:16px;
    align-items:flex-start;
    transition:box-shadow 0.3s, border-color 0.3s;
  }
  .event-card.past{opacity:0.6;}
  .event-card-flash{
    border-color:var(--lake);
    box-shadow:0 0 0 3px rgba(30,136,199,0.25);
  }
  .event-date-block{
    flex-shrink:0;
    width:56px;
    text-align:center;
    background:var(--foam);
    border-radius:10px;
    padding:8px 4px;
  }
  .event-date-day{
    font-family:'Space Grotesk',sans-serif;
    font-size:22px;
    font-weight:700;
    color:var(--deep);
    line-height:1.1;
  }
  .event-date-month{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    text-transform:uppercase;
    color:var(--muted);
  }
  .event-body{flex:1;min-width:0;}
  .event-title{
    font-family:'Space Grotesk',sans-serif;
    font-size:16px;
    font-weight:700;
    color:var(--deep);
    margin:0 0 4px;
  }
  .event-meta{
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    color:var(--muted);
    margin-bottom:8px;
    display:flex;
    flex-wrap:wrap;
    gap:4px 12px;
  }
  .event-desc{
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    color:var(--ink);
    line-height:1.5;
    margin:0 0 10px;
    white-space:pre-wrap;
  }
  .event-images{
    display:flex;
    gap:8px;
    margin-bottom:10px;
    flex-wrap:wrap;
  }
  .event-images img{
    width:110px;
    height:110px;
    object-fit:cover;
    border-radius:10px;
    border:1px solid var(--line);
    display:block;
  }
  .event-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .event-interest-btn{
    padding:7px 14px;
    border-radius:20px;
    border:1px solid var(--line);
    background:var(--foam);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    font-weight:600;
    cursor:pointer;
  }
  .event-interest-btn.on{background:var(--lake);border-color:var(--lake);color:white;}
  .event-interest-count{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    color:var(--muted);
  }
  .event-admin-actions{margin-left:auto;display:flex;gap:6px;flex-shrink:0;}

  #settingsBackdrop{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(14,58,95,0.35);
    z-index:190;
  }
  #settingsBackdrop.open{display:block;}
  #settingsView{
    display:none;
    position:fixed;
    top:88px;
    right:28px;
    width:440px;
    max-width:calc(100vw - 32px);
    max-height:calc(100vh - 120px);
    overflow-y:auto;
    background:var(--card);
    border-radius:16px;
    box-shadow:0 24px 60px rgba(14,58,95,0.35);
    z-index:191;
    padding:24px;
  }
  #settingsView.open{display:block;}
  #favoritesBackdrop{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(14,58,95,0.35);
    z-index:190;
  }
  #favoritesBackdrop.open{display:block;}
  #favoritesView{
    display:none;
    position:fixed;
    top:88px;
    right:28px;
    width:380px;
    max-width:calc(100vw - 32px);
    max-height:calc(100vh - 120px);
    overflow-y:auto;
    background:var(--card);
    border-radius:16px;
    box-shadow:0 24px 60px rgba(14,58,95,0.35);
    z-index:191;
    padding:24px;
  }
  #favoritesView.open{display:block;}
  #alertsModalBackdrop{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(14,58,95,0.35);
    z-index:190;
  }
  #alertsModalBackdrop.open{display:block;}
  #alertsModalView{
    display:none;
    position:fixed;
    top:88px;
    right:28px;
    width:480px;
    max-width:calc(100vw - 32px);
    max-height:calc(100vh - 120px);
    overflow-y:auto;
    background:var(--card);
    border-radius:16px;
    box-shadow:0 24px 60px rgba(14,58,95,0.35);
    z-index:191;
    padding:24px;
  }
  #alertsModalView.open{display:block;}

  #windDetailView{
    display:none;
    position:fixed;
    top:90px;
    right:480px;
    width:380px;
    max-width:calc(100vw - 500px);
    max-height:calc(100vh - 120px);
    overflow-y:auto;
    background:var(--card);
    border-radius:16px;
    box-shadow:0 24px 60px rgba(14,58,95,0.35);
    z-index:1090;
    padding:20px;
  }
  #windDetailView.open{display:block;}

  #tourBackdrop{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(10,20,30,0.6);
    z-index:400;
  }
  #tourBackdrop.open{display:block;}
  #tourView{
    display:none;
    position:fixed;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:400px;
    max-width:calc(100vw - 40px);
    background:var(--card);
    border-radius:20px;
    box-shadow:0 30px 80px rgba(0,0,0,0.4);
    z-index:401;
    padding:36px 28px 28px;
    text-align:center;
  }
  #tourView.open{display:block;}

  #qrBackdrop{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(10,20,30,0.6);
    z-index:400;
  }
  #qrBackdrop.open{display:block;}
  #qrView{
    display:none;
    position:fixed;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:340px;
    max-width:calc(100vw - 40px);
    background:var(--card);
    border-radius:20px;
    box-shadow:0 30px 80px rgba(0,0,0,0.4);
    z-index:401;
    padding:24px;
    text-align:center;
  }
  #qrView.open{display:block;}

  #widgetCodeView{
    display:none;
    position:fixed;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:360px;
    max-width:calc(100vw - 40px);
    background:var(--card);
    border-radius:20px;
    box-shadow:0 30px 80px rgba(0,0,0,0.4);
    z-index:401;
    padding:24px;
    text-align:center;
  }
  #widgetCodeView.open{display:block;}
  #qrCodeCanvas{
    display:flex;
    justify-content:center;
    margin:16px 0;
    padding:16px;
    background:#FFFFFF;
    border-radius:12px;
  }
  .tour-skip{
    position:absolute;
    top:16px;right:18px;
    background:none;
    border:none;
    font-family:'Inter',sans-serif;
    font-size:12px;
    font-weight:600;
    color:var(--muted);
    cursor:pointer;
  }
  .tour-skip:hover{color:var(--ink);}
  .tour-icon{font-size:48px;margin-bottom:14px;}
  .tour-title{
    font-family:'Space Grotesk',sans-serif;
    font-size:20px;
    font-weight:700;
    color:var(--deep);
    margin:0 0 10px;
  }
  .tour-text{
    font-family:'Inter',sans-serif;
    font-size:14px;
    line-height:1.55;
    color:var(--ink);
    margin:0 0 22px;
  }
  .tour-dots{
    display:flex;
    justify-content:center;
    gap:6px;
    margin-bottom:22px;
  }
  .tour-dot{
    width:7px;height:7px;
    border-radius:50%;
    background:var(--line);
  }
  .tour-dot.on{background:var(--lake);width:18px;border-radius:4px;transition:width 0.2s;}
  .tour-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
  }
  .tour-actions .submit-btn, .tour-actions .del-btn{flex:1;}
  .settings-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:20px;
  }
  .settings-modal-close{
    background:none;
    border:none;
    font-size:26px;
    line-height:1;
    color:var(--muted);
    cursor:pointer;
    padding:0 4px;
  }
  .settings-modal-close:hover{color:var(--ink);}
  .settings-section{
    background:var(--foam);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px;
    margin-bottom:16px;
  }
  .settings-section-title{
    font-family:'Space Grotesk',sans-serif;
    font-size:16px;
    font-weight:700;
    color:var(--deep);
    margin-bottom:10px;
  }
  .settings-section-hint{
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    color:var(--muted);
    margin:0 0 14px;
  }
  .wind-unit-switch{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
  }
  .wind-unit-btn{
    padding:9px 16px;
    border:1px solid var(--line);
    border-radius:9px;
    background:var(--foam);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    font-weight:600;
    cursor:pointer;
  }
  .wind-unit-btn:hover{border-color:var(--lake);}
  .wind-unit-btn.active{background:var(--lake);border-color:var(--lake);color:white;}
  #settingsView .lang-switch{position:static;display:flex;gap:8px;}
  #settingsView .lang-btn{
    padding:9px 16px;
    border:1px solid var(--line);
    border-radius:9px;
    background:var(--foam);
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    font-weight:600;
    cursor:pointer;
    color:var(--ink);
  }
  #settingsView .lang-btn:hover{border-color:var(--lake);}
  #settingsView .lang-btn.active{background:var(--lake);border-color:var(--lake);color:white;}
  #friendsFooterBannerSlot{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:160;
    justify-content:space-between;
    padding-right:16px;
  }
  #adminView{
    display:none;
    position:absolute;
    inset:0;
    z-index:150;
    background:var(--foam);
    overflow-y:auto;
  }
  #adminView.open{display:block;}
  #communityView{
    display:none;
    position:absolute;
    inset:0;
    z-index:150;
    background:var(--foam);
    overflow-y:auto;
    padding-bottom:76px;
  }
  #communityView.open{display:block;}
  #communityFooterBannerSlot{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:160;
    justify-content:space-between;
    padding-right:16px;
  }
  .community-footer-banner-content{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .community-footer-version{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    color:var(--muted);
    white-space:nowrap;
    flex-shrink:0;
  }
  .community-view-inner{max-width:900px;padding-right:280px;padding-left:280px;}
  .community-columns{
    display:block;
  }
  .community-main{width:100%;}
  .community-sidebar-left{
    width:240px;
    position:fixed;
    top:110px;
    left:28px;
    max-height:calc(100vh - 140px);
    overflow-y:auto;
  }
  .community-sidebar{
    width:240px;
    position:fixed;
    top:110px;
    right:28px;
    max-height:calc(100vh - 140px);
    overflow-y:auto;
    display:flex;
    flex-direction:column;
    gap:16px;
  }
  .sidebar-widget{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:16px;
    flex-shrink:0;
  }
  .sidebar-widget .fc-title{margin-bottom:10px;padding-bottom:8px;}
  .widget-title-row{
    display:flex;
    align-items:center;
    gap:6px;
  }
  .widget-title-text{
    flex:1;
    display:flex;
    align-items:center;
    min-width:0;
  }
  .widget-drag-handle{
    cursor:grab;
    color:#c3ccd4;
    font-size:15px;
    line-height:1;
    flex-shrink:0;
    padding:2px;
  }
  .widget-drag-handle:hover{color:var(--lake);}
  .widget-collapse-btn{
    background:none;
    border:none;
    color:var(--muted);
    cursor:pointer;
    font-size:13px;
    padding:2px 4px;
    flex-shrink:0;
  }
  .widget-collapse-btn:hover{color:var(--lake);}
  .sidebar-widget.dragging{opacity:0.4;}
  .sidebar-widget[draggable="true"]{transition:transform 0.15s;}
  .whatsapp-widget-text{
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    color:var(--ink);
    line-height:1.5;
    margin:0 0 12px;
  }
  .whatsapp-qr{
    width:100%;
    max-width:180px;
    display:block;
    margin:0 auto;
    border-radius:8px;
    border:1px solid var(--line);
  }
  .facebook-group-link{
    display:flex;
    align-items:center;
    gap:8px;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:13px;
    color:var(--ink);
    text-decoration:none;
    margin-bottom:8px;
  }
  .facebook-group-link:last-child{margin-bottom:0;}
  .facebook-group-link:hover{border-color:#1877F2;color:#1877F2;}
  .sidebar-banner-widget{padding:0;overflow:hidden;}
  #sidebarBannerSlot{width:200px;height:200px;margin:0 auto;}
  #sidebarBannerSlot a, #sidebarBannerSlot span{display:block;width:100%;height:100%;}
  #sidebarBannerSlot img{width:100%;height:100%;object-fit:cover;display:block;}
  .live-now-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 0;
    border-bottom:1px solid var(--line);
    cursor:pointer;
  }
  .live-now-item:last-child{border-bottom:none;}
  .live-now-item:hover .live-now-name{color:var(--lake);}
  .live-now-info{min-width:0;flex:1;}
  .fav-wind-badge{
    flex-shrink:0;
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    font-weight:600;
    color:var(--lake);
    white-space:nowrap;
  }
  .live-now-name{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:13px;
    color:var(--ink);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .live-now-spot{
    font-family:'Inter',sans-serif;
    font-size:11.5px;
    color:var(--muted);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .spot-tip-title-row{display:flex;justify-content:space-between;align-items:center;}
  #spotTipRefreshBtn{
    background:none;
    border:1px solid var(--line);
    border-radius:6px;
    width:26px;height:26px;
    font-size:15px;
    line-height:1;
    color:var(--lake);
    cursor:pointer;
    flex-shrink:0;
  }
  #spotTipRefreshBtn:hover{background:var(--foam);}
  .spot-tip-card{
    cursor:pointer;
    padding:4px 0;
  }
  .spot-tip-name{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:14px;
    color:var(--ink);
    margin-bottom:6px;
  }
  .spot-tip-card:hover .spot-tip-name{color:var(--lake);}
  .spot-tip-lake{
    font-family:'Inter',sans-serif;
    font-size:12px;
    color:var(--muted);
    margin-top:6px;
  }
  .windiest-kt{
    font-family:'JetBrains Mono',monospace;
    font-weight:700;
    font-size:20px;
    color:var(--lake);
  }
  .windiest-gust{
    font-family:'Inter',sans-serif;
    font-weight:400;
    font-size:12px;
    color:var(--muted);
  }
  .mini-badges{display:flex;gap:6px;flex-wrap:wrap;}
  @media (max-width:1100px){
    .community-view-inner{padding-right:24px;padding-left:24px;}
    .community-columns{display:flex;flex-direction:column;}
    .community-sidebar{
      position:static;
      width:100%;
      max-height:none;
      margin-bottom:20px;
      order:-1;
    }
    .community-sidebar-left{
      position:static;
      width:100%;
      max-height:none;
      margin-bottom:20px;
      order:-2;
    }
  }

  .composer-bar{
    display:flex;
    align-items:center;
    gap:10px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:12px 16px;
    cursor:pointer;
    margin-bottom:8px;
  }
  .composer-bar:hover{border-color:var(--lake);}
  .composer-avatar{
    width:34px;height:34px;
    border-radius:50%;
    background:var(--lake);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    flex-shrink:0;
  }
  .composer-placeholder{
    font-family:'Inter',sans-serif;
    font-size:14px;
    color:var(--muted);
  }
  .composer-open{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:14px 16px;
    margin-bottom:8px;
  }
  .composer-open textarea{
    width:100%;
    min-height:80px;
    border:1px solid var(--line);
    border-radius:9px;
    padding:10px;
    font-family:'Inter',sans-serif;
    font-size:14px;
    resize:vertical;
    margin-bottom:10px;
  }
  .session-composer-select{
    width:100%;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-size:14px;
    background:var(--card);
    color:var(--ink);
  }
  .composer-actions{display:flex;justify-content:flex-end;gap:8px;}
  .community-item-post{border-color:var(--sail);background:#FFF8F0;}

  .composer-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;position:relative;}
  .composer-tool-btn{
    background:var(--foam);
    border:1px solid var(--line);
    border-radius:8px;
    width:36px;height:36px;
    font-size:17px;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .composer-tool-btn:hover{border-color:var(--lake);}
  .composer-emoji-wrap{position:relative;}
  .composer-emoji-panel{
    position:absolute;
    top:42px;left:0;
    z-index:20;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:8px;
    display:grid;
    grid-template-columns:repeat(6, 1fr);
    gap:2px;
    box-shadow:0 6px 20px rgba(0,0,0,0.12);
  }
  .composer-emoji-item{
    font-size:19px;
    padding:4px;
    cursor:pointer;
    border-radius:6px;
    text-align:center;
  }
  .composer-emoji-item:hover{background:var(--foam);}
  .composer-image-preview{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
  .composer-image-thumb{position:relative;width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--foam);}
  .composer-image-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
  .composer-image-remove{
    position:absolute;top:2px;right:2px;
    width:18px;height:18px;
    border-radius:50%;
    background:rgba(0,0,0,0.6);
    color:white;
    border:none;
    font-size:13px;
    line-height:1;
    cursor:pointer;
  }
  .community-post-images{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
    gap:6px;
    margin:8px 0;
  }
  .community-post-images img{
    width:100%;
    height:140px;
    object-fit:cover;
    border-radius:8px;
    display:block;
  }
  .community-post-actions{
    display:flex;
    gap:8px;
    margin-top:8px;
    padding-top:8px;
    border-top:1px solid var(--line);
  }
  .community-post-actions button{
    background:none;
    border:1px solid var(--line);
    border-radius:7px;
    padding:5px 12px;
    font-family:'Inter',sans-serif;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
    color:var(--ink);
  }
  .community-post-actions .post-del-btn{color:var(--danger);border-color:var(--danger-border);}
  .community-post-actions button:hover{background:var(--foam);}
  .post-edit-textarea{
    width:100%;
    min-height:80px;
    border:1px solid var(--line);
    border-radius:9px;
    padding:10px;
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    resize:vertical;
    margin-bottom:8px;
  }

  .community-sort-row{margin:16px 0 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
  .only-mine-toggle{
    display:flex;
    align-items:center;
    gap:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    color:var(--ink);
    cursor:pointer;
  }
  .only-mine-toggle input{width:auto;}
  .community-sort-row select{
    padding:8px 12px;
    border:1px solid var(--line);
    border-radius:8px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--card);
    color:var(--ink);
  }
  .community-item{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:14px 16px;
    margin-bottom:14px;
  }
  .community-item[onclick]{cursor:pointer;}
  .community-item[onclick]:hover{border-color:var(--lake);}
  .community-item-head{
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    color:var(--ink);
    margin-bottom:8px;
  }
  .community-spot-link{
    color:var(--lake);
    font-weight:600;
    cursor:pointer;
    text-decoration:none;
  }
  .community-spot-link:hover{text-decoration:underline;}
  .community-item-photo{
    width:160px;
    height:160px;
    max-height:none;
    object-fit:cover;
    border-radius:8px;
    margin-bottom:8px;
    cursor:pointer;
    display:block;
  }
  .community-item-details{display:flex;gap:6px;margin-bottom:6px;}
  .community-item-text{
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    color:var(--ink);
    line-height:1.5;
    margin:4px 0 8px;
    white-space:pre-wrap;
  }
  .community-item-date{
    font-family:'JetBrains Mono',monospace;
    font-size:10.5px;
    color:var(--muted);
  }
  .community-item-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:6px;
  }
  .like-btn{
    display:flex;
    align-items:center;
    gap:5px;
    background:none;
    border:none;
    color:var(--muted);
    cursor:pointer;
    padding:2px 6px;
    border-radius:6px;
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
  }
  .like-btn svg{width:17px;height:17px;flex-shrink:0;}
  .like-btn:hover{background:var(--foam);color:#e0455f;}
  .like-btn.liked{color:#e0455f;}

  .friend-add-btn{
    background:none;
    border:1px solid var(--lake);
    color:var(--lake);
    border-radius:6px;
    padding:2px 8px;
    font-family:'Inter',sans-serif;
    font-size:11px;
    font-weight:600;
    cursor:pointer;
    margin-left:6px;
    vertical-align:middle;
  }
  .friend-add-btn:hover{background:var(--lake);color:white;}
  .friend-badge{
    margin-left:6px;
    font-size:13px;
    vertical-align:middle;
  }
  .friend-badge-pending{opacity:0.6;}
  .friend-list-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 0;
    border-bottom:1px solid var(--line);
  }
  .friend-list-item:last-child{border-bottom:none;}
  .friend-request-actions{
    margin-left:auto;
    display:flex;
    gap:8px;
    flex-shrink:0;
  }
  .widget-see-all-link{
    display:block;
    text-align:center;
    margin-top:8px;
    padding-top:8px;
    border-top:1px solid var(--line);
    font-family:'Inter',sans-serif;
    font-size:12px;
    font-weight:600;
    color:var(--lake);
    cursor:pointer;
    text-decoration:none;
  }
  .widget-see-all-link:hover{text-decoration:underline;}
  .friends-mini-pending-note{
    background:#FBD4A8;
    color:var(--ink);
    border-radius:8px;
    padding:6px 10px;
    font-family:'Inter',sans-serif;
    font-size:12px;
    font-weight:600;
    margin-bottom:8px;
  }

  .community-photo-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:8px;
    margin-bottom:12px;
  }
  .community-photo-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--foam);}
  .community-photo-item img{width:100%;height:100%;object-fit:cover;display:block;}
  .community-photo-del{
    position:absolute;
    top:4px;right:4px;
    width:22px;height:22px;
    border-radius:50%;
    background:rgba(0,0,0,0.6);
    color:white;
    border:none;
    font-size:16px;
    line-height:1;
    cursor:pointer;
  }
  .community-photo-upload-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:none;
    border:1px dashed var(--lake);
    color:var(--lake);
    padding:9px 16px;
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:13px;
    cursor:pointer;
  }
  .community-photo-upload-btn:hover{background:var(--foam);}
  .admin-dashboard-title{
    font-family:'Space Grotesk',sans-serif;
    font-size:26px;
    font-weight:700;
    color:var(--deep);
    margin:0 0 6px;
  }
  .admin-tile-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
    gap:14px;
    margin-top:20px;
  }
  .admin-tile{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px 16px;
    cursor:pointer;
    transition:border-color .15s ease, transform .1s ease;
  }
  .admin-tile:hover{border-color:var(--lake);transform:translateY(-2px);}
  .admin-tile svg{width:26px;height:26px;color:var(--lake);margin-bottom:10px;}
  .admin-tile-label{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:15px;
    color:var(--ink);
    margin-bottom:4px;
  }
  .admin-tile-desc{
    font-family:'Inter',sans-serif;
    font-size:12px;
    color:var(--muted);
    line-height:1.4;
  }
  @media (max-width:700px){
    .admin-tile-grid{grid-template-columns:repeat(2, 1fr);}
  }
  .page-view-inner{
    max-width:760px;
    margin:0 auto;
    padding:100px 24px 60px;
  }
  #adminView .page-view-inner{
    max-width:1100px;
  }
  .page-view-back{
    background:none;
    border:1px solid var(--line);
    color:var(--deep);
    padding:8px 14px;
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:13px;
    cursor:pointer;
    margin-bottom:24px;
  }
  .page-view-back:hover{border-color:var(--lake);color:var(--lake);}
  .page-view-bottom-nav{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-top:40px;
    padding-top:20px;
    border-top:1px solid var(--line);
  }
  .page-view-bottom-nav .page-view-back{margin-bottom:0;}
  .page-view-top-btn{
    background:none;
    border:1px solid var(--line);
    color:var(--deep);
    padding:8px 14px;
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:13px;
    cursor:pointer;
  }
  .page-view-top-btn:hover{border-color:var(--lake);color:var(--lake);}
  #pageViewTitle{
    font-family:'Space Grotesk',sans-serif;
    font-size:28px;
    font-weight:700;
    color:var(--deep);
    margin:0 0 20px;
  }
  #pageViewContent{
    font-family:'Inter',sans-serif;
    font-size:15px;
    line-height:1.7;
    color:var(--ink);
  }
  #pageViewContent h2{font-family:'Space Grotesk',sans-serif;font-size:19px;margin:28px 0 10px;color:var(--deep);}
  #pageViewContent h3{font-family:'Space Grotesk',sans-serif;font-size:16px;margin:20px 0 8px;color:var(--deep);}
  #pageViewContent p{margin:0 0 14px;}
  #pageViewContent ul, #pageViewContent ol{margin:0 0 14px;padding-left:22px;}
  #pageViewContent a{color:var(--lake);}
  @media (max-width:760px){
    .page-view-inner{padding:70px 18px 40px;}
    #pageViewTitle{font-size:22px;}
  }

  .nav-menu-page-link{
    display:flex;
    align-items:center;
    gap:10px;
    padding:11px 14px;
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:15px;
    color:var(--ink);
    text-decoration:none;
    cursor:pointer;
  }
  .nav-menu-page-link svg{width:18px;height:18px;flex-shrink:0;}
  .nav-menu-page-link:hover{background:var(--foam);}

  /* ---------- Header / Hero ---------- */
  header{
    position:absolute;
    top:0;left:0;right:0;
    background:rgba(14,58,95,0.38);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    color:var(--on-dark);
    padding:20px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    z-index:200;
    flex-shrink:0;
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  header.header-solid{
    background:var(--deep);
  }
  .brand{
    display:flex;align-items:center;gap:16px;position:relative;z-index:1;
    text-decoration:none;color:inherit;cursor:pointer;
    transition:opacity .15s ease;
  }
  .brand:hover{opacity:0.85;}
  .brand svg{width:44px;height:44px;flex-shrink:0;}
  .brand-logo{
    width:44px;height:44px;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .brand-logo img{
    width:100%;height:100%;
    object-fit:contain;
    display:block;
    border-radius:50%;
  }
  .logo-mark{filter:drop-shadow(0 2px 4px rgba(0,0,0,0.35));}
  .brand h1{
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:30px;
    margin:0;
    letter-spacing:0.2px;
    line-height:1.08;
  }
  #adminHeaderBadge{
    display:inline-block;
    vertical-align:middle;
    margin-left:10px;
    color:#E53935;
    font-family:'JetBrains Mono',monospace;
    font-weight:700;
    font-style:italic;
    font-size:16px;
    letter-spacing:1px;
    cursor:pointer;
  }
  .brand p{
    margin:5px 0 0;
    font-size:12px;
    color:rgba(243,247,250,0.75);
    font-family:'JetBrains Mono',monospace;
    letter-spacing:0.6px;
    text-transform:uppercase;
  }
  .header-actions{display:flex;gap:10px;position:relative;z-index:1;flex-shrink:0;}
  .cta-btn{
    background:var(--sail);
    color:white;
    border:none;
    padding:10px 18px;
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:14px;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:8px;
    transition:transform .15s ease, background .15s ease;
    box-shadow:0 2px 0 rgba(0,0,0,0.2);
  }
  .cta-btn:hover{background:#d4531f;transform:translateY(-1px);}
  .cta-btn.active{background:var(--lake);}
  .cta-btn svg{width:16px;height:16px;flex-shrink:0;}

  .nav-item{
    background:none;
    border:none;
    color:var(--on-dark);
    padding:8px 4px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:14px;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:6px;
    opacity:0.85;
    position:relative;
    text-decoration:none;
  }
  .nav-item:hover{opacity:1;}
  .nav-item.active{opacity:1;}
  .nav-item.active::after{
    content:"";
    position:absolute;
    left:4px;right:4px;bottom:-2px;
    height:2px;
    background:var(--sail);
    border-radius:2px;
  }
  .nav-item svg{width:18px;height:18px;flex-shrink:0;}
  .nav-online-badge{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:17px;
    height:17px;
    padding:0 4px;
    border-radius:9px;
    background:#2E9E5B;
    color:white;
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    font-weight:700;
    position:absolute;
    top:2px;
    right:-4px;
    box-shadow:0 0 0 2px var(--deep2);
  }
  #favNavBtn.active svg{stroke:#E53935;}
  #favNavBtn.active svg path.fav-star{fill:#E53935;}
  #favNavBtn.active::after{background:#E53935;}

  .nav-item-dropdown{position:relative;}
  .nav-menu{
    display:none;
    position:absolute;
    top:calc(100% + 10px);
    right:0;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    box-shadow:0 8px 24px rgba(14,58,95,0.25);
    padding:6px;
    min-width:230px;
    z-index:200;
  }
  .nav-menu.open{display:block;}
  .nav-menu-title{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.5px;
    color:var(--muted);
    padding:8px 12px 4px;
  }
  .lang-switch{
    display:flex;
    gap:6px;
    padding:0 12px 10px;
  }
  .lang-btn{
    flex:1;
    background:none;
    border:1px solid var(--line);
    border-radius:6px;
    padding:6px 0;
    font-family:'JetBrains Mono',monospace;
    font-weight:600;
    font-size:11px;
    color:var(--ink);
    cursor:pointer;
  }
  .lang-btn:hover{border-color:var(--lake);color:var(--lake);}
  .lang-btn.active{background:var(--lake);border-color:var(--lake);color:white;}
  .nav-menu button{
    width:100%;
    background:none;
    border:none;
    color:var(--ink);
    padding:12px 14px;
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:15px;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:10px;
    text-align:left;
  }
  .nav-menu button:hover{background:var(--foam);}
  .nav-menu button svg{width:18px;height:18px;flex-shrink:0;}
  .nav-menu-account{
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 12px 12px;
    border-bottom:1px solid var(--line);
    margin-bottom:6px;
  }
  .nav-menu-account #userName{
    font-family:'Inter',sans-serif;
    font-size:14px;
    font-weight:600;
    color:var(--ink);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .avatar-wrap{
    position:relative;
    width:36px;height:36px;
    border-radius:50%;
    overflow:hidden;
    background:var(--sail);
    flex-shrink:0;
  }
  .avatar-wrap #userAvatar{width:100%;height:100%;object-fit:cover;display:block;}
  .avatar-wrap #avatarInitial{
    position:absolute;
    inset:0;
    display:none;
    align-items:center;
    justify-content:center;
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:15px;
    color:white;
  }
  .avatar-wrap.fallback #userAvatar{display:none;}
  .avatar-wrap.fallback #avatarInitial{display:flex;}

  /* ---------- Layout ---------- */
  #main{position:absolute;inset:0;display:flex;z-index:1;}
  #map{flex:1;min-width:0;}
  #map .leaflet-tile-pane{filter:saturate(0.5) brightness(0.82) contrast(0.92);}
  #map .leaflet-top{margin-top:96px;}
  #map::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(14,58,95,0.22);
    pointer-events:none;
    z-index:350;
  }
  #panel{
    width:460px;
    background:rgba(243,247,250,0.68);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-left:1px solid var(--line);
    overflow-y:auto;
    flex-shrink:0;
    display:none;
    z-index:1100;
  }
  #panel.open{display:block;}
  .panel-inner{padding:22px;padding-top:96px;}

  /* ---------- Sidebar spot list ---------- */
  #sidebar{
    width:0;
    background:rgba(255,255,255,0.66);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-right:0px solid var(--line);
    flex-shrink:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    opacity:0;
    z-index:1100;
    padding-top:84px;
    transition:width .22s ease, opacity .18s ease;
  }
  #sidebar.open{
    width:340px;
    opacity:1;
    border-right-width:1px;
  }
  .sidebar-header{
    padding:14px 16px 12px;
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-shrink:0;
    width:340px;
  }
  .sidebar-header h2{
    font-family:'Space Grotesk',sans-serif;
    font-size:15px;
    font-weight:600;
    margin:0;
    color:var(--deep);
    flex:1;
  }
  #favOnlyBtn{
    background:none;
    border:none;
    cursor:pointer;
    color:var(--muted);
    padding:2px;
    display:flex;
  }
  #favOnlyBtn svg{width:18px;height:18px;}
  #favOnlyBtn:hover{color:var(--sail-dim);}
  #favOnlyBtn.on{color:#E53935;}
  #favOnlyBtn.on svg{fill:currentColor;}
  #nearbyBtn{
    background:none;
    border:none;
    cursor:pointer;
    color:var(--muted);
    padding:2px;
    display:flex;
  }
  #nearbyBtn svg{width:18px;height:18px;}
  #nearbyBtn:hover{color:var(--lake);}
  #nearbyBtn.on{color:var(--lake);}
  #nearbyBtn.on svg{fill:currentColor;}
  .mini-badge.dist{background:var(--lake);color:white;}
  .sidebar-header select{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    border:1px solid var(--line);
    border-radius:9px;
    padding:5px 6px;
    background:var(--foam);
    color:var(--ink);
  }
  .sidebar-search{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 16px;
    border-bottom:1px solid var(--line);
    color:var(--muted);
  }
  .sidebar-search svg{width:16px;height:16px;flex-shrink:0;}
  .sidebar-search input{
    flex:1;
    border:none;
    background:none;
    font-family:'Inter',sans-serif;
    font-size:13px;
    color:var(--ink);
    outline:none;
  }
  .sidebar-search input::placeholder{color:#b0b9c2;}
  #searchClearBtn{
    background:none;
    border:none;
    color:#b0b9c2;
    font-size:16px;
    line-height:1;
    cursor:pointer;
    padding:0 2px;
  }
  #searchClearBtn:hover{color:var(--sail);}

  .category-filter{
    display:flex;
    gap:6px;
    padding:10px 16px;
    border-bottom:1px solid var(--line);
    flex-wrap:wrap;
  }
  .cat-chip{
    display:flex;
    align-items:center;
    gap:5px;
    padding:5px 10px;
    border-radius:20px;
    border:1.5px solid var(--line);
    background:var(--card);
    font-family:'Inter',sans-serif;
    font-size:11.5px;
    font-weight:600;
    cursor:pointer;
    color:var(--muted);
    user-select:none;
  }
  .cat-chip .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
  .cat-chip.on{color:var(--ink);}
  #sidebarList{overflow-y:auto;flex:1;width:340px;}
  .sidebar-group-header{
    padding:10px 16px 4px;
    font-family:'JetBrains Mono',monospace;
    font-size:10.5px;
    text-transform:uppercase;
    letter-spacing:0.5px;
    color:var(--lake);
    background:var(--foam);
  }
  .spot-list-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 16px;
    border-bottom:1px solid var(--line);
    cursor:pointer;
  }
  .spot-list-item:hover{background:rgba(14,58,95,0.05);}
  .spot-list-item.dragging{opacity:0.4;}
  .drag-handle{
    color:#c4cdd4;
    cursor:grab;
    flex-shrink:0;
    display:flex;
  }
  .drag-handle svg{width:16px;height:16px;}
  .drag-handle:hover{color:var(--lake);}
  .spot-thumb{
    width:46px;height:46px;
    border-radius:8px;
    flex-shrink:0;
    background-size:cover;
    background-position:center;
    background-color:var(--lake);
    background-image:linear-gradient(135deg,var(--lake),var(--deep));
  }
  .spot-list-item .info{flex:1;min-width:0;}
  .spot-list-item .name{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:14px;
    color:var(--ink);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    display:flex;
    align-items:center;
    gap:5px;
  }
  .list-alert-icon{
    width:13px;height:13px;
    color:var(--lake);
    flex-shrink:0;
  }
  .mini-badges{margin-top:5px;display:flex;gap:4px;flex-wrap:wrap;}
  .mini-badge{
    font-family:'JetBrains Mono',monospace;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:0.4px;
    background:var(--deep);
    color:var(--on-dark);
    padding:2px 6px;
    border-radius:6px;
  }
  .mini-badge.wind{background:var(--sail);}
  #sidebarList .empty-note{padding:16px;}

  @media (max-width: 900px){
    #sidebar{
      position:absolute;
      left:0; top:0; bottom:0;
      width:85%; max-width:320px;
      opacity:1;
      transform:translateX(-100%);
      transition:transform .25s ease;
      box-shadow:4px 0 16px rgba(0,0,0,0.3);
    }
    #sidebar.open{
      transform:translateX(0);
      width:85%;
      max-width:320px;
    }
  }

  #hint{
    position:absolute;
    top:96px;left:50%;
    transform:translateX(-50%);
    background:var(--sail);
    color:white;
    padding:8px 16px;
    border-radius:9px;
    font-size:13px;
    font-weight:600;
    box-shadow:0 3px 10px rgba(0,0,0,0.25);
    display:none;
    z-index:1100;
    font-family:'Inter',sans-serif;
  }
  #hint.show{display:block;}

  .close-btn{
    background:none;border:none;cursor:pointer;
    color:var(--ink);opacity:0.5;font-size:22px;line-height:1;
    padding:4px;
  }
  .close-btn:hover{opacity:1;}
  .panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px;}
  #favBtn{
    background:none;
    border:none;
    cursor:pointer;
    color:var(--muted);
    padding:4px;
    display:flex;
  }
  #favBtn svg{width:24px;height:24px;}
  #favBtn:hover{color:var(--sail-dim);}
  #favBtn.on{color:#E53935;}
  #favBtn.on svg{fill:currentColor;}
  #alertBtn{
    background:none;
    border:none;
    cursor:pointer;
    color:var(--muted);
    padding:4px;
    display:flex;
  }
  #alertBtn svg{width:24px;height:24px;}
  #alertBtn:hover{color:var(--sail-dim);}
  #alertBtn.on{color:var(--lake);}
  #alertBtn.on svg{fill:currentColor;}
  #shareBtn{
    background:none;
    border:none;
    cursor:pointer;
    color:var(--muted);
    padding:4px;
    display:flex;
  }
  #shareBtn svg{width:24px;height:24px;}
  #qrBtn{
    background:none;
    border:none;
    cursor:pointer;
    color:var(--muted);
    padding:4px;
    display:flex;
  }
  #qrBtn:hover{color:var(--lake);}
  #qrBtn svg{width:24px;height:24px;}
  #shareBtn:hover{color:var(--lake);}

  .alert-form{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:14px;
    margin:0 0 18px;
  }
  .alert-form-title{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:14px;
    color:var(--ink);
    margin-bottom:10px;
  }
  .alert-form-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
  .alert-form-days{margin-bottom:10px;}
  .alert-day-rows{display:flex;flex-direction:column;gap:6px;}
  .alert-day-row{
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 8px;
    border:1px solid var(--line);
    border-radius:8px;
    flex-wrap:wrap;
  }
  .alert-day-row.off{opacity:0.5;}
  .alert-day-toggle{
    display:flex;
    align-items:center;
    gap:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    font-weight:600;
    color:var(--ink);
    width:96px;
    flex-shrink:0;
    cursor:pointer;
  }
  .alert-day-toggle input{width:auto;}
  .alert-day-row input[type="time"]{
    padding:5px 6px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    width:auto;
    flex:1;
    min-width:90px;
  }
  .af-copy-btn{
    background:none;
    border:1px solid var(--lake);
    color:var(--lake);
    border-radius:6px;
    padding:4px 8px;
    font-family:'Inter',sans-serif;
    font-size:11px;
    font-weight:600;
    cursor:pointer;
    margin-left:auto;
  }
  .af-copy-btn:hover{background:var(--lake);color:white;}
  .alert-form-row input[type=number]{
    width:70px;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'JetBrains Mono',monospace;
    font-size:14px;
    background:var(--foam);
    color:var(--ink);
  }
  .alert-form-checks{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
  .alert-form-checks label{
    display:flex;
    align-items:center;
    gap:8px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    color:var(--ink);
  }
  .alert-form-checks input[type=checkbox]{width:auto;}
  .alert-form-checks input[type=tel]{
    width:100%;
    margin-top:4px;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--foam);
    color:var(--ink);
  }
  .alert-form-actions{display:flex;gap:8px;}

  /* ---------- Spot detail ---------- */
  .spot-img{
    width:100%;height:220px;object-fit:contain;border-radius:12px;
    background:linear-gradient(135deg,var(--lake),var(--deep));
    margin-bottom:16px;
    display:block;
  }
  .gallery{
    position:relative;
    width:100%;height:220px;
    border-radius:12px;
    overflow:hidden;
    margin-bottom:16px;
    background:linear-gradient(135deg,var(--lake),var(--deep));
  }
  .gallery-track{
    display:flex;
    height:100%;
    transition:transform .3s ease;
  }
  .gallery-slide{
    min-width:100%;height:100%;
    position:relative;
  }
  .gallery-slide img{width:100%;height:100%;object-fit:contain;display:block;}
  .gallery-caption{
    position:absolute;
    left:0;right:0;bottom:0;
    background:linear-gradient(0deg,rgba(0,0,0,0.65),transparent);
    color:white;
    font-family:'Inter',sans-serif;
    font-size:12px;
    padding:16px 12px 8px;
  }
  .gallery-nav{
    position:absolute;
    top:50%;transform:translateY(-50%);
    background:rgba(0,0,0,0.4);
    color:white;
    border:none;
    width:28px;height:28px;
    border-radius:50%;
    font-size:18px;
    line-height:1;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;
  }
  .gallery-nav:hover{background:rgba(0,0,0,0.6);}
  .gallery-nav.prev{left:8px;}
  .gallery-nav.next{right:8px;}
  .gallery-dots{
    position:absolute;
    bottom:6px;left:50%;
    transform:translateX(-50%);
    display:flex;gap:5px;
  }
  .gallery-dot{
    width:6px;height:6px;
    border-radius:50%;
    background:rgba(255,255,255,0.45);
  }
  .gallery-dot.on{background:white;}
  .spot-title{
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:26px;
    margin:0 0 2px;
    color:var(--deep);
  }
  .wp-sponsor-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:2px solid var(--sail);
    border-radius:24px;
    padding:4px 14px 4px 4px;
    margin-bottom:10px;
    box-shadow:0 2px 8px rgba(242,153,74,0.3);
  }
  .wp-sponsor-badge img{
    width:32px;height:32px;
    border-radius:50%;
    object-fit:cover;
  }
  .wp-sponsor-badge span{
    font-family:'Inter',sans-serif;
    font-size:14px;
    font-weight:700;
    color:var(--ink);
  }
  .spot-meta{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    letter-spacing:0.5px;
    text-transform:uppercase;
    color:var(--lake);
    margin-bottom:14px;
  }
  .report-form{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:9px;
    padding:12px;
    margin-bottom:14px;
  }
  .report-form-title{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:13px;
    color:var(--ink);
    margin-bottom:8px;
  }
  .report-form select{
    width:100%;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--foam);
    color:var(--ink);
    margin-bottom:8px;
  }
  .report-form textarea{
    width:100%;
    min-height:60px;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--foam);
    color:var(--ink);
    margin-bottom:10px;
    resize:vertical;
  }
  .gps-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:var(--foam);
    border:1px solid var(--line);
    border-radius:9px;
    padding:9px 12px;
    margin-top:14px;
  }
  .gps-coords{display:flex;align-items:baseline;gap:8px;}
  .gps-label{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:0.5px;
    color:var(--lake);
  }
  .gps-value{
    font-family:'JetBrains Mono',monospace;
    font-size:13px;
    color:var(--ink);
  }
  .gps-copy{
    background:none;
    border:1px solid var(--line);
    border-radius:6px;
    padding:5px;
    cursor:pointer;
    color:#8a8478;
    display:flex;
  }
  .gps-copy:hover{color:var(--lake);border-color:var(--lake);}
  .gps-copy svg{width:14px;height:14px;}
  .checkin-box{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:9px;
    padding:10px 12px;
    margin-bottom:14px;
  }
  .checkin-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
  }
  .checkin-title{
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:13px;
    color:var(--ink);
  }
  .checkin-btn{
    background:var(--lake);
    color:white;
    border:none;
    padding:6px 12px;
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:12px;
    cursor:pointer;
    flex-shrink:0;
  }
  .checkin-btn:hover{background:var(--deep2);}
  .checkin-btn.active{background:none;border:1px solid var(--line);color:var(--muted);}
  .checkin-btn.active:hover{border-color:var(--sail);color:var(--sail);}
  .checkin-empty{
    font-family:'Inter',sans-serif;
    font-size:12px;
    color:var(--muted);
    margin:8px 0 0;
  }
  .plan-day-picker{
    display:flex;
    gap:8px;
    margin-top:10px;
    flex-wrap:wrap;
  }
  .plan-day-btn{
    padding:7px 14px;
    border-radius:20px;
    border:1px solid var(--line);
    background:var(--foam);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    font-weight:600;
    cursor:pointer;
  }
  .plan-day-btn.active{background:var(--lake);border-color:var(--lake);color:white;}
  .plan-remove-btn{
    padding:7px 14px;
    border-radius:20px;
    border:1px solid var(--danger-border);
    background:none;
    color:var(--danger);
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    font-weight:600;
    cursor:pointer;
  }
  .plan-day-group{margin-top:12px;}
  .plan-day-group-label{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:4px;
  }
  .plan-whatsapp-share{
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:12px;
    padding:9px 14px;
    border-radius:9px;
    border:1px solid var(--line);
    background:var(--foam);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    font-weight:600;
    text-decoration:none;
    width:fit-content;
  }
  .plan-whatsapp-share:hover{border-color:#25D366;}
  .plan-ride-list{margin-top:8px;display:flex;flex-direction:column;gap:3px;}
  .plan-ride-tag{
    font-family:'Inter',sans-serif;
    font-size:12px;
    font-weight:600;
  }
  .plan-ride-tag.offer{color:var(--good);}
  .plan-ride-tag.seek{color:var(--sail);}
  .plan-ride-form{
    margin-top:10px;
    padding:12px;
    background:var(--foam);
    border-radius:10px;
    border:1px solid var(--line);
  }
  .plan-ride-form input[type="text"], .plan-ride-form input[type="number"]{
    width:100%;
    padding:8px 10px;
    border-radius:8px;
    border:1px solid var(--line);
    font-family:'Inter',sans-serif;
    font-size:13px;
  }
  .checkin-avatars{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:10px;
  }
  .checkin-person{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    width:52px;
  }
  .checkin-avatar{
    position:relative;
    width:36px;height:36px;
    border-radius:50%;
    overflow:hidden;
    background:var(--sail);
    flex-shrink:0;
  }
  .checkin-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
  .checkin-avatar .checkin-initial{
    position:absolute;
    inset:0;
    display:none;
    align-items:center;
    justify-content:center;
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:14px;
    color:white;
  }
  .checkin-avatar.fallback img{display:none;}
  .checkin-avatar.fallback .checkin-initial{display:flex;}
  .checkin-name{
    font-family:'Inter',sans-serif;
    font-size:10px;
    color:var(--ink);
    text-align:center;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:52px;
  }

  .action-icon-row{
    display:flex;
    gap:8px;
    margin:8px 0 14px;
  }
  .action-icon-btn{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    background:var(--card);
    border:1px solid var(--line);
    color:var(--ink);
    text-decoration:none;
    padding:10px 6px;
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:11px;
  }
  .action-icon-btn svg{width:18px;height:18px;color:var(--lake);}
  .action-icon-btn:hover{border-color:var(--lake);}

  .safety-notice{
    background:var(--danger-bg);
    border:1px solid #E8A3A3;
    border-radius:9px;
    padding:10px 12px;
    margin:0 0 14px;
  }
  .safety-notice-head{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:6px;
  }
  .safety-notice-head svg{width:18px;height:18px;color:var(--danger);flex-shrink:0;}
  .safety-notice-title{
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:13px;
    color:var(--danger);
  }
  .safety-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;}
  .safety-chip{
    font-family:'Inter',sans-serif;
    font-size:11px;
    background:var(--card);
    border:1px solid #E8A3A3;
    color:var(--danger);
    padding:2px 9px;
    border-radius:12px;
  }
  .safety-text{
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    color:#7A2020;
    line-height:1.5;
    margin:0 0 6px;
  }
  .safety-map-link{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    background:var(--card);
    border:1px solid #E8A3A3;
    color:var(--danger);
    text-decoration:none;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:11.5px;
    padding:8px;
    border-radius:7px;
    margin-top:4px;
  }
  .safety-map-link:hover{background:var(--danger-bg);}
  .safety-map-link svg{width:15px;height:15px;flex-shrink:0;}

  .safety-checks{
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-bottom:8px;
  }
  .safety-check-label{
    display:flex;
    align-items:center;
    gap:8px;
    font-family:'Inter',sans-serif;
    text-transform:none;
    letter-spacing:0;
    font-size:13px;
    color:var(--ink);
  }
  .safety-check-label input{width:auto;}

  .parking-btn{background:var(--deep);}
  .parking-btn:hover{background:var(--deep2);}
  .webcam-btn{background:var(--sail);}
  .webcam-btn:hover{background:#d4531f;}

  .wf-parking-pin{width:26px;height:26px;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.45));}
  .wf-parking-pin svg{width:100%;height:100%;display:block;}

  .parking-status{
    font-family:'Inter',sans-serif;
    font-size:13px;
    color:var(--ink);
    background:var(--foam);
    border:1px solid var(--line);
    border-radius:7px;
    padding:8px 10px;
    margin-bottom:8px;
  }
  .parking-actions{display:flex;gap:8px;margin-bottom:6px;}
  .parking-actions .add-img-btn{margin-top:0;width:auto;flex:1;}
  .parking-actions .del-btn{width:auto;}

  .badge{
    display:inline-block;
    background:var(--deep);
    color:var(--on-dark);
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:0.5px;
    padding:3px 8px;
    border-radius:6px;
    margin-right:6px;
    margin-bottom:6px;
  }
  .badge.wind{background:var(--sail);}
  .spot-desc{
    font-size:14.5px;
    line-height:1.6;
    color:var(--ink);
    margin-bottom:20px;
    white-space:pre-wrap;
  }
  .spot-desc a{color:var(--lake);font-weight:600;word-break:break-word;}
  .spot-desc a:hover{text-decoration:underline;}

  .fc-title{
    font-family:'Space Grotesk',sans-serif;
    font-size:15px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.5px;
    color:var(--deep);
    border-bottom:1px solid var(--line);
    padding-bottom:8px;
    margin-bottom:12px;
  }
  .fc-title-row{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:10px;
    border-bottom:1px solid var(--line);
    padding-bottom:8px;
    margin-bottom:12px;
  }
  .fc-title-row .fc-title{
    border-bottom:none;
    padding-bottom:0;
    margin-bottom:0;
  }
  .fc-sun-times{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    color:var(--sail);
    white-space:nowrap;
    flex-shrink:0;
  }
  .comments-toggle{
    display:flex;
    justify-content:space-between;
    align-items:center;
    cursor:pointer;
  }
  .comments-toggle-label{
    display:flex;
    align-items:center;
    gap:4px;
    text-transform:none;
    letter-spacing:0;
    font-size:12px;
    color:var(--lake);
    font-weight:600;
  }
  .comments-toggle-icon{width:13px;height:13px;transition:transform .15s ease;}
  .comments-toggle-icon.open{transform:rotate(180deg);}

  .star-icon{width:18px;height:18px;color:var(--sail);flex-shrink:0;}
  .star-icon.sm{width:14px;height:14px;}
  .star-icon.picker{cursor:pointer;color:#c4cdd4;transition:transform .1s ease;}
  .star-icon.picker.active,.star-icon.picker:hover,.star-icon.picker:hover ~ .star-icon.picker{color:var(--sail);}
  .rating-summary{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:14px;
  }
  .rating-stars{display:flex;gap:2px;}
  .rating-avg{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:14px;color:var(--ink);}
  .rating-count{font-family:'Inter',sans-serif;font-size:12px;color:var(--muted);}
  .comment-form{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:14px;
    margin-bottom:16px;
  }
  .comment-form-label{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:13px;
    color:var(--ink);
    margin-bottom:8px;
  }
  .star-picker{display:flex;gap:4px;margin-bottom:10px;}
  .star-picker .star-icon{width:24px;height:24px;}
  #commentText{
    width:100%;
    min-height:70px;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--foam);
    color:var(--ink);
    margin-bottom:10px;
    resize:vertical;
  }
  .comment-item{
    border-bottom:1px solid var(--line);
    padding:12px 0;
  }
  .comment-item-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:4px;
  }
  .comment-author{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:13px;
    color:var(--ink);
  }
  .comment-date{
    font-family:'JetBrains Mono',monospace;
    font-size:10.5px;
    color:var(--muted);
  }
  .comment-stars{display:flex;gap:2px;margin-bottom:5px;}
  .comment-text{
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    line-height:1.55;
    color:var(--ink);
    margin:0;
  }

  .session-summary{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    margin-bottom:12px;
  }
  .session-stat{
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    color:var(--ink);
  }
  .session-stat strong{color:var(--lake);}
  .session-empty{
    font-family:'Inter',sans-serif;
    font-size:12px;
    color:var(--muted);
    margin-bottom:12px;
  }
  .session-form{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:12px;
    margin-bottom:14px;
  }
  .session-form-row{
    display:flex;
    gap:8px;
    margin-bottom:8px;
  }
  .session-form-row input, .session-form-row select{
    flex:1;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--foam);
    color:var(--ink);
  }
  #sf_comment{
    width:100%;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--foam);
    color:var(--ink);
  }
  .session-item{
    border-bottom:1px solid var(--line);
    padding:12px 0;
  }
  .session-item-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:6px;
  }
  .session-author{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:13px;
    color:var(--ink);
  }
  .session-date{
    font-family:'JetBrains Mono',monospace;
    font-size:10.5px;
    color:var(--muted);
  }
  .session-item-details{display:flex;gap:6px;margin-bottom:6px;}
  .session-comment{
    font-family:'Inter',sans-serif;
    font-size:13px;
    line-height:1.5;
    color:var(--ink);
    margin:0 0 6px;
  }
  .session-del-btn{
    background:none;
    border:none;
    color:var(--muted);
    font-family:'Inter',sans-serif;
    font-size:11px;
    cursor:pointer;
    padding:0;
  }
  .session-del-btn:hover{color:var(--danger);}

  #forecast{min-height:60px;}
  .fc-loading{font-family:'JetBrains Mono',monospace;font-size:12px;color:#888;}
  .fc-day{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:12px 14px;
    margin-bottom:10px;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  .fc-day .day-name{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:14px;
    width:78px;
    flex-shrink:0;
  }
  .fc-icon{font-size:22px;width:30px;text-align:center;flex-shrink:0;}
  .fc-wind{
    font-family:'JetBrains Mono',monospace;
    text-align:right;
    flex:1;
  }
  .fc-wind .kt{font-size:20px;font-weight:600;color:var(--sail);}
  .fc-wind .lbl{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:0.4px;}
  .fc-wind .gust{font-size:11px;color:var(--lake);margin-top:2px;}
  .fc-dir{font-size:16px;flex-shrink:0;}

  .thermal-note{
    background:#FFF4E5;
    border:1px solid #F2C94C;
    border-radius:9px;
    padding:12px 14px;
    margin-bottom:14px;
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    line-height:1.55;
    color:#7A5A15;
  }
  .wind-trend-box{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:9px;
    padding:12px 14px;
    margin-top:14px;
  }
  .wind-trend-title{
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:12px;
    color:var(--muted);
    margin-bottom:8px;
  }
  .wind-trend-svg{width:100%;height:46px;display:block;}
  .wind-trend-labels{
    display:flex;
    justify-content:space-between;
    font-family:'JetBrains Mono',monospace;
    font-size:9.5px;
    color:var(--muted);
    margin-top:2px;
  }
  .wind-trend-range{
    font-family:'Inter',sans-serif;
    font-size:11.5px;
    color:var(--ink);
    margin-top:8px;
    text-align:right;
  }
  .wind-trend-range strong{color:var(--lake);}
  .wd-detail-link{
    display:block;
    text-align:center;
    margin:10px 0 4px;
    padding:10px;
    border:1px solid var(--line);
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    font-weight:600;
    color:var(--lake);
    cursor:pointer;
    text-decoration:none;
  }
  .wd-detail-link:hover{background:var(--foam);}
  .thermal-chance{
    width:100%;
    margin-top:6px;
    padding-top:8px;
    border-top:1px dashed var(--line);
    font-family:'Inter',sans-serif;
    font-size:12px;
    font-weight:600;
  }
  .thermal-chance.high{color:#2E9E5B;}
  .thermal-chance.mid{color:#F2994A;}
  .thermal-chance.low{color:var(--muted);}

  .admin-actions{
    display:flex;
    gap:10px;
    margin-top:18px;
  }
  .owner-hint{
    font-family:'Inter',sans-serif;
    font-size:11px;
    color:#8a8478;
    margin-top:8px;
    line-height:1.5;
  }
  .edit-btn{
    background:var(--lake);
    border:none;
    color:white;
    padding:9px 16px;
    font-size:13px;
    font-weight:600;
    border-radius:9px;
    cursor:pointer;
    font-family:'Inter',sans-serif;
  }
  .edit-btn:hover{background:#1c8fe0;}
  .del-btn{
    background:none;
    border:1px solid var(--line);
    color:#999;
    padding:9px 14px;
    font-size:13px;
    border-radius:9px;
    cursor:pointer;
    font-family:'Inter',sans-serif;
  }
  .del-btn:hover{border-color:var(--sail);color:var(--sail);}
  .report-btn{
    background:none;
    border:1px solid var(--line);
    color:#999;
    padding:9px 14px;
    font-size:13px;
    border-radius:9px;
    cursor:pointer;
    font-family:'Inter',sans-serif;
  }
  .report-btn:hover{border-color:var(--danger);color:var(--danger);}

  /* ---------- Add form ---------- */
  .field{margin-bottom:16px;}
  .field label{
    display:block;
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.5px;
    color:var(--deep);
    margin-bottom:6px;
  }
  .field input[type=text], .field input[type=url], .field input[type=email], .field input[type=file], .field textarea, .field select{
    width:100%;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-size:14px;
    background:var(--card);
    color:var(--ink);
  }
  .field textarea{resize:vertical;min-height:80px;}
  .field input:focus, .field textarea:focus, .field select:focus{outline:2px solid var(--lake);outline-offset:1px;}
  .banner-request-form{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px;
    margin-top:20px;
    max-width:420px;
  }
  .coord-box{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    background:var(--deep);
    color:var(--on-dark);
    padding:8px 10px;
    border-radius:9px;
    margin-bottom:16px;
  }
  .image-row{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-bottom:8px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:9px;
    padding:8px;
  }
  .image-row-fields{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0;}
  .image-row-fields input{
    width:100%;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--foam);
    color:var(--ink);
  }
  .image-row-fields input[type=file]{padding:4px 6px;font-size:12px;}

  .stats-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
    margin-bottom:6px;
  }
  #bannerAdminList .stats-grid{
    grid-template-columns:repeat(3, 1fr);
  }
  .stat-box{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:14px;
    text-align:center;
  }
  .stat-num{
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:26px;
    color:var(--deep);
  }
  .stat-lbl{
    font-family:'Inter',sans-serif;
    font-size:11px;
    color:var(--muted);
    margin-top:2px;
  }
  .stats-bar-row{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:8px;
  }
  .stats-bar-label{
    width:80px;
    flex-shrink:0;
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    color:var(--ink);
  }
  .stats-bar-track{
    flex:1;
    height:10px;
    background:var(--foam);
    border-radius:5px;
    overflow:hidden;
  }
  .stats-bar-fill{height:100%;border-radius:5px;}

  .windstats-chart{
    display:flex;
    align-items:flex-end;
    gap:6px;
    height:180px;
    padding:12px 8px 0;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    margin-bottom:8px;
  }
  .windstats-bar-col{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    height:100%;
    min-width:0;
  }
  .windstats-bar-value{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    color:var(--ink);
    margin-bottom:4px;
    white-space:nowrap;
  }
  .windstats-bar{
    width:100%;
    max-width:28px;
    border-radius:4px 4px 0 0;
    background:var(--lake);
    min-height:2px;
  }
  .windstats-bar-label{
    font-family:'Inter',sans-serif;
    font-size:10.5px;
    color:var(--muted);
    margin-top:6px;
    text-transform:uppercase;
  }
  .windstats-section-title{
    font-family:'Space Grotesk',sans-serif;
    font-size:15px;
    font-weight:700;
    color:var(--deep);
    margin:28px 0 10px;
  }
  .windstats-meta{
    font-family:'Inter',sans-serif;
    font-size:12px;
    color:var(--muted);
    margin-bottom:16px;
  }

  /* ---------- Wind-Detail-Seite ---------- */
  .wd-section{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px;
    margin-bottom:16px;
  }
  .wd-section-title{
    font-family:'Space Grotesk',sans-serif;
    font-size:15px;
    font-weight:700;
    color:var(--deep);
    margin-bottom:12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .wd-now{
    display:flex;
    align-items:baseline;
    gap:16px;
    margin-bottom:4px;
  }
  .wd-now-value{
    font-family:'Space Grotesk',sans-serif;
    font-size:40px;
    font-weight:700;
    color:var(--deep);
  }
  .wd-now-gust{
    font-family:'Inter',sans-serif;
    font-size:14px;
    color:var(--muted);
  }
  .wd-hourly-strip{
    display:flex;
    gap:4px;
    overflow-x:auto;
    padding-bottom:6px;
  }
  .wd-hour-col{
    flex-shrink:0;
    width:58px;
    text-align:center;
    padding:8px 4px;
    border-radius:8px;
  }
  .wd-hour-col.now{background:var(--foam);}
  .wd-hour-time{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    color:var(--muted);
    margin-bottom:6px;
  }
  .wd-hour-speed{
    font-family:'Space Grotesk',sans-serif;
    font-size:16px;
    font-weight:700;
    color:var(--deep);
  }
  .wd-hour-gust{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    color:var(--muted);
  }
  .wd-hour-arrow{
    font-size:16px;
    margin:4px 0;
    display:block;
  }
  .wd-confidence-badge{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    padding:4px 10px;
    border-radius:20px;
    letter-spacing:0.5px;
  }
  .wd-confidence-high{background:#DFF3E6;color:#2E9E5B;}
  .wd-confidence-medium{background:#FDF0D5;color:#B8860B;}
  .wd-confidence-low{background:var(--danger-bg);color:var(--danger);}
  .wd-model-row{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:10px;
  }
  .wd-model-name{
    width:110px;
    flex-shrink:0;
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    font-weight:600;
    color:var(--ink);
  }
  .wd-model-track{
    flex:1;
    height:10px;
    background:var(--foam);
    border-radius:5px;
    overflow:hidden;
    position:relative;
  }
  .wd-model-fill{height:100%;border-radius:5px;background:var(--lake);}
  .wd-model-value{
    width:70px;
    text-align:right;
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    color:var(--ink);
    flex-shrink:0;
  }
  .stats-bar-count{
    width:24px;
    text-align:right;
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    color:var(--ink);
    flex-shrink:0;
  }

  .page-admin-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:12px 14px;
    margin-bottom:10px;
  }
  .page-admin-info{
    display:flex;
    flex-direction:column;
    flex:1;
    min-width:0;
  }
  .page-admin-title{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:14px;
    color:var(--ink);
  }
  .page-admin-meta{
    font-family:'JetBrains Mono',monospace;
    font-size:10.5px;
    color:var(--muted);
    margin-top:3px;
  }
  .page-admin-actions{display:flex;gap:6px;flex-shrink:0;}
  .page-edit-btn{
    background:var(--lake);
    color:white;
    border:none;
    padding:6px 12px;
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:12px;
    cursor:pointer;
  }
  .page-edit-btn:hover{background:var(--deep2);}
  .page-del-btn{
    background:none;
    border:1px solid var(--line);
    color:#999;
    padding:6px 10px;
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:12px;
    cursor:pointer;
  }
  .page-del-btn:hover{border-color:var(--sail);color:var(--sail);}

  .marker-admin-row{
    display:flex;
    gap:12px;
    align-items:flex-start;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:10px;
    padding:12px;
    margin-bottom:12px;
  }
  .marker-admin-preview{
    width:52px;height:52px;
    border-radius:50%;
    border:3px solid;
    overflow:hidden;
    flex-shrink:0;
    background:var(--foam);
  }
  .marker-admin-preview img{width:100%;height:100%;object-fit:cover;display:block;}
  .marker-admin-preview span{display:block;width:100%;height:100%;}
  .marker-admin-fields{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0;}
  .marker-admin-label{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:14px;
    color:var(--ink);
  }
  .marker-admin-fields input{
    width:100%;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:var(--foam);
    color:var(--ink);
  }
  .marker-admin-fields input[type=file]{padding:4px 6px;font-size:12px;}
  .marker-admin-actions{display:flex;gap:8px;margin-top:2px;}
  .marker-save-btn{
    background:var(--lake);
    color:white;
    border:none;
    padding:7px 14px;
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:12.5px;
    cursor:pointer;
  }
  .marker-save-btn:hover{background:var(--deep2);}
  .marker-save-btn:disabled{opacity:0.6;cursor:default;}
  .marker-reset-btn{
    background:none;
    border:1px solid var(--line);
    color:var(--muted);
    padding:7px 12px;
    border-radius:7px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:12.5px;
    cursor:pointer;
  }
  .marker-reset-btn:hover{border-color:var(--sail);color:var(--sail);}

  .img-remove{
    background:none;
    border:1px solid var(--line);
    color:#999;
    width:26px;height:26px;
    flex-shrink:0;
    border-radius:6px;
    cursor:pointer;
    font-size:16px;
    line-height:1;
  }
  .img-remove:hover{border-color:var(--sail);color:var(--sail);}
  .add-img-btn{
    width:100%;
    background:var(--foam);
    border:1px dashed var(--line);
    color:var(--deep);
    padding:9px;
    border-radius:9px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:13px;
    cursor:pointer;
    margin-top:2px;
  }
  .add-img-btn:hover{border-color:var(--lake);color:var(--lake);}
  .form-hint{
    font-family:'Inter',sans-serif;
    font-size:11px;
    color:#8a8478;
    margin-top:6px;
    line-height:1.5;
  }
  .webcam-search-link{
    display:inline-flex;
    align-items:center;
    gap:5px;
    margin-top:8px;
    font-family:'Inter',sans-serif;
    font-size:12px;
    font-weight:600;
    color:var(--lake);
    text-decoration:none;
  }
  .webcam-search-link:hover{text-decoration:underline;}
  .dir-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
  }
  .dir-chip{
    border:1px solid var(--line);
    background:var(--card);
    border-radius:9px;
    text-align:center;
    padding:6px 0;
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    cursor:pointer;
    user-select:none;
  }
  .dir-chip.on{background:var(--sail);border-color:var(--sail);color:white;}
  .submit-btn{
    width:100%;
    background:var(--deep);
    color:var(--on-dark);
    border:none;
    padding:12px;
    border-radius:9px;
    font-weight:600;
    font-size:14px;
    cursor:pointer;
    margin-top:6px;
  }
  .submit-btn:hover{background:var(--deep2);}
  .empty-note{
    font-family:'Inter',sans-serif;
    font-size:13px;
    color:#8a8478;
    line-height:1.6;
    padding:16px 0;
  }

  /* custom marker */
  .wf-pin{
    width:34px;height:44px;
    position:relative;
    filter:drop-shadow(0 3px 4px rgba(0,0,0,0.4));
  }
  .wf-pin svg{width:100%;height:100%;display:block;}
  .wf-pin-lock{
    position:absolute;
    top:-4px;right:-6px;
    font-size:12px;
    line-height:1;
    z-index:2;
  }

  .wf-pin-custom{
    width:38px;height:48px;
    display:flex;
    flex-direction:column;
    align-items:center;
    position:relative;
    filter:drop-shadow(0 3px 4px rgba(0,0,0,0.45));
  }
  .wf-pin-img-wrap{
    width:36px;height:36px;
    border-radius:50%;
    border:3px solid;
    overflow:hidden;
    background:var(--card);
    flex-shrink:0;
  }
  .wf-pin-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;}
  .wf-pin-stem{
    width:3px;height:10px;
    margin-top:-1px;
  }

  .wind-gradient-img{
    image-rendering:auto;
    -ms-interpolation-mode:bicubic;
    filter:blur(2px);
    pointer-events:none;
  }

  .wind-legend{
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    border:1px solid var(--line);
    border-radius:9px;
    padding:8px 10px;
    box-shadow:0 3px 10px rgba(14,58,95,0.2);
    font-family:'Inter',sans-serif;
  }
  .wind-legend-title{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:0.5px;
    color:var(--muted);
    margin-bottom:5px;
  }
  .wind-legend-row{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:11.5px;
    color:var(--ink);
    line-height:1.6;
    white-space:nowrap;
  }
  .wind-legend-swatch{
    width:12px;height:12px;
    border-radius:3px;
    flex-shrink:0;
  }
  .wind-legend-model{
    margin-top:6px;
    padding-top:6px;
    border-top:1px solid var(--line);
    font-family:'JetBrains Mono',monospace;
    font-size:9.5px;
    color:var(--muted);
  }
  .fc-model-note{
    font-family:'JetBrains Mono',monospace;
    font-size:10.5px;
    color:var(--muted);
    margin:-8px 0 12px;
  }

  .wf-cluster{
    width:42px;height:42px;
    border-radius:50%;
    background:var(--deep);
    border:3px solid var(--sail);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--on-dark);
    font-family:'JetBrains Mono',monospace;
    font-weight:700;
    font-size:14px;
    box-shadow:0 3px 8px rgba(0,0,0,0.45);
  }
  .wf-cluster.small{width:36px;height:36px;font-size:12px;}
  .wf-cluster.large{width:50px;height:50px;font-size:16px;border-color:var(--lake);}

  @media (max-width: 760px){
    /* Wind-Statistik, Spot-Vergleich, Event-Kalender: auf dem Handy komplett
       ohne linke/rechte Spalte -- nur der Hauptinhalt, wirkt sonst unübersichtlich. */
    #windStatsSidebarLeft, #windStatsSidebarRight,
    #compareSidebarLeft, #compareSidebarRight,
    #eventsSidebarLeft, #eventsSidebarRight{
      display:none !important;
    }
    #panel{position:absolute;right:0;top:0;bottom:0;width:100%;}
    #settingsView{
      right:16px;
      left:16px;
      width:auto;
      top:80px;
    }
    #favoritesView{
      right:16px;
      left:16px;
      width:auto;
      top:80px;
    }
    #alertsModalView{
      right:16px;
      left:16px;
      width:auto;
      top:80px;
    }
    #windDetailView{
      right:16px !important;
      left:16px !important;
      width:auto !important;
      max-width:none !important;
      top:80px;
      z-index:1200;
    }
    #bannerAdminList .page-admin-item{
      flex-direction:column;
      align-items:stretch;
    }
    #bannerAdminList .banner-status-col{
      order:-1;
      margin-bottom:8px;
    }
    #bannerAdminList .banner-status-select{
      width:100%;
    }
    #bannerAdminList .banner-admin-thumb{
      width:100%;
      height:auto;
      max-height:120px;
      margin-bottom:10px;
    }
    #bannerAdminList .page-admin-actions{
      flex-wrap:wrap;
      margin-top:10px;
    }
    #bannerAdminList .page-admin-actions button{
      flex:1;
      min-width:70px;
    }
    header{
      padding:8px 10px;
      flex-wrap:nowrap;
      gap:8px;
      background:rgba(14,58,95,0.62);
    }
    .brand{gap:8px;}
    .brand svg{width:30px;height:30px;}
    .brand-logo{width:30px;height:30px;}
    .brand h1{font-size:14px;line-height:1.05;}
    #adminHeaderBadge{font-size:11px;margin-left:6px;}
    .brand p{display:none;}
    .header-actions{gap:4px;flex-wrap:nowrap;}
    .nav-item{padding:6px;gap:0;}
    .nav-item span{display:none;}
    .nav-item svg{width:20px;height:20px;}
    .cta-btn{padding:8px 10px;font-size:12px;gap:4px;}
    .nav-menu{right:-8px;left:auto;min-width:210px;}
    #sidebar{padding-top:52px;}
    .panel-inner{padding-top:60px;}
    #hint{top:58px;}
    #map .leaflet-top{margin-top:58px;}
  }
  @media (max-width: 420px){
    .cta-btn span{display:none;}
    .cta-btn{padding:8px;}
  }
