@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;600;700;800&display=swap');
.profile-strip{display:block;width:30px;height:10px;object-fit:cover;border-radius:3px;margin-bottom:8px}.profile-strip-fallback{background:linear-gradient(90deg,var(--blue),var(--teal))}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:21px;box-shadow:var(--shadow)}.card h3{font-size:19px;letter-spacing:-.035em;margin:8px 0 17px}.card>.kicker{color:var(--blue)}.field{border-top:1px solid var(--line);padding:10px 0}.value{display:block;margin-top:3px;overflow-wrap:anywhere}.value a{color:var(--blue);text-decoration:none}.value a:hover{text-decoration:underline}
:root{--bg:#f5f7fa;--navy:#07111f;--ink:#102033;--muted:#738196;--line:#e4e9f0;--card:#fff;--blue:#3568ff;--teal:#18b99a;--shadow:0 18px 50px #10213b0b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Manrope,system-ui,sans-serif}.app{display:flex;min-height:100vh}.sidebar{width:246px;background:var(--navy);color:#fff;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none;padding:0 12px 42px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#4b7aff,#19c7aa);font-weight:800}.brand b{display:block;font-size:15px}.brand small{display:block;font:10px 'DM Mono';letter-spacing:.1em;color:#91a1b9;margin-top:2px}.nav-label,.kicker{font:500 10px 'DM Mono';letter-spacing:.16em;color:var(--muted)}.sidebar .nav-label{color:#60738e;padding:0 12px}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:13px 12px;color:#95a5bc;text-decoration:none;border-radius:10px;margin-top:5px;font-weight:700}.sidebar nav a i{font-style:normal;font-size:17px;width:18px;text-align:center}.sidebar nav a.active,.sidebar nav a:hover{color:#fff;background:#162743}.side-note{margin-top:auto;border:1px solid #203451;border-radius:12px;padding:12px;color:#b9c5d6;display:flex;gap:9px;font-size:11px}.side-note small{color:#70829e}.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px #18b99a24;vertical-align:middle}.main{max-width:1280px;flex:1;padding:48px 5vw 42px}.topbar{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px}.topbar h1{font-size:42px;line-height:1.05;letter-spacing:-.055em;margin:8px 0 8px}.topbar p{margin:0;color:var(--muted);font-size:15px}.refresh{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer;box-shadow:var(--shadow)}.refresh span{font-size:19px;color:var(--blue);vertical-align:-1px}.summary{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-bottom:52px}.stat{background:var(--card);border:1px solid var(--line);padding:19px 20px;border-radius:14px;box-shadow:var(--shadow)}.stat strong{display:block;font-size:29px;letter-spacing:-.05em}.stat span{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-top:5px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:17px}.section-heading h2{font-size:24px;letter-spacing:-.04em;margin:7px 0 0}.live{font:500 10px 'DM Mono';color:var(--teal);letter-spacing:.1em}.live .pulse{margin-right:7px}.market-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.market-link{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:25px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:.2s}.market-link:after{content:'→';position:absolute;right:25px;top:28px;color:var(--blue);font-size:24px}.market-link:hover{transform:translateY(-3px);border-color:#b8c7ff}.market-link h2{margin:0 0 9px;font-size:25px;letter-spacing:-.04em}.market-link p{color:var(--muted);margin:0 0 25px}.market-stats{display:flex;gap:26px;border-top:1px solid var(--line);padding-top:17px}.market-stats b{display:block;font-size:21px}.market-stats span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.empty,.error{background:var(--card);padding:24px;border-radius:14px;color:var(--muted)}footer{margin-top:42px;color:var(--muted);font-size:11px}footer a{color:var(--blue);text-decoration:none;margin-left:6px}footer #updated{float:right}@media(max-width:800px){.sidebar{width:70px;padding:22px 10px}.brand{padding:0 7px 36px}.brand>span:last-child,.sidebar nav a:not(.active):not(:hover){} .brand b,.brand small,.nav-label,.sidebar nav a{font-size:0}.sidebar nav a{justify-content:center}.sidebar nav a i{font-size:19px}.side-note{display:none}.main{padding:30px 18px}.summary{grid-template-columns:repeat(2,1fr);margin-bottom:36px}.summary .stat:last-child{grid-column:span 2}.market-grid{grid-template-columns:1fr}.topbar{align-items:start;gap:18px;flex-direction:column}.refresh{width:100%}}
/* Mobile app navigation: give the dashboard the entire screen width. */
@media (max-width: 640px) {
  body { padding-bottom: 76px; }
  .app { display: block; min-height: 100vh; }
  .sidebar { position: fixed; z-index: 20; right: 0; bottom: 0; left: 0; width: 100%; height: 68px; padding: 8px 10px; border-top: 1px solid #203451; box-shadow: 0 -10px 30px #07111f2e; }
  .brand, .side-note, .nav-label { display: none; }
  .sidebar nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; width: 100%; }
  .sidebar nav a, .sidebar nav a:not(.active):not(:hover) { justify-content: center; flex-direction: column; gap: 1px; margin: 0; padding: 7px 3px; font-size: 10px; line-height: 1.15; border-radius: 9px; color: #95a5bc; }
  .sidebar nav a i { font-size: 18px; line-height: 1; }
  .sidebar nav a.active { color: #fff; background: #162743; }
  .main { width: 100%; max-width: none; padding: 25px 15px 30px; }
  .topbar { margin-bottom: 28px; }
  .topbar h1 { font-size: 34px; }
  .summary { gap: 9px; }
  .stat { padding: 15px; }
  .stat strong { font-size: 25px; }
  footer #updated { float: none; display: block; margin-top: 5px; }
}
/* Refined navigation: location-first city controls. */
.sidebar nav a{border-radius:12px;transition:background .2s ease,transform .2s ease,color .2s ease}.sidebar nav a.active,.sidebar nav a:hover{background:linear-gradient(135deg,#19345b,#142542);box-shadow:inset 3px 0 var(--blue),0 8px 20px #0003;transform:translateX(2px)}
.sidebar nav a i{font-size:0;width:22px}.sidebar nav a i:after{font-size:19px}.sidebar nav a[href="index.html"] i:after{content:'⌂'}.sidebar nav a[href="muskegon.html"] i:after{content:'📍'}.sidebar nav a[href="grand-haven.html"] i:after{content:'🌊'}
/* Clickable pipeline cards */
.main{display:flex;flex-direction:column}
.topbar{order:1}
.main>.section-heading{order:2}
.market-grid{order:3}
.summary{order:4}
.main>footer{order:5}
body:not([data-city]) .main>.section-heading{order:1}
body:not([data-city]) .main>.market-grid{order:2}
body:not([data-city]) .main>.topbar{order:3}
body:not([data-city]) .main>.summary{order:4}
.summary .stat{display:block;color:var(--ink);text-decoration:none;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.summary .stat:hover{transform:translateY(-3px);border-color:#b8c7ff;box-shadow:0 20px 45px #10213b16}
footer { display: none !important; }
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 18px}.filter{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:9px 14px;font:700 11px Manrope,sans-serif;cursor:pointer;transition:.18s}.filter:hover,.filter.active{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 8px 18px #07111f1c}
.prospect-search{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:11px 13px;color:var(--muted)}.prospect-search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font:600 13px Manrope,sans-serif}.filter-buttons{display:flex;flex-wrap:wrap;gap:8px}
.sort-control{display:flex;align-items:center;gap:8px;margin-left:auto;color:var(--muted);font:700 11px Manrope,sans-serif}.sort-select{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:9px;padding:9px 10px;font:700 11px Manrope,sans-serif;outline:0}
@media(max-width:600px){.sort-control{width:100%;margin-left:0}.sort-select{flex:1}}
.card > .kicker { display: none; }
.card .profile-strip { width: 100%; height: 60px; object-fit: cover; border-radius: 10px; margin: 0 0 16px; background: #eef2f7; }
.card .profile-strip-fallback { background: linear-gradient(135deg, var(--blue), var(--teal)); }
.brand-mark{background-image:url('brand-logo.png');background-size:cover;background-position:center;color:transparent}
footer::before{content:'';display:block;width:48px;height:48px;background:url('brand-logo.png') center/contain no-repeat;margin-bottom:10px}

/* Mobile-app navigation is intentional at every viewport size. */
.app{display:block;min-height:100vh;padding-bottom:86px}
.sidebar{position:fixed;z-index:20;right:0;bottom:0;left:0;width:100%;height:76px;padding:8px 12px;background:var(--navy);border-top:1px solid #203451;box-shadow:0 -10px 30px #07111f2e}
.sidebar .brand,.sidebar .side-note,.sidebar .nav-label{display:none}
.sidebar nav{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;width:100%;height:100%}
.sidebar nav a,.sidebar nav a:not(.active):not(:hover){justify-content:center;flex-direction:column;gap:2px;margin:0;padding:7px 3px;font-size:10px;line-height:1.15;border-radius:10px;color:#95a5bc;transform:none}
.sidebar nav a i{font-size:18px;line-height:1;width:22px}
.sidebar nav a.active{color:#fff;background:linear-gradient(135deg,#19345b,#142542);box-shadow:none}
.main{width:100%;max-width:none;padding:28px clamp(16px,5vw,64px) 34px}
.main-brand-logo{display:block;width:158px;height:62px;object-fit:contain;object-position:center;margin:0 auto 18px}

.brand-mark img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.brand-footer{display:flex;align-items:center;gap:12px;margin-top:42px;color:var(--muted);font-size:11px}.brand-footer img{width:42px;height:42px;object-fit:contain;border-radius:10px}.brand-footer #updated{margin-left:auto}.brand-footer{display:flex!important}

/* One navigation system only: the sidebar is the universal mobile bottom menu. */
.mobile-menu,.mobile-nav,.bottom-nav{display:none!important}

/* Clean mobile footer: one centered brand mark, no metadata or status text. */
.brand-footer{display:flex!important;justify-content:center!important;align-items:center!important;width:100%;font-size:0!important;gap:0!important;margin-top:14px;padding:0!important;line-height:0}
.brand-footer img{display:block;width:158px;height:auto;margin:0!important;object-fit:contain}
.brand-footer a,.brand-footer #updated{display:none!important}
.brand-footer::before{display:none!important}

/* Final mobile polish: compact footer and balanced bottom navigation. */
.app{padding-bottom:70px}
.sidebar{height:64px;padding:6px 14px}
.sidebar nav{gap:10px}
.sidebar nav a,.sidebar nav a:not(.active):not(:hover){padding:4px 3px;font-size:11px;font-weight:800;letter-spacing:.01em}
.sidebar nav a i{display:grid;place-items:center;width:24px;height:20px;font-size:16px;line-height:1}
.sidebar nav a.active{background:linear-gradient(135deg,#214678,#183258);border:1px solid #315887}
.main{padding-bottom:18px}
.brand-footer{margin-top:4px!important;min-height:0!important;height:auto!important}
.brand-footer img{width:126px!important;height:auto!important}
.main-brand-logo{width:221px!important;height:auto!important}

/* Final mobile layout correction: keep the footer tight and give nav items
   separate, stable icon and label rows so nothing can overlap. */
.brand-footer{margin:0!important;padding:0!important;height:54px!important;min-height:54px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.brand-footer img{width:126px!important;height:48px!important;object-fit:contain!important}
.sidebar{height:78px!important;padding:7px 14px!important}
.sidebar nav{height:64px!important;gap:8px!important;align-items:stretch!important}
.sidebar nav a,.sidebar nav a:not(.active):not(:hover){display:grid!important;grid-template-rows:30px 20px!important;justify-items:center!important;align-content:center!important;gap:2px!important;height:64px!important;padding:4px 2px!important;line-height:20px!important;white-space:nowrap!important;transform:none!important}
.sidebar nav a i{display:grid!important;place-items:center!important;width:28px!important;height:30px!important;font-size:22px!important;line-height:30px!important}
.sidebar nav a i,.sidebar nav a:before,.sidebar nav a:after{display:none!important;content:none!important}
.sidebar nav a span{grid-row:1 / -1!important;height:auto!important;line-height:20px!important;font-size:10px!important;letter-spacing:.08em!important}
.sidebar nav a span{display:block!important;height:20px!important;line-height:20px!important;font-size:11px!important}
