/* Fix My Neighborhood — "Warm Concrete + Civic Neon"
   Crisp, tactile, civic-tech feel.
*/

:root{
  --bg: #f6f3ef;           /* warm concrete */
  --panel: #ffffff;
  --ink: #1c232b;          /* deep ink */
  --muted: #5c6672;
  --line: #e7ded3;

  --teal: #1aa7a1;         /* civic neon */
  --coral: #ff5a5f;        /* urgent accent */
  --gold: #f4b73f;         /* warmth */
  --slate: #2f3a45;

  --shadow: 0 18px 45px rgba(22, 28, 35, .12);
  --shadow2: 0 10px 26px rgba(22, 28, 35, .10);

  --radius: 18px;
  --radius2: 24px;

  --ring: 0 0 0 3px rgba(26, 167, 161, .18);
}

*{box-sizing:border-box}
html,body{height:100%}

body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 12% 10%, rgba(26,167,161,.08), transparent 60%),
    radial-gradient(900px 500px at 88% 20%, rgba(244,183,63,.10), transparent 55%),
    radial-gradient(1100px 680px at 70% 90%, rgba(255,90,95,.07), transparent 55%),
    var(--bg);
}

a{color:inherit}
.sr{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.h2{font-size:18px;margin:0 0 6px}
.h3{font-size:15px;margin:0}
.small{font-size:12px}
.muted{color:var(--muted)}

/* =========================
   Badges
========================= */
.badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 10px;border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.65);
  font-size:12px;
  font-weight:750;
}
.badge--hint{border-color:rgba(26,167,161,.35); background:rgba(26,167,161,.08)}
.badge--vault{border-color:rgba(244,183,63,.35); background:rgba(244,183,63,.12)}
.badge--urgent{border-color:rgba(255,90,95,.40); background:rgba(255,90,95,.10)}

/* =========================
   Topbar
========================= */
.topbar{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px;
  border-bottom:1px solid rgba(231,222,211,.85);
  background:rgba(246,243,239,.88);
  backdrop-filter: blur(10px);
}

.brand{display:flex;align-items:center;gap:12px}

.mark{
  width:42px;height:42px;border-radius:14px;
  background:
    radial-gradient(12px 12px at 30% 35%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(22px 22px at 60% 70%, rgba(255,255,255,.7), transparent 60%),
    linear-gradient(135deg, rgba(26,167,161,.95), rgba(255,90,95,.75));
  box-shadow: var(--shadow2);
  position:relative;
}
.mark::after{
  content:"";
  position:absolute; inset:9px;
  border-radius:12px;
  background:rgba(246,243,239,.22);
  border:1px solid rgba(255,255,255,.6);
}

.brand__name{font-weight:900; letter-spacing:.2px}
.brand__sub{font-size:12px; color:var(--muted)}

.nav{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; padding:0 12px}
.actions{display:flex; gap:10px}

/* =========================
   Buttons + Chips
========================= */
.btn{
  border:1px solid rgba(28,35,43,.10);
  background:linear-gradient(180deg, rgba(26,167,161,.95), rgba(26,167,161,.80));
  color:white;
  border-radius:14px;
  padding:10px 12px;
  font-weight:800;
  cursor:pointer;
  box-shadow: 0 10px 26px rgba(26,167,161,.18);
}
.btn:hover{filter:saturate(1.08)}
.btn:focus{outline:none; box-shadow: var(--ring), 0 10px 26px rgba(26,167,161,.18)}

.btn--ghost{
  background:transparent;
  color:var(--ink);
  border:1px solid rgba(28,35,43,.14);
  box-shadow:none;
}
.btn--soft{
  background:rgba(26,167,161,.10);
  color:var(--ink);
  border:1px solid rgba(26,167,161,.22);
  box-shadow:none;
}

.iconBtn{
  width:40px;height:40px;border-radius:14px;
  border:1px solid rgba(28,35,43,.12);
  background:rgba(255,255,255,.8);
  cursor:pointer;
}
.iconBtn:hover{filter:saturate(1.05)}
.iconBtn:focus{outline:none; box-shadow: var(--ring)}

.chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 11px;
  border-radius:999px;
  border:1px solid rgba(28,35,43,.12);
  background:rgba(255,255,255,.72);
  cursor:pointer;
  font-weight:750;
  font-size:13px;
}
.chip--nav{padding:9px 12px}

.chip .dot{
  width:9px;height:9px;border-radius:50%;
  background:rgba(26,167,161,.55);
  box-shadow: 0 0 0 3px rgba(26,167,161,.12);
}
.chip.is-active{
  border-color: rgba(26,167,161,.30);
  background: rgba(26,167,161,.10);
}
.chip--money{
  border-color: rgba(244,183,63,.35);
  background: rgba(244,183,63,.12);
}

