/* BidSight mobile shell, phone-first hierarchy.
   Loaded on all main pages. Desktop (≥721px) mostly unaffected. */

:root{
  --bs-tab-h: 56px;
  --bs-safe-b: env(safe-area-inset-bottom, 0px);
  --bs-safe-t: env(safe-area-inset-top, 0px);
  --bs-touch: 44px;
}

/* ---------- Bottom tab bar ---------- */
.bs-tabs{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:2000;
  height:calc(var(--bs-tab-h) + var(--bs-safe-b));
  padding:0 4px var(--bs-safe-b);
  background:rgba(12,16,26,.96);
  border-top:1px solid #1f2937;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  grid-template-columns:repeat(4,1fr);
  align-items:stretch;
}
.bs-tabs a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;min-height:var(--bs-tab-h);padding:6px 4px 4px;
  color:#6b7890;text-decoration:none;font-size:10.5px;font-weight:600;
  letter-spacing:.02em;-webkit-tap-highlight-color:transparent;
}
.bs-tabs a .ico{font-size:18px;line-height:1;height:22px;display:grid;place-items:center}
.bs-tabs a.on{color:#e7ecf3}
.bs-tabs a.on .ico{color:#4f9cff}
.bs-tabs a:active{opacity:.75}

body.bs-has-tabs{padding-bottom:calc(var(--bs-tab-h) + var(--bs-safe-b) + 8px)}

/* ---------- Shared sheets / scrim ---------- */
.bs-scrim{
  display:none;position:fixed;inset:0;z-index:1300;
  background:rgba(4,8,15,.62);-webkit-tap-highlight-color:transparent;
}
.bs-scrim.open{display:block}
.bs-sheet{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:1310;
  max-height:min(88dvh,88vh);
  background:#121826;border:1px solid #1f2937;border-bottom:none;
  border-radius:16px 16px 0 0;
  padding:0 0 calc(12px + var(--bs-safe-b));
  box-shadow:0 -12px 40px rgba(0,0,0,.45);
  overflow:auto;-webkit-overflow-scrolling:touch;
}
.bs-sheet.open{display:block}
.bs-sheet .bs-handle{
  width:40px;height:4px;border-radius:999px;background:#2a3c5a;
  margin:10px auto 6px;
}
.bs-sheet .bs-sheet-hd{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:4px 16px 12px;border-bottom:1px solid #1f2937;
  position:sticky;top:0;background:#121826;z-index:1;
}
.bs-sheet .bs-sheet-hd h3{margin:0;font-size:16px;letter-spacing:-.01em}
.bs-sheet .bs-sheet-bd{padding:12px 16px 8px}
.bs-sheet .bs-x{
  min-width:var(--bs-touch);min-height:var(--bs-touch);
  border:0;background:transparent;color:#9aa7b8;font-size:22px;
  border-radius:10px;cursor:pointer;
}
.bs-sheet-actions{
  display:flex;gap:10px;padding:12px 16px 4px;
  position:sticky;bottom:0;background:linear-gradient(180deg,transparent,#121826 28%);
}
.bs-sheet-actions .btn{
  flex:1;text-align:center;min-height:var(--bs-touch);
  display:inline-flex;align-items:center;justify-content:center;
}

/* Filter chips row */
.bs-chips{
  display:none;flex-wrap:wrap;gap:8px;padding:0;
  align-items:center;
}
.bs-chips .chip{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12.5px;font-weight:600;color:#e7ecf3;
  background:#1b2840;border:1px solid #2a3c5a;border-radius:999px;
  padding:7px 12px;min-height:36px;max-width:100%;
}
.bs-chips .chip button{
  border:0;background:transparent;color:#9aa7b8;font-size:16px;
  line-height:1;padding:0 0 0 2px;cursor:pointer;min-width:22px;min-height:22px;
}

/* Sticky bottom CTA (detail) */
.bs-sticky-cta{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:1100;
  padding:10px 14px calc(10px + var(--bs-safe-b));
  background:rgba(12,16,26,.96);border-top:1px solid #1f2937;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  gap:8px;align-items:stretch;
}
.bs-sticky-cta .btn{
  flex:1;text-align:center;min-height:var(--bs-touch);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:600;border-radius:11px;text-decoration:none;
  padding:0 12px;
}
.bs-sticky-cta .btn.primary{
  background:linear-gradient(90deg,#1c5cff,#2b8cff);color:#fff;border:0;flex:1.4;
}
.bs-sticky-cta .btn.ghost{
  background:#1b2840;color:#e7ecf3;border:1px solid #2a3c5a;
}

/* Accordion blocks on detail */
.bs-acc{border:1px solid #1f2937;border-radius:12px;overflow:hidden;margin-top:16px;background:#121826}
.bs-acc > summary{
  list-style:none;cursor:pointer;padding:14px 16px;font-weight:700;font-size:15px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:var(--bs-touch);-webkit-tap-highlight-color:transparent;
  color:#e7ecf3;
}
.bs-acc > summary::-webkit-details-marker{display:none}
.bs-acc > summary::after{content:"＋";color:#6b7890;font-weight:600;font-size:16px}
.bs-acc[open] > summary::after{content:"－"}
.bs-acc .bs-acc-bd{padding:0 16px 16px}

/* Deadline-first card bits */
.bs-due-pill{
  display:inline-flex;align-items:center;font-size:12px;font-weight:700;
  padding:3px 9px;border-radius:999px;background:#2a2410;color:#f5b94d;border:1px solid #4a3a12;
}
.bs-due-pill.soon{background:#2a1414;color:#f87171;border-color:#4a1f1f}
.bs-due-pill.ok{background:#13261d;color:#34d399;border-color:#1d4a36}
.bs-due-pill.none{background:#0f1420;color:#6b7890;border-color:#1f2937;font-weight:600}

/* ---------- ≤720px: phone layout ---------- */
@media (max-width:720px){
  /* !important: page CSS must never hide the primary tab bar */
  .bs-tabs{
    display:grid !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    z-index:2000 !important;
  }
  body.bs-has-tabs{padding-bottom:calc(var(--bs-tab-h) + var(--bs-safe-b) + 10px)}

  /* Hide desktop-dense nav chrome; tabs replace it */
  body.bs-has-tabs header .links,
  body.bs-has-tabs header .nav .links,
  body.bs-has-tabs .nav .links{display:none !important}

  input,select,textarea{font-size:16px !important} /* stop iOS focus zoom */

  a,button,.btn{ -webkit-tap-highlight-color:transparent }

  /* ---- Home ---- */
  body.page-home .hero .inner{padding:36px 0 28px}
  body.page-home h1{font-size:28px !important;line-height:1.15}
  body.page-home .lead{font-size:15.5px;margin-bottom:4px}
  body.page-home .searchbox{
    flex-direction:column;gap:8px;padding:10px;margin:18px auto 12px;
  }
  body.page-home .searchbox input{font-size:16px;padding:12px}
  body.page-home .searchbox .btn{
    width:100%;min-height:var(--bs-touch);padding:12px;font-size:16px;
  }
  body.page-home .herostats{gap:14px 20px}
  body.page-home .hstat b{font-size:22px}
  body.page-home .mappanel{height:220px !important}
  body.page-home section{padding:40px 0}
  body.page-home h2{font-size:24px}
  body.page-home .wrap{padding-left:16px;padding-right:16px}
  body.page-home header .nav{height:52px}
  body.page-home .quickchips{
    display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 18px;
  }
  body.page-home .quickchips a{
    font-size:13px;font-weight:600;padding:9px 14px;min-height:40px;
    display:inline-flex;align-items:center;border-radius:999px;
    background:#1b2840;border:1px solid #2a3c5a;color:#e7ecf3;text-decoration:none;
  }
  body.page-home .trysome{display:none}

  /* ---- Search ---- */
  body.page-search header{
    padding:10px 12px;gap:8px;position:sticky;top:0;
  }
  body.page-search .hstat{display:none}
  body.page-search .back,
  body.page-search header a[href="plan.html"]{display:none}
  body.page-search .wrap{min-height:auto}
  /* Hide the desktop aside in the layout; filters move into the bottom sheet. */
  body.page-search .wrap > aside.filters{display:none !important}
  body.page-search .results{padding:12px 14px 24px}
  body.page-search .bar{gap:8px;margin-bottom:10px}
  body.page-search .alertbtn{width:100%;margin-left:0;min-height:var(--bs-touch)}
  body.page-search .opp{padding:14px;margin-bottom:10px}
  body.page-search .opp .t{font-size:15.5px;line-height:1.35}
  body.page-search .meta{gap:6px 10px;font-size:12.5px}
  body.page-search .meta a{padding:6px 0}
  body.page-search .more{width:100%;min-height:var(--bs-touch)}
  body.page-search .mobtoggle{
    display:inline-flex !important;align-items:center;justify-content:center;
    min-height:var(--bs-touch);min-width:88px;padding:0 14px;font-weight:600;
  }
  body.page-search .bs-chips{display:flex;margin:0 0 12px}

  /* ---- Detail ---- */
  body.page-detail .wrap{padding:18px 16px calc(88px + var(--bs-safe-b) + var(--bs-tab-h))}
  body.page-detail h1{font-size:22px}
  body.page-detail .cta{display:none} /* sticky bar replaces */
  body.page-detail .bs-sticky-cta{
    display:flex;
    bottom:calc(var(--bs-tab-h) + var(--bs-safe-b));
  }
  body.page-detail .wrap{padding-bottom:calc(100px + var(--bs-safe-b) + var(--bs-tab-h))}
  body.page-detail .ctastrip{flex-direction:column}
  body.page-detail .ctastrip .btn{width:100%;text-align:center;min-height:var(--bs-touch)}
  body.page-detail .mktcta{flex-direction:column}
  body.page-detail .mktcta .btn{width:100%;text-align:center}
  body.page-detail .sect{margin-top:22px}
  body.page-detail header span{display:none}
  body.page-detail header a[href="map.html"]{display:none}

  /* ---- Map ---- */
  body.page-map header{
    flex-wrap:nowrap;padding:8px 10px;gap:8px;
    padding-top:max(8px, var(--bs-safe-t));
  }
  body.page-map .hstat{display:none !important}
  body.page-map .controls{
    margin-left:auto;flex:1;justify-content:flex-end;gap:6px;min-width:0;
  }
  body.page-map .controls .navlink,
  body.page-map .controls label{display:none !important}
  body.page-map #q{
    width:auto !important;flex:1;min-width:0;max-width:160px;
    min-height:40px;padding:8px 10px;
  }
  body.page-map #f-type{display:none}
  body.page-map .bs-map-tools{
    display:flex;gap:6px;align-items:center;
  }
  body.page-map .bs-map-tools button{
    min-height:40px;min-width:40px;padding:0 12px;
    background:#1b2840;border:1px solid #2a3c5a;color:#e7ecf3;
    border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;
  }
  body.page-map .legend{
    display:none; /* sheet has context; keep map clean */
  }
  body.page-map .cnt{
    top:auto !important;bottom:calc(var(--bs-tab-h) + var(--bs-safe-b) + 72px);
    right:10px;left:auto;max-width:42vw;font-size:11.5px;padding:6px 9px;
  }
  body.page-map #map{
    bottom:calc(var(--bs-tab-h) + var(--bs-safe-b)) !important;
  }
  body.page-map .bs-map-sheet-peek{
    display:block;position:fixed;left:10px;right:10px;z-index:950;
    bottom:calc(var(--bs-tab-h) + var(--bs-safe-b) + 10px);
    background:rgba(18,24,38,.96);border:1px solid #2a3c5a;border-radius:14px;
    padding:12px 14px;box-shadow:0 8px 28px rgba(0,0,0,.4);
  }
  body.page-map .bs-map-sheet-peek .ph{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
  }
  body.page-map .bs-map-sheet-peek .ph b{font-size:14px}
  body.page-map .bs-map-sheet-peek .ph span{font-size:12px;color:#9aa7b8}
  body.page-map .bs-map-list .item{
    display:block;padding:12px 0;border-bottom:1px solid #1f2937;text-decoration:none;color:inherit;
  }
  body.page-map .bs-map-list .item:last-child{border-bottom:none}
  body.page-map .bs-map-list .it{font-weight:600;font-size:14px;color:#e7ecf3;line-height:1.35}
  body.page-map .bs-map-list .im{font-size:12.5px;color:#9aa7b8;margin-top:3px}
}

@media (min-width:721px){
  .bs-tabs,.bs-sticky-cta,.bs-map-sheet-peek,.bs-scrim,.bs-sheet,.bs-map-tools{display:none !important}
  body.bs-has-tabs{padding-bottom:0}
  body.page-home .quickchips{display:none}
}
