.bfm-root{
  --bfm-parch:#ffffff;
  --bfm-panel:#ffffff;
  --bfm-sea:#cfe1da;
  --bfm-land:#e7dabd;
  --bfm-landline:#c8b48a;
  --bfm-ink:#2e2922;
  --bfm-faint:#6b6355;
  --bfm-teal:#1f6f6b;
  --bfm-terra:#bf5b3c;
  --bfm-grat:#a9c3ba;
  box-sizing:border-box;
  max-width:1100px;
  margin:0 auto;
  padding:20px 14px 26px 14px;
  background:var(--bfm-parch);
  color:var(--bfm-ink);
  font-family:"Source Sans 3",Arial,sans-serif;
  font-size:16px;
  line-height:1.5;
  border:2px solid var(--bfm-ink);
  border-radius:5px;
}
.bfm-root *{box-sizing:border-box;}
.bfm-root .bfm-head{border-bottom:3px double var(--bfm-teal);padding-bottom:12px;margin-bottom:14px;}
.bfm-root .bfm-title{
  font-family:Fraunces,Georgia,serif;
  font-weight:700;
  font-size:clamp(24px,4vw,34px);
  line-height:1.12;
  margin:0 0 6px 0;
  color:var(--bfm-ink);
}
.bfm-root .bfm-sub{margin:0;color:var(--bfm-faint);max-width:70ch;}
.bfm-root .bfm-toolbar{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  justify-content:flex-end;margin:0 0 10px 0;
}
.bfm-root .bfm-zoomctl{display:flex;flex-wrap:wrap;gap:6px;}
.bfm-root button{
  font-family:"Source Sans 3",Arial,sans-serif;
  font-size:14px;font-weight:600;
  color:var(--bfm-ink);
  background:var(--bfm-panel);
  border:1.5px solid var(--bfm-ink);
  border-radius:3px;
  padding:6px 12px;
  cursor:pointer;
}
.bfm-root button:hover{background:var(--bfm-teal);border-color:var(--bfm-teal);color:#fff;}
.bfm-root button:focus-visible{outline:3px solid var(--bfm-terra);outline-offset:2px;}
.bfm-root .bfm-zoomctl button{min-width:38px;font-size:17px;padding:4px 10px;}
.bfm-root .bfm-mapwrap{
  position:relative;
  background:var(--bfm-sea);
  border:2px solid var(--bfm-ink);
  border-radius:4px;
  overflow:hidden;
}
.bfm-root svg{display:block;width:100%;height:auto;touch-action:none;cursor:grab;}
.bfm-root svg.bfm-panning{cursor:grabbing;}
.bfm-root .bfm-ctx{fill:var(--bfm-land);stroke:var(--bfm-landline);stroke-width:1;vector-effect:non-scaling-stroke;}
.bfm-root .bfm-grat{stroke:var(--bfm-grat);stroke-width:1;stroke-dasharray:2 5;fill:none;vector-effect:non-scaling-stroke;}
.bfm-root .bfm-gratlab{font-family:"IBM Plex Mono",monospace;font-size:13px;fill:var(--bfm-teal);opacity:0.85;}
.bfm-root .bfm-ent{cursor:pointer;}
.bfm-root .bfm-ent .bfm-out{fill:none;stroke:var(--bfm-ink);stroke-width:0.9;vector-effect:non-scaling-stroke;}
.bfm-root .bfm-ent.bfm-hi .bfm-out{stroke:var(--bfm-terra);stroke-width:2.6;}
.bfm-root .bfm-mk{cursor:pointer;}
.bfm-root .bfm-mk line{stroke:var(--bfm-ink);stroke-width:1.1;}
.bfm-root .bfm-mk rect.bfm-fr{fill:none;stroke:var(--bfm-ink);stroke-width:1.4;}
.bfm-root .bfm-mk.bfm-hi rect.bfm-fr{stroke:var(--bfm-terra);stroke-width:2.4;}
.bfm-root .bfm-tip{
  position:absolute;pointer-events:none;display:none;z-index:5;
  background:var(--bfm-panel);
  border:1.5px solid var(--bfm-ink);
  border-left:5px solid var(--bfm-terra);
  border-radius:3px;
  box-shadow:2px 3px 0 rgba(46,41,34,0.25);
  padding:9px 12px 8px 12px;
  max-width:260px;
}
.bfm-root .bfm-tip img{display:block;width:78px;height:auto;border:1px solid var(--bfm-ink);margin-bottom:6px;}
.bfm-root .bfm-tip .bfm-tn{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:17px;line-height:1.2;}
.bfm-root .bfm-tip .bfm-ts{color:var(--bfm-teal);font-size:13px;font-weight:600;margin:1px 0 4px 0;}
.bfm-root .bfm-tip .bfm-td{font-size:13.5px;color:var(--bfm-ink);}
.bfm-root .bfm-tip .bfm-td span{color:var(--bfm-faint);}
.bfm-root .bfm-hint{
  font-family:"IBM Plex Mono",monospace;
  font-size:12.5px;color:var(--bfm-faint);
  margin:8px 0 0 0;
}
.bfm-root .bfm-legend{margin-top:20px;}
.bfm-root .bfm-gh{
  font-family:Fraunces,Georgia,serif;font-weight:700;
  font-size:21px;margin:20px 0 8px 0;
  color:var(--bfm-ink);
  border-bottom:1.5px solid var(--bfm-landline);
  padding-bottom:4px;
}
.bfm-root .bfm-gh span{font-family:"IBM Plex Mono",monospace;font-weight:400;font-size:13px;color:var(--bfm-teal);margin-left:8px;}
.bfm-root .bfm-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));
  gap:6px 14px;list-style:none;margin:0;padding:0;
}
.bfm-root .bfm-grid li{margin:0;padding:0;}
.bfm-root .bfm-grid button{
  display:flex;align-items:center;gap:9px;width:100%;
  background:none;border:1.5px solid transparent;border-radius:3px;
  padding:4px 6px;text-align:left;font-weight:400;font-size:15px;color:var(--bfm-ink);
}
.bfm-root .bfm-grid button:hover{background:var(--bfm-panel);border-color:var(--bfm-ink);color:var(--bfm-ink);}
.bfm-root .bfm-grid img{width:30px;height:20px;object-fit:cover;border:1px solid var(--bfm-ink);flex:none;}
.bfm-root .bfm-foot{
  margin-top:22px;border-top:3px double var(--bfm-teal);padding-top:10px;
  font-size:13px;color:var(--bfm-faint);
}
.bfm-root .bfm-foot a{color:var(--bfm-teal);}
@media (max-width:560px){
  .bfm-root{padding:14px 8px 20px 8px;}
}
@media (prefers-reduced-motion:no-preference){
  .bfm-root .bfm-ent .bfm-out,.bfm-root .bfm-grid button{transition:all 0.12s ease;}
}
