/* Alabama Media Map — front-end styles. All rules scoped to .amm-plugin. */
.amm-plugin{
  --paper: oklch(0.985 0.006 85);
  --paper-2: oklch(0.965 0.010 85);
  --ink: oklch(0.28 0.012 70);
  --ink-soft: oklch(0.52 0.014 70);
  --rule: oklch(0.88 0.010 85);
  --land: oklch(0.93 0.020 150);
  --neighbor: oklch(0.975 0.002 85);
  --d0: oklch(0.955 0.008 255);
  --d1: oklch(0.915 0.032 255);
  --d2: oklch(0.855 0.058 255);
  --d3: oklch(0.775 0.085 255);
  --d4: oklch(0.665 0.105 255);
  --accent: oklch(0.58 0.105 255);
  --accent-soft: oklch(0.84 0.050 255);
  --mag: oklch(0.58 0.105 145);
  max-width:1180px; margin:0 auto; padding:28px 24px 20px;
  display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; align-items:start;
  background:var(--paper); color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.amm-plugin *{box-sizing:border-box}
.amm-plugin .amm-head{grid-column:1 / -1; border-bottom:1px solid var(--rule); padding-bottom:16px;
  display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap}
.amm-plugin h2.amm-title{font-family:"Instrument Serif",Georgia,serif; font-weight:400; font-size:40px;
  line-height:1; margin:0 0 6px; padding:0; color:var(--ink); border:0}
.amm-plugin .amm-sub{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-soft); margin:0}
.amm-plugin .amm-controls{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.amm-plugin .amm-btn{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:10.5px; letter-spacing:.1em;
  text-transform:uppercase; padding:8px 12px; border:1px solid var(--rule); border-radius:999px;
  background:transparent; color:var(--ink-soft); cursor:pointer; transition:.16s ease; box-shadow:none}
.amm-plugin .amm-btn:hover{border-color:var(--accent); color:var(--accent); background:transparent}
.amm-plugin .amm-btn[aria-pressed="true"]{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.amm-plugin .amm-stage{position:relative; background:var(--paper-2); border:1px solid var(--rule);
  border-radius:14px; padding:10px; overflow:hidden}
.amm-plugin .amm-stage svg{display:block; width:100%; height:auto}
.amm-plugin .county{fill:var(--land); stroke:none; cursor:pointer; transition:fill .14s ease}
.amm-plugin .county:hover{fill:var(--accent-soft)}
.amm-plugin .county.is-active{fill:var(--accent)}
.amm-plugin .mesh{fill:none; stroke:oklch(0.99 0 0 / .85); stroke-width:.9; pointer-events:none}
.amm-plugin .outline{fill:none; stroke:oklch(0.34 0.045 255); stroke-width:1.7; pointer-events:none;
  filter:drop-shadow(0 3px 5px oklch(0.34 0.045 255 / .28))}
.amm-plugin .neighbor{fill:var(--neighbor); stroke:oklch(0.93 0.004 85); stroke-width:.7}
.amm-plugin .county.d0{fill:var(--d0)}
.amm-plugin .county.d1{fill:var(--d1)}
.amm-plugin .county.d2{fill:var(--d2)}
.amm-plugin .county.d3{fill:var(--d3)}
.amm-plugin .county.d4{fill:var(--d4)}
.amm-plugin .county.is-mute{opacity:.45}
.amm-plugin .amm-scale{display:flex; gap:3px; margin:2px 0 4px}
.amm-plugin .amm-scale .st{width:22px; height:9px; border-radius:2px; border:1px solid oklch(0.88 0.01 255)}
.amm-plugin .amm-scale .st.d0{background:var(--d0)}
.amm-plugin .amm-scale .st.d1{background:var(--d1)}
.amm-plugin .amm-scale .st.d2{background:var(--d2)}
.amm-plugin .amm-scale .st.d3{background:var(--d3)}
.amm-plugin .amm-scale .st.d4{background:var(--d4)}
.amm-plugin .amm-scale-cap{display:flex; justify-content:space-between; font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px}
.amm-plugin .lcity-label{font-family:"IBM Plex Sans",system-ui,sans-serif; font-size:8.4px; font-weight:500;
  fill:var(--ink); text-anchor:middle; pointer-events:none; paint-order:stroke;
  stroke:oklch(0.99 0.004 85 / .92); stroke-width:2.6px; stroke-linejoin:round}
.amm-plugin .clabel{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:7.6px; fill:var(--ink-soft);
  text-anchor:middle; pointer-events:none; letter-spacing:.02em}
.amm-plugin .city-dot{fill:var(--paper); stroke:var(--accent); stroke-width:2}
.amm-plugin .city-dot.major{fill:var(--accent); stroke:oklch(0.99 0 0); stroke-width:1.4}
.amm-plugin .city-label{font-size:11px; font-weight:600; fill:var(--ink); paint-order:stroke;
  stroke:oklch(0.99 0.004 85 / .9); stroke-width:3px; stroke-linejoin:round; pointer-events:none}
.amm-plugin .listing{cursor:pointer; transition:opacity .14s ease}
.amm-plugin .listing circle{stroke:oklch(0.99 0 0 / .95); stroke-width:1.5}
.amm-plugin .listing.t-magazine circle{fill:var(--mag)}
.amm-plugin .listing.t-newspaper circle{fill:var(--accent)}
.amm-plugin .listing.is-dim{opacity:.13; pointer-events:none}
.amm-plugin .listing.is-sel circle{stroke:var(--ink); stroke-width:2.4}
.amm-plugin .amm-tip{position:absolute; pointer-events:none; opacity:0; transform:translate(-50%,-118%);
  background:var(--ink); color:var(--paper); padding:7px 10px; border-radius:8px; font-size:12px;
  white-space:nowrap; transition:opacity .12s ease; z-index:5;
  box-shadow:0 6px 18px oklch(0.28 0.012 70 / .22)}
.amm-plugin .amm-tip b{font-weight:600}
.amm-plugin .amm-tip span{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:10px; opacity:.66;
  letter-spacing:.08em; text-transform:uppercase}
.amm-plugin .amm-pop{position:absolute; opacity:0; pointer-events:none; transform:translate(-50%,-116%);
  background:var(--paper); border:1px solid var(--rule); border-radius:10px; padding:12px 14px 11px;
  min-width:172px; max-width:250px; z-index:6; transition:opacity .12s ease;
  box-shadow:0 10px 28px oklch(0.28 0.012 70 / .18)}
.amm-plugin .amm-pop.is-open{opacity:1; pointer-events:auto}
.amm-plugin .amm-pop.is-below{transform:translate(-50%,16%)}
.amm-plugin .amm-pop .pn{font-family:"Instrument Serif",Georgia,serif; font-size:19px; line-height:1.15; padding-right:14px}
.amm-plugin .amm-pop .pt{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:9.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-soft); margin-top:5px}
.amm-plugin .amm-pop a{display:inline-block; margin-top:8px; font-size:12.5px; color:var(--accent);
  text-decoration:none; word-break:break-word}
.amm-plugin .amm-pop a:hover{color:var(--ink); text-decoration:underline}
.amm-plugin .amm-pop .px{position:absolute; top:6px; right:8px; border:0; background:none; cursor:pointer;
  font-size:15px; line-height:1; color:var(--ink-soft); padding:2px}
.amm-plugin .amm-aside{display:flex; flex-direction:column; gap:18px}
.amm-plugin .amm-ph{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-soft); border-bottom:1px solid var(--rule);
  padding-bottom:8px; margin:0 0 10px}