/* =========================
   Inputs
========================= */
input, select, textarea{
  font-family: inherit;
  font-size: 14px;
}

textarea{
  resize: vertical;
  min-height: 90px;
}

/* =========================
   Layout
========================= */
.shell{padding:16px}
.view{display:none}
.view.is-active{display:block}

.grid{
  display:grid;
  grid-template-columns: 420px 1fr;
  gap:16px;
  align-items:start;
}

/* =========================
   Panels / Cards
========================= */
.panel{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(231,222,211,.95);
  border-radius: var(--radius2);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.panel__head{padding:16px 16px 10px}

.search{
  display:flex; gap:10px;
  padding:0 16px 12px;
}
.search input{
  flex:1;
  border-radius:14px;
  border:1px solid rgba(28,35,43,.12);
  padding:10px 12px;
  background:rgba(246,243,239,.55);
}
.search input:focus{outline:none; box-shadow: var(--ring)}

.filters{padding:0 16px 12px}
.filters__row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px}

.select{
  border-radius:14px;
  border:1px solid rgba(28,35,43,.12);
  padding:10px 12px;
  background:rgba(246,243,239,.55);
}
.select:focus{outline:none; box-shadow: var(--ring)}

.hint{
  display:flex; gap:10px; align-items:center;
  margin-top:6px; color:var(--muted); font-size:12px
}

.list{padding:6px 10px 12px}

.cardItem{
  border:1px solid rgba(28,35,43,.10);
  background:rgba(255,255,255,.88);
  border-radius:18px;
  padding:12px;
  margin:10px 6px;
  cursor:pointer;
  box-shadow: 0 10px 22px rgba(22,28,35,.06);
  transition: transform .12s ease, box-shadow .12s ease;
}
.cardItem:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(22,28,35,.08);
}

.cardItem__top{display:flex; justify-content:space-between; gap:10px; align-items:flex-start}
.cardItem__title{font-weight:900}

.cardItem__meta{
  display:flex; gap:8px; flex-wrap:wrap;
  margin-top:8px
}

.pill{
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  border:1px solid rgba(231,222,211,.95);
  background:rgba(246,243,239,.7);
}
.pill--stage{border-color: rgba(26,167,161,.25); background: rgba(26,167,161,.10)}
.pill--urgent{border-color: rgba(255,90,95,.35); background: rgba(255,90,95,.10)}
.pill--cat{border-color: rgba(47,58,69,.14)}

/* Progress mini */
.progressMini{margin-top:10px}
.progressMini__bar{
  height:10px;border-radius:999px;
  background:rgba(47,58,69,.10);
  overflow:hidden;
}
.progressMini__fill{
  height:100%;
  width:0%;
  background:linear-gradient(90deg, var(--teal), rgba(255,90,95,.85));
  transition: width .25s ease;
}
.progressMini__meta{
  margin-top:6px;
  font-size:12px;
  color:var(--muted);
  display:flex;
  justify-content:space-between
}

/* =========================
   Map
========================= */
.mapWrap{display:flex; flex-direction:column; gap:12px}

.mapTop{
  display:flex; justify-content:space-between; align-items:center;
  gap:12px; flex-wrap:wrap;
}
.mapTop__left{display:flex; gap:12px; flex-wrap:wrap}
.mapTop__right{display:flex; gap:10px; flex-wrap:wrap}

.kpi{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(231,222,211,.95);
  border-radius:18px;
  padding:10px 12px;
  box-shadow: 0 10px 22px rgba(22,28,35,.06);
}
.kpi__label{font-size:12px; color:var(--muted)}
.kpi__value{font-size:18px; font-weight:950}

.map{
  position:relative;
  min-height: 560px;
  border-radius: var(--radius2);
  border:1px solid rgba(231,222,211,.95);
  background:
    radial-gradient(900px 500px at 30% 25%, rgba(26,167,161,.14), transparent 60%),
    radial-gradient(850px 450px at 80% 65%, rgba(255,90,95,.10), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.25));
  box-shadow: var(--shadow);
  overflow:hidden;
}

.map__grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(to right, rgba(47,58,69,.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(47,58,69,.08) 1px, transparent 1px);
  background-size: 44px 44px;
  opacity:.35;
}

.map__label{
  position:absolute; left:14px; top:14px;
  padding:10px 12px;
  border-radius:18px;
  background:rgba(255,255,255,.75);
  border:1px solid rgba(231,222,211,.95);
}

