/* worldfix.css - lane R110-WORLDFIX1: the World tools tab (census, ban list, live and offline repair tools, safety copies). Theme tokens of index.html only
   (no literal colour); light / dark follow the page. Builds on admin.css's .panel / .abody / .arow / .ainput / .abtn / .amsg / .kv / .pbar. */
#tab-world > .panel { margin-bottom: 14px; }
#tab-world .panel > h3 { margin: 0; padding: 12px 16px 0; font-size: 15px; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
#tab-world .panel > h3 .faint { font-size: 12px; font-weight: 400; }
#tab-world h4 { margin: 14px 0 6px; font-size: 13px; }
#tab-world .abody + .abody { border-top: 1px solid var(--line); }
.wf-head { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; margin: 0 0 10px; }
.wf-head h2 { margin: 0; font-size: 22px; font-weight: 600; }
.wf-auth { font-size: 13px; }
.wf-f { display: inline-flex; flex-direction: column; gap: 2px; font-size: 11px; color: var(--muted); min-width: 0; }
.wf-f > span { text-transform: uppercase; letter-spacing: .05em; }
.wf-f .ainput { font-size: 13px; flex: none; width: 100%; }
.wf-f:has(.ainput.wide) { flex: 1 1 240px; }
.wf-f:has(.ainput[size]) .ainput { width: auto; }
.wf-out { margin-top: 8px; }
.wf-out .ok, .wf-last.ok { color: var(--ok); }
.wf-out .bad, .wf-last.bad, .wf-t td.bad { color: var(--crit); }
/* the map */
.wf-mapbox .abody, .wf-mapbox .wf-mapwrap { padding: 0; }
.wf-mapbox > h3 { padding-bottom: 8px; }
.wf-mapwrap { position: relative; width: 100%; aspect-ratio: 16 / 7; min-height: 220px; max-height: 420px; background: var(--well); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.wf-mapwrap canvas { position: absolute; inset: 0; width: 100%; height: 100%; image-rendering: pixelated; cursor: crosshair; }
.wf-legend { display: flex; gap: 6px 14px; flex-wrap: wrap; align-items: center; padding: 8px 16px 0; font-size: 12px; color: var(--muted); }
.wf-sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; border: 1px solid var(--line); vertical-align: -2px; margin-right: 4px; }
.wf-sw.hit { background: color-mix(in srgb, var(--c3) 55%, transparent); border-color: var(--c3); }
.wf-sw.skip { background: color-mix(in srgb, var(--c5) 55%, transparent); border-color: var(--c5); }
.wf-sw.bad { background: color-mix(in srgb, var(--crit) 55%, transparent); border-color: var(--crit); }
.wf-sw.missing { background: color-mix(in srgb, var(--faint) 40%, transparent); border-color: var(--faint); }
.wf-sw.box { background: transparent; border: 2px dashed var(--c0); }
.wf-maplabel { padding: 6px 16px 12px; font-size: 12px; min-height: 1.5em; overflow-wrap: anywhere; }
/* tables */
.wf-tw { overflow-x: auto; margin: 8px 0; scrollbar-color: var(--line) transparent; scrollbar-width: thin; }
.wf-t { border-collapse: collapse; width: 100%; font-size: 13px; }
.wf-t th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); font-weight: 500; padding: 6px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.wf-t td { padding: 6px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.wf-t td.num, .wf-t th.num { text-align: right; font-variant-numeric: tabular-nums; }
.wf-t.small td, .wf-t.small th { padding: 4px 8px; font-size: 12px; }
.wf-t tr:last-child td { border-bottom: 0; }
.wf-types tr.wf-row { cursor: pointer; }
.wf-types tr.wf-row:hover, .wf-types tr.wf-row.on { background: var(--sel); }
.wf-id { font: 12px ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
.wf-per { overflow-wrap: anywhere; font-size: 12px; }
.wf-btns { white-space: nowrap; }
.wf-t td.warn, .wf-t td.num.warn { color: var(--warn); }
.wf-t td.bad, .wf-t td.num.bad { color: var(--crit); }
tr.wf-sub > td { background: var(--well); }
.wf-chip { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--line); margin-left: 4px; white-space: nowrap; }
.wf-chip.warn { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 45%, transparent); }
.wf-chip.bad { color: var(--crit); border-color: color-mix(in srgb, var(--crit) 45%, transparent); }
.wf-hot { margin: 8px 0; font-size: 12px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.wf-claims { font-size: 12px; margin-top: 4px; }
/* bans */
.wf-group { margin: 10px 0 14px; }
.wf-eff { font-size: 12px; margin: 0 0 4px; }
.wf-warn { margin: 8px 0; padding: 8px 12px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--warn) 45%, transparent); background: color-mix(in srgb, var(--warn) 9%, var(--pane)); font-size: 13px; }
.wf-last { margin: 10px 0; padding: 8px 12px; border-radius: 8px; border: 1px solid var(--line); background: var(--well); font-size: 13px; }
.wf-log { font: 11px ui-monospace, SFMono-Regular, Consolas, monospace; color: var(--crit); overflow-wrap: anywhere; margin-top: 4px; }
.wf-hist summary, .wf-notes summary { cursor: pointer; color: var(--muted); font-size: 12px; margin: 6px 0; }
/* previews, diffs, notes */
.wf-diff { font-size: 14px; margin: 6px 0 8px; }
.wf-pos { font: 12px ui-monospace, SFMono-Regular, Consolas, monospace; margin: 6px 0; }
.wf-sub { margin: 4px 0 18px; padding-bottom: 8px; border-bottom: 1px dashed var(--line); }
.wf-sub:last-child { border-bottom: 0; }
.wf-notes p { margin: 0 0 8px; color: var(--fg); }
details > summary { cursor: pointer; }
#tab-world code { font: 12px ui-monospace, SFMono-Regular, Consolas, monospace; background: var(--well); padding: 1px 5px; border-radius: 4px; }
#tab-world .empty { padding: 8px 0; color: var(--muted); }
#tab-world a { color: var(--c0); }
#tab-world a:visited { color: var(--c1); }
@media (max-width: 760px) {
  .wf-mapwrap { aspect-ratio: 4 / 3; }
  .wf-f { flex: 1 1 120px; }
  .wf-t th, .wf-t td { padding: 5px 6px; }
}
.warn { color: var(--warn); }