.amm-plugin .amm-ro .name{font-family:"Instrument Serif",Georgia,serif; font-size:27px; line-height:1.05}
.amm-plugin .amm-ro .meta{font-size:12.5px; color:var(--ink-soft); margin-top:6px; line-height:1.55}
.amm-plugin .amm-ro .meta a{color:var(--accent); text-decoration:none}
.amm-plugin .amm-ro .meta a:hover{color:var(--ink); text-decoration:underline}
.amm-plugin .amm-ro dl{display:grid; grid-template-columns:auto 1fr; gap:3px 10px; margin:9px 0 0; font-size:12px}
.amm-plugin .amm-ro dt{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:9.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-soft); padding-top:2px}
.amm-plugin .amm-ro dd{margin:0; color:var(--ink)}
.amm-plugin .amm-search{width:100%; padding:9px 11px; border:1px solid var(--rule); border-radius:8px;
  background:var(--paper); font-family:inherit; font-size:13px; color:var(--ink)}
.amm-plugin .amm-search:focus{outline:none; border-color:var(--accent); box-shadow:none}
.amm-plugin .amm-list{max-height:264px; overflow:auto; margin-top:8px; display:flex; flex-direction:column}
.amm-plugin .amm-list button{all:unset; cursor:pointer; padding:6px 8px; font-size:12.5px; border-radius:6px;
  color:var(--ink); display:flex; align-items:baseline; gap:7px}
.amm-plugin .amm-list button:hover{background:var(--accent-soft)}
.amm-plugin .amm-list .dot{width:7px; height:7px; border-radius:50%; background:var(--accent); flex:0 0 auto}
.amm-plugin .amm-list .dot.mag{background:var(--mag)}
.amm-plugin .amm-list .sm{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:9.5px;
  color:var(--ink-soft); margin-left:auto; letter-spacing:.06em}
.amm-plugin .amm-empty{font-size:12px; color:var(--ink-soft); padding:6px 8px; line-height:1.5}
.amm-plugin .amm-key{display:flex; flex-direction:column; gap:7px; font-size:12px; color:var(--ink-soft)}
.amm-plugin .amm-key div{display:flex; align-items:center; gap:8px}
.amm-plugin .sw{width:14px; height:14px; border-radius:3px; border:1px solid var(--rule)}
.amm-plugin .sw.rd{border-radius:50%; width:10px; height:10px; margin:0 2px}
.amm-plugin .amm-foot{grid-column:1 / -1; border-top:1px solid var(--rule); padding-top:12px; display:flex;
  justify-content:space-between; gap:12px; font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:9.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); flex-wrap:wrap}
.amm-plugin .amm-loading{padding:80px 0; text-align:center; font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft)}
.amm-plugin .amm-filterbar{display:none; align-items:center; gap:10px; margin-top:-4px;
  font-size:12.5px; color:var(--ink-soft)}
.amm-plugin .amm-filterbar.is-on{display:flex}
.amm-plugin .amm-filterbar strong{color:var(--ink); font-weight:600}
.amm-plugin .amm-clear{all:unset; cursor:pointer; font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent);
  border-bottom:1px solid var(--accent-soft)}
@media (max-width:860px){
  .amm-plugin{grid-template-columns:minmax(0,1fr); padding:20px 16px 16px}
  .amm-plugin h2.amm-title{font-size:32px}
}