.map__title{font-weight:950}
.map__sub{font-size:12px; color:var(--muted)}
.map__pins{position:absolute; inset:0}

/* Pins */
.pin{
  position:absolute;
  width:18px;height:18px;border-radius:50%;
  transform: translate(-50%, -50%);
  cursor:pointer;
  background: rgba(26,167,161,.95);
  box-shadow: 0 0 0 6px rgba(26,167,161,.18), 0 14px 26px rgba(22,28,35,.10);
}
.pin::after{
  content:"";
  position:absolute; inset:-14px;
  border-radius:50%;
  background: radial-gradient(circle, rgba(26,167,161,.18), transparent 60%);
  animation: pulse 2.2s infinite;
}
.pin--coral{
  background: rgba(255,90,95,.95);
  box-shadow: 0 0 0 6px rgba(255,90,95,.18), 0 14px 26px rgba(22,28,35,.10);
}
.pin--gold{
  background: rgba(244,183,63,.95);
  box-shadow: 0 0 0 6px rgba(244,183,63,.18), 0 14px 26px rgba(22,28,35,.10);
}

@keyframes pulse{
  0%{transform: scale(.75); opacity:.70}
  70%{transform: scale(1.15); opacity:0}
  100%{transform: scale(1.15); opacity:0}
}

.miniBar{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(231,222,211,.95);
  border-radius:18px;
  padding:10px 12px;
  box-shadow: 0 10px 22px rgba(22,28,35,.06);
}
.miniBar__left{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
.miniBar__right{display:flex; gap:8px; align-items:center; flex-wrap:wrap}

/* =========================
   Pages (Crews / HQ / Trust)
========================= */
.page{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(231,222,211,.95);
  border-radius: var(--radius2);
  box-shadow: var(--shadow);
  padding:16px;
}

.page__head{
  display:flex; justify-content:space-between; gap:12px;
  align-items:flex-end; flex-wrap:wrap;
  margin-bottom:14px;
}
.page__actions{display:flex; gap:10px}

.cards{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}

.card{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(28,35,43,.10);
  border-radius: var(--radius2);
  box-shadow: 0 10px 22px rgba(22,28,35,.06);
  overflow:hidden;
}
.card__head{padding:14px 14px 8px}
.card__body{padding:0 14px 14px}

.tag{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(47,58,69,.08);
  border:1px solid rgba(47,58,69,.12)
}

.note{
  margin-top:14px;
  border-radius: var(--radius2);
  border:1px dashed rgba(26,167,161,.35);
  background: rgba(26,167,161,.08);
  padding:14px;
}
.note__title{font-weight:950}
.note__body{color:var(--muted); margin-top:6px}

.hq{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.hq__col{display:flex; flex-direction:column; gap:12px}

.merge,.assign{display:flex; gap:10px; flex-wrap:wrap; align-items:center}

.vault{
  margin-top:14px;
  border-radius: var(--radius2);
  border:1px solid rgba(244,183,63,.35);
  background: rgba(244,183,63,.12);
  padding:14px;
}
.vault__top{
  display:flex; justify-content:space-between;
  align-items:center; gap:10px
}
.vault__title{font-weight:950}
.vault__actions{
  display:flex; gap:10px; flex-wrap:wrap;
  margin:12px 0
}

.stats{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:10px;
}
.stat{
  border-radius:18px;
  border:1px solid rgba(231,222,211,.95);
  background: rgba(246,243,239,.55);
  padding:12px;
}
.stat__label{font-size:12px; color:var(--muted)}
.stat__value{font-size:18px; font-weight:950}

.trust{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}

.ol, .ul{margin:0; padding-left:18px; color:var(--muted)}
.ol li, .ul li{margin:8px 0}

.callout{
  margin-top:12px;
  border-radius:18px;
  padding:10px 12px;
  border:1px solid rgba(26,167,161,.25);
  background: rgba(26,167,161,.08);
  display:flex; gap:10px; align-items:center;
}

.legal{
  margin-top:14px;
  display:flex; gap:14px; flex-wrap:wrap
}

.link{
  color: var(--teal);
  font-weight:900;
  text-decoration:none
}
.link:hover{text-decoration:underline}

/* =========================
   Drawer (Bottom Sheet)
========================= */
.drawer{
  position:fixed; inset:0;
  display:none;
  z-index:60;
}
.drawer.is-open{display:block}

.drawer__scrim{
  position:absolute; inset:0;
  background: rgba(28,35,43,.35);
}

.drawer__panel{
  position:absolute;
  left:50%;
  bottom:0;
  transform: translateX(-50%);
  width:min(720px, 100%);
  max-height: 88vh;
  border-radius: 26px 26px 0 0;
  border:1px solid rgba(231,222,211,.95);
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.drawer__grab{
  width:54px;
  height:6px;
  border-radius:999px;
  background: rgba(47,58,69,.18);
  margin:10px auto 6px;
}

.drawer__head{
  padding:10px 16px 12px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  border-bottom:1px solid rgba(231,222,211,.85);
}

.drawer__title{
  font-size:18px;
  font-weight:950;
}

.drawer__meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
}

.drawer__body{
  padding:14px 16px 96px;
  overflow:auto;
}

/* Mission media */
.media{
  width:100%;
  border-radius: var(--radius2);
  border:1px solid rgba(231,222,211,.95);
  background: rgba(246,243,239,.55);
  overflow:hidden;
  min-height: 120px;
  box-shadow: 0 10px 22px rgba(22,28,35,.05);
}
.media img{
  width:100%;
  height:auto;
  display:block;
}
.media:empty{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:12px;
}
.media:empty::after{
  content:"No photo yet — add intel or a photo URL when dropping a beacon.";
  padding:14px;
  text-align:center;
}

/* Row utilities */
.row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.row--two > *{
  flex:1;
  min-width: 220px;
}

/* Tiles inside drawer */
.tile{
  margin-top:12px;
  border-radius: var(--radius2);
  border:1px solid rgba(231,222,211,.95);
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 22px rgba(22,28,35,.05);
  padding:12px;
}
.tile__label{
  font-size:12px;
  color:var(--muted);
  font-weight:850;
  margin-bottom:8px;
}
.tile__text{
  color:var(--slate);
  font-size:14px;
  line-height:1.35;
}

/* Meter */
.meter__bar{
  height:14px;
  border-radius:999px;
  background: rgba(47,58,69,.12);
  overflow:hidden;
}
.meter__fill{
  height:100%;
  width:0%;
  background: linear-gradient(90deg, var(--teal), rgba(255,90,95,.88));
  transition: width .25s ease;
}
.meter__meta{
  margin-top:8px;
  font-size:12px;
  color:var(--muted);
  font-weight:800;
}

/* Urgency */
.urgency{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(231,222,211,.95);
  background: rgba(246,243,239,.65);
  font-weight:900;
}
.urgency.is-low{border-color: rgba(47,58,69,.18)}
.urgency.is-medium{border-color: rgba(26,167,161,.28); background: rgba(26,167,161,.08)}
.urgency.is-high{border-color: rgba(244,183,63,.40); background: rgba(244,183,63,.14)}
.urgency.is-safety{border-color: rgba(255,90,95,.45); background: rgba(255,90,95,.12)}

/* Vault mini */
.vaultMini{
  border-radius:18px;
  border:1px solid rgba(244,183,63,.35);
  background: rgba(244,183,63,.12);
  padding:10px 12px;
  color:var(--slate);
  font-weight:750;
}

/* Timeline */
.timeline{
  margin-top:14px;
}
.timeline__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:10px;
}
.timeline__list{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.tStep{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border-radius:18px;
  border:1px solid rgba(231,222,211,.95);
  background: rgba(255,255,255,.85);
  padding:12px;
}
.tStep__dot{
  width:12px;height:12px;border-radius:50%;
  margin-top:4px;
  background: rgba(47,58,69,.22);
  box-shadow: 0 0 0 4px rgba(47,58,69,.08);
}
.tStep.is-done .tStep__dot{
  background: rgba(26,167,161,.95);
  box-shadow: 0 0 0 4px rgba(26,167,161,.14);
}
.tStep.is-now .tStep__dot{
  background: rgba(244,183,63,.95);
  box-shadow: 0 0 0 4px rgba(244,183,63,.18);
}
.tStep__name{font-weight:950}
.tStep__desc{font-size:12px; color:var(--muted); margin-top:2px}

/* Intel */
.intel{
  margin-top:14px;
}
.intel__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:10px;
}
.intel__compose{
  margin-top:10px;
  display:flex;
  gap:10px;
}
.intel__compose input{
  flex:1;
  border-radius:14px;
  border:1px solid rgba(28,35,43,.12);
  padding:10px 12px;
  background:rgba(246,243,239,.55);
}
.intel__compose input:focus{outline:none; box-shadow: var(--ring)}
.intel__list{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.intelItem{
  border-radius:18px;
  border:1px solid rgba(231,222,211,.95);
  background: rgba(255,255,255,.85);
  padding:12px;
}
.intelItem__top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}
.intelItem__name{font-weight:950}
.intelItem__time{font-size:12px; color:var(--muted)}
.intelItem__text{margin-top:6px; color:var(--slate)}

/* Dock (bottom action bar) */
.dock{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:10px 12px;
  border-top:1px solid rgba(231,222,211,.85);
  background: rgba(246,243,239,.92);
  backdrop-filter: blur(10px);
  display:flex;
  gap:10px;
}
.dock__btn{
  flex:1;
  border-radius:18px;
  border:1px solid rgba(28,35,43,.12);
  background: rgba(255,255,255,.85);
  cursor:pointer;
  padding:10px 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:950;
}
.dock__btn:hover{transform: translateY(-1px)}
.dock__btn:focus{outline:none; box-shadow: var(--ring)}
.dock__btn--primary{
  border-color: rgba(26,167,161,.30);
  background: linear-gradient(180deg, rgba(26,167,161,.95), rgba(26,167,161,.80));
  color:white;
}
.dock__icon{font-size:14px}
.dock__label{font-size:13px}
.dock__count{
  font-size:12px;
  font-weight:950;
  padding:5px 9px;
  border-radius:999px;
  background: rgba(47,58,69,.08);
  border:1px solid rgba(47,58,69,.12);
}
.dock__btn--primary .dock__count{
  background: rgba(255,255,255,.20);
  border-color: rgba(255,255,255,.35);
  color:white;
}

/* =========================
   Modals
========================= */
.modal{
  position:fixed; inset:0;
  display:none;
  z-index:70;
}
.modal.is-open{display:block}

.modal__scrim{
  position:absolute; inset:0;
  background: rgba(28,35,43,.35);
}

.modal__panel{
  position:absolute;
  left:50%; top:50%;
  transform: translate(-50%, -50%);
  width:min(680px, calc(100vw - 28px));
  background: rgba(255,255,255,.94);
  border:1px solid rgba(231,222,211,.95);
  border-radius: 26px;
  box-shadow: var(--shadow);
  overflow:hidden;
}
.modal__panel--small{
  width:min(520px, calc(100vw - 28px));
}

.modal__head{
  padding:14px 16px 10px;
  border-bottom:1px solid rgba(231,222,211,.85);
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}

.form{
  padding:14px 16px 16px;
}
.form__row{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
}
.form__row label{
  font-size:12px;
  color:var(--muted);
  font-weight:900;
}
.form__row input,
.form__row textarea{
  border-radius:14px;
  border:1px solid rgba(28,35,43,.12);
  padding:10px 12px;
  background: rgba(246,243,239,.55);
}
.form__row input:focus,
.form__row textarea:focus{
  outline:none;
  box-shadow: var(--ring);
}
.form__row--two{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.form__actions{
  margin-top:14px;
  display:flex;
  gap:10px;
  justify-content:flex-end;
  flex-wrap:wrap;
}

/* Pledge modal */
.pledge{
  padding:14px 16px 16px;
}
.pledge__quick{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.pledge__row{
  margin-top:12px;
  display:flex;
  gap:10px;
}
.pledge__row input{
  flex:1;
  border-radius:14px;
  border:1px solid rgba(28,35,43,.12);
  padding:10px 12px;
  background: rgba(246,243,239,.55);
}
.pledge__row input:focus{outline:none; box-shadow: var(--ring)}

/* Legal body */
.legalBody{
  padding:14px 16px 16px;
  color:var(--slate);
  line-height:1.45;
}

/* =========================
   Toasts
========================= */
.toasts{
  position:fixed;
  right:14px;
  bottom:14px;
  display:flex;
  flex-direction:column;
  gap:10px;
  z-index:80;
}
.toast{
  width:min(360px, calc(100vw - 28px));
  background: rgba(255,255,255,.92);
  border:1px solid rgba(231,222,211,.95);
  border-radius:18px;
  box-shadow: var(--shadow2);
  padding:12px;
}
.toast__title{font-weight:950}
.toast__body{margin-top:4px; color:var(--muted); font-size:12px}

/* =========================
   Responsive
========================= */
@media (max-width: 980px){
  .grid{grid-template-columns: 1fr}
  .map{min-height: 520px}
  .cards{grid-template-columns: 1fr}
  .trust{grid-template-columns: 1fr}
  .hq{grid-template-columns: 1fr}
}

@media (max-width: 520px){
  .topbar{flex-wrap:wrap; gap:10px}
  .actions{width:100%; justify-content:flex-end}
  .nav{justify-content:flex-start}
  .form__row--two{grid-template-columns: 1fr}
  .row--two > *{min-width: 100%}
  .dock{gap:8px}
}