@import url("https://fonts.googleapis.com/css2?family=Special+Elite&display=swap");

:root{

  --size-1: 0.25em;
  --size-2: 0.5em;
  --size-3: 0.75em;
  --size-4: 1em;
  --size-5: 1.25em;
  --size-6: 1.5em;
  --size-7: 1.75em;
  --size-8: 2em;
  --size-9: 2.25em;
  --size-10: 2.5em;
  --size-11: 2.75em;
  --size-12: 4em;
  --size-13: 17.5em;
  --size-14: 20em;
  --size-15: 35em;
  --size-16: 40.5em;
  --size-17: 56.25em;
  --size-18: 68.75em;
  --size-19: 75em;
  --size-pill: 62.5em;
  --offset-far: -62.5em;

  --border: 0.125em;

  --size-btn-minh: 2.75em;
  --size-notes-minh: 8em;
  --size-attrcol-minw: 5.5em;
  --size-skilltable-maxh: 12em;
  --size-picker-maxh: 18em;
  --size-preview-maxh: 22em;
  --size-icon-lg: 2em;
  --size-page-blur: 56px;
  --size-font-base: 18px;
  --size-sector-label-shift: -75px;
  --size-pill-border-width: 0.0625em;
  --size-outline-offset-tight: -0.125em;
  --size-outline-offset: 0.125em;

  --bg: oklch(0.17 0.015 270);
  --color-transparent: oklch(0 0 0 / 0);
  --panel: oklch(0.24 0.01 270 / 0.5);
  --panel-solid: oklch(0.24 0.01 270 / 1);
  --panelBorder: oklch(1 0 0 / 0.14);
  --panelBorderHi: oklch(1 0 0 / 0.22);
  --text: oklch(0.96 0.01 270 / 0.64);
  --color-white: oklch(1 0 0);
  --color-selected: oklch(0.50 0.15 150);
  --marker-selected: oklch(0.64 0.23 26);
  --muted: oklch(0.96 0.01 270 / 0.34);
  --accent: oklch(0.36 0.09 152);
  --shadow: 0 var(--size-5) 3.75em oklch(0 0 0 / 0.52);
  --glassBlur: 16px;
  --glassSat: 135%;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --glassSheen: linear-gradient(
    135deg,
    oklch(1 0 0 / 0.12),
    oklch(1 0 0 / 0.04) 38%,
    oklch(1 0 0 / 0.02) 60%,
    oklch(1 0 0 / 0.08)
  );
  --sans: Roboto, Arial, sans-serif;
  --brand: "Special Elite", var(--sans);
  --radius: var(--size-2);
  --focus: 0 0 0 var(--border) oklch(0.36 0.09 152 / 0.4);
  --color-player: oklch(0.64 0.23 26);
  --color-vehicle: oklch(0.58 0.18 264);
  --color-flag: oklch(0.79 0.16 70);
  --shadow-text: 0 0 0.5em oklch(0 0 0 / 0.8);
  --shadow-marker: 0.125em 0.125em 0.125em oklch(0 0 0 / 0.5);
  --color-bg-glow-primary: oklch(0.36 0.09 152 / 0.28);
  --color-bg-glow-secondary: oklch(0.36 0.09 152 / 0.12);
  --color-bg-glow-tertiary: oklch(0.36 0.09 152 / 0.10);
  --color-status-dot-idle: oklch(0.66 0.03 260 / 0.6);
  --color-status-dot-online: oklch(0.72 0.18 150);
  --color-status-dot-offline: oklch(0.64 0.23 26);
  --color-control-border-active: oklch(0.36 0.09 152 / 1);
  --color-control-bg-active: oklch(0.36 0.09 152 / 0.4);
  --color-control-bg-hover: oklch(0.36 0.09 152 / 0.75);
  --color-surface-hover: oklch(1 0 0 / 0.12);
  --color-surface-input: oklch(0 0 0 / 0.22);
  --color-message-yellow: oklch(0.87 0.17 95);
  --color-overlay-strong: oklch(0 0 0 / 0.55);
  --color-message-white: oklch(0.99 0.002 270);
  --color-message-cyan: oklch(0.79 0.13 215);
  /* Livemap detail callouts — matched to warn (amber) / info (blue) panels */
  --lm-callout-warn-accent: oklch(0.72 0.16 75);
  --lm-callout-warn-border: oklch(0.48 0.1 65);
  --lm-callout-warn-bg: oklch(0.22 0.045 60 / 0.92);
  --lm-callout-warn-icon-bg: oklch(0.28 0.07 60);
  --lm-callout-info-accent: oklch(0.72 0.11 245);
  --lm-callout-info-border: oklch(0.38 0.07 250);
  --lm-callout-info-bg: oklch(0.2 0.04 255 / 0.92);
  --lm-callout-info-icon-bg: oklch(0.26 0.06 250);
  --color-select-chevron: var(--muted);
  /* Shared caret for native selects and player omnibox (matches --muted-ish contrast). */
  --select-caret-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6%208l4%204%204-4' stroke='white' stroke-opacity='0.34' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --color-control-bg-pressed: oklch(0 0 0 / 0.4);
  --color-menu-bg: oklch(0.2 0.012 270);
  --color-code-bg: oklch(0 0 0 / 0.18);
  --color-log-bg: oklch(0 0 0 / 0.5);
  --color-row-hover-border: oklch(1 0 0 / 0.16);
  --color-border-subtle: oklch(1 0 0 / 0.08);
  --color-log-src-scum: oklch(0.74 0.02 260 / 0.92);
  --color-log-src-scum-border: oklch(0.74 0.02 260 / 0.70);
  --color-log-src-login: oklch(0.79 0.13 215 / 0.95);
  --color-log-src-login-border: oklch(0.79 0.13 215 / 0.85);
  --color-log-src-admin: oklch(0.87 0.17 95 / 0.98);
  --color-log-src-admin-border: oklch(0.87 0.17 95 / 0.92);
  --color-log-src-economy: oklch(0.72 0.18 150 / 0.98);
  --color-log-src-economy-border: oklch(0.72 0.18 150 / 0.92);
  --color-log-src-kill: oklch(0.64 0.23 26 / 0.98);
  --color-log-src-kill-border: oklch(0.64 0.23 26 / 0.95);
  --color-log-src-event-kill: oklch(0.50 0.19 24 / 0.98);
  --color-log-src-event-kill-border: oklch(0.50 0.19 24 / 0.95);
  --color-log-src-chat: oklch(0.75 0.17 328 / 0.98);
  --color-log-src-chat-border: oklch(0.75 0.17 328 / 0.95);
  --color-log-src-famepoints: oklch(0.73 0.13 250 / 0.98);
  --color-log-src-famepoints-border: oklch(0.73 0.13 250 / 0.95);
  --color-log-src-loot: oklch(0.67 0.14 78 / 0.98);
  --color-log-src-loot-border: oklch(0.67 0.14 78 / 0.95);
  --color-log-src-gameplay: oklch(0.58 0.09 220 / 0.98);
  --color-log-src-gameplay-border: oklch(0.58 0.09 220 / 0.95);
  --color-log-src-armor: oklch(0.56 0.13 150 / 0.98);
  --color-log-src-armor-border: oklch(0.56 0.13 150 / 0.95);
  --color-log-src-base-destruction: oklch(0.53 0.19 305 / 0.98);
  --color-log-src-base-destruction-border: oklch(0.53 0.19 305 / 0.95);
  --color-log-src-chest: oklch(0.58 0.01 260 / 0.98);
  --color-log-src-chest-border: oklch(0.58 0.01 260 / 0.95);
  --color-log-src-quests: oklch(1 0 0 / 0.98);
  --color-log-src-quests-border: oklch(1 0 0 / 0.70);
  --color-surface-panel-muted: oklch(0.2 0.01 270 / 0.75);
  --color-table-header-bg: oklch(0.2 0.01 270 / 0.95);
  --color-focus-accent: oklch(0.36 0.09 152);
  --color-map-grid-line: oklch(1 0 0 / 0.05);
  --color-marker-rendered-stroke: oklch(0.95 0.04 250 / 0.85);
  --color-online-dot-off: oklch(0.55 0 0 / 0.45);
  --color-map-surface: oklch(0 0 0 / 0.2);
  --color-map-toggle-surface: oklch(0 0 0 / 0.45);
  --color-sector-stroke: oklch(1 0 0 / 0.2);
  --color-sector-text: oklch(1 0 0 / 0.4);
  --color-surface-soft: oklch(1 0 0 / 0.06);
  --color-panel: oklch(0.19 0.02 265 / 1);
  --color-panel-elevated: oklch(0.19 0.02 265 / 0.75);
  --color-textarea-bg: oklch(0 0 0 / 0.35);
  --color-row-selected-bg: oklch(1 0 0 / 0.10);
  --color-detail-heading: oklch(0.72 0.04 250);
  --color-attr-strength: oklch(0.72 0.2 25);
  --color-attr-constitution: oklch(0.78 0.16 75);
  --color-attr-dexterity: oklch(0.75 0.15 145);
  --color-attr-intelligence: oklch(0.72 0.12 250);
  --color-skill-header-bg: oklch(0.22 0.02 270 / 0.95);
  --color-help-accent: oklch(0.72 0.17 160);
  --color-section-heading: oklch(0.80 0.05 245);
  --color-close-button: oklch(0.50 0.19 24);
  --color-delete-button-hover: oklch(0.50 0.19 24 / 0.5);
  --color-delete-button: oklch(0.50 0.19 24);

  --scrollbar-track: color-mix(in oklch, var(--bg) 55%, var(--color-surface-input) 45%);
  --scrollbar-thumb: color-mix(in oklch, var(--accent) 60%, var(--bg) 40%);
  --scrollbar-thumb-hover: color-mix(in oklch, var(--accent) 78%, var(--bg) 22%);
  --scrollbar-thumb-active: color-mix(in oklch, var(--accent) 88%, var(--bg) 12%);
}

*,
*::before,
*::after{
  box-sizing: border-box;
}

img,
video{
  max-width: 100%;
  height: auto;
}

html,body{height:100%}
html{
  overflow-x: clip;
}

/* Firefox: standard scrollbar props. Chrome 121+ ignores ::-webkit-scrollbar
   when scrollbar-width/scrollbar-color are set, so keep these Firefox-only. */
@supports not selector(::-webkit-scrollbar){
  *{
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
  }
}

*::-webkit-scrollbar{
  width: 12px;
  height: 12px;
}

*::-webkit-scrollbar-track{
  background: var(--scrollbar-track);
}

*::-webkit-scrollbar-thumb{
  background-color: var(--scrollbar-thumb);
  background-clip: padding-box;
  border-radius: 999px;
  border: 3px solid transparent;
  transition:
    border-width 180ms ease-out,
    background-color 180ms ease-out;
}

*::-webkit-scrollbar-thumb:hover{
  background-color: var(--scrollbar-thumb-hover);
  border-width: 0;
}

*::-webkit-scrollbar-thumb:active{
  background-color: var(--scrollbar-thumb-active);
  border-width: 0;
}

*::-webkit-scrollbar-corner{
  background: var(--scrollbar-track);
}

@media (prefers-reduced-motion: reduce){
  *::-webkit-scrollbar-thumb{
    transition: none;
  }
}
body{
  font-size: var(--size-font-base);
  margin:0;
  font-family: var(--sans);
  color: var(--text);
  background:
    radial-gradient(var(--size-18) 50em at 12% -10%, var(--color-bg-glow-primary), var(--color-transparent) 58%),
    radial-gradient(var(--size-17) 43.75em at 95% 0%, var(--color-bg-glow-secondary), var(--color-transparent) 62%),
    radial-gradient(43.75em 37.5em at 60% 110%, var(--color-bg-glow-tertiary), var(--color-transparent) 58%),
    var(--bg);
  background: var(--bg);
  text-wrap-style: pretty;
}

.page-bg{
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.15;
  filter: blur(var(--size-page-blur));
  rotate: -15deg;
}
.page-bg img,
.page-bg svg{
  position: absolute;
  left: 50%;
  top: 40%;
  transform: translate(-50%, -50%);
  width: min(110vmin, 82em);
  height: auto;
}
body > :not(.page-bg){
  position: relative;
  z-index: 1;
}

.skip-link{
  position:absolute;
  left:var(--offset-far);
  top:var(--size-2);
  padding:var(--size-1) var(--size-3);
  background:var(--panel);
  border:var(--border) solid var(--panelBorder);
  border-radius:var(--size-1);
  z-index:var(--size-1);
}
.skip-link:focus{left:var(--size-1); box-shadow:var(--focus); outline:none;}

/* Floating back-to-top (landing + guide). Hidden until scrolled. */
.backToTop{
  position: fixed;
  right: max(var(--size-5), env(safe-area-inset-right, 0px));
  bottom: max(var(--size-5), env(safe-area-inset-bottom, 0px));
  z-index: 40;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border: var(--border) solid color-mix(in oklch, var(--accent) 55%, var(--panelBorder));
  border-radius: var(--radius);
  background: color-mix(in oklch, var(--panel) 92%, var(--accent));
  color: var(--text);
  box-shadow: 0 0.5em 1.25em oklch(0 0 0 / 0.45);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(0.4em);
  transition:
    opacity 200ms ease-out,
    visibility 200ms ease-out,
    transform 200ms ease-out,
    background 150ms ease-out,
    border-color 150ms ease-out;
}
.backToTop.is-visible{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.backToTop:hover{
  background: var(--color-control-bg-hover);
  border-color: var(--color-control-border-active);
}
.backToTop:focus{
  outline: none;
}
.backToTop:focus-visible{
  box-shadow: var(--focus), 0 0.5em 1.25em oklch(0 0 0 / 0.45);
}
.backToTop:active{
  transform: translateY(var(--size-1));
}
.backToTop svg{
  display: block;
  flex: 0 0 auto;
}
@media (prefers-reduced-motion: reduce){
  .backToTop{
    transition: none;
    transform: none;
  }
  .backToTop.is-visible{
    transform: none;
  }
  .backToTop:active{
    transform: none;
  }
}

.top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:var(--size-4);
  padding:var(--size-2) var(--size-5) var(--size-4);
  max-width: min(var(--size-19), 100%);
  width: 100%;
  margin: 0 auto;
}
.top__right{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--size-3);
  justify-content: flex-end;
}
.brand {
  display: flex;
  align-items: flex-end;
}

.brand img {
  width: var(--size-12);
  height: auto;
}
.special-elite{
  letter-spacing: -.02em;
  font-family: var(--brand);
  font-size: var(--size-8);
  font-weight: 850;
  line-height: 0.5;
  margin-bottom: -0.25em;
  text-shadow: var(--shadow-text);
}
.brand__meta{color:var(--muted); font-size: var(--size-4);}

.status{
  display:flex;
  align-items:center;
  gap:var(--size-1);
  padding:0 var(--size-3);
}
.status__dot{
  width:var(--size-1);height:var(--size-1);border-radius:var(--size-pill);
  background: var(--color-status-dot-idle);
}
.status[data-state="ok"] .status__dot{ background: var(--color-status-dot-online); }
.status[data-state="bad"] .status__dot{ background: var(--color-status-dot-offline); }
.status__text{font-size: var(--size-4); color: var(--muted);}

.auth{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:var(--size-2);
}
.auth__meta{
  text-align:right;
  max-width: 26ch;
}
.auth__user{
  display:block;
  margin-top: var(--size-1);
  font-size: var(--size-4);
  font-weight: 800;
  color: var(--text);
}
.auth__actions{
  display:flex;
  gap:var(--size-1);
}

.wrap{
  max-width: min(var(--size-19), 100%);
  width: 100%;
  margin: 0 auto;
  padding:
    max(0px, env(safe-area-inset-top, 0px))
    max(var(--size-5), env(safe-area-inset-right, 0px))
    max(var(--size-6), env(safe-area-inset-bottom, 0px))
    max(var(--size-5), env(safe-area-inset-left, 0px));
  display:grid;
  gap:var(--size-4);
  min-width: 0;
}

.panel{
  position: relative;
  min-width: 0;
  max-width: 100%;
  border:var(--border) solid var(--panelBorder);
  border-top-color: var(--panelBorderHi);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: var(--shadow);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  padding: var(--size-2) var(--size-3);
}
.panel::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;
  background: var(--glassSheen);
  opacity: .65;
  mix-blend-mode: screen;
}
.panel > *{ position: relative; z-index: 1; }

h2{
  margin: 0 0 var(--size-2);
  font-size: var(--size-5);
  letter-spacing: -.01em;
}

.row{
  display:flex;
  flex-wrap:wrap;
  gap:var(--size-1);
  align-items:center;
  min-width: 0;
}
.row > .field{
  min-width: 0;
}
.row__spacer{ flex: 1 1 auto; }
.row--tight{gap:var(--size-3); margin-top:var(--size-1);}

.btn{
  appearance: none;
  border: var(--border) solid var(--color-control-border-active);
  background: var(--color-control-bg-active);
  color: var(--text);
  border-radius: var(--size-2);
  padding: var(--size-2) var(--size-4);
  font-weight: var(--size-4);
  cursor: pointer;
  align-self: end;
  font-size: var(--size-4);
}
.btn[disabled]{
  cursor: not-allowed;
  opacity: .7;
}
.btn:hover{ background: var(--color-control-bg-hover); }
.btn:focus{ outline:none; box-shadow: var(--focus); }
.btn:active{ transform: translateY(var(--size-1)); }
.btn--ghost{
  border-color: var(--panelBorder);
  background: var(--color-transparent);
}
.btn--ghost:hover{ background: var(--color-surface-hover); }

.field{
  display:flex;
  flex-direction:column;
  gap:var(--size-2);
  /* min-width: var(--size-13); */
  /* flex: 1 1 var(--size-14); */
}
.field--narrow{
  min-width: min(100%, 13.75em);
  flex: 0 1 var(--size-13);
}
.field__label{font-size:var(--size-4); color: var(--muted); font-weight: 650;}

input, select{
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  padding: var(--size-2) var(--size-4);
  background: var(--color-surface-input);
  color: var(--text);
  font-size: var(--size-4);
  min-height: var(--size-btn-minh);
}
/* .lmPlayerOmnibox{
  padding-right: var(--size-7);
  background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: calc(100% - 1.05em) 50%, calc(100% - 0.75em) 50%;
  background-size: 0.35em 0.35em, 0.35em 0.35em;
  background-repeat: no-repeat;
} */
.lmPlayerOmnibox:focus{
  outline: none;
  box-shadow: var(--focus);
}
.lmPlayerOmniboxWrap{
  position: relative;
}

.lmOnlinePlayersList{
  background: var(--bg);
}

.lmOnlinePlayersList--dropdown{
  position: absolute;
  z-index: 50;
  left: 0;
  top: calc(100% + 6px);
  width: 100%;
  max-height: min(10em, 25vh);
  overflow: auto;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--bg);
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
  padding: var(--size-2);
}
.lmOnlinePlayersList__opt{
  user-select: none;
  width: 100%;
  text-align: left;
  border: 0;
  border-radius: var(--size-2);
  background: var(--bg);
  color: var(--text);
  padding: var(--size-2) var(--size-3);
  cursor: pointer;
  font-size: var(--size-4);
}
.lmOnlinePlayersList__opt:hover{
  background: var(--color-control-bg-hover);
}
.lmOnlinePlayersList__opt:focus{
  outline: none;
  box-shadow: var(--focus);
}
.field input:not([type="number"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.field textarea{
  width: 100%;
  max-width: 100%;
}
.field select{
  width: 100%;
  max-width: 100%;
}
select optgroup{
  background: var(--bg);
}

@supports (field-sizing: content){
  .lmAdminDialog .field select{
    field-sizing: content;
  }
}
.message-type-fieldset{
  min-width: 100%;
  flex: 1 1 100%;
  border: 0;
  margin: 0;
  padding: 0;
}
.message-type-pills{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  margin: var(--size-4) 0 var(--size-1);
}
.message-type-pill{
  --pill-color: var(--color-message-yellow);
  display: inline-flex;
  align-items: center;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-pill);
  background: var(--color-surface-input);
  color: var(--text);
  cursor: pointer;
  font-size: var(--size-4);
  font-weight: 700;
}
.message-type-pill > input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.message-type-pill > span{
  padding: var(--size-2) var(--size-3);
}
.message-type-pill:has(input:focus-visible){
  box-shadow: var(--focus);
}
.message-type-pill:has(input:checked){
  background: color-mix(in oklch, var(--pill-color) 35%, var(--color-overlay-strong));
  color: color-mix(in oklch, var(--pill-color) 85%, var(--text) 15%);
}
.message-type-pill--yellow,
.message-type-pill--servermessage{
  --pill-color: var(--color-message-yellow);
}
.message-type-pill--white{ --pill-color: var(--color-message-white); }
.message-type-pill--cyan{ --pill-color: var(--color-message-cyan); }
.message-type-pill--green{ --pill-color: var(--color-status-dot-online); }
.message-type-pill--red,
.message-type-pill--error{ --pill-color: var(--color-status-dot-offline); }

.lmMessageTypeField .lmMessageTypeControlRow{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--size-2);
  width: 100%;
  margin-top: var(--size-2);
}
.lmMessageTypeCombobox{
  position: relative;
  /* Parent `label.field` is column flex; avoid flex-grow or the combo stretches with the chat column. */
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.lmAdminFormRow > .field .lmMessageTypeCombobox{
  width: 100%;
}
.lmMessageTypeSelectNative{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
  pointer-events: none;
}
.lmMessageTypeComboBtn{
  display: flex;
  align-items: center;
  gap: var(--size-2);
  width: 100%;
  max-width: 100%;
  text-align: left;
  cursor: pointer;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  padding: var(--size-2) var(--size-4);
  background: var(--color-surface-input);
  color: var(--text);
  font-size: var(--size-4);
  min-height: var(--size-btn-minh);
}
.lmMessageTypeComboBtn:hover{
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-pressed);
}
.lmMessageTypeComboBtn:focus{
  outline: none;
  box-shadow: var(--focus);
}
.lmMessageTypeComboBtn:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.lmMessageTypeComboBtn::after{
  content: "";
  flex-shrink: 0;
  margin-left: auto;
  width: 0.5em;
  height: 0.5em;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(45deg) translateY(-0.15em);
  opacity: 0.85;
}
.lmMessageTypeListbox{
  position: absolute;
  z-index: 60;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: var(--size-2);
  font-size: var(--size-4);
  list-style: none;
  max-height: min(18em, 40vh);
  overflow: auto;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--color-menu-bg, var(--bg));
  color: var(--text);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}
.lmMessageTypeListboxOption{
  display: flex;
  align-items: center;
  gap: var(--size-2);
  padding: var(--size-2) var(--size-3);
  border-radius: var(--size-2);
  cursor: pointer;
  font-size: var(--size-4);
  user-select: none;
}
.lmMessageTypeListboxOption:hover,
.lmMessageTypeListboxOption:focus{
  outline: none;
  background: var(--color-control-bg-hover);
}
.lmMessageTypeListboxOption:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.lmMessageTypeListboxOption[aria-selected="true"]{
  background: color-mix(in oklch, var(--color-control-border-active) 18%, transparent);
}
.lmMessageTypeInlineChip{
  box-sizing: border-box;
  display: inline-block;
  flex-shrink: 0;
  vertical-align: middle;
  width: 0.75em;
  height: 0.75em;
  border-radius: var(--size-1);
  box-shadow: inset 0 0 0 var(--border) color-mix(in oklch, var(--text) 22%, transparent);
}
.lmMessageTypeComboChip{
  margin-inline-end: 0;
}
.lmMessageTypeInlineChip--yellow,
.lmMessageTypeInlineChip--servermessage{
  background: var(--color-message-yellow);
}
.lmMessageTypeInlineChip--white{
  background: var(--color-message-white);
}
.lmMessageTypeInlineChip--cyan{
  background: var(--color-message-cyan);
}
.lmMessageTypeInlineChip--green{
  background: var(--color-status-dot-online);
}
.lmMessageTypeInlineChip--red,
.lmMessageTypeInlineChip--error{
  background: var(--color-status-dot-offline);
}

/* Match Command player select styling */
#commandPlayerSelect{
  appearance: none;
  min-height: var(--size-11);
  line-height: 1.2;
  border-color: var(--panelBorder);
}
#messagePlayerSelect{
  appearance: none;
  min-height: var(--size-11);
  line-height: 1.2;
  border-color: var(--panelBorder);
}
#messagePlayerSelect:hover{
  border-color: var(--color-control-border-active);
  background-color: var(--color-control-bg-pressed);
}
#messagePlayerSelect option{
  color: var(--text);
  background: var(--color-menu-bg);
}
#commandPlayerSelect:hover{
  border-color: var(--color-control-border-active);
  background-color: var(--color-control-bg-pressed);
}
#commandPlayerSelect option{
  color: var(--text);
  background: var(--color-menu-bg);
}
/* keep inputs slightly darker than panels for contrast */
input[type="search"]:focus{ outline:none; box-shadow: var(--focus); }
input[type="text"]:focus, select:focus{ outline:none; box-shadow: var(--focus); }

.toggle{
  display:flex;
  align-items:center;
  gap:var(--size-1);
  padding: var(--size-1) var(--size-3);
  border:var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  cursor:pointer;
  user-select:none;
}
.toggle input{ accent-color: var(--accent); }

.toggle--btn{
  font-size: 0.75em;
  padding: var(--size-2) var(--size-1);
  border-radius: var(--size-2);
  font-weight: 650;
}
.toggle--btn input{
  width: var(--size-4);
  height: var(--size-4);
}

.toggle--compact{
  padding: var(--size-2) var(--size-1);
  border-radius: var(--size-pill);
  white-space: nowrap;
}

.tabs{
  padding: var(--size-1) var(--size-3);
  margin: var(--size-1) 0;
  display:flex;
  flex-wrap:wrap;
  gap:var(--size-2);
}
.tabs__row{
  display:flex;
  gap:var(--size-2);
  align-items:center;
  flex-wrap:wrap;
  min-width: 0;
}
.tabs__spacer{ flex: 1 1 auto; }
nav.panel.tabs{
  max-width: 100%;
  min-width: 0;
}
@media (max-width: 1080px){
  nav.panel.tabs .tabs__row{
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--size-1);
    scrollbar-gutter: stable;
  }
}
.tab{
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  padding: var(--size-2) var(--size-1);
  cursor: pointer;
  background: var(--color-transparent);
  color: var(--text);
  font-size: var(--size-4);
  font-weight: 400;
  border-radius: var(--size-2);
  padding: var(--size-1) var(--size-3);
  letter-spacing: 1.5px;
}
.tab:hover{ background: var(--color-surface-hover); }
.tab:focus{ outline:none; box-shadow: var(--focus); }
.tab[disabled]{
  cursor:not-allowed;
  opacity:.65;
}
.tab--active{
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-active);
}

.tabPanel[hidden]{ display:none; }

.code{
  margin: var(--size-3) 0 0;
  padding: var(--size-3);
  border-radius: var(--size-4);
  border: var(--border) solid var(--panelBorder);
  background: var(--color-surface-input);
  font-family: var(--mono);
  font-size: 0.78125em;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
  min-height: var(--size-12);
  max-width: 100%;
  overflow-x: auto;
}
.code{ background: var(--color-code-bg); }

.log{ padding: 0; overflow:hidden; }
.log__meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap: wrap;
  gap: var(--size-2);
  padding: var(--size-3) var(--size-4);
  border-bottom: var(--border) solid var(--panelBorder);
}
.muted{ color: var(--muted); font-size: var(--size-4); }
.visually-hidden{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.log__list{
  height: min(64vh, var(--size-16));
  height: min(64dvh, var(--size-16));
  overflow:auto;
  padding: var(--size-2) var(--size-1) var(--size-3);
  scroll-behavior:smooth;
  background: var(--color-log-bg);
}

/* Detail panel logs should not consume full viewport height. */
.lmDetailLogs .log__list{
  height: auto;
  flex: 1;
  min-height: 0;
}

/* Let the logs panel fill the available detail panel height. */
#lmPanelLogs{
  height: 100%;
  min-height: 0;
}
#lmPanelLogsBody{
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.lmDetailLogs{
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.lmDetailLogs .log__meta{
  align-items: flex-start;
  gap: var(--size-2) var(--size-3);
  flex-shrink: 0;
}
.lmDetailLogsMetaTabs{
  font-size: var(--size-3);
  flex: 1;
  justify-content: flex-start;
  padding: 0;
}
.lmDetailLogsMetaSearch{
  margin: 0;
  min-width: min(18em, 45vw);
}
.line{
  --src-accent: var(--muted);
  font-family: var(--mono);
  font-size: 0.78125em;
  line-height: 1.55;
  padding: var(--size-2) var(--size-2);
  border-radius: var(--size-2);
  border:var(--border) solid var(--color-transparent);
  white-space: pre-wrap;
  word-break: break-word;
  color: color-mix(in oklch, var(--text) 25%, var(--src-accent) 75%);
  background: color-mix(in oklch, var(--color-transparent) 90%, var(--src-accent) 10%);
}
.line:hover{
  border-color: var(--color-row-hover-border);
  background: var(--color-border-subtle);
}
.line__ts{ color: var(--muted); margin-right: var(--size-2); }
.line__src{
  display:inline-block;
  min-width: 10ch;
  color: var(--src-accent);
  margin-right: var(--size-1);
}

/* source accents */
/* Mapped to Test-LogWatcher.ps1 (38-57) */
.src-SCUM{ --src-accent: var(--color-log-src-scum); border-left: var(--border) solid var(--color-log-src-scum-border); }                 /* Gray */
.src-LogSCUM{ --src-accent: var(--color-log-src-scum); border-left: var(--border) solid var(--color-log-src-scum-border); }              /* Gray — derived from SCUM.log */
.src-login{ --src-accent: var(--color-log-src-login); border-left: var(--border) solid var(--color-log-src-login-border); }                 /* Cyan */
.src-admin{ --src-accent: var(--color-log-src-admin); border-left: var(--border) solid var(--color-log-src-admin-border); }                  /* Yellow */
.src-economy{ --src-accent: var(--color-log-src-economy); border-left: var(--border) solid var(--color-log-src-economy-border); }               /* Green */
.src-kill{ --src-accent: var(--color-log-src-kill); border-left: var(--border) solid var(--color-log-src-kill-border); }                    /* Red */
.src-npc_kill{ --src-accent: var(--color-log-src-kill); border-left: var(--border) solid var(--color-log-src-kill-border); }               /* Red — NPC kills */
.src-event_kill{ --src-accent: var(--color-log-src-event-kill); border-left: var(--border) solid var(--color-log-src-event-kill-border); }              /* DarkRed */
.src-chat{ --src-accent: var(--color-log-src-chat); border-left: var(--border) solid var(--color-log-src-chat-border); }                   /* Magenta */
.src-famepoints{ --src-accent: var(--color-log-src-famepoints); border-left: var(--border) solid var(--color-log-src-famepoints-border); }             /* Blue */
.src-loot{ --src-accent: var(--color-log-src-loot); border-left: var(--border) solid var(--color-log-src-loot-border); }                     /* DarkYellow */
.src-gameplay{ --src-accent: var(--color-log-src-gameplay); border-left: var(--border) solid var(--color-log-src-gameplay-border); }               /* DarkCyan */
.src-armor_absorption{ --src-accent: var(--color-log-src-armor); border-left: var(--border) solid var(--color-log-src-armor-border); }       /* DarkGreen */
.src-base_building_destruction{ --src-accent: var(--color-log-src-base-destruction); border-left: var(--border) solid var(--color-log-src-base-destruction-border);} /* DarkMagenta */
.src-chest_ownership{ --src-accent: var(--color-log-src-chest); border-left: var(--border) solid var(--color-log-src-chest-border); }        /* DarkGray */
.src-quests{ --src-accent: var(--color-log-src-quests); border-left: var(--border) solid var(--color-log-src-quests-border); }                                  /* White */
.src-raid_protection{ --src-accent: var(--color-log-src-chat); border-left: var(--border) solid var(--color-log-src-chat-border); }         /* Magenta */
.src-sentry{ --src-accent: var(--color-log-src-login); border-left: var(--border) solid var(--color-log-src-login-border); }                  /* Cyan */
.src-server_notifications{ --src-accent: var(--color-log-src-admin); border-left: var(--border) solid var(--color-log-src-admin-border); }      /* Yellow */
.src-vehicle_destruction{ --src-accent: var(--color-log-src-base-destruction); border-left: var(--border) solid var(--color-log-src-base-destruction-border);}      /* DarkMagenta */
.src-violations{ --src-accent: var(--color-log-src-kill); border-left: var(--border) solid var(--color-log-src-kill-border); }                /* Red */


.tableWrap{
  margin-top: var(--size-3);
  overflow: auto;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--color-surface-input);
  margin-bottom: var(--size-4);
}
.data-table-count{
  margin-top: var(--size-3);
  padding: var(--size-2) var(--size-3);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-1);
  background: var(--color-surface-panel-muted);
  color: var(--text);
  font-size: var(--size-4);
  font-weight: 650;
}
.dataTable{
  width: 100%;
  border-collapse: collapse;
  min-width: min(100%, 42em);
}
.dataTable th,
.dataTable td{
  text-align: left;
  vertical-align: middle;
  padding: var(--size-2) var(--size-3);
  border-bottom: var(--border) solid var(--panelBorder);
}
.dataTable th{
  color: var(--muted);
  font-weight: 700;
  position: sticky;
  top: 0;
  background: var(--color-table-header-bg);
}

.dataTable tbody{
  font-size: var(--size-3);
}
.dataTable tbody tr:hover td{
  background: var(--color-surface-hover);
}
#lmPlayersWrap .dataTable tbody tr,
#lmVehiclesWrap .dataTable tbody tr,
#lmFlagsWrap .dataTable tbody tr,
#lmKillsWrap .dataTable tbody tr{
  cursor: pointer;
}
#lmPlayersWrap .dataTable tbody tr:focus-visible,
#lmVehiclesWrap .dataTable tbody tr:focus-visible,
#lmFlagsWrap .dataTable tbody tr:focus-visible,
#lmKillsWrap .dataTable tbody tr:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
#lmPlayersWrap .dataTable tbody td:first-child,
#lmFlagsWrap .dataTable tbody td:nth-child(2){
  font-size: var(--size-5);
}
#lmFlagsWrap .dataTable tbody td.lmFlagSquadCell{
  max-width: 12em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#lmFlagsWrap .dataTable tbody td.lmFlagOnlineCell{
  text-align: center;
  vertical-align: middle;
  font-variant-numeric: tabular-nums;
}
#lmFlagsWrap .dataTable tbody td.lmFlagElementsCell{
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
#lmFlagsWrap .dataTable tbody td.lmFlagLocationCell{
  font-variant-numeric: tabular-nums;
}
.lmFlagLocationCell__inner{
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  max-width: 100%;
}
.lmFlagLocationCell__text{
  white-space: nowrap;
}
.lmFlagLocationCell .lmKvActions{
  flex-shrink: 0;
}
.lmFlagsFilterToolbar{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: var(--size-3);
  row-gap: var(--size-1);
  min-width: 0;
  margin: var(--size-2) -1em;
  padding: var(--size-2) 1.5em;
  border-top: calc(var(--border) / 2) solid var(--panelBorder);
  border-bottom: calc(var(--border) / 2) solid var(--panelBorder);
  background: var(--color-surface-input);
}
.lmFlagsFilterToolbar > .lmFilterPanel{
  display: contents;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.lmFlagsFilterToolbar > .lmFilterPanel[hidden]{
  display: none !important;
}
.lmFlagsFilterToolbar .lmFilterSearchWrap{
  grid-column: 1 / -1;
  grid-row: 1;
}
.lmFlagsFilterToolbar .lmFilterChips{
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
}
.lmFlagsFilterToolbar:has(> .lmFilterPanel[hidden]){
  grid-template-rows: auto;
}
.lmFlagsFilterToolbar:has(> .lmFilterPanel[hidden]) .lmTablePager--top{
  grid-column: 1 / -1;
  grid-row: 1;
}
.lmTablePager{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-3);
  flex-wrap: wrap;
  padding: var(--size-2) var(--size-3);
  border-top: var(--border) solid var(--panelBorder);
  background: var(--color-surface-panel-muted);
}
.lmTablePager[hidden]{
  display: none;
}
.lmTablePager--top{
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
  align-self: center;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  gap: var(--size-2);
  justify-content: flex-end;
  min-height: var(--size-btn-minh);
  font-size: var(--size-3);
}
.lmTablePager--top .lmTablePager__meta{
  white-space: nowrap;
  font-size: var(--size-4);
  color: var(--text);
}
.lmTablePager--bottom{
  justify-content: center;
}
.lmTablePager--bottom .lmTablePager__nav{
  justify-content: center;
  gap: var(--size-3);
}
.lmTablePager--bottom .lmTablePager__page{
  min-width: 7.5em;
  text-align: center;
}
.lmTablePager__meta,
.lmTablePager__page{
  margin: 0;
  font-size: var(--size-3);
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.lmTablePager__controls,
.lmTablePager__nav{
  display: inline-flex;
  align-items: center;
  gap: var(--size-2);
  flex-wrap: nowrap;
}
.lmTablePager__size{
  display: inline-flex;
  align-items: center;
  gap: var(--size-1);
  font-size: var(--size-4);
  color: var(--muted);
  flex-shrink: 0;
}
.lmTablePager__sizeLabel{
  font-weight: 600;
}
.lmTablePager__size select{
  box-sizing: border-box;
  width: auto;
  min-width: 4.5em;
  max-width: none;
  min-height: var(--size-btn-minh);
  padding: 0.2em var(--size-6) 0.2em 0.55em;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-1);
  background-color: var(--color-surface-input);
  color: var(--text);
  font: inherit;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.2;
}
.lmTablePager__size select:focus-visible{
  outline: var(--border) solid var(--accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmTablePager__btn{
  min-height: 2.25em;
  padding: 0.25em 0.75em;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-1);
  background: oklch(0.36 0.09 152 / 0.35);
  color: var(--text);
  font: inherit;
  font-size: var(--size-3);
  font-weight: 650;
  cursor: pointer;
}
.lmTablePager__btn:hover:not(:disabled){
  filter: brightness(1.08);
}
.lmTablePager__btn:focus-visible{
  outline: var(--border) solid var(--accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmTablePager__btn:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}
.lmFlagOnlineCellInner{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15em;
  line-height: 1.2;
}
.lmFlagOnlineCount{
  font-weight: 550;
}
.lmFlagOfflineHint{
  font-size: 0.72em;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: lowercase;
  color: var(--muted, oklch(0.62 0.02 250));
}
.lmFlagOfflineDate{
  font-size: 0.78em;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--text);
  white-space: nowrap;
}
.thSort{
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: var(--color-transparent);
  color: inherit;
  font: inherit;
  font-weight: inherit;
  cursor: pointer;
}
.thSort:hover{ color: var(--text); }
.thSort:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
}

.vehicle-map{
  margin-top: var(--size-3);
  min-height: 13.75em;
  border: var(--border) dashed var(--panelBorder);
  border-radius: var(--size-2);
  background:
    linear-gradient(0deg, var(--color-map-grid-line) var(--border), var(--color-transparent) var(--border)),
    linear-gradient(90deg, var(--color-map-grid-line) var(--border), var(--color-transparent) var(--border));
  background-size: 10% 10%;
  position: relative;
}
.vehicle-map__placeholder{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}
.player-marker,
.vehicle-marker,
.flag-marker,
.kill-marker{
  cursor: pointer;
  transform: scale(var(--lm-marker-scale, 1));
  transform-box: fill-box;
  transform-origin: center;
}
.marker-icon{
  filter: drop-shadow(var(--shadow-marker));
  fill: var(--color-vehicle);
  stroke: var(--color-white);
  stroke-width: 0.5;
  transition: transform 0.2s ease-in-out, fill 0.2s ease-in-out, stroke-width 0.2s ease-in-out;
}
.player-marker .marker-icon{
  fill: var(--color-player);
}
.flag-marker .marker-icon{
  fill: var(--color-flag);
}
.marker-label{
  text-anchor: middle;
  dominant-baseline: auto;
  white-space: nowrap;
  text-shadow: var(--shadow-text);
  pointer-events: none;
  fill: var(--color-white);
  font-size: var(--size-2);
  letter-spacing: 0.05em;
}
#player-PVE-toggle:not(:checked) ~ * .pve{
  display: none !important;
}
.player-marker.highlighted,
.vehicle-marker.highlighted,
.flag-marker.highlighted,
.kill-marker.highlighted{
  isolation: isolate;
}
.player-marker.highlighted .marker-icon,
.vehicle-marker.highlighted,
.flag-marker.highlighted .marker-icon,
.kill-marker.highlighted .marker-icon{
  fill: var(--color-selected);
  transform-box: fill-box;
  transform-origin: center;
  stroke-width: 1;
}
.player-marker--rendered .marker-icon,
.vehicle-marker--rendered .marker-icon{
  stroke: var(--color-marker-rendered-stroke);
  stroke-width: 1;
}
.onlineDot{
  display: inline-block;
  width: 0.65em;
  height: 0.65em;
  border-radius: var(--size-pill);
  margin-right: var(--size-2);
  background: var(--color-online-dot-off);
}
.onlineDot--on{
  background: var(--color-status-dot-online);
}

.liveMapLayout{
  --lm-gap: var(--size-4);
  container-type: inline-size;
  container-name: lm-layout;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: 1fr;
  gap: var(--lm-gap);
  align-items: stretch;
  min-height: calc(100dvh - var(--lm-pad-top) - var(--lm-pad-bottom));
  height: calc(100dvh - var(--lm-pad-top) - var(--lm-pad-bottom));
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}
.wrap--livemap{
  --color-kill-killer: oklch(0.66 0.18 35);
  --color-kill-victim: oklch(0.62 0.14 280);
  --color-kill-suicide: oklch(0.7 0.12 200);
  --color-kill-event: oklch(0.65 0.12 152);
  max-width: none;
  width: 100%;
  max-inline-size: 100%;
  margin: 0;
  min-width: 0;
  min-height: 100dvh;
  box-sizing: border-box;
  padding: var(--size-4);
  /* Used by fixed Live Map panels (#lmDetailOut) so `right` / width calcs are valid. */
  --lm-pad-top: var(--size-4);
  --lm-pad-right: var(--size-4);
  --lm-pad-bottom: var(--size-4);
  --lm-pad-left: var(--size-4);
}
.wrap--landing{
  max-width: min(42em, 100%);
  width: 100%;
  margin: 0 auto;
  padding: var(--size-4);
}
.landingPanel{
  margin-top: var(--size-4);
}
.landingPanel h1{
  margin-top: 0;
  font-size: var(--size-6);
}
.landingLead{
  margin: 0 0 var(--size-4);
  color: var(--text-muted, var(--color-sector-text));
  line-height: 1.5;
}
.liveMapPane{
  --color-loot-zone-base: rgb(56 189 248 / 0.65);
  --color-loot-zone-boost: rgb(250 204 21 / 0.75);
  --color-loot-zone-high: rgb(248 113 113 / 0.85);
  --color-encounter-htz: oklch(0.64 0.23 26);
  --color-encounter-mtz: oklch(0.72 0.19 55);
  --color-encounter-ltz: oklch(0.87 0.17 95);
  --color-encounter-lpc: oklch(0.72 0.18 150);
  --color-encounter-fill-htz: oklch(0.64 0.23 26 / 0.34);
  --color-encounter-fill-mtz: oklch(0.72 0.19 55 / 0.34);
  --color-encounter-fill-ltz: oklch(0.87 0.17 95 / 0.3);
  --color-encounter-fill-htz-hover: oklch(0.64 0.23 26 / 0.44);
  --color-encounter-fill-mtz-hover: oklch(0.72 0.19 55 / 0.44);
  --color-encounter-fill-ltz-hover: oklch(0.87 0.17 95 / 0.4);
  --color-encounter-fill-htz-selected: oklch(0.64 0.23 26 / 0.48);
  --color-encounter-fill-mtz-selected: oklch(0.72 0.19 55 / 0.48);
  --color-encounter-fill-ltz-selected: oklch(0.87 0.17 95 / 0.42);
  --color-encounter-fill-kind-lpc-htz: oklch(0.64 0.23 26 / 0.18);
  --color-encounter-fill-kind-lpc-mtz: oklch(0.72 0.19 55 / 0.18);
  --color-encounter-fill-kind-lpc-ltz: oklch(0.87 0.17 95 / 0.16);
  --color-npc-guard: oklch(0.72 0.23 40);
  --color-npc-drifter: oklch(0.72 0.19 55);
  --color-npc-zombie: oklch(0.72 0.18 150);
  --color-npc-animal: oklch(0.79 0.16 70);
  --color-npc-sentry: oklch(0.79 0.13 215);
  --color-npc-drone: oklch(0.62 0.14 280);
  --color-npc-unknown: oklch(0.7 0.02 260);
  --color-draw-stroke: #a30000;
  --color-draw-fill: color-mix(in srgb, #a30000 22%, transparent);
  --color-draw-measure: oklch(0.79 0.13 215);
  --color-draw-measure-fill: oklch(0.79 0.13 215 / 0.16);
  position: relative;
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  padding: 0;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--color-map-surface);
  /* Desktop: largest 1:1 square in the grid cell (uses height when the column is taller than wide). */
  place-self: center;
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  aspect-ratio: 1 / 1;
}
.liveMapSvg{
  --lm-marker-scale: 1;
  --lm-draw-zoom-scale: 1;
  width: 100%;
  height: 100%;
  display: block;
  background: var(--color-map-surface);
}
.liveMapImage{
  pointer-events: none;
  translate: 0px 2px;
}
.liveMapMarkers{
  z-index: 1;
}
.liveMapMarkers .player-marker,
.liveMapMarkers .vehicle-marker,
.liveMapMarkers .flag-marker,
.liveMapMarkers .kill-marker{
  pointer-events: auto;
}
.liveMapMarkers .player-marker:focus,
.liveMapMarkers .vehicle-marker:focus,
.liveMapMarkers .flag-marker:focus,
.liveMapMarkers .kill-marker:focus{
  outline: none;
}
.liveMapMarkers .player-marker:focus-visible .marker-icon,
.liveMapMarkers .vehicle-marker:focus-visible .marker-icon,
.liveMapMarkers .flag-marker:focus-visible .marker-icon,
.liveMapMarkers .kill-marker:focus-visible .marker-icon{
  stroke: var(--color-focus-accent);

}
.liveMapSvg--drawing{
  cursor: crosshair;
  touch-action: none;
  pointer-events: all;
}
.liveMapSvg--drawing .liveMapSectors,
.liveMapSvg--drawing .liveMapZoneConfig,
.liveMapSvg--drawing .liveMapLootZones,
.liveMapSvg--drawing .liveMapEncounterZones,
.liveMapSvg--drawing .liveMapNpcTracker,
.liveMapSvg--drawing .liveMapMarkers{
  pointer-events: none;
}
#lmVehicleMiniMap.lmVehicleMiniMap--drawing{
  cursor: crosshair;
  touch-action: none;
}
#lmVehicleMiniMap.lmVehicleMiniMap--drawing .lmVehicleMiniMapSvg{
  cursor: crosshair;
  pointer-events: all;
}
#lmVehicleMiniMap .lmVehicleMiniMapHit{
  fill: transparent;
  pointer-events: all;
}
/* Let drawing reach the map under toast frames; keep mini-map and actions clickable. */
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible,
body:has(.liveMapSvg--drawing) #lmDetailOut.is-visible{
  pointer-events: none;
}
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible #lmVehicleMiniMap,
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible .lmDetailToastClose,
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible .lmVehicleDetailAction,
body:has(.liveMapSvg--drawing) #lmDetailOut.is-visible .lmDetailToastClose,
body:has(.liveMapSvg--drawing) #lmDetailOut.is-visible button,
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible button,
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible a,
body:has(.liveMapSvg--drawing) #lmDetailOut.is-visible a,
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible input,
body:has(.liveMapSvg--drawing) #lmDetailOut.is-visible input,
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible textarea,
body:has(.liveMapSvg--drawing) #lmDetailOut.is-visible textarea,
body:has(.liveMapSvg--drawing) #lmVehicleDetailOut.is-visible select,
body:has(.liveMapSvg--drawing) #lmDetailOut.is-visible select{
  pointer-events: auto;
}
.liveMapDraw{
  pointer-events: none;
  filter: drop-shadow(var(--shadow-marker));
}
/* Nested mini-map SVG: a filter on the draw group hides marker-end arrowheads in Chromium. */
#lmVehicleMiniMap .lmVehicleMiniMapDraw.liveMapDraw{
  filter: none;
}
.lmDrawItem__stroke,
.lmDrawItem__fill{
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-width: calc(var(--lm-draw-stroke-width, 4) * var(--lm-draw-zoom-scale, 1));
}
.lmDrawItem__fill{
  fill: var(--color-draw-fill);
  stroke: var(--color-draw-stroke);
}
.lmDrawItem__stroke{
  fill: none;
  stroke: var(--color-draw-stroke);
}
.lmDrawItem--arrow .lmDrawItem__shaft{
  stroke-width: calc(var(--lm-draw-stroke-width, 4) * 2.5 * var(--lm-draw-zoom-scale, 1));
}
.lmDrawItem--arrow .lmDrawItem__stroke{
  stroke-linecap: butt;
  stroke-linejoin: miter;
}
.lmDrawArrow path,
.lmDrawArrowHead{
  stroke: none;
  stroke-linejoin: miter;
}
.lmDrawItem--measure .lmDrawItem__stroke{
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-dasharray: calc(var(--lm-draw-stroke-width, 4) * 3 * var(--lm-draw-zoom-scale, 1)) calc(var(--lm-draw-stroke-width, 4) * 2 * var(--lm-draw-zoom-scale, 1));
}
.lmDrawDraft .lmDrawItem__stroke,
.lmDrawDraft .lmDrawItem__fill{
  stroke-dasharray: calc(5 * var(--lm-draw-zoom-scale, 1)) calc(4 * var(--lm-draw-zoom-scale, 1));
  opacity: 0.92;
}
.lmDrawLabel{
  font-size: calc(var(--size-2) * var(--lm-draw-zoom-scale, 1));
}
.lmDrawLabel.marker-label{
  transform: translateY(-0.9em);
}
.lmDrawItem__text{
  font-size: calc(var(--size-2) * var(--lm-draw-stroke-width, 4) / 4);
  transform: scale(var(--lm-marker-scale, 1));
  transform-box: fill-box;
  transform-origin: center;
}
.lmDrawTools{
  position: absolute;
  inset-inline-start: var(--size-3);
  inset-block-start: var(--size-3);
  z-index: 6;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--size-2);
  max-width: min(12em, calc(100% - var(--size-6)));
  pointer-events: none;
}
.lmDrawTools[hidden]{
  display: none;
}
.liveMapPane--chromeHidden .lmDrawTools__bar,
.liveMapPane--chromeHidden .lmDrawTools__hint,
.liveMapPane--chromeHidden .lmMapDock__toolbar,
.liveMapPane--chromeHidden .lmMapDock__toolbar.liveMapControls,
.liveMapPane--chromeHidden .lmMapDock__toolbarLeft,
.liveMapPane--chromeHidden .lmMapDock__toolbarRight,
.liveMapPane--chromeHidden .liveMapMarkers,
.liveMapPane--chromeHidden .liveMapNpcTracker{
  display: none;
}
.lmDrawTools__bar,
.lmDrawTools__hint{
  pointer-events: auto;
}
.lmDrawTools__bar{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: var(--size-1);
  border-radius: var(--radius);
  border: var(--border) solid var(--panelBorder);
  background: var(--panel);
  box-shadow: var(--shadow);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
}
.lmDrawTools--expanded .lmDrawTools__bar{
  min-width: min(16em, 100%);
}
.lmDrawTools__body{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  padding: var(--size-1);
  font-size: 0.9em;
}
.lmDrawTools__body[hidden]{
  display: none;
}
.lmDrawTools__primary{
  display: grid;
  grid-template-columns: auto minmax(3em, 1fr) minmax(4em, auto);
  grid-template-columns: minmax(3em, 1fr) 1fr minmax(4em, auto);
  align-items: stretch;
  gap: var(--size-1);
}
.lmDrawTools__cycle{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15em;
  width: auto;
  min-width: 3em;
  min-height: 3em;
  padding: var(--size-1) var(--size-2);
  font-size: var(--size-3);
  font-weight: 600;
  color: oklch(0.96 0.01 270 / 0.9);
}
.lmDrawTools__cycleLabel{
  line-height: 1.1;
  white-space: nowrap;
}
.lmDrawTools__cycle.is-active{
  color: var(--color-selected);
}
.lmDrawTools__cycleIcons{
  display: inline-grid;
  place-items: center;
}
.lmDrawTools__cycleIcons [data-lm-draw-cycle][hidden]{
  display: none;
}
.lmDrawTools__color{
  display: flex;
  flex-direction: column;
  justify-content: stretch;
  min-width: 0;
  padding: 0;
}
.lmDrawTools__colorInput{
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 3em;
  margin: 0;
  padding: 0.22em;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: var(--color-surface-input, oklch(0 0 0 / 0.22));
  cursor: pointer;
}
.lmDrawTools__colorInput::-webkit-color-swatch-wrapper{
  padding: 0;
}
.lmDrawTools__colorInput::-webkit-color-swatch{
  border: 0;
  border-radius: calc(var(--radius) - 0.12em);
}
.lmDrawTools__colorInput::-moz-color-swatch{
  border: 0;
  border-radius: calc(var(--radius) - 0.12em);
}
.lmDrawTools__colorInput:focus{
  outline: none;
}
.lmDrawTools__colorInput:focus-visible{
  outline: 2px solid var(--color-focus-accent);
  outline-offset: 2px;
}
.lmDrawTools__weight{
  display: flex;
  flex-direction: column;
  justify-content: stretch;
  min-width: 0;
  padding: 0;
}
.lmDrawTools__weightInput{
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: auto;
  margin: 0;
  font-size: 0.85em;
  font-weight: 600;
}
.lmDrawTools__weightInput:focus{
  outline: none;
}
.lmDrawTools__weightInput:focus-visible{
  outline: 2px solid var(--color-focus-accent);
  outline-offset: 2px;
}
.lmDrawTools__text{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  padding: var(--size-2) var(--size-1) var(--size-1);
  border-block-start: var(--border) solid var(--panelBorder);
}
.lmDrawTools__text[hidden]{
  display: none;
}
.lmDrawTools__textLabel{
  font-size: var(--size-3);
  font-weight: 600;
  color: oklch(0.96 0.01 270 / 0.9);
}
.lmDrawTools__textInput{
  box-sizing: border-box;
  width: 100%;
  min-height: 2.75em;
  margin: 0;
  padding: var(--size-2);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: var(--color-surface-input, oklch(0 0 0 / 0.22));
  color: oklch(0.96 0.01 270 / 0.92);
  font: inherit;
  font-size: var(--size-3);
}
.lmDrawTools__textInput:focus{
  outline: none;
  box-shadow: var(--focus);
  border-color: var(--color-control-border-active);
}
.lmDrawTools__textInput:focus-visible{
  outline: 2px solid var(--color-focus-accent);
  outline-offset: 2px;
}
.lmDrawTools__btn{
  box-sizing: border-box;
  display: inline-grid;
  place-items: center;
  min-width: 4em;
  min-height: 4em;
  padding: var(--size-1);
  border: 0;
  border-radius: var(--radius);
  background: transparent;
  color: inherit;
  cursor: pointer;
  line-height: 1;
}
.lmDrawTools__btn span{
  display: inline-flex;
  color: inherit;
  filter: grayscale(1) brightness(1.25);
  transition: color 120ms ease, filter 120ms ease;
}
.lmDrawTools__btn span svg{
  display: block;
  fill: currentColor;
}
.lmDrawTools__btn.lmDrawTools__cycle{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15em;
  width: auto;
  min-width: 4em;
  min-height: 4em;
  padding: var(--size-1) var(--size-2);
}
.lmDrawTools__btn:hover span,
.lmDrawTools__btn.is-active span{
  filter: none;
  color: var(--color-selected);
}
.lmDrawTools__btn:focus{
  outline: none;
}
.lmDrawTools__btn:focus-visible{
  outline: 2px solid var(--color-focus-accent);
  outline-offset: 2px;
}
.lmDrawTools__btn:disabled{
  cursor: not-allowed;
  opacity: 0.4;
}
.lmDrawTools__btn--clear,
.lmDrawTools__btn--action,
.lmDrawTools__btn--undo,
.lmDrawTools__btn--hide{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15em;
  width: 100%;
  min-height: 3.5em;
  padding: var(--size-1) var(--size-2);
  font-size: var(--size-3);
  font-weight: 600;
  color: oklch(0.96 0.01 270 / 0.9);
}
.lmDrawTools__btn--action{
  flex-direction: row;
  gap: var(--size-2);
  min-height: 3em;
  border-block-start: var(--border) solid var(--panelBorder);
  border-radius: 0;
}
.lmDrawTools__btn--action[hidden]{
  display: none;
}
.lmDrawTools__actions{
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-block-start: var(--border) solid var(--panelBorder);
}
.lmDrawTools__btn--undo{
  border-inline-end: var(--border) solid var(--panelBorder);
  border-radius: 0;
}
.lmDrawTools__btn--clear{
  border-radius: 0;
}
.lmDrawTools__btn--hide{
  border-block-start: var(--border) solid var(--panelBorder);
  border-radius: 0;
}
.lmDrawTools__btn--undo:hover:not(:disabled),
.lmDrawTools__btn--clear:hover:not(:disabled),
.lmDrawTools__btn--action:hover,
.lmDrawTools__btn--action.is-active,
.lmDrawTools__btn--hide:hover{
  color: var(--color-selected);
}
.lmDrawTools__paste{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  padding: var(--size-2);
  border-block-start: var(--border) solid var(--panelBorder);
}
.lmDrawTools__paste[hidden]{
  display: none;
}
.lmDrawTools__pasteLabel{
  font-size: var(--size-3);
  font-weight: 600;
  color: oklch(0.96 0.01 270 / 0.9);
}
.lmDrawTools__pasteInput{
  box-sizing: border-box;
  width: 100%;
  min-height: 7.5em;
  margin: 0;
  padding: var(--size-2);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: var(--color-surface-input, oklch(0 0 0 / 0.22));
  color: oklch(0.96 0.01 270 / 0.92);
  font-family: var(--mono);
  font-size: var(--size-3);
  line-height: 1.4;
  resize: vertical;
}
.lmDrawTools__pasteInput:focus{
  outline: none;
  box-shadow: var(--focus);
  border-color: var(--color-control-border-active);
}
.lmDrawTools__pasteHelp{
  margin: 0;
  font-size: var(--size-3);
  line-height: 1.35;
  color: oklch(0.96 0.01 270 / 0.72);
}
.lmDrawTools__btn--apply{
  width: 100%;
  min-height: 3em;
  font-size: var(--size-3);
  font-weight: 600;
  color: var(--color-selected);
  background: color-mix(in oklch, var(--color-selected) 18%, transparent);
}
.lmDrawTools__btn--apply:hover,
.lmDrawTools__btn--apply:focus-visible{
  filter: none;
  color: var(--color-selected);
}
.lmDrawTools__hint{
  margin: 0;
  padding: var(--size-2) var(--size-3);
  border-radius: var(--radius);
  border: var(--border) solid var(--panelBorder);
  background: var(--panel);
  box-shadow: var(--shadow);
  color: oklch(0.96 0.01 270 / 0.9);
  font-size: var(--size-3);
  line-height: 1.35;
  max-width: 22em;
}
@media (prefers-reduced-motion: reduce){
  .lmDrawTools__btn span{
    transition: none;
  }
}
.lmMapDock{
  --lm-dock-duration: 320ms;
  --lm-dock-ease: cubic-bezier(0.22, 1, 0.36, 1);
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  z-index: 2;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-size: clamp(0.75em, 1vw, 1em);
  pointer-events: none;
}
.lmMapDock__surface{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: fit-content;
  max-width: 100%;
  margin-inline-start: auto;
  border-radius: var(--radius) 0 0 0;
  border-top: var(--border) solid var(--panelBorder);
  background: var(--panel);
  box-shadow: var(--shadow);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  overflow: hidden;
  pointer-events: auto;
  transition:
    box-shadow var(--lm-dock-duration) var(--lm-dock-ease),
    width var(--lm-dock-duration) var(--lm-dock-ease);
}
.lmMapDock.lmMapDock--toolbarExpanded .lmMapDock__surface,
.lmMapDock:has(.lmServerDetailsToggle.is-active) .lmMapDock__surface{
  align-items: stretch;
  width: 100%;
  margin-inline-start: 0;
  border-radius: 0;

}
.lmMapDock__surface::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: var(--glassSheen);
  opacity: 0.65;
  mix-blend-mode: screen;
}
.lmMapDock.is-expanded .lmMapDock__surface{
  box-shadow:
    var(--shadow),
    0 -0.35em 1.75em oklch(0 0 0 / 0.28);
}
.lmMapDock__panel.panel{
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: auto;
  max-width: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-sizing: border-box;
  transition: padding var(--lm-dock-duration) var(--lm-dock-ease);
}
.lmMapDock.lmMapDock--toolbarExpanded .lmMapDock__panel.panel,
.lmMapDock:has(.lmServerDetailsToggle.is-active) .lmMapDock__panel.panel{
  align-items: stretch;
  width: 100%;
  border-radius: 0;
}
.lmMapDock__panel.panel::before{
  display: none;
}

.lmMapDock__stack{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: auto;
  max-width: 100%;
}
.lmMapDock.lmMapDock--toolbarExpanded .lmMapDock__stack,
.lmMapDock:has(.lmServerDetailsToggle.is-active) .lmMapDock__stack{
  align-items: stretch;
  width: 100%;
  border-radius: 0;
}
.lmMapDock__detailsWrap{
  display: grid;
  grid-template-rows: 0fr;
  width: 0;
  min-width: 0;
  max-width: 0;
  opacity: 0;
  transform: translateY(0.4em) scale(0.985);
  transform-origin: bottom center;
  overflow: hidden;
  pointer-events: none;
  visibility: hidden;
  transition:
    grid-template-rows var(--lm-dock-duration) var(--lm-dock-ease),
    opacity calc(var(--lm-dock-duration) * 0.9) var(--lm-dock-ease),
    transform var(--lm-dock-duration) var(--lm-dock-ease),
    visibility 0s linear var(--lm-dock-duration),
    width var(--lm-dock-duration) var(--lm-dock-ease),
    max-width var(--lm-dock-duration) var(--lm-dock-ease);
}
.lmMapDock.is-expanded .lmMapDock__detailsWrap,
.lmMapDock.is-closing .lmMapDock__detailsWrap{
  width: 100%;
  max-width: 100%;
}
.lmMapDock.is-expanded .lmMapDock__detailsWrap,
.lmMapDock.is-closing .lmMapDock__detailsWrap{
  transition:
    grid-template-rows var(--lm-dock-duration) var(--lm-dock-ease),
    opacity calc(var(--lm-dock-duration) * 0.9) var(--lm-dock-ease),
    transform var(--lm-dock-duration) var(--lm-dock-ease),
    visibility 0s linear 0s;
}
.lmMapDock.is-expanded .lmMapDock__detailsWrap{
  grid-template-rows: 1fr;
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
  visibility: visible;
}
.lmMapDock__detailsWrap > .lmServerDetails{
  min-height: 0;
  overflow: hidden;
}
.lmMapDock.is-expanded:not(.is-closing) .lmMapDock__detailsWrap:not(:has(.lmLootSpawner)) > .lmServerDetails{
  overflow: visible;
}
.lmMapDock.has-detail-view .lmMapDock__detailsWrap,
.lmMapDock.is-closing.has-detail-view .lmMapDock__detailsWrap{
  transition:
    grid-template-rows var(--lm-dock-duration) var(--lm-dock-ease),
    opacity calc(var(--lm-dock-duration) * 0.9) var(--lm-dock-ease),
    transform var(--lm-dock-duration) var(--lm-dock-ease),
    visibility 0s linear 0s;
}
.lmMapDock.has-detail-view .lmMapDock__detailsWrap{
  grid-template-rows: minmax(0, 1fr);
  width: 100%;
  max-width: 100%;
  min-height: 0;
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
  visibility: visible;
}
.lmMapDock.is-expanded.has-detail-view .lmServerDetails{
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.lmMapDock.is-expanded.has-detail-view:not(:has(.lmLootSpawner)) .lmServerDetails{
  display: block;
  min-height: auto;
  max-height: none;
}
.lmMapDock.is-expanded.has-detail-view:has(.lmLootSpawner) .lmServerDetails{
  max-height: 100%;
}
.lmMapDock.is-expanded.has-detail-view:not(:has(.lmLootSpawner)) .lmServerDetails__inner{
  display: block;
  max-height: none;
  overflow: visible;
  flex: none;
  min-height: auto;
}
.lmMapDock.is-expanded.has-detail-view:has(.lmLootSpawner) .lmServerDetails__inner{
  max-height: none;
  overflow: hidden;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.lmServerDetails__inner{
  min-height: 0;
  overflow: hidden;
}

@media (max-width: 48em){
  .lmMapDock.is-expanded .lmServerDetails{
    display: flex;
    flex-direction: column;
    max-height: none;
  }
  .lmMapDock.is-expanded .lmServerDetails__inner{
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }
  .lmMapDock.is-expanded .lmServerDetails:not(.lmServerDetails--fileView) .lmServerDetails__body{
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: visible;
  }
}
.lmMapDock__toolbar.liveMapControls{
  position: static;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--size-2);
  width: fit-content;
  max-width: 100%;
  padding: var(--size-1) var(--size-2);
  border: 0;
  border-radius: 0;
  background: transparent;
  flex: 0 0 auto;
  align-self: flex-end;
  margin-inline-start: auto;
  box-sizing: border-box;
}
.liveMapPane--chromeHidden .lmMapDock__toolbar.liveMapControls,
.lmMapDock__toolbar.liveMapControls[hidden]{
  display: none;
}
.lmMapDock.lmMapDock--toolbarExpanded .lmMapDock__toolbar.liveMapControls,
.lmMapDock:has(.lmServerDetailsToggle.is-active) .lmMapDock__toolbar.liveMapControls{
  width: 100%;
  align-self: stretch;
  margin-inline-start: 0;
  justify-content: flex-start;
  border-radius: 0;
}
.lmMapDock__toolbarLeft{
  display: none;
  flex: 0 0 auto;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--size-2);
  margin-inline-end: auto;
}
.lmFtpProfileToggle{
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  font-size: var(--size-3);
  line-height: 1;
  gap: 0.5em;
}
.lmFtpProfileToggle__btn{
  border: 0;
  margin: 0;
  padding: var(--size-2) var(--size-3);
  background: oklch(0 0 0 / 0.22);
  color: inherit;
  font: inherit;
  cursor: pointer;
  white-space: nowrap;
}
.lmFtpProfileToggle__btn + .lmFtpProfileToggle__btn{
  border-inline-start: var(--border) solid oklch(1 0 0 / 0.12);
}
.lmFtpProfileToggle__btn.is-active{
  background: oklch(1 0 0 / 0.3);
  color: oklch(0 0 0 / 0.6);
  font-weight: bold;
  cursor: default;
}
.lmFtpProfileToggle__btn:focus-visible{
  outline: 2px solid var(--color-selected);
  outline-offset: -2px;
}
.lmMapDock.lmMapDock--toolbarExpanded .lmMapDock__toolbarLeft,
.lmMapDock:has(.lmServerDetailsToggle.is-active) .lmMapDock__toolbarLeft{
  display: flex;
}
.lmMapDock__toolbarRight{
  display: flex;
  flex: 0 0 auto;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--size-2);
  margin-inline-start: auto;
}
.lmMapDock:not(.lmMapDock--toolbarExpanded):not(:has(.lmServerDetailsToggle.is-active)) .lmMapDock__toolbarRight{
  margin-inline-start: 0;
}

.lmMapDock.is-expanded:not(.is-closing){
  --lm-dock-details-max-height: min(
    34dvh,
    calc(100dvh - var(--lm-pad-top) - var(--lm-pad-bottom) - 20em)
  );
}
@media (min-width: 1080px){
  .lmMapDock.is-expanded:not(.is-closing){
    --lm-dock-details-max-height: min(
      88dvh,
      calc(100dvh - var(--lm-pad-top) - var(--lm-pad-bottom) - 6em)
    );
  }
}
.lmMapDock.is-expanded:not(.is-closing) .lmMapDock__detailsWrap:not(:has(.lmLootSpawner)){
  display: block;
  padding: var(--size-2) var(--size-3) var(--size-1);
  box-sizing: border-box;
  min-height: 0;
  max-height: var(--lm-dock-details-max-height);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.lmMapDock.is-expanded:not(.is-closing) .lmMapDock__detailsWrap:not(:has(.lmLootSpawner)) > .lmServerDetails{
  display: block;
  min-height: auto;
  max-height: none;
  height: auto;
  overflow: visible;
}
.lmMapDock.is-expanded.has-detail-view:not(.is-closing) .lmMapDock__detailsWrap:has(.lmLootSpawner){
  padding: var(--size-2) var(--size-3) var(--size-1);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: var(--lm-dock-details-max-height);
  max-height: var(--lm-dock-details-max-height);
  grid-template-rows: unset;
  overflow: hidden;
}
.lmMapDock.is-expanded.has-detail-view:not(.is-closing) .lmMapDock__detailsWrap:has(.lmLootSpawner) > .lmServerDetails{
  flex: 1 1 auto;
  min-height: 20em;
  max-height: 100%;
  height: auto;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.lmMapDock.is-expanded.has-detail-view .lmServerDetails--fileView:has(.lmLootSpawner){
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
}
.lmMapDock.is-expanded.has-detail-view .lmServerDetails--fileView:has(.lmLootSpawner) .lmServerDetails__inner,
.lmMapDock.is-expanded.has-detail-view .lmServerDetails--fileView:has(.lmLootSpawner) .lmServerDetails__body,
.lmMapDock.is-expanded.has-detail-view .lmServerDetails--fileView:has(.lmLootSpawner) .lmServerDetails__fileView{
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.lmMapDock input,
.lmMapDock select,
.lmMapDock textarea,
.lmMapDock button{
  box-sizing: border-box;
}
.liveMapToggle{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--size-2);
  font-size: var(--size-4);
  cursor: pointer;
  border-radius: var(--radius);
}

.liveMapToggle input{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
  appearance: none;
  border: 0;
}
.liveMapToggle:has(#lmZoneConfigToggle) span{
  display: inline-flex;
  transform: rotate(-90deg);
  margin-top: 0.25em;
  margin-left: -0.5em;
}
button.liveMapToggle{
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  padding: 0;
}
.liveMapToggle:focus-visible,
.liveMapToggle:has(.liveMapToggleInput:focus-visible){
  outline: 2px solid var(--color-focus-accent);
  outline-offset: 2px;
}
.lmServerDetails{
  width: 100%;
  align-self: stretch;
  margin: 0;
  padding: 0 0 var(--size-2);
  --lm-sd-chip-bg: oklch(0 0 0 / 0.28);
  --lm-sd-chip-border: oklch(1 0 0 / 0.1);
  --lm-sd-section-bg: oklch(0 0 0 / 0.14);
}
.lmServerDetails[hidden]{
  display: none;
}
.lmServerDetails__header{
  display: flex;
  width: 100%;
  align-items: center;
  padding: var(--size-2) var(--size-3) var(--size-1);
}
.lmServerDetails__title{
  margin: 0;
  min-width: 0;
  flex: 1 1 auto;
  font-size: var(--size-4);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lmServerDetails__kpis{
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  align-items: stretch;
  gap: var(--size-2);
  padding: 0 var(--size-3) var(--size-2);
  box-sizing: border-box;
}
.lmServerDetails__kpis > .lmServerDetails__loading{
  margin: 0;
  padding: var(--size-2) 0;
  text-align: left;
  font-size: 0.8em;
}
.lmServerDetailsKpi{
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  justify-content: center;
  gap: 0.2em;
  min-width: 0;
  padding: var(--size-2) var(--size-2);
  border-radius: calc(var(--size-1) + 2px);
  border: var(--border) solid var(--lm-sd-chip-border);
  background: var(--lm-sd-chip-bg);
  box-shadow: inset 0 1px 0 oklch(1 0 0 / 0.05);
}
.lmServerDetailsKpi__value{
  font-family: var(--mono);
  font-size: clamp(var(--size-3), 3.2vw, var(--size-5));
  font-weight: 600;
  line-height: 1;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lmServerDetailsKpi__label{
  display: inline-flex;
  align-items: center;
  gap: 0.28em;
  font-size: 0.62em;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.1;
}
.lmServerDetailsKpi__label > span{
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lmServerDetailsKpi__sub{
  padding-left: var(--size-2);
  font-family: var(--mono);
  font-size: var(--size-3);
  line-height: 1.25;
  color: color-mix(in oklch, var(--muted) 82%, var(--text));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lmServerDetailsKpi--spark{
  flex: 1.75 1 9em;
  min-width: 8em;
}
.lmServerDetailsKpi--warn .lmServerDetailsKpi__value{
  color: var(--color-kill-killer);
}
.lmServerDetailsIcon{
  flex: 0 0 auto;
  width: var(--size-7);
  height: var(--size-7);
  color: color-mix(in oklch, var(--muted) 88%, var(--text));
  opacity: 0.92;
}
.lmServerDetailsKpi .lmServerDetailsIcon{
  width: var(--size-8);
  height: var(--size-8);
}
@media (prefers-reduced-motion: reduce){
  .lmServerDetailsChip{
    transition: none;
  }
}
.lmServerDetails__loading{
  margin: 0;
  padding: var(--size-4) var(--size-3);
  font-size: var(--size-4);
  color: var(--muted);
  text-align: center;
}
.lmServerDetailsChip{
  min-width: 0;
  padding: var(--size-2) var(--size-3);
  border-radius: calc(var(--size-1) + 1px);
  background: var(--lm-sd-chip-bg);
  border: var(--border) solid var(--lm-sd-chip-border);
  transition:
    border-color 140ms ease,
    background-color 140ms ease;
}
.lmServerDetailsChip:hover{
  border-color: oklch(1 0 0 / 0.16);
  background: oklch(0 0 0 / 0.34);
}
.lmServerDetailsChip__label{
  display: inline-flex;
  align-items: center;
  gap: 0.22em;
  font-size: 0.6em;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.1;
}
.lmServerDetailsChip__label > span{
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lmServerDetailsChip__value{
  font-size: 0.88em;
  font-weight: 600;
  line-height: 1.15;
  color: var(--text);
  white-space: nowrap;
}
.lmServerDetailsChip__value--mono{
  font-family: var(--mono);
  font-size: 0.9em;
  font-weight: 600;
}
.lmServerDetailsChip__sub{
  font-family: var(--mono);
  font-size: 0.62em;
  line-height: 1.2;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lmServerDetailsChip--inline{
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-1);
}
.lmServerDetailsChip--detail{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: flex-end;
  column-gap: var(--size-1);
}
.lmServerDetailsChip--detail .lmServerDetailsChip__label{
  grid-column: 1;
  grid-row: 1;
}
.lmServerDetailsChip--detail .lmServerDetailsChip__value{
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
  text-align: right;
  font-size: var(--size-4);
}
.lmServerDetailsChip--detail .lmServerDetailsChip__sub{
  grid-column: 1;
  grid-row: 2;
}
.lmServerDetailsChip--warn .lmServerDetailsChip__value{
  color: var(--color-kill-killer);
}
.lmServerDetails__feedback{
  margin: 0;
  padding: var(--size-2) var(--size-3);
  font-size: var(--size-4);
  line-height: 1.35;
  color: var(--muted);
  border-top: var(--border) solid oklch(1 0 0 / 0.08);
  background: oklch(0 0 0 / 0.2);
}
.lmServerDetails__feedback--error{
  color: var(--color-kill-killer);
  background: color-mix(in oklch, var(--color-kill-killer) 8%, oklch(0 0 0 / 0.22));
}

/* Live stats layout */
.lmServerDetails__liveStats[hidden],
.lmMapDock:not(.is-live) .lmServerDetails__liveStats{
  display: none !important;
}
.lmServerDetails__liveStats{
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.lmServerDetails__sections{
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: var(--size-2);
  min-width: 0;
  padding: var(--size-1) var(--size-3) var(--size-3);
  box-sizing: border-box;
}
.lmServerDetails__section{
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: var(--size-2);
  border: var(--border) solid oklch(1 0 0 / 0.09);
  border-radius: calc(var(--size-1) + 2px);
  background: var(--lm-sd-section-bg);
  box-shadow: inset 0 1px 0 oklch(1 0 0 / 0.04);
  min-width: 0;
  box-sizing: border-box;
}
.lmServerDetails__section:last-child{
  margin-bottom: 0;
}
.lmServerDetails__sectionTitle{
  display: flex;
  align-items: center;
  gap: var(--size-1);
  margin: 0 0 var(--size-1);
  padding-bottom: 0.35em;
  border-bottom: var(--border) solid oklch(1 0 0 / 0.08);
  font-size: 0.66em;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: color-mix(in oklch, var(--text) 55%, var(--muted));
}
.lmServerDetails__sectionTitle::before{
  content: "";
  flex: 0 0 auto;
  width: 0.22em;
  height: 0.85em;
  border-radius: var(--size-pill);
  background: color-mix(in oklch, var(--accent) 70%, var(--text));
}
.lmServerDetails__section--weather .lmServerDetails__sectionTitle::before{
  background: color-mix(in oklch, var(--color-status-dot-online) 75%, var(--accent));
}
.lmServerDetails__section--entities .lmServerDetails__sectionTitle::before,
.lmServerDetails__section--catalogs .lmServerDetails__sectionTitle::before{
  background: color-mix(in oklch, var(--text) 40%, var(--accent));
}
.lmServerDetails__section--vehicles .lmServerDetails__sectionTitle::before{
  background: color-mix(in oklch, var(--color-selected) 55%, var(--accent));
}
.lmServerDetails__sectionTitle .lmServerDetailsCatalog__total{
  margin-left: auto;
  letter-spacing: 0;
  text-transform: none;
}
.lmServerDetails__grid{
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: var(--size-1);
}
.lmServerDetails__grid > .lmServerDetailsChip{
  flex: 1 1 0;
  min-width: 4.75em;
}
.lmServerDetailsCatalog{
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: var(--size-2);
  min-width: 0;
}
.lmServerDetailsCatalog__group{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  min-width: 0;
}
.lmServerDetailsCatalog__heading{
  display: flex;
  gap: var(--size-2);
  margin: 0;
  font-size: 0.72em;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--text);
}
.lmServerDetailsCatalog__title{
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  min-width: 0;
}
.lmServerDetailsCatalog__title .lmServerDetailsIcon{
  width: 1em;
  height: 1em;
}
.lmServerDetailsCatalog__total{
  font-family: var(--mono);
  font-size: 0.95em;
  font-weight: 600;
  color: var(--muted);
}
.lmServerDetailsCatalog__grid{
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: var(--size-1);
}
.lmServerDetailsCatalog__grid > .lmServerDetailsChip{
  flex: 1 1 fit-content;
  min-width: 5.25em;
}
.lmServerDetailsCatalog__empty{
  margin: 0;
  font-size: 0.72em;
  line-height: 1.35;
  color: var(--muted);
}
.lmServerDetailsSpark{
  min-width: 0;
  width: 100%;
  color: color-mix(in oklch, var(--color-selected) 70%, var(--accent));
}
.lmServerDetailsSpark svg{
  display: block;
  width: 100%;
  height: 1.75em;
}
.lmServerDetailsKpi .lmServerDetailsSpark{
  margin-top: 0.15em;
}
@media (min-width: 721px){
  .lmServerDetailsKpi--spark{
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(4.5em, 1fr);
    grid-template-rows: auto auto auto;
    column-gap: var(--size-2);
    align-items: center;
  }
  .lmServerDetailsKpi--spark .lmServerDetailsKpi__value{
    grid-column: 1;
    grid-row: 1;
  }
  .lmServerDetailsKpi--spark .lmServerDetailsKpi__label{
    grid-column: 1;
    grid-row: 2;
  }
  .lmServerDetailsKpi--spark .lmServerDetailsKpi__sub{
    grid-column: 1;
    grid-row: 3;
    padding-left: 0;
  }
  .lmServerDetailsKpi--spark .lmServerDetailsSpark{
    grid-column: 2;
    grid-row: 1 / -1;
    align-self: stretch;
    display: flex;
    align-items: center;
    margin: 0;
    min-width: 0;
  }
  .lmServerDetailsKpi--spark .lmServerDetailsSpark svg{
    height: 100%;
    min-height: 2em;
    max-height: 2.75em;
  }
}
@media (prefers-reduced-motion: reduce){
  .lmServerDetailsSpark svg{
    opacity: 1;
  }
}
.lmMapDock.is-expanded .lmServerDetails--fileView .lmServerDetails__body{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: var(--size-1) 0;
}
.lmFtpEditor,
.lmLootSpawner{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  gap: var(--size-2);
}
.lmRaidTimesEditor__body{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
}

/* FTP config editors (economy, notifications, raid times, loot overrides) */
.lmServerDetails__body{
  min-width: 0;
}

/* Allow the live stats body to scroll when content is tall */
.lmServerDetails:not(.lmServerDetails--fileView) .lmServerDetails__body{
  max-height: min(52vh, 32em);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/* When expanded, details wrap scrolls (except loot spawner); body grows naturally */
.lmMapDock.is-expanded .lmServerDetails:not(.lmServerDetails--fileView) .lmServerDetails__body{
  max-height: min(52vh, 36em);
  flex: none;
  min-height: auto;
  overflow: visible;
}
.lmServerDetails__fileView{
  max-height: min(42vh, 20em);
  overflow: auto;
  padding: 0 var(--size-1);
}
.lmMapDock.is-expanded .lmServerDetails--fileView:not(:has(.lmLootSpawner)) .lmServerDetails__body{
  display: block;
  flex: none;
  min-height: auto;
  overflow: visible;
}
.lmMapDock.is-expanded .lmServerDetails__fileView:not(:has(.lmLootSpawner)){
  display: block;
  max-height: min(60vh, 43em);
  flex: none;
  min-height: auto;
  overflow: visible;
}
.lmMapDock.is-expanded.has-detail-view .lmServerDetails__fileView:has(.lmLootSpawner){
  display: flex;
  flex-direction: column;
  max-height: none;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.lmMapDock.is-expanded:not(.is-closing) .lmMapDock__detailsWrap:not(:has(.lmLootSpawner)) .lmFtpEditor{
  flex: 0 1 auto;
  min-height: auto;
  overflow: visible;
}
.lmServerDetails__fileView[hidden]{
  display: none !important;
}
.lmFtpDoc__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--size-3);
  margin-bottom: var(--size-2);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid oklch(1 0 0 / 0.1);
}
.lmFtpDoc__headMain{
  flex: 1 1 auto;
  min-width: 0;
}
.lmFtpDoc__headAside{
  display: flex;
  gap: var(--size-2);
  flex-shrink: 0;
  padding: var(--size-1) var(--size-2);
  border: var(--border) solid oklch(1 0 0 / 0.1);
  border-radius: var(--size-2);
  background: oklch(0 0 0 / 0.18);
}
.lmFtpDoc__head .lmAdminDialogClose{
  float: none;
  line-height: 0;
  padding: 0;
  flex-shrink: 0;
}
.lmFtpDoc__title{
  margin: 0;
  font-size: var(--size-6);
}
.lmFtpDoc__meta{
  margin: var(--size-1) 0 0;
  font-size: 0.78em;
}
.lmFtpDoc__body{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
}
.lmFtpFields{
  display: flex;
  flex-direction: column;
  border: var(--border) solid oklch(1 0 0 / 0.08);
  border-radius: var(--size-1);
  background: oklch(0 0 0 / 0.14);
  overflow: hidden;
}
.lmFtpField{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--size-1) var(--size-3);
  padding: var(--size-2) var(--size-3);
  border-bottom: var(--border) solid oklch(1 0 0 / 0.08);
}
.lmFtpField:last-child{
  border-bottom: 0;
}
.lmFtpField__label{
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  font-size: 0.68em;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: normal;
  line-height: 1.3;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.lmFtpField__value{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.85em;
  line-height: 1.35;
  word-break: break-word;
}
.lmFtpSection{
  margin: 0;
  padding: var(--size-2);
  border-radius: var(--size-1);
  background: var(--panel-solid);
  border: var(--border) solid oklch(1 0 0 / 0.08);
}
.lmFtpSection--nested{
  background: oklch(0 0 0 / 0.1);
}
.lmFtpSection__title{
  margin: 0 0 var(--size-2);
  font-size: 0.8em;
  font-weight: 650;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}
.lmFtpStr{
  color: var(--text);
}
.lmFtpTableWrap{
  overflow-x: auto;
  margin-bottom: var(--size-2);
}
.lmFtpTable{
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8em;
}
.lmFtpTable th,
.lmFtpTable td{
  padding: var(--size-1) var(--size-2);
  border-bottom: var(--border) solid oklch(1 0 0 / 0.08);
  text-align: left;
  vertical-align: top;
}
.lmFtpTable th{
  font-size: 0.68em;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.lmFtpPillRow{
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: var(--size-1);
}
.lmFtpPill{
  display: inline-flex;
  padding: 0.15em var(--size-2);
  border-radius: var(--size-pill);
  background: oklch(0 0 0 / 0.22);
  font-size: 0.8em;
}
.lmFtpRaw{
  margin: 0;
  padding: var(--size-2);
  border-radius: var(--size-1);
  background: oklch(0 0 0 / 0.25);
  font-family: var(--mono);
  font-size: 0.75em;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: min(38vh, 18em);
  overflow: auto;
}
.lmMapDock.is-expanded .lmFtpRaw{
  max-height: none;
}
.lmFtpError{
  margin: 0;
  padding: var(--size-2);
  color: var(--color-kill-killer);
  font-size: 0.85em;
}
.lmFtpBool--true{ color: var(--color-selected); }
.lmFtpBool--false{ color: var(--muted); }
.lmFtpNum{ font-family: var(--mono); }
.lmFtpNull{ color: var(--muted); font-style: italic; }
.lmFtpMore,
.lmFtpEmpty{
  margin: var(--size-1) 0 0;
  font-size: 0.78em;
}
.lmFtpAccordion{
  display: flex;
  flex-direction: column;
  gap: 0;
}
.lmFtpAccordion--nested{
  margin-top: var(--size-2);
  padding-left: var(--size-2);
  border-left: 2px solid oklch(1 0 0 / 0.12);
}
.lmFtpAccordionItem{
  border: var(--border) solid var(--panelBorder);
  border-top-width: calc(var(--border) / 2);
  border-bottom-width: calc(var(--border) / 2);
  background: var(--panel-solid);
}
.lmFtpAccordionItem--nested{
  background: oklch(0 0 0 / 0.14);
}
.lmFtpAccordionItem__summary{
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--size-1);
  padding: var(--size-3) var(--size-3);
  font-size: var(--size-3);
  color: var(--text);
  transition: background-color 0.14s ease;
}
.lmFtpAccordionItem__summary::-webkit-details-marker{
  display: none;
}
.lmFtpAccordionItem__summary::before{
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  margin-right: var(--size-2);
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(-45deg);
  translate: 0 -0.1em;
  transition: transform 0.16s ease;
}
.lmFtpAccordionItem[open] .lmFtpAccordionItem__summary::before{
  transform: rotate(45deg);
  translate: 0 0.05em;
}
.lmFtpAccordionItem__summary:hover{
  background: var(--color-surface-hover);
}
.lmFtpAccordionItem__summary:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmFtpAccordionItem__title{
  flex: 1 1 auto;
  min-width: 0;
  word-break: break-word;
}

.lmFtpAccordionItem__body .lmFtpFields{
  margin: 0;
}
.lmFtpFields--compact{
  display: flex;
  gap: var(--size-1);
  padding: var(--size-2);
  border: var(--border) solid oklch(1 0 0 / 0.08);
  border-radius: var(--size-1);
  background: oklch(0 0 0 / 0.14);
}
.lmFtpFields--compact .lmFtpField{
  /* flex-direction: column; */
  align-items: stretch;
  gap: 0.2em;
  padding: var(--size-1) var(--size-2);
  margin: 0;
  border: var(--border) solid oklch(1 0 0 / 0.08);
  border-radius: var(--size-1);
  background: oklch(0 0 0 / 0.12);
}
.lmFtpFields--compact .lmFtpField:last-child{
  border-bottom: var(--border) solid oklch(1 0 0 / 0.08);
}
.lmFtpFields--compact .lmFtpField__label{
  min-width: 0;
  font-size: 0.58em;
  line-height: 1.25;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.lmFtpFields--compact .lmFtpField__value{
  flex: none;
  width: 100%;
}
.lmFtpFields--compact .lmFtpField__input{
  padding: 0.2em var(--size-1);
  font-size: 0.78em;
}
.lmFtpAccordionItem--settings .lmFtpAccordionItem__summary{
  padding: var(--size-2) var(--size-3);
}
.lmFtpAccordionItem--settings .lmFtpAccordionItem__body{
  padding: var(--size-2) var(--size-3);
}
.lmLootSpawner > .lmFtpDoc__head{
  flex-shrink: 0;
}
.lmLootSpawner__main{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.lmLootSpawner__tabs{
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--size-1);
  flex-shrink: 0;
  min-width: 0;
}
.lmLootSpawner__nav:has(.lmLootSpawner__tabs) .lmLootSpawner__navHeader{
  display: none;
}
.lmLootSpawner__tab{
  flex: 1 1 auto;
  min-height: 2em;
  margin: 0;
  padding: var(--size-2) var(--size-3);
  border: 0;
  border-radius: var(--size-2);
  background: oklch(0 0 0 / 0.22);
  color: inherit;
  font: inherit;
  font-size: var(--size-3);
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
}
.lmLootSpawner__tab:hover:not(.is-active){
  background: oklch(1 0 0 / 0.12);
}
.lmLootSpawner__tab:focus-visible{
  outline: 2px solid var(--color-selected);
  outline-offset: -2px;
}
.lmLootSpawner__tab.is-active{
  background: oklch(1 0 0 / 0.3);
  color: oklch(0 0 0 / 0.6);
  font-weight: bold;
  cursor: default;
}
.lmLootSpawner__panel{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.lmLootSpawner__panel[hidden]{
  display: none;
}
.lmLootFolder__doc{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-width: 0;
}
.lmLootFolder__doc [hidden]{
  display: none;
}
.lmLootFolder__docHead{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--size-2);
}
.lmLootFolder__docPath{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--size-1);
  min-width: 0;
  max-width: 100%;
  padding: 0.35em 0.45em 0.35em 0.7em;
  border: var(--border) solid oklch(1 0 0 / 0.1);
  border-radius: var(--size-2);
  background: oklch(0 0 0 / 0.2);
}
.lmLootFolder__docPath .lmLootNodeTree__path{
  flex: 1 1 8em;
  min-width: 0;
}
.lmLootFolder__toolbar{
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(12em, 1fr) auto;
  align-items: end;
  gap: var(--size-2);
  padding: var(--size-2) 0;
  background: oklch(0.17 0.02 265);
}
.lmLootFolder__toolbar .lmLootFolder__filter{
  max-width: none;
}
.lmLootFolder__treeActions{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
}
.lmLootFolder__treeAction{
  min-height: 2.25em;
  padding: 0.35em 0.8em;
  border: var(--border) solid oklch(1 0 0 / 0.14);
  border-radius: var(--size-1);
  background: oklch(0 0 0 / 0.22);
  color: inherit;
  font: inherit;
  font-size: 0.78em;
  font-weight: 650;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
}
.lmLootFolder__treeAction:hover{
  background: oklch(1 0 0 / 0.12);
}
.lmLootFolder__treeAction:focus-visible{
  outline: 2px solid var(--color-selected);
  outline-offset: -2px;
}
.lmLootFolder__filter{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  max-width: 36em;
}
.lmLootFolder__filterLabel{
  font-size: 0.78em;
  font-weight: 600;
}
.lmLootFolder__filterStatus{
  grid-column: 1 / -1;
  margin: 0;
  min-height: 1.2em;
  font-size: 0.78em;
}
.lmLootFolder__locations{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
}
.lmLootFolder__group .lmFtpAccordionItem__summary{
  align-items: center;
}
.lmLootFolder__groupNote{
  flex: 0 1 auto;
  font-weight: 500;
}
.lmLootFolder__groupMeta{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1) var(--size-3);
  font-size: 0.82em;
  font-weight: 500;
}
.lmLootFolder__group > .lmFtpAccordionItem__body{
  padding: 0 var(--size-3) var(--size-3);
}
.lmLootFolder__groupItems{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-width: 0;
}
.lmLootFolder__group[hidden]{
  display: none;
}
.lmLootFolder__tree{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-width: 0;
}
.lmLootFolder__treeList{
  overflow: auto;
  padding: var(--size-1);
  border: var(--border) solid oklch(1 0 0 / 0.08);
  border-radius: var(--size-2);
  background: oklch(0 0 0 / 0.16);
}
.lmLootNodeTree{
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1em;
}
.lmLootNodeTree .lmLootNodeTree{
  margin-top: 0.15em;
  margin-left: 0.35em;
  padding-left: 0.7em;
  border-left: var(--border) solid oklch(1 0 0 / 0.12);
}
.lmLootNodeTree__leaf,
.lmLootNodeTree__branch{
  list-style: none;
  min-width: 0;
}
.lmLootNodeTree__leaf[hidden],
.lmLootNodeTree__branch[hidden]{
  display: none;
}
.lmLootNodeTree__summary,
.lmLootNodeTree__leaf{
  display: grid;
  grid-template-columns: 1.1em minmax(0, 1fr) 2em auto auto;
  align-items: center;
  column-gap: var(--size-2);
  min-height: 2.25em;
  padding: 0.2em 0.45em;
  border-radius: var(--size-1);
}
.lmLootNodeTree__summary{
  cursor: pointer;
  list-style: none;
}
.lmLootNodeTree__summary::-webkit-details-marker{
  display: none;
}
.lmLootNodeTree__summary::before,
.lmLootNodeTree__leaf::before{
  content: "";
  justify-self: center;
}
.lmLootNodeTree__summary::before{
  width: 0.4em;
  height: 0.4em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  opacity: 0.55;
  transition: transform 0.16s ease-out;
}
.lmLootNodeTree__details[open] > .lmLootNodeTree__summary::before{
  transform: rotate(45deg);
}
.lmLootNodeTree__leaf::before{
  width: 0.28em;
  height: 0.28em;
  border-radius: 50%;
  background: oklch(1 0 0 / 0.28);
}
.lmLootNodeTree__summary:hover,
.lmLootNodeTree__leaf:hover{
  background: oklch(1 0 0 / 0.05);
}
.lmLootNodeTree__leaf.is-match,
.lmLootNodeTree__branch.is-match > .lmLootNodeTree__details > .lmLootNodeTree__summary{
  background: oklch(0.42 0.08 145 / 0.22);
}
.lmLootNodeTree__summary:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.lmLootNodeTree__name{
  min-width: 0;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lmLootNodeTree__count{
  justify-self: end;
  font-size: 0.72em;
  font-weight: 650;
  color: oklch(0.74 0 0);
  font-variant-numeric: tabular-nums;
}
.lmLootNodeTree__pills{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--size-1);
}
.lmLootNodeTree__chance{
  font-size: 0.78em;
  color: oklch(0.82 0 0);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.lmLootNodeTree__rarity{
  display: inline-flex;
  padding: 0.12em 0.5em;
  border-radius: var(--size-pill);
  font-size: 0.72em;
  font-weight: 650;
  line-height: 1.3;
}
.lmLootNodeTree__rarity--abundant{
  color: oklch(0.86 0.08 160);
  background: oklch(0.42 0.07 160 / 0.28);
}
.lmLootNodeTree__rarity--common{
  color: oklch(0.86 0.02 250);
  background: oklch(0.5 0.03 250 / 0.22);
}
.lmLootNodeTree__rarity--uncommon{
  color: oklch(0.88 0.1 145);
  background: oklch(0.4 0.08 145 / 0.3);
}
.lmLootNodeTree__rarity--rare{
  color: oklch(0.86 0.1 250);
  background: oklch(0.4 0.08 250 / 0.3);
}
.lmLootNodeTree__rarity--veryrare{
  color: oklch(0.88 0.1 310);
  background: oklch(0.4 0.09 310 / 0.3);
}
.lmLootNodeTree__rarity--extremelyrare{
  color: oklch(0.9 0.11 80);
  background: oklch(0.42 0.09 80 / 0.3);
}
.lmLootNodeTree__path{
  font-size: 0.78em;
  word-break: break-word;
  color: oklch(0.78 0 0);
}
.lmLootNodeTree__copy{
  justify-self: end;
  margin: 0;
  padding: 0.3em 0.7em;
  min-height: 2em;
  min-width: 4.2em;
  border: var(--border) solid oklch(1 0 0 / 0.14);
  border-radius: var(--size-1);
  background: oklch(0 0 0 / 0.22);
  color: inherit;
  font: inherit;
  font-size: 0.72em;
  font-weight: 650;
  line-height: 1.3;
  cursor: pointer;
  white-space: nowrap;
}
.lmLootNodeTree__copy:hover{
  background: oklch(1 0 0 / 0.12);
}
.lmLootNodeTree__copy:focus-visible{
  outline: 2px solid var(--color-selected);
  outline-offset: -2px;
}
.lmLootNodeTree__copy.is-copied{
  background: oklch(0.42 0.08 145 / 0.35);
  color: oklch(0.92 0.06 145);
}
@media (prefers-reduced-motion: reduce){
  .lmLootNodeTree__summary::before{
    transition: none;
  }
}
@media (max-width: 40em){
  .lmLootFolder__toolbar{
    grid-template-columns: minmax(0, 1fr);
  }
  .lmLootNodeTree__summary,
  .lmLootNodeTree__leaf{
    grid-template-columns: 1.1em minmax(0, 1fr) auto;
    grid-template-areas:
      "mark name copy"
      "mark pills pills";
  }
  .lmLootNodeTree__summary::before,
  .lmLootNodeTree__leaf::before{ grid-area: mark; }
  .lmLootNodeTree__name{ grid-area: name; }
  .lmLootNodeTree__count{ display: none; }
  .lmLootNodeTree__pills{ grid-area: pills; justify-content: flex-start; }
  .lmLootNodeTree__copy{ grid-area: copy; }
}
.lmLootSpawner__layout{
  display: grid;
  grid-template-columns: minmax(14em, 24em) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  gap: var(--size-3);
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.lmLootSpawner__nav{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-width: 0;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
  padding: var(--size-3);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: oklch(0 0 0 / 0.22);
}
.lmLootSpawner__navHeader{
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
}
.lmLootSpawner__navTitle{
  margin: 0;
  font-size: 0.72em;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
  color: oklch(0.78 0 0);
}
.lmLootSpawner__navFiles{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  overflow: hidden;
  border: var(--border) solid oklch(1 0 0 / 0.08);
  border-radius: var(--size-1);
  background: oklch(0 0 0 / 0.2);
}
.lmLootSpawner__navFiles:has(.lmLootSpawner__navList[data-lm-loot-search-list]){
  background: oklch(0.22 0.02 145 / 0.35);
}
.lmLootSpawner__navPath{
  display: flex;
  flex-shrink: 0;
  align-items: stretch;
  gap: var(--size-1);
  min-width: 0;
  padding: var(--size-1);
  border-bottom: var(--border) solid oklch(1 0 0 / 0.08);
}
.lmLootSpawner__navCrumb{
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  display: flex;
  align-items: center;
  padding: 0.15em var(--size-2);
  border-radius: var(--size-1);
  background: oklch(1 0 0 / 0.04);
  font-family: var(--mono);
  font-size: 0.752em;
  line-height: 1.35;
  word-break: break-word;
  color: oklch(0.82 0 0);
}
.lmLootSpawner__nav.is-search .lmLootSpawner__navCrumb{
  color: oklch(0.86 0.05 145);
  background: oklch(0.42 0.06 145 / 0.18);
}
.lmLootSpawner__navToolbar{
  display: flex;
  flex-shrink: 0;
  align-items: stretch;
  gap: var(--size-2);
}
.lmLootSpawner__navUp{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25em;
  min-height: 2.25em;
  min-width: 2.25em;
  padding: var(--size-1) var(--size-2);
  border: var(--border) solid oklch(1 0 0 / 0.12);
  border-radius: var(--size-1);
  background: oklch(1 0 0 / 0.04);
  color: oklch(0.86 0 0);
  font: inherit;
  font-size: 0.75em;
  font-weight: 650;
  line-height: 1.2;
  cursor: pointer;
  transition:
    background-color 0.16s ease-out,
    border-color 0.16s ease-out,
    color 0.16s ease-out;
}
.lmLootSpawner__navUp .lmLootSpawner__entryIconSvg{
  width: 1em;
  height: 1em;
  color: inherit;
}
.lmLootSpawner__navUp:hover:not(:disabled){
  background: oklch(1 0 0 / 0.08);
  border-color: oklch(1 0 0 / 0.18);
  color: oklch(0.95 0 0);
}
.lmLootSpawner__navUp:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmLootSpawner__navUp:disabled{
  opacity: 0.42;
  cursor: not-allowed;
}
.lmLootSpawner__navUp[hidden]{
  display: none;
}
.lmLootSpawner__navLookup{
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  padding: 0 0 var(--size-3);
  border: 0;
  border-bottom: var(--border) solid oklch(1 0 0 / 0.1);
  border-radius: 0;
  background: transparent;
}
.lmLootSpawner__navLookupTitle{
  margin: 0;
  font-size: 0.78em;
  font-weight: 650;
  line-height: 1.25;
}
.lmLootSpawner__navLookupField{
  display: flex;
  flex-direction: column;
  gap: 0.2em;
  min-width: 0;
}
.lmLootSpawner__navLookupLabel{
  font-size: 0.72em;
  font-weight: 600;
  line-height: 1.3;
  color: oklch(0.82 0 0);
}
.lmLootSpawner__navLookupOptional{
  font-weight: 500;
  color: oklch(0.68 0 0);
}
.lmLootSpawner__navLookupInput{
  width: 100%;
  min-height: 2.25em;
  padding: var(--size-1) var(--size-2);
  border-radius: var(--size-1);
  border: var(--border) solid oklch(1 0 0 / 0.12);
  background: oklch(0 0 0 / 0.28);
  color: var(--text);
  font: inherit;
  font-size: 0.82em;
  line-height: 1.3;
}
.lmLootSpawner__navLookupInput:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmLootSpawner__navLookupHint{
  margin: 0;
  font-size: 0.7em;
  line-height: 1.4;
}
.lmLootSpawner__navLookupSubmit{
  min-height: 2.35em;
  padding: var(--size-1) var(--size-2);
  border: var(--border) solid oklch(0.72 0.12 145 / 0.45);
  border-radius: var(--size-1);
  background: oklch(0.42 0.08 145);
  color: oklch(0.97 0.02 145);
  font: inherit;
  font-size: 0.8em;
  font-weight: 650;
  line-height: 1.2;
  cursor: pointer;
  transition:
    background-color 0.16s ease-out,
    border-color 0.16s ease-out;
}
.lmLootSpawner__navLookupSubmit:hover:not(:disabled){
  background: oklch(0.48 0.09 145);
  border-color: oklch(0.78 0.12 145 / 0.55);
}
.lmLootSpawner__navLookupSubmit:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmLootSpawner__navLookupSubmit:disabled{
  opacity: 0.65;
  cursor: wait;
}
.lmLootSpawner__navLookupStatus{
  margin: 0;
  min-height: 1.35em;
  font-size: 0.72em;
  line-height: 1.35;
  color: oklch(0.78 0 0);
}
.lmLootSpawner__navLookupStatus:empty{
  display: none;
}
.lmLootSpawner__navLookupStatus.is-error{
  color: oklch(0.82 0.12 25);
}
.lmLootSpawner__navListCaption{
  flex-shrink: 0;
  margin: 0;
  padding: 0 var(--size-2);
  font-size: 0.72em;
  font-weight: 650;
  line-height: 1.3;
  color: oklch(0.82 0.04 145);
}
.lmLootSpawner__navListCaption[hidden]{
  display: none;
}
.lmLootCompare{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
}
.lmLootCompare__head{
  display: flex;
  flex-direction: column;
  gap: 0.25em;
}
.lmLootCompare__title{
  margin: 0;
  font-size: 0.92em;
  font-weight: 650;
  line-height: 1.25;
}
.lmLootCompare__lede{
  margin: 0;
  font-size: 0.78em;
  line-height: 1.4;
}
.lmLootCompare__open{
  min-height: 2em;
  padding: 0.2em var(--size-2);
  border: var(--border) solid oklch(1 0 0 / 0.14);
  border-radius: var(--size-1);
  background: oklch(1 0 0 / 0.04);
  color: inherit;
  font: inherit;
  font-size: 0.78em;
  font-weight: 650;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
}
.lmLootCompare__open:hover{
  background: oklch(1 0 0 / 0.08);
  border-color: oklch(1 0 0 / 0.2);
}
.lmLootCompare__open:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmLootCompare__table{
  width: 100%;
}
.lmLootSpawner__navList{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: var(--size-1);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.lmLootSpawner__navEmpty{
  margin: auto;
  padding: var(--size-3) var(--size-2);
  font-size: 0.78em;
  line-height: 1.45;
  text-align: center;
}
@media (prefers-reduced-motion: reduce){
  .lmLootSpawner__navUp,
  .lmLootSpawner__navLookupSubmit,
  .lmLootSpawner__entry{
    transition: none;
  }
}
.lmLootSpawner__detailPane{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.lmLootSpawner__area{
  flex: 0 0 auto;
  flex-shrink: 0;
  min-height: 25em;
  padding: var(--size-2) var(--size-3);
  border-radius: var(--size-2);
  border: var(--border) solid oklch(1 0 0 / 0.12);
  background: var(--panel);
  overflow: hidden;
}
.lmLootSpawner__area[hidden]{
  display: none !important;
}
.lmLootSpawner__settings{
  flex: 1 1 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--size-3);
  border: var(--border) solid var(--color-border-subtle);
  border-radius: var(--size-2);
  background: var(--color-panel-elevated);
  -webkit-overflow-scrolling: touch;
}
.lmLootSpawner__settingsTop{
  margin-bottom: var(--size-3);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid oklch(1 0 0 / 0.1);
}
.lmMapDock.is-expanded .lmLootSpawner__area .lmLootArea__layout{
  min-height: 23em;
  max-height: min(30vh, 17em);
}
.lmMapDock.is-expanded .lmLootSpawner__area .lmLootArea__info{
  overflow: visible;
  flex: 0 0 auto;
}
.lmMapDock.is-expanded .lmLootSpawner__area .lmLootArea__mapCol,
.lmMapDock.is-expanded .lmLootSpawner__area .lmLootArea__map{
  min-height: 0;
}
.lmMapDock.is-expanded .lmLootSpawner__area .lmLootArea__map .lmZoneMapPreviewWrap{
  min-height: 0;
  max-height: 100%;
}
.lmMapDock.is-expanded .lmLootSpawner__area .lmZoneMapPreview__svg{
  min-height: 0;
  max-height: none;
  height: auto;
}
.lmLootSpawner__entry{
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--size-2);
  width: 100%;
  padding: 0.4em var(--size-2);
  border: none;
  border-bottom: var(--border) solid oklch(1 0 0 / 0.2);
  border-radius: var(--size-1);
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  font: inherit;
  font-size: 0.82em;
  line-height: 1.3;
  transition:
    background-color 0.16s ease-out,
    border-color 0.16s ease-out;
}
.lmLootSpawner__entry:hover{
  background: oklch(1 0 0 / 0.05);
  border-color: oklch(1 0 0 / 0.08);
}
.lmLootSpawner__entry.is-active{
  background: oklch(1 0 0 / 0.08);
  border-color: oklch(1 0 0 / 0.12);
  box-shadow: inset 3px 0 0 var(--color-selected);
}
.lmLootSpawner__entry:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmLootSpawner__entryIcon{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: oklch(0.72 0 0);
}
.lmLootSpawner__entryIcon--folder,
.lmLootSpawner__entryIcon--grid,
.lmLootSpawner__entryIcon--file{
  color: oklch(0.72 0 0);
}
.lmLootSpawner__entry.is-active .lmLootSpawner__entryIcon{
  color: oklch(0.88 0 0);
}
.lmLootSpawner__entryIconSvg{
  width: 1.2em;
  height: 1.2em;
  display: block;
  flex-shrink: 0;
}
.lmLootSpawner__entryBody{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12em;
}
.lmLootSpawner__entryFolder{
  font-size: 0.78em;
  font-weight: 650;
  line-height: 1.25;
  color: oklch(0.82 0.06 145);
}
.lmLootSpawner__entryMeta{
  font-size: 0.88em;
  line-height: 1.3;
  word-break: break-word;
}
.lmLootSpawner__entryBadge{
  flex: 0 0 auto;
  align-self: center;
  padding: 0.12em 0.45em;
  border-radius: 999px;
  font-size: 0.68em;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: oklch(0.78 0 0);
  background: oklch(1 0 0 / 0.06);
  border: var(--border) solid oklch(1 0 0 / 0.12);
}
.lmLootSpawner__entry--zoneFile.is-active .lmLootSpawner__entryBadge{
  color: oklch(0.9 0 0);
}
.lmLootSpawner__entryItemPct{
  flex: 0 0 auto;
  font-family: var(--mono);
  color: oklch(0.82 0.06 145);
}
.lmLootSpawner__hint,
.lmLootSpawner__empty{
  margin: 0;
  font-size: 0.78em;
}
.lmLootSpawner__summaryTitle{
  margin: 0;
  font-size: 0.92em;
  font-weight: 650;
}
.lmLootSpawner__summaryPrimary{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(7.5em, 1fr));
  gap: var(--size-2);
}
.lmLootSpawner__stat{
  display: flex;
  flex-direction: column;
  gap: 0.2em;
  min-width: 0;
  padding: var(--size-2);
  border-radius: var(--size-1);
  background: oklch(1 0 0 / 0.03);
  border: var(--border) solid oklch(1 0 0 / 0.06);
}
.lmLootSpawner__statLabel{
  font-size: 0.72em;
  font-weight: 600;
  line-height: 1.3;
  color: oklch(0.78 0.01 270);
}
.lmLootSpawner__statValue{
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 1.05em;
  font-weight: 650;
  line-height: 1.2;
  color: oklch(0.9 0.08 155);
}
.lmLootSpawner__statValueDefault{
  font-size: 0.92em;
  font-weight: 600;
  color: oklch(0.82 0.01 270);
}
.lmLootSpawner__statHint{
  margin-top: 0.15em;
  font-size: 0.68em;
  line-height: 1.35;
}
.lmLootSpawner__summaryMore{
  margin: 0;
}
.lmLootSpawner__summaryMoreToggle{
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-size: 0.78em;
  font-weight: 600;
  line-height: 1.3;
  color: oklch(0.78 0 0);
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.lmLootSpawner__summaryMoreToggle::-webkit-details-marker{
  display: none;
}
.lmLootSpawner__summaryMoreToggle::before{
  content: "";
  flex: 0 0 auto;
  width: 0.4em;
  height: 0.4em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  opacity: 0.55;
  transition: transform 0.14s ease;
}
.lmLootSpawner__summaryMore[open] > .lmLootSpawner__summaryMoreToggle::before{
  transform: rotate(45deg);
}
.lmLootSpawner__summaryMoreToggle:hover{
  color: oklch(0.92 0 0);
}
.lmLootSpawner__summaryMoreToggle:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
  border-radius: var(--size-1);
}
.lmLootSpawner__summaryMoreBody{
  display: grid;
  gap: var(--size-1);
  margin-top: var(--size-2);
  padding-top: var(--size-2);
  border-top: var(--border) solid oklch(1 0 0 / 0.06);
}
.lmLootSpawner__summaryRow{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--size-2);
  padding: var(--size-1) var(--size-2);
  border-radius: var(--size-1);
  font-size: 0.78em;
  line-height: 1.35;
  background: oklch(1 0 0 / 0.02);
}
.lmLootSpawner__summaryRowLabel{
  min-width: 0;
  font-weight: 550;
  color: oklch(0.8 0.01 270);
}
.lmLootSpawner__summaryRowValue{
  flex: 0 0 auto;
  text-align: right;
  white-space: nowrap;
}
.lmLootSpawner__nodesTable td{
  vertical-align: middle;
}
.lmLootSpawner__nodesLootCell{
  width: 100%;
  max-width: 0;
}
.lmLootSpawner__nodesEntries{
  display: flex;
  align-items: flex-start;
  gap: var(--size-1);
  min-width: 0;
}
.lmLootSpawner__nodesEntriesTrack{
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--size-1);
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}
.lmLootSpawner__nodesEntries.is-expanded .lmLootSpawner__nodesEntriesTrack{
  flex-wrap: wrap;
  overflow: visible;
}
.lmLootSpawner__nodesPill{
  flex: 0 0 auto;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lmLootSpawner__nodesExpand{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75em;
  height: 1.75em;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--size-1);
  color: oklch(0.72 0 0);
  background: transparent;
  cursor: pointer;
  transition:
    color 0.14s ease,
    background-color 0.14s ease;
}
.lmLootSpawner__nodesExpand[hidden]{
  display: none !important;
}
.lmLootSpawner__nodesExpand:hover{
  color: oklch(0.88 0 0);
  background: oklch(1 0 0 / 0.05);
}
.lmLootSpawner__nodesExpand:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmLootSpawner__nodesExpandLabel{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.lmLootSpawner__nodesExpandIcon{
  width: 1.15em;
  height: 1.15em;
  display: block;
  transition: transform 0.14s ease;
}
.lmLootSpawner__nodesEntries.is-expanded .lmLootSpawner__nodesExpandIcon{
  transform: rotate(180deg);
}
.lmLootArea{
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.lmLootArea__layout{
  display: grid;
  grid-template-columns: minmax(11em, 20em) minmax(0, 1fr);
  gap: var(--size-3);
  align-items: stretch;
  min-height: min(32vh, 18em);
}
.lmLootArea__info{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-width: 0;
  overflow: visible;
}
.lmLootArea__head{
  margin-bottom: 0;
  padding-bottom: var(--size-2);
  flex-shrink: 0;
}
.lmLootArea__head .lmFtpDoc__title{
  font-size: var(--size-6);
}
.lmLootArea__file{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--size-1) var(--size-2);
  margin: var(--size-1) 0 0;
}
.lmLootArea__fileLabel{
  flex: 0 0 auto;
  font-size: 0.68em;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.lmLootArea__path{
  font-family: var(--mono);
  font-size: 0.76em;
  word-break: break-all;
}
.lmLootArea__meta{
  margin: var(--size-1) 0 0;
  font-size: 0.76em;
  line-height: 1.35;
}
.lmLootArea__bounds{
  margin: 0;
  flex: 0 0 auto;
}
.lmLootArea__topItems{
  margin: 0;
  flex: 0 0 auto;
}
.lmLootArea__topItems .lmFtpTable{
  font-size: 0.72em;
}
.lmLootArea__topItemsHead{
  padding: var(--size-2) var(--size-2) 0;
}
.lmLootSpawner__multipliers{
  margin-bottom: var(--size-2);
}
.lmLootOdds{
  margin-bottom: var(--size-3);
  padding: var(--size-3);
  border: var(--border) solid oklch(1 0 0 / 0.1);
  border-radius: var(--size-2);
  background: oklch(0 0 0 / 0.18);
}
.lmLootOdds__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--size-2);
  margin-bottom: var(--size-2);
}
.lmLootOdds__title{
  margin: 0;
  font-size: 0.92em;
  font-weight: 650;
}
.lmLootOdds__subtitle{
  margin: 0.2em 0 0;
  font-size: 0.78em;
  line-height: 1.35;
}
.lmLootOdds__badge{
  flex: 0 0 auto;
  padding: 0.2em 0.55em;
  border-radius: 999px;
  font-size: 0.68em;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border: var(--border) solid oklch(1 0 0 / 0.14);
}
.lmLootOdds__badge--examine{
  color: oklch(0.82 0.12 155);
  background: oklch(0.42 0.08 155 / 0.35);
}
.lmLootOdds__badge--world{
  color: oklch(0.82 0.1 250);
  background: oklch(0.4 0.08 250 / 0.35);
}
.lmLootOdds__notice{
  margin: 0 0 var(--size-2);
  padding: var(--size-2);
  border-radius: var(--size-1);
  font-size: 0.78em;
  line-height: 1.4;
  background: oklch(1 0 0 / 0.04);
  border: var(--border) solid oklch(1 0 0 / 0.08);
}
.lmLootOdds__notice--warn{
  border-color: oklch(0.72 0.14 80 / 0.45);
  background: oklch(0.55 0.1 80 / 0.12);
}
.lmLootOdds__breakdown{
  margin: 0;
}
.lmLootOdds__formula{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35em 0.5em;
  margin: 0;
  padding: var(--size-2);
  border-radius: var(--size-1);
  font-size: 0.8em;
  line-height: 1.45;
  background: oklch(1 0 0 / 0.03);
  border: var(--border) solid oklch(1 0 0 / 0.06);
  list-style: none;
  cursor: pointer;
  transition: background-color 0.14s ease, border-color 0.14s ease;
}
.lmLootOdds__formula::-webkit-details-marker{
  display: none;
}
.lmLootOdds__formula:hover{
  background: oklch(1 0 0 / 0.06);
  border-color: oklch(1 0 0 / 0.1);
}
.lmLootOdds__formula:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmLootOdds__formulaToggle{
  flex: 0 0 auto;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75em;
  height: 1.75em;
  border-radius: var(--size-1);
  color: oklch(0.72 0 0);
  transition:
    color 0.14s ease,
    background-color 0.14s ease;
}
.lmLootOdds__formula:hover .lmLootOdds__formulaToggle{
  color: oklch(0.88 0 0);
  background: oklch(1 0 0 / 0.05);
}
.lmLootOdds__formulaToggleLabel{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.lmLootOdds__formulaToggleIcon{
  width: 1.15em;
  height: 1.15em;
  display: block;
  transition: transform 0.14s ease;
}
.lmLootOdds__breakdown[open] > .lmLootOdds__formula .lmLootOdds__formulaToggleIcon{
  transform: rotate(180deg);
}
.lmLootOdds__breakdown[open] > .lmLootOdds__formula .lmLootOdds__formulaToggle{
  color: oklch(0.92 0 0);
}
.lmLootOdds__formulaExpr{
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 0.95em;
}
.lmLootOdds__formulaResult{
  font-size: 1.05em;
  color: oklch(0.86 0.12 155);
}
.lmLootOdds__formulaNote{
  font-size: 0.9em;
}
.lmLootOdds__list{
  list-style: none;
  margin: var(--size-2) 0 0;
  padding: 0;
  display: grid;
  gap: var(--size-2);
}
.lmLootOdds__row{
  padding: var(--size-2);
  border-radius: var(--size-1);
  background: oklch(1 0 0 / 0.03);
  border: var(--border) solid oklch(1 0 0 / 0.06);
}
.lmLootOdds__rowMain{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--size-2);
}
.lmLootOdds__rowLabel{
  font-size: 0.82em;
  font-weight: 600;
}
.lmLootOdds__rowValue{
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 0.9em;
  font-weight: 650;
  color: oklch(0.9 0.08 155);
}
.lmLootOdds__rowSource,
.lmLootOdds__rowDetail{
  margin: 0.25em 0 0;
  font-size: 0.72em;
  line-height: 1.35;
}
.lmLootOdds--loading,
.lmLootOdds--error{
  padding: var(--size-2) var(--size-3);
}
.lmLootSpawner__settingsTop{
  margin-bottom: var(--size-2);
}
.lmLootSpawner__multipliersCaption{
  padding: var(--size-2);
  font-size: 0.72em;
  font-weight: 650;
  text-align: left;
  caption-side: top;
}
.lmLootSpawner__multiplierLabel{
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
}
.lmLootSpawner__multiplierHelp{
  flex: 0 0 auto;
  font-size: 0.95em;
}
.lmLootSpawner__multipliersTable th[scope="row"]{
  font-weight: 550;
  white-space: nowrap;
}
.lmFtpField__hint{
  display: block;
  margin-top: 0.25em;
  font-size: 0.85em;
  font-weight: 400;
  line-height: 1.35;
}
.lmLootArea__bounds .lmFtpTable{
  font-size: 0.72em;
}
.lmLootArea__bounds .lmFtpTable th,
.lmLootArea__bounds .lmFtpTable td{
  padding: var(--size-1);
}
.lmLootArea__mapCol{
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  flex: 1 1 0;
  overflow: hidden;
}
.lmLootArea__map{
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0;
  min-width: 0;
  min-height: 0;
}
.lmLootArea__map .lmZoneMapPreviewWrap{
  flex: 0 1 auto;
  display: flex;
  align-items: stretch;
  min-width: 0;
  min-height: 0;
  width: 100%;
  max-width: 100%;
  max-height: 100%;
  height: auto;
  margin: auto;
  aspect-ratio: var(--lm-zone-preview-aspect, 1);
}
.lmLootSpawner__settings .lmLootSpawner__doc--compact .lmFtpDoc__body{
  padding-top: 0;
}
.lmLootSpawner__settings .lmLootSpawner__doc--compact .lmFtpDoc__head{
  display: none;
}
.lmLootSpawner__settings .lmFtpSection,
.lmLootSpawner__settings .lmFtpFields{
  margin-bottom: var(--size-2);
}
.lmLootSpawner__settings .lmFtpSection:last-child,
.lmLootSpawner__settings .lmFtpFields:last-child{
  margin-bottom: 0;
}
.lmLootSpawner__doc--zoneDef .lmFtpDoc__head{
  margin-bottom: var(--size-2);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid oklch(1 0 0 / 0.1);
}
.lmLootSpawner__doc--zoneDef .lmFtpDoc__title{
  font-size: var(--size-6);
}
.lmZoneMapPreviews{
  margin-bottom: 0;
}
.lmLootArea .lmZoneMapPreview__svg{
  flex: 1 1 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
}
.lmMapDock.is-expanded .lmLootArea__layout{
  min-height: 0;
}
.lmMapDock.is-expanded .lmLootArea__mapCol,
.lmMapDock.is-expanded .lmLootArea__map,
.lmMapDock.is-expanded .lmLootArea__map .lmZoneMapPreviewWrap{
  min-height: 0;
}
.lmMapDock.is-expanded .lmLootArea .lmZoneMapPreview__svg{
  min-height: 0;
  max-height: none;
}
.lmZoneMapPreviewWrap{
  box-sizing: border-box;
  padding: var(--size-2);
  border-radius: var(--size-2);
  overflow: hidden;
  border: var(--border) solid var(--color-row-selected-bg);
  background: var(--color-surface-input);
}
.lmZoneMapPreview__svg{
  display: block;
  width: 100%;
  max-height: min(28vh, 14em);
  height: auto;
}
.lmMapDock.is-expanded .lmZoneMapPreview__svg{
  max-height: min(36vh, 18em);
}
.lmZoneMapPreview__tiles image,
.lmZoneMapPreview__shadeLayer,
.lmZoneMapPreview__outlines{
  pointer-events: none;
}
.lmZoneMapPreview__shade{
  fill: rgb(0 0 0 / 0.5);
  pointer-events: none;
}
.lmZoneMapPreview__outline{
  fill: none;
  stroke: rgb(255 255 255 / 1);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.lmZoneMapPreview__empty,
.lmZoneMapPreview__loading{
  margin: 0 0 var(--size-2);
  font-size: 0.82em;
}
@media (max-width: 48em){
  .lmLootSpawner__layout{
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    height: 100%;
  }
  .lmLootSpawner__nav{
    height: auto;
    max-height: min(46vh, 26em);
  }
  .lmLootSpawner__detailPane{
    min-height: 0;
    height: auto;
    flex: 1 1 0;
  }
  .lmLootArea__layout{
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }
  .lmLootArea__mapCol,
  .lmLootArea__map,
  .lmLootArea__map .lmZoneMapPreviewWrap{
    min-height: 0;
  }
  .lmLootArea .lmZoneMapPreview__svg{
    min-height: 0;
    max-height: none;
  }
}
.lmFtpField__readonly{
  display: block;
  font-family: var(--mono);
  font-size: 0.78em;
  line-height: 1.3;
  color: var(--text);
  word-break: break-word;
}
.lmFtpTable__cell--code{
  min-width: 8em;
  max-width: 14em;
}
.lmFtpTable__cell--code .lmFtpField__readonly{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lmFtpField__input--bool{
  max-width: 6em;
}
.lmFtpEditor__toolbar{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--size-2);
  margin-bottom: var(--size-2);
}
.lmFtpEditor__search{
  flex: 1 1 12em;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
}
.lmFtpEditor__searchLabel{
  font-size: 0.68em;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.lmFtpEditor__searchInput{
  width: 100%;
  padding: var(--size-2) var(--size-3);
  border-radius: var(--size-1);
  border: var(--border) solid oklch(1 0 0 / 0.14);
  background: oklch(0 0 0 / 0.22);
  color: var(--text);
  font: inherit;
  font-size: 0.85em;
}
.lmFtpEditor__searchInput:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmFtpEditor__actions{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  flex: 0 0 auto;
}
.lmFtpEditor__btn{
  padding: var(--size-2) var(--size-3);
  border-radius: var(--size-1);
  border: var(--border) solid oklch(1 0 0 / 0.14);
  background: oklch(0 0 0 / 0.2);
  color: var(--text);
  font: inherit;
  font-size: 0.82em;
  font-weight: 600;
  cursor: pointer;
}
.lmFtpEditor__btn:hover:not(:disabled){
  background: var(--color-surface-hover);
}
.lmFtpEditor__btn:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}
.lmFtpEditor__btn--primary{
  border-color: oklch(0.72 0.14 145 / 0.45);
  background: oklch(0.45 0.12 145 / 0.35);
}
.lmFtpEditor__btn--primary:hover:not(:disabled){
  background: oklch(0.5 0.14 145 / 0.45);
}
.lmFtpEditor.is-dirty .lmFtpEditor__btn--primary:not(:disabled){
  box-shadow: 0 0 0 1px oklch(0.78 0.16 145 / 0.35);
}
.lmFtpEditor__hint{
  margin: 0 0 var(--size-2);
  font-size: 0.76em;
}
.lmFtpEditor__status{
  margin: var(--size-2) 0 0;
  font-size: 0.8em;
}
.lmFtpEditor__status--error{
  color: var(--color-kill-killer);
}
.lmNotifEditor__body{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
}
.lmNotifEditor__footer{
  margin-top: var(--size-1);
}
.lmNotifEntry__head{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
  margin-bottom: var(--size-1);
}
.lmNotifEntry__title{
  margin-bottom: 0;
}
.lmNotifDayPick{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
}
.lmNotifDayPick__btn{
  min-width: 2.25em;
  padding: var(--size-1) var(--size-1);
  border-radius: var(--size-1);
  border: var(--border) solid oklch(1 0 0 / 0.12);
  background: oklch(0 0 0 / 0.2);
  color: var(--muted);
  font-weight: 650;
  cursor: pointer;
}
.lmNotifDayPick__btn:hover{
  background: var(--color-surface-hover);
  color: var(--text);
}
.lmNotifDayPick__btn:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmNotifDayPick__btn.is-on{
  border-color: oklch(0.72 0.14 250 / 0.5);
  background: oklch(0.55 0.12 250 / 0.28);
  color: var(--text);
}
.lmNotifTimes{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--size-4);
}
.lmNotifTimes__item{
  display: flex;
  flex-direction: row;
  align-items: center;
}
.lmNotifTimes__add{
  margin-top: var(--size-1);
}
.lmNotifTimes__emove{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 2.25em;
  min-height: 2.25em;
  padding: var(--size-1);
}
.lmNotifTimes__emoveIcon{
  display: block;
  width: 1.125em;
  height: 1.125em;
}
.lmNotifColorRow{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--size-2);
}
.lmNotifField__color{
  width: 2.75em;
  height: 2.25em;
  padding: 0;
  border: var(--border) solid oklch(1 0 0 / 0.14);
  border-radius: var(--size-1);
  background: transparent;
  cursor: pointer;
}
.lmNotifField__color:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmNotifField__input--colorText{
  flex: 1 1 10em;
  max-width: 18em;
}
.lmFtpField--editable .lmFtpField__value{
  flex: 1 1 100%;
}
.lmFtpField__input{
  width: 100%;
  min-width: 0;
  padding: 0.35em var(--size-2);
  border-radius: var(--size-1);
  border: var(--border) solid oklch(1 0 0 / 0.12);
  background: oklch(0 0 0 / 0.28);
  color: var(--text);
  font: inherit;
  font-size: 0.85em;
}
.lmFtpField__input:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmFtpTable--editable td{
  vertical-align: middle;
}
.lmFtpTable--editable .lmFtpField__input{
  min-width: 5em;
}
.is-filter-hidden{
  display: none !important;
}
.lmFtpEditor__main{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
  min-height: 0;
}
.lmFtpEditor__sectionTitle{
  margin: 0 0 var(--size-2);
  font-size: 0.68em;
  font-weight: 650;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
}
.lmFtpEditor__settingsPane{
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;  gap: 0;
  border: var(--border) solid oklch(1 0 0 / 0.12);
  border-radius: var(--size-2);
  background: var(--panel);
}
.lmFtpEditor__settingsCollapse{
  margin: 0;
}
.lmFtpEditor__settingsCollapse + .lmFtpEditor__settingsCollapse{
  border-top: var(--border) solid oklch(1 0 0 / 0.08);
}
.lmFtpEditor__settingsSummary{
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--size-2);
  padding: var(--size-2) var(--size-3);
  transition: background-color 0.14s ease;
}
.lmFtpEditor__settingsSummary::-webkit-details-marker{
  display: none;
}
.lmFtpEditor__settingsSummary::before{
  content: "";
  flex: 0 0 auto;
  width: 0.45em;
  height: 0.45em;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(-45deg);
  translate: 0 -0.1em;
  transition: transform 0.16s ease;
}
.lmFtpEditor__settingsCollapse[open] .lmFtpEditor__settingsSummary::before{
  transform: rotate(45deg);
  translate: 0 0.05em;
}
.lmFtpEditor__settingsCollapse[open] .lmFtpEditor__settingsSummary{
  border-bottom: var(--border) solid oklch(1 0 0 / 0.1);
}
.lmFtpEditor__settingsSummary:hover{
  background: var(--color-surface-hover);
}
.lmFtpEditor__settingsSummary:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmFtpEditor__settingsCardTitle{
  margin: 0;
  font-size: var(--size-4);
  font-weight: 650;
  letter-spacing: 0.02em;
  color: var(--text);
}
.lmFtpEditor__settingsBody{
  padding: var(--size-2);
  max-height: min(48vh, 22em);
  overflow: auto;
}
.lmFtpEditor__settingsGrid{
  --lmFtpSettingsCols: 4;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 1px;
  border: var(--border) solid oklch(1 0 0 / 0.12);
  border-radius: var(--size-1);
}
.lmFtpEditor__settingsGrid .lmFtpField--settings{
  display: flex;
  align-items: stretch;
  gap: 0.35em;
  padding: var(--size-2);
  margin: 0;
  border: 0;
  border-radius: 0;
  background: oklch(0.24 0.01 270 / 0.98);
  box-shadow: none;
  flex: 1 1 calc((100% - (var(--lmFtpSettingsCols) - 1) * 1px) / var(--lmFtpSettingsCols));
  min-width: 0;
  transition: background-color 0.12s ease;
}
.lmFtpEditor__settingsGrid .lmFtpField--settings:hover{
  background: oklch(0.27 0.01 270);
}
.lmFtpEditor__settingsGrid .lmFtpField--settings:focus-within{
  background: oklch(0.28 0.015 270);
}
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__label{
  flex: 0 0 auto;
  margin: 0;
  min-width: 0;
  font-size: 0.72em;
  font-weight: 650;
  letter-spacing: 0.01em;
  text-transform: none;
  color: oklch(0.82 0.01 270);
  line-height: 1.3;
  cursor: pointer;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__value{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
}
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__input,
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__input--bool{
  width: 100%;
  max-width: 100%;
  margin: 0;
  min-height: 2em;
  padding: 0.3em var(--size-2);
  border: var(--border) solid oklch(1 0 0 / 0.1);
  border-radius: var(--size-1);
  background: oklch(0 0 0 / 0.42);
  color: oklch(0.88 0.01 270);
  font: inherit;
  font-size: 0.82em;
  line-height: 1.35;
  transition:
    border-color 0.12s ease,
    background-color 0.12s ease;
}
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__input--bool{
  max-width: none;
  padding-right: var(--size-6);
  cursor: pointer;
}
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__input:hover,
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__input--bool:hover{
  border-color: oklch(1 0 0 / 0.16);
  background: oklch(0 0 0 / 0.5);
}
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__input:focus-visible,
.lmFtpEditor__settingsGrid .lmFtpField--settings .lmFtpField__input--bool:focus-visible{
  outline: none;
  border-color: oklch(1 0 0 / 0.22);
  box-shadow: 0 0 0 1px oklch(1 0 0 / 0.08);
  background: oklch(0 0 0 / 0.55);
}
.lmFtpEditor__settingsBody .lmFtpEmpty{
  margin: 0;
}
.lmFtpEditor__tradersBlock{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.lmFtpEditor__tradersBlock[hidden]{
  display: none !important;
}
.lmFtpEditor__tradersLayout{
  display: grid;
  grid-template-columns: minmax(11em, 15em) minmax(0, 1fr);
  gap: var(--size-3);
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
}
.lmFtpEditor__tradersPane.lmSendItemSection{
  flex: 1 1 auto;
  min-width: 0;
  min-height: 12em;
  max-height: min(52vh, 28em);
  overflow: hidden;
  gap: var(--size-2);
}
.lmFtpEditor__tradersPane.is-filtering-traders{
  max-height: min(58vh, 32em);
}
.lmFtpEditor__tradersPane .lmFtpAccordion{
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  border: var(--border) solid var(--color-border-subtle);
  border-radius: var(--size-2);
  padding: var(--size-1);
  background: var(--panel);
}
.lmFtpEditor__tradersPane .lmFtpAccordion--filtered{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  overflow: hidden;
  border: 0;
  padding: 0;
  background: transparent;
}
.lmFtpEditor__tradersPane .lmFtpEditor__filteredResults{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  overflow: hidden;
}
.lmFtpEditor__filteredResults{
  min-width: 0;
}
.lmFtpEditor__tradersPane .lmFtpEditor__filterSummary{
  margin: 0;
  flex: 0 0 auto;
  font-size: 0.82em;
  font-weight: 650;
  line-height: 1.4;
  color: var(--text);
}
.lmFtpEditor__tradersPane .lmFtpEditor__filterSummary strong{
  font-weight: 700;
}
.lmFtpEditor__tradersPane .lmFtpEditor__filterCodes{
  font-family: var(--mono);
  font-size: 0.76em;
  word-break: break-word;
}
.lmFtpEditor__tradersPane .lmFtpTableWrap{
  flex: 1 1 auto;
  min-height: 8em;
  overflow: auto;
  border: var(--border) solid var(--color-border-subtle);
  border-radius: var(--size-2);
  padding: var(--size-1);
  background: var(--color-panel-elevated);
}
.lmFtpEditor__tradersPane .lmFtpTable--editable thead th{
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--color-panel-elevated);
}
.lmFtpEditor__tradersPane .lmFtpItemRow,
.lmFtpTradeableFilter__list .lmSendItemRow{
  content-visibility: auto;
  contain-intrinsic-size: auto 2.75em;
}
.lmFtpTable--filtered thead th{
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--color-panel-elevated);
}
.lmFtpTable__cell--location{
  min-width: 9.5em;
  max-width: 14em;
  vertical-align: middle;
}
.lmFtpLocation{
  display: block;
  font-size: 0.76em;
  font-weight: 650;
  line-height: 1.3;
  color: var(--text);
  word-break: break-word;
}
.lmFtpTradeableFilter{
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  flex: 0 1 15em;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: inherit;
}
.lmFtpTradeableFilter > .lmSendItemSection{
  font-size: var(--size-3);
  flex: 1 1 auto;
  min-height: 0;
  max-height: min(52vh, 28em);
}
.lmFtpTradeableFilter .lmSendItemSectionTitle{
  margin: 0;
}
.lmFtpTradeableFilter .field__label{
  font-size: 0.68em;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.lmFtpTradeableFilter__search{
  width: 100%;
  font-size: var(--size-4);
}
.lmFtpTradeableFilter__meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
}
.lmFtpTradeableFilter__count{
  font-size: 0.76em;
  color: var(--muted);
}
.lmFtpTradeableFilter__list.lmSendItemPickerList{
  flex: 1 1 auto;
  min-height: 8em;
  max-height: min(22em, 50vh);
}
@media (max-width: 72em){
  .lmFtpEditor__settingsGrid{
    --lmFtpSettingsCols: 3;
  }
}
@media (max-width: 48em){
  .lmFtpEditor__tradersLayout{
    grid-template-columns: minmax(0, 1fr);
  }
  .lmFtpEditor__settingsBody{
    max-height: none;
  }
  .lmFtpEditor__settingsGrid{
    --lmFtpSettingsCols: 2;
  }
  .lmFtpEditor__tradersPane.lmSendItemSection,
  .lmFtpTradeableFilter > .lmSendItemSection{
    max-height: min(40vh, 22em);
  }
}
@media (max-width: 30em){
  .lmFtpEditor__settingsGrid{
    --lmFtpSettingsCols: 1;
  }
}

@media (max-width: 1080px){
  .lmMapDock__toolbar.liveMapControls,
  .lmMapDock__toolbarLeft,
  .lmMapDock__toolbarRight{
    flex-wrap: wrap;
  }
}
@media (max-width: 720px){
  .lmServerDetails__kpis{
    flex-direction: column;
  }
  .lmServerDetails__grid > .lmServerDetailsChip{
    flex: 1 1 calc(50% - var(--size-1));
    min-width: calc(50% - var(--size-1));
  }
}
@media (max-width: 520px){
  .lmServerDetails__header,
  .lmServerDetails__kpis,
  .lmServerDetails__sections{
    padding-inline: var(--size-2);
  }
  .lmServerDetails__section{
    padding: var(--size-2);
  }
  .lmServerDetails__grid > .lmServerDetailsChip{
    flex: 1 1 100%;
    min-width: 100%;
  }
}

.liveMapSectors .liveMapSector{
  cursor: pointer;
}
.liveMapSectors .liveMapSector rect{
  fill: var(--color-transparent);
  stroke: var(--color-sector-stroke);
  stroke-width: 1;
}
.liveMapSectors .liveMapSector text{
  fill: var(--color-sector-text);
  font-size: var(--size-4);
   text-anchor: middle;
  dominant-baseline: middle;
  pointer-events: none;
  text-shadow: var(--shadow-text);
  translate: var(--size-sector-label-shift) var(--size-sector-label-shift);
}
.liveMapSectors .liveMapSector:hover rect{
  fill: var(--color-surface-soft);
}
.liveMapSectors .liveMapSector:focus{
  outline: none;
}
.liveMapSectors .liveMapSector:focus-visible rect{
  stroke: var(--color-focus-accent);
  stroke-width: 2;
}
.liveMapLootZones .liveMapLootZone{
  cursor: pointer;
}
.liveMapZoneConfig .liveMapZoneConfigZone{
  cursor: pointer;
}
.liveMapZoneConfig .liveMapZoneConfigZone polygon,
.liveMapZoneConfig .liveMapZoneConfigZone rect{
  stroke-width: 0.5;
}
.liveMapZoneConfig .liveMapZoneConfigZone--live polygon,
.liveMapZoneConfig .liveMapZoneConfigZone--live rect{
  stroke-width: 2.5;
  stroke-dasharray: 6 4;
}
.liveMapZoneConfig .liveMapZoneConfigZone--selected polygon,
.liveMapZoneConfig .liveMapZoneConfigZone--selected rect{
  stroke-width: 2;
}
.liveMapZoneConfig .liveMapZoneConfigZone:hover polygon,
.liveMapZoneConfig .liveMapZoneConfigZone:hover rect{
  stroke-width: 1;
}
.liveMapZoneConfig .liveMapZoneConfigZone:focus{
  outline: none;
}
.liveMapZoneConfig .liveMapZoneConfigZone:focus-visible polygon,
.liveMapZoneConfig .liveMapZoneConfigZone:focus-visible rect{
  stroke: var(--color-focus-accent);
  stroke-width: 2;
}
.lmPollCountdown{
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--size-1);
  padding: 0.15em 0.55em;
  border-radius: var(--radius-sm, 0.35em);
  border: 1px solid oklch(1 0 0 / 0.12);
  background: oklch(0 0 0 / 0.22);
  color: inherit;
  font-variant-numeric: tabular-nums;
  line-height: 1.5;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}
.lmPollCountdown:hover{
  border-color: oklch(1 0 0 / 0.22);
  background: oklch(0 0 0 / 0.32);
}
.lmPollCountdown:focus-visible{
  outline: 2px solid var(--color-focus-accent);
  outline-offset: 2px;
}
.lmPollCountdown[hidden]{
  display: none;
}
.lmPollCountdown__label{
  font-size: 0.75em;
  font-weight: 600;
  color: var(--color-text-muted, oklch(1 0 0 / 0.65));
}
.lmPollCountdown__value{
  font-size: 0.9em;
  font-weight: 700;
  min-inline-size: 2.5ch;
}
.lmPollCountdown__value[hidden]{
  display: none;
}
.lmPollCountdown__pausedIcon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  color: var(--color-warning, #fbbf24);
}
.lmPollCountdown__pausedIcon[hidden]{
  display: none;
}
.lmPollCountdown__pausedIcon :is(svg, img){
  width: 1em;
  height: 1em;
  display: block;
}
.lmPollCountdown.is-polling .lmPollCountdown__value{
  color: var(--color-text-muted, oklch(1 0 0 / 0.65));
  font-weight: 600;
}
.lmPollCountdown.is-paused{
  border-color: color-mix(in oklab, var(--color-warning, #fbbf24) 50%, transparent);
}
.lmPollCountdown.is-bad{
  border-color: color-mix(in oklab, var(--color-danger, #f87171) 55%, transparent);
  color: var(--color-text-muted, oklch(1 0 0 / 0.65));
}
.lmPollCountdown.is-bad .lmPollCountdown__value{
  color: var(--color-danger, #f87171);
  color: var(--color-text-muted, oklch(1 0 0 / 0.65));
}
.lmMapLegends{
  position: absolute;
  inset-inline-end: var(--size-3);
  inset-block-start: var(--size-3);
  z-index: 6;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--size-2);
  max-width: min(20em, calc(100% - var(--size-6)));
  pointer-events: none;
}
.lmMapLegends > .lmMapLegend:not([hidden]){
  pointer-events: auto;
}
.lmMapLegend{
  width: 100%;
  max-width: 100%;
  padding: var(--size-2) var(--size-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background-color: var(--color-surface-elevated, #1a2332);
  box-shadow: var(--shadow-panel);
  color: var(--color-text);
  font-size: var(--size-3);
  box-sizing: border-box;
}
.lmMapLegend__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
}
.lmMapLegend__title{
  margin: 0;
  font-size: var(--size-3);
  font-weight: 600;
  color: var(--color-text-muted);
  line-height: 1.3;
}
.lmMapLegend__toggle{
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 1.75em;
  height: 1.75em;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-text-muted);
  cursor: pointer;
  line-height: 1;
}
.lmMapLegend__toggle:hover{
  color: var(--color-text);
  background: var(--color-surface-hover, rgb(255 255 255 / 0.06));
}
.lmMapLegend__toggle:focus{
  outline: none;
}
.lmMapLegend__toggle:focus-visible{
  outline: 2px solid var(--color-focus-accent);
  outline-offset: 2px;
}
.lmMapLegend__toggleIcon{
  display: block;
  width: 0.55em;
  height: 0.55em;
  border-inline-end: 2px solid currentColor;
  border-block-end: 2px solid currentColor;
  transform: rotate(45deg) translateY(-0.08em);
  transition: transform 160ms ease;
}
.lmMapLegend--collapsed .lmMapLegend__toggleIcon{
  transform: rotate(-135deg) translateY(0.08em);
}
.lmMapLegend__body{
  margin-block-start: var(--size-2);
}
.lmMapLegend--collapsed .lmMapLegend__body{
  display: none;
}
.lmZoneConfigLegend__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--size-2);
}
.lmZoneConfigLegend__item--disabled{
  opacity: 0.55;
}
.lmZoneConfigLegend__label{
  display: flex;
  align-items: center;
  gap: var(--size-3);
  cursor: pointer;
  line-height: 1.3;
}
.lmZoneConfigLegend__check{
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.lmZoneConfigLegend__swatch{
  flex-shrink: 0;
  width: 1.5em;
  height: 1em;
  border-radius: var(--radius-sm);
  border: 2px solid currentColor;
}
.lmZoneConfigLegend__swatch--live{
  border-style: dashed;
}
.lmZoneConfigTip{
  position: fixed;
  z-index: 60;
  pointer-events: auto;
  max-width: min(22em, calc(100vw - 1.5em));
  padding: var(--size-3) var(--size-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background-color: var(--color-surface-elevated, #1a2332);
  box-shadow: var(--shadow-panel);
  color: var(--color-text);
  font-size: var(--size-3);
}
.lmZoneConfigTip__inner{
  position: relative;
  background-color: inherit;
}
.lmZoneConfigTip__close{
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  place-items: center;
  width: 1.75em;
  height: 1.75em;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-text-muted);
  font-size: 1.25em;
  line-height: 1;
  cursor: pointer;
}
.lmZoneConfigTip__close:hover{
  color: var(--color-text);
  background: var(--color-surface-hover, rgba(255, 255, 255, 0.06));
}
.lmZoneConfigTip__title{
  margin: 0 2em 0.35em 0;
  font-weight: 600;
  line-height: 1.3;
}
.lmZoneConfigTip__meta{
  margin: 0;
  color: var(--color-text-muted);
  line-height: 1.3;
}
.lmZoneConfigTip__detail{
  margin: 0.35em 0 0;
  color: var(--color-text-muted);
  line-height: 1.3;
  font-size: 0.95em;
}
.liveMapLootZones .liveMapLootZone rect{
  fill: transparent;
  stroke: var(--color-loot-zone-base);
  stroke-width: 1.25;
}
.liveMapLootZones .liveMapLootZone--boost rect{
  stroke: var(--color-loot-zone-boost);
}
.liveMapLootZones .liveMapLootZone--high rect{
  stroke: var(--color-loot-zone-high);
}
.liveMapLootZones .liveMapLootZone--selected rect{
  stroke-width: 2.5;
}
.liveMapLootZones .liveMapLootZone:hover rect{
  stroke-width: 2;
}
.liveMapLootZones .liveMapLootZone:focus{
  outline: none;
}
.liveMapLootZones .liveMapLootZone:focus-visible rect{
  stroke: var(--color-focus-accent);
  stroke-width: 2;
}
.lmLootZoneLegend__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--size-2);
}
.lmLootZoneLegend__item{
  display: flex;
  align-items: center;
  gap: var(--size-3);
}
.lmLootZoneLegend__swatch{
  flex-shrink: 0;
  width: 1.5em;
  height: 1em;
  border-radius: var(--radius-sm);
  border: 2px solid var(--color-loot-zone-base);
  background: transparent;
}
.lmLootZoneLegend__swatch--boost{
  border-color: var(--color-loot-zone-boost);
}
.lmLootZoneLegend__swatch--high{
  border-color: var(--color-loot-zone-high);
}
.lmLootZoneLegend__label{
  line-height: 1.3;
}
.lmLootZoneLegend__range{
  color: var(--color-text-muted);
  font-weight: 400;
}
.lmLootZoneTip{
  position: fixed;
  z-index: 60;
  pointer-events: auto;
  max-width: min(22em, calc(100vw - 1.5em));
  padding: var(--size-3) var(--size-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background-color: var(--color-surface-elevated, #1a2332);
  box-shadow: var(--shadow-panel);
  color: var(--color-text);
  font-size: var(--size-3);
}
.lmLootZoneTip__inner{
  position: relative;
  background-color: inherit;
}
.lmLootZoneTip__close{
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  place-items: center;
  width: 1.75em;
  height: 1.75em;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-text-muted);
  font-size: 1.25em;
  line-height: 1;
  cursor: pointer;
}
.lmLootZoneTip__close:hover{
  background: rgb(255 255 255 / 0.08);
  color: var(--color-text);
}
.lmLootZoneTip__title{
  margin: 0 1.5em var(--size-3) 0;
  font-weight: 600;
  font-size: var(--size-5);
}
.lmLootZoneTip__stats{
  margin: 0;
  padding-right: 1.5em;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--size-2) var(--size-3);
  align-items: baseline;
}
.lmLootZoneTip__stats dt{
  margin: 0;
  font-weight: 500;
  color: var(--color-text-muted);
  word-break: break-word;
}
.lmLootZoneTip__stats dd{
  margin: 0;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  text-align: right;
}
.liveMapEncounterZones .liveMapEncounterZone{
  cursor: pointer;
}
.liveMapEncounterZones .liveMapEncounterZone polygon{
  stroke-width: 1.25;
  stroke-opacity: 0.9;
}
.liveMapEncounterZones .liveMapEncounterZone--HTZ polygon{
  fill: var(--color-encounter-fill-htz);
  stroke: var(--color-encounter-htz);
}
.liveMapEncounterZones .liveMapEncounterZone--MTZ polygon{
  fill: var(--color-encounter-fill-mtz);
  stroke: var(--color-encounter-mtz);
}
.liveMapEncounterZones .liveMapEncounterZone--LTZ polygon{
  fill: var(--color-encounter-fill-ltz);
  stroke: var(--color-encounter-ltz);
}
.liveMapEncounterZones .liveMapEncounterZone--LPC polygon{
  fill: none;
  stroke: var(--color-encounter-lpc);
  stroke-dasharray: 6 4;
  stroke-opacity: 0.95;
}
.liveMapEncounterZones .liveMapEncounterZone--kindLpc.liveMapEncounterZone--LPC polygon{
  fill: none;
  stroke: var(--color-encounter-lpc);
  stroke-dasharray: 6 4;
  stroke-opacity: 0.95;
}
.liveMapEncounterZones .liveMapEncounterZone--kindLpc.liveMapEncounterZone--HTZ polygon{
  fill: var(--color-encounter-fill-kind-lpc-htz);
  stroke: var(--color-encounter-htz);
  stroke-dasharray: 6 4;
}
.liveMapEncounterZones .liveMapEncounterZone--kindLpc.liveMapEncounterZone--MTZ polygon{
  fill: var(--color-encounter-fill-kind-lpc-mtz);
  stroke: var(--color-encounter-mtz);
  stroke-dasharray: 6 4;
}
.liveMapEncounterZones .liveMapEncounterZone--kindLpc.liveMapEncounterZone--LTZ polygon{
  fill: var(--color-encounter-fill-kind-lpc-ltz);
  stroke: var(--color-encounter-ltz);
  stroke-dasharray: 6 4;
}
.liveMapEncounterZones .liveMapEncounterZone--selected polygon{
  stroke-width: 2;
  stroke-opacity: 1;
}
.liveMapEncounterZones .liveMapEncounterZone--HTZ.liveMapEncounterZone--selected polygon{
  fill: var(--color-encounter-fill-htz-selected);
}
.liveMapEncounterZones .liveMapEncounterZone--MTZ.liveMapEncounterZone--selected polygon{
  fill: var(--color-encounter-fill-mtz-selected);
}
.liveMapEncounterZones .liveMapEncounterZone--LTZ.liveMapEncounterZone--selected polygon{
  fill: var(--color-encounter-fill-ltz-selected);
}
.liveMapEncounterZones .liveMapEncounterZone--LPC.liveMapEncounterZone--selected polygon,
.liveMapEncounterZones .liveMapEncounterZone--kindLpc.liveMapEncounterZone--LPC.liveMapEncounterZone--selected polygon{
  fill: none;
  stroke-width: 2.5;
  stroke-opacity: 1;
}
.liveMapEncounterZones .liveMapEncounterZone:hover polygon{
  stroke-width: 1.75;
  stroke-opacity: 1;
}
.liveMapEncounterZones .liveMapEncounterZone--HTZ:hover polygon{
  fill: var(--color-encounter-fill-htz-hover);
}
.liveMapEncounterZones .liveMapEncounterZone--MTZ:hover polygon{
  fill: var(--color-encounter-fill-mtz-hover);
}
.liveMapEncounterZones .liveMapEncounterZone--LTZ:hover polygon{
  fill: var(--color-encounter-fill-ltz-hover);
}
.liveMapEncounterZones .liveMapEncounterZone--LPC:hover polygon,
.liveMapEncounterZones .liveMapEncounterZone--kindLpc.liveMapEncounterZone--LPC:hover polygon{
  fill: none;
  stroke-width: 2;
  stroke-opacity: 1;
}
.liveMapEncounterZones .liveMapEncounterZone:focus{
  outline: none;
}
.liveMapEncounterZones .liveMapEncounterZone:focus-visible polygon{
  stroke: var(--color-focus-accent);
  stroke-width: 2;
}
.lmEncounterZoneLegend__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--size-2);
}
.lmEncounterZoneLegend__item--disabled{
  opacity: 0.55;
}
.lmEncounterZoneLegend__label{
  display: flex;
  align-items: center;
  gap: var(--size-3);
  cursor: pointer;
  line-height: 1.3;
}
.lmEncounterZoneLegend__check{
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.lmEncounterZoneLegend__swatch{
  flex-shrink: 0;
  width: 1.5em;
  height: 1em;
  border-radius: var(--radius-sm);
  border: 2px solid currentColor;
}
.lmEncounterZoneLegend__swatch--htz{
  background: var(--color-encounter-htz);
  border-color: var(--color-encounter-htz);
}
.lmEncounterZoneLegend__swatch--mtz{
  background: var(--color-encounter-mtz);
  border-color: var(--color-encounter-mtz);
}
.lmEncounterZoneLegend__swatch--ltz{
  background: var(--color-encounter-ltz);
  border-color: var(--color-encounter-ltz);
}
.lmEncounterZoneLegend__swatch--lpc{
  background: var(--color-encounter-lpc);
  border-color: var(--color-encounter-lpc);
}
.lmEncounterZoneLegend__note{
  color: var(--color-text-muted);
  font-weight: 400;
  font-size: 0.9em;
}
.lmEncounterZoneTip{
  position: fixed;
  z-index: 60;
  pointer-events: auto;
  max-width: min(24em, calc(100vw - 1.5em));
  padding: var(--size-3) var(--size-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background-color: var(--color-surface-elevated, #1a2332);
  box-shadow: var(--shadow-panel);
  color: var(--color-text);
  font-size: var(--size-3);
}
.lmEncounterZoneTip__inner{
  position: relative;
}
.lmEncounterZoneTip__close{
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  place-items: center;
  width: 1.75em;
  height: 1.75em;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-text-muted);
  font-size: 1.25em;
  line-height: 1;
  cursor: pointer;
}
.lmEncounterZoneTip__close:hover{
  background: rgb(255 255 255 / 0.08);
  color: var(--color-text);
}
.lmEncounterZoneTip__title{
  margin: 0 1.5em var(--size-2) 0;
  font-weight: 600;
  font-size: var(--size-5);
}
.lmEncounterZoneTip__meta{
  margin: 0 0 var(--size-3);
  display: flex;
  align-items: center;
  gap: var(--size-2);
  color: var(--color-text-muted);
  font-size: 0.92em;
  word-break: break-word;
}
.lmEncounterZoneTip__tierSwatch{
  flex-shrink: 0;
  width: 0.75em;
  height: 0.75em;
  border-radius: 2px;
}
.lmEncounterZoneTip__tier{
  font-weight: 600;
}
.lmEncounterZoneTip__stats{
  margin: 0 0 var(--size-3);
  padding-right: 1.5em;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--size-2) var(--size-3);
  align-items: baseline;
}
.lmEncounterZoneTip__stats dt{
  margin: 0;
  font-weight: 500;
  color: var(--color-text-muted);
}
.lmEncounterZoneTip__stats dd{
  margin: 0;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  text-align: right;
}
.lmEncounterZoneTip__encounters{
  margin: 0;
  padding: 0 0 0 1.1em;
  color: var(--color-text-muted);
  font-size: 0.92em;
}
.lmEncounterZoneTip__type{
  font-size: 0.9em;
}
.liveMapNpcTracker .liveMapNpc{
  cursor: pointer;
  transform: scale(var(--lm-marker-scale, 1));
  transform-box: fill-box;
  transform-origin: center;
}
.liveMapNpcTracker .liveMapNpc .marker-icon{
  filter: drop-shadow(var(--shadow-marker));
  stroke: var(--color-white);
  stroke-width: 0.5;
  transition: transform 0.15s ease-in-out, fill 0.15s ease-in-out, stroke-width 0.15s ease-in-out, opacity 0.15s ease-in-out;
}
.liveMapNpcTracker .liveMapNpc--dead .marker-icon{
  opacity: 0.45;
  stroke-dasharray: 1.5 1;
}
.liveMapNpcTracker .liveMapNpc--engaged .marker-icon{
  stroke-width: 1;
}
.liveMapNpcTracker .liveMapNpc--selected .marker-icon,
.liveMapNpcTracker .liveMapNpc:focus-visible .marker-icon{
  stroke: var(--color-focus-accent, var(--color-selected));
  stroke-width: 1.25;
}
.liveMapNpcTracker .liveMapNpc:focus{
  outline: none;
}
.lmNpcTrackerLegend__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--size-2);
}
.lmNpcTrackerLegend__label{
  display: flex;
  align-items: center;
  gap: var(--size-3);
  cursor: pointer;
  line-height: 1.3;
}
.lmNpcTrackerLegend__check{
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.lmNpcTrackerLegend__swatch{
  flex-shrink: 0;
  width: 0.85em;
  height: 0.85em;
  border-radius: 50%;
  border: 2px solid currentColor;
}
.lmNpcTrackerLegend__swatch--guard{
  background: var(--color-npc-guard);
  border-color: var(--color-npc-guard);
}
.lmNpcTrackerLegend__swatch--drifter{
  background: var(--color-npc-drifter);
  border-color: var(--color-npc-drifter);
}
.lmNpcTrackerLegend__swatch--zombie{
  background: var(--color-npc-zombie);
  border-color: var(--color-npc-zombie);
}
.lmNpcTrackerLegend__swatch--animal{
  background: var(--color-npc-animal);
  border-color: var(--color-npc-animal);
}
.lmNpcTrackerLegend__swatch--sentry{
  background: var(--color-npc-sentry);
  border-color: var(--color-npc-sentry);
}
.lmNpcTrackerLegend__swatch--drone{
  background: var(--color-npc-drone);
  border-color: var(--color-npc-drone);
}
.lmNpcTrackerLegend__swatch--unknown{
  background: var(--color-npc-unknown);
  border-color: var(--color-npc-unknown);
}
.lmNpcTrackerLegend__swatch--dead{
  background: transparent;
  border-style: dashed;
  border-color: var(--color-npc-unknown);
  opacity: 0.7;
}
.lmNpcTrackerLegend__item:has(.lmNpcTrackerLegend__check:not(:checked)){
  opacity: 0.55;
}
.lmNpcTrackerLegend__item--dead{
  margin-top: var(--size-2);
  padding-top: var(--size-2);
  border-top: 1px solid var(--color-border-subtle);
}
.lmNpcTrackerTip{
  position: fixed;
  z-index: 60;
  pointer-events: auto;
  max-width: min(24em, calc(100vw - 1.5em));
  padding: var(--size-3) var(--size-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background-color: var(--color-surface-elevated, #1a2332);
  box-shadow: var(--shadow-panel);
  color: var(--color-text);
  font-size: var(--size-3);
}
.lmNpcTrackerTip__inner{
  position: relative;
}
.lmNpcTrackerTip__close{
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  place-items: center;
  width: 1.75em;
  height: 1.75em;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-text-muted);
  font-size: 1.25em;
  line-height: 1;
  cursor: pointer;
}
.lmNpcTrackerTip__close:hover{
  color: var(--color-text);
  background: var(--color-surface-hover);
}
.lmNpcTrackerTip__title{
  margin: 0 var(--size-6) var(--size-2) 0;
  font-weight: 600;
  font-size: 1.05em;
}
.lmNpcTrackerTip__meta{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--size-2);
  margin: 0 0 var(--size-3);
  color: var(--color-text-muted);
  font-size: 0.92em;
}
.lmNpcTrackerTip__swatch{
  width: 0.75em;
  height: 0.75em;
  border-radius: 50%;
  border: 1px solid currentColor;
}
.lmNpcTrackerTip__swatch--guard{ background: var(--color-npc-guard); border-color: var(--color-npc-guard); }
.lmNpcTrackerTip__swatch--drifter{ background: var(--color-npc-drifter); border-color: var(--color-npc-drifter); }
.lmNpcTrackerTip__swatch--zombie{ background: var(--color-npc-zombie); border-color: var(--color-npc-zombie); }
.lmNpcTrackerTip__swatch--animal{ background: var(--color-npc-animal); border-color: var(--color-npc-animal); }
.lmNpcTrackerTip__swatch--sentry{ background: var(--color-npc-sentry); border-color: var(--color-npc-sentry); }
.lmNpcTrackerTip__swatch--drone{ background: var(--color-npc-drone); border-color: var(--color-npc-drone); }
.lmNpcTrackerTip__swatch--unknown{ background: var(--color-npc-unknown); border-color: var(--color-npc-unknown); }
.lmNpcTrackerTip__status{
  font-weight: 600;
}
.lmNpcTrackerTip__status--alive{
  color: var(--color-status-dot-online);
}
.lmNpcTrackerTip__status--dead{
  color: var(--color-text-muted);
}
.lmNpcTrackerTip__stats{
  margin: 0;
  padding-right: 1.5em;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--size-2) var(--size-3);
  align-items: baseline;
}
.lmNpcTrackerTip__stats dt{
  margin: 0;
  font-weight: 500;
  color: var(--color-text-muted);
}
.lmNpcTrackerTip__stats dd{
  margin: 0;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  text-align: right;
}
.lmNpcTrackerTip__loc{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--size-2);
  max-width: 16em;
}
.lmNpcTrackerTip__coords{
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-variant-numeric: tabular-nums;
  font-size: 0.92em;
  word-break: break-all;
  user-select: all;
}
.lmNpcTrackerTip__copy{
  flex-shrink: 0;
  margin: 0;
  padding: 0.15em 0.55em;
  border: 1px solid var(--color-border-subtle, oklch(1 0 0 / 0.12));
  border-radius: var(--radius-sm);
  background: var(--color-surface-input, oklch(0 0 0 / 0.22));
  color: var(--color-text);
  font: inherit;
  font-size: 0.85em;
  font-weight: 600;
  cursor: pointer;
}
.lmNpcTrackerTip__copy:hover{
  background: var(--color-surface-hover);
}
.lmNpcTrackerTip__copy:focus-visible{
  outline: 2px solid var(--color-focus-accent, var(--color-selected));
  outline-offset: 2px;
}
.lmNpcTrackerTip__copy:disabled{
  cursor: default;
  opacity: 0.85;
}
.liveMapInfoCol{
  position: relative;
  display: grid;
  gap: var(--size-4);
  min-height: calc(100dvh - var(--lm-pad-top) - var(--lm-pad-bottom));
  overflow-y: auto;
  padding: 0;
  min-width: 0;
}

/* When fixed detail panels are visible, ensure scrollable content can clear them. */
body.lmHasFixedDetailPanel .liveMapInfoCol{
  padding-bottom: calc(78vh + var(--lm-gap) + var(--lm-pad-bottom));
}
@media (max-width: 1080px){
  body.lmHasFixedDetailPanel .liveMapInfoCol{
    padding-bottom: calc(70vh + var(--lm-gap) + var(--lm-pad-bottom));
  }
}
.liveMapDataPanel{
  display: flex;
  flex-direction: column;
  gap: var(--size-4);
  min-width: 0;
  font-size: clamp(14px, 1vw, 18px);
  max-width: 99%;
}
.liveMapDataControlsRow{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-4);
  flex-direction: row-reverse;
  font-size: clamp(var(--size-3), 2vw, var(--size-4));
}
.liveMapDataControlsRow .liveMapDataControls{
  margin-bottom: 0;
}
.liveMapDataControlsRow__actions{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--size-2);
}

.landingToolbar .liveMapDataControlsRow__actions{
  flex: 1;
}

.lmHelpLink,
.lmAdminOpenBtn,
.lmAuthBtn,
.liveMapToggle span{
  filter: grayscale(1) brightness(1.25);
  padding: var(--size-1);
  padding-bottom: 0;
  line-height: 1.25;
}
.liveMapToggle span{
  color: inherit;
  transition: color 120ms ease, filter 120ms ease;
}
.liveMapToggle span svg{
  display: block;
  fill: currentColor;
}
.liveMapToggle.is-active span,
.liveMapToggleInput:checked + span{
  filter: none;
  color: var(--color-selected);
}
.liveMapToggle--invert .liveMapToggleInput:checked + span{
  filter: grayscale(1) brightness(1.25);
  color: inherit;
}
.liveMapToggle--invert .liveMapToggleInput:not(:checked) + span{
  filter: none;
  color: var(--color-selected);
}
@media (prefers-reduced-motion: reduce){
  .liveMapToggle span{
    transition: none;
  }
}
.lmHelpLink,
.lmAuthBtn{
  display: block;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: inherit;
}
button.lmAuthBtn{
  font: inherit;
  appearance: none;
}

.loadingIn{
  display: inline-flex;
  align-items: center;
  gap: var(--size-1);
}
.loadingIn svg{
  width: 1em;
  height: 1em;
  display: inline-block;
  vertical-align: -0.15em;
  fill: var(--text);
  color: var(--text);
}

html:has(body.lmAdminDialogOpen),
body.lmAdminDialogOpen{
  overflow: hidden;
}
body.lmAdminDialogOpen .liveMapInfoCol{
  overflow: hidden;
}

.lmAdminDialog{
  --lm-admin-form-duration: 280ms;
  --lm-admin-form-ease: cubic-bezier(0.22, 1, 0.36, 1);
  border: 0;
  padding: 0;
  margin: auto;
  max-width: min(44em, calc(100vw - 2em));
  max-width: min(44em, calc(100dvw - 2em));
  width: 100%;
  max-height: calc(100vh - 2em);
  max-height: calc(100dvh - 2em);
  min-height: 0;
  overflow: hidden;
  background: var(--color-transparent);
  color: var(--text);
  font-size: clamp(0.75em, 1vw, 1em);
  interpolate-size: allow-keywords;
}
.lmAdminDialog:not([open]){
  display: none;
}
.lmAdminDialog[open]{
  display: flex;
  flex-direction: column;
}
.lmAdminDialog::backdrop{
  background: var(--color-overlay-strong);
}
.lmAdminDialogSurface{
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  transition: height var(--lm-admin-form-duration) var(--lm-admin-form-ease);
}
.lmAdminDialogSurface.lmAdminDialogSurface--sizing{
  overflow: hidden;
}
@keyframes lmAdminFormEnter{
  from{
    opacity: 0;
    transform: translateY(0.35em);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}
.lmAdminPanel:not([hidden]){
  animation: lmAdminFormEnter var(--lm-admin-form-duration) var(--lm-admin-form-ease);
}
.lmAdminDialog #lmSendItemContainerSection:not([hidden]),
.lmAdminDialog #lmSendItemVehicleSection:not([hidden]),
.lmAdminDialog #lmMessageChatFields:not([hidden]),
.lmAdminDialog #lmMessageWarningFields:not([hidden]),
.lmAdminDialog #lmMessageKillfeedFields:not([hidden]),
.lmAdminDialog #lmMessageDiscordFields:not([hidden]),
.lmAdminDialog #lmMessageSteamTarget:not([hidden]),
.lmAdminDialog #lmPopupBuilder:not([hidden]),
.lmAdminDialog #lmPopupSpawnHordeForm:not([hidden]),
.lmAdminDialog #lmPopupCargoDropNpcsForm:not([hidden]),
.lmAdminDialog #lmPopupPoiForm:not([hidden]),
.lmAdminDialog #lmPopupEventsPlaceholder:not([hidden]),
.lmAdminDialog .lmMessagesOut:not([hidden]){
  animation: lmAdminFormEnter calc(var(--lm-admin-form-duration) * 0.9) var(--lm-admin-form-ease);
}
@media (prefers-reduced-motion: reduce){
  .lmAdminDialogSurface{
    transition: none;
  }
  .lmAdminPanel:not([hidden]),
  .lmAdminDialog #lmSendItemContainerSection:not([hidden]),
  .lmAdminDialog #lmSendItemVehicleSection:not([hidden]),
  .lmAdminDialog #lmMessageChatFields:not([hidden]),
  .lmAdminDialog #lmMessageWarningFields:not([hidden]),
  .lmAdminDialog #lmMessageKillfeedFields:not([hidden]),
  .lmAdminDialog #lmMessageDiscordFields:not([hidden]),
  .lmAdminDialog #lmMessageSteamTarget:not([hidden]),
  .lmAdminDialog #lmPopupBuilder:not([hidden]),
  .lmAdminDialog #lmPopupSpawnHordeForm:not([hidden]),
  .lmAdminDialog #lmPopupCargoDropNpcsForm:not([hidden]),
  .lmAdminDialog #lmPopupPoiForm:not([hidden]),
  .lmAdminDialog #lmPopupEventsPlaceholder:not([hidden]),
  .lmAdminDialog .lmMessagesOut:not([hidden]){
    animation: none;
  }
}
.lmAdminDialogClose{
  flex-shrink: 0;
  width: var(--size-5);
  height: var(--size-5);
  font-size: var(--size-6);
  border: 0;
  border-radius: var(--size-1);
  background: var(--color-surface-soft);
  color: var(--color-close-button);
  float: right;
  cursor: pointer;
}
.lmAdminDialogClose .icon{
  display: block;
  margin: auto;
}
.lmAdminDialogClose:hover{
  background: var(--color-close-button);
  color: var(--muted);
}
.lmAdminDialogClose:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
}
.lmAdminDialog .lmAdminActions{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
  clear: both;
  margin: 0;
  overflow: hidden;
}
.lmAdminDialog--tabs{
  max-width: min(62em, calc(100vw - 2em));
  max-width: min(62em, calc(100dvw - 2em));
}
.lmAdminDialog--tabs .lmAdminDialogSurface{
  overflow: hidden;
  max-height: 100%;
}
.lmAdminDialog--tabs .lmAdminDialogSurface.lmAdminDialogSurface--sizing{
  overflow: hidden;
}
.lmAdminDialog input,
.lmAdminDialog select,
.lmAdminDialog textarea,
.lmAdminDialog button{
  box-sizing: border-box;
}
.lmAdminDialogHeader{
  display: flex;
  flex-shrink: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--size-2);
  margin-bottom: var(--size-2);
}
.lmAdminDialog--tabs .lmAdminDialogClose{
  float: none;
  line-height: 0;
  padding: 0;
}
.lmAdminDialogHeader .lmAdminDialogTitle{
  margin: 0;
}
.lmAdminTablistWrap{
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  gap: var(--size-1);
  align-items: center;
  margin-bottom: var(--size-3);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid var(--color-border-subtle);
}
.lmAdminPanel{
  padding-top: var(--size-3);
}
.lmAdminPanel:not([hidden]){
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
}
.lmAdminPanel[hidden]{
  display: none !important;
}
.lmAdminPanel:not([hidden]):has(.lmLookupIdOut){
  overflow: hidden;
}
.lmAdminPanel:not([hidden]):has(.lmLookupIdOut) .lmAdminForm{
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.lmAdminPanel:not([hidden]):has(.lmLookupIdOut) .lmAdminForm > :not(.lmLookupIdOut){
  flex-shrink: 0;
}
.lmAdminForm{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
  min-width: 0;
}
.lmAdminForm--sendItem{
  position: relative;
  gap: var(--size-3);
}
.lmAdminForm--messages .lmAdminFormRow{
  align-items: flex-start;
}
.lmAdminForm--messages #lmMessageChatFields{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--size-2) var(--size-3);
  align-items: start;
}
@media (max-width: 768px){
  .lmAdminForm--messages #lmMessageChatFields{
    grid-template-columns: minmax(0, 1fr);
  }
}
.lmAdminForm--messages #lmMessageWarningFields{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: var(--size-2) var(--size-3);
  align-items: start;
}
.lmAdminForm--messages #lmMessageWarningFields > .field.lmMessageWarningColorField,
.lmAdminForm--messages #lmMessageWarningFields > .field.lmAdminField--duration{
  min-width: 0;
}
@media (max-width: 768px){
  .lmAdminForm--messages #lmMessageWarningFields{
    grid-template-columns: minmax(0, 1fr);
  }
  .lmAdminForm--messages #lmMessageWarningFields > .field.lmMessageWarningColorField,
  .lmAdminForm--messages #lmMessageWarningFields > .field.lmAdminField--duration{
    justify-self: start;
  }
}
.lmAdminForm--messages #lmMessageKillfeedFields{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--size-2) var(--size-3);
  align-items: start;
}
.lmAdminForm--messages #lmMessageKillfeedPrefix,
.lmAdminForm--messages #lmMessageKillfeedSuffix{
  color: var(--color-danger, #f87171);
}
@media (min-width: 48em){
  .lmAdminForm--messages #lmMessageKillfeedFields{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.lmAdminForm--messages #lmMessageDiscordFields{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--size-2) var(--size-3);
  align-items: start;
}
.lmAdminForm--messages #lmMessageDiscordFields > .field{
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
}
.lmAdminForm--messages #lmMessageDiscordFields > .field > textarea{
  width: 100%;
  min-height: 4.5em;
  resize: vertical;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  padding: var(--size-2) var(--size-4);
  background: var(--color-surface-input);
  color: var(--text);
  font-size: var(--size-4);
}
.lmAdminFormRow{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-end;
  gap: var(--size-2) var(--size-3);
}
.lmAdminFormRow[hidden]{
  display: none !important;
}
.lmAdminFormRow > .field{
  flex: 1 1 16ch;
  min-width: 0;
}
.lmAdminFormRow > .field > input,
.lmAdminFormRow > .field > textarea{
  width: 100%;
  max-width: 100%;
}
@supports (field-sizing: content){
  .lmAdminFormRow > .field > select{
    field-sizing: content;
  }
}
.lmAdminFormRow > .field.lmAdminField--primary{
  flex: 3 1 24ch;
}
.lmAdminFormRow > .field.lmAdminField--compact{
  flex: 0 1 auto;
  min-width: min(100%, 10em);
}
.lmAdminFormRow > .field.lmAdminField--duration{
  flex: 0 0 auto;
  width: 4.5em;
  min-width: 4.5em;
}
.lmAdminFormRow > .field.lmAdminField--duration input[type="number"]{
  text-align: center;
  padding-inline: var(--size-2);
  width: 100%;
}
.lmAdminFormRow > .field.lmAdminField--steam{
  flex: 0 1 22ch;
  min-width: min(100%, 22ch);
}
.lmAdminForm--messages #lmMessageSteamTarget > .field.lmAdminField--steam{
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  margin: 0;
}
.lmAdminForm--messages .lmPlayerOmniboxWrap{
  width: 100%;
  min-width: 0;
}
.lmAdminForm--messages .lmPlayerOmniboxInlineField{
  width: 100%;
}
.lmAdminForm--messages .lmPlayerOmniboxInlineField .lmPlayerOmniboxWrap{
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
}
.lmAdminForm--messages #lmMessageSteamTarget > .field.lmAdminField--steam .muted,
.lmAdminForm--messages .lmPlayerOmniboxHint{
  margin-top: var(--size-1);
  line-height: 1.35;
}
.lmPlayerOmniboxField{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  min-width: 0;
  width: 100%;
}
.lmPlayerOmniboxFieldHead{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
  min-width: 0;
}
.lmPlayerOmniboxFieldHead > .field__label{
  margin: 0;
  min-width: 0;
}
.lmPlayerOmniboxHint{
  margin: 0;
}
.lmPlayerOmniboxInlineField{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  min-width: 0;
}
.lmPlayerOmniboxInlineField .lmPlayerOmniboxWrap{
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}
.lmPlayerOmniboxWrap:has(.lmPlayerOmniboxClear:not([hidden])) .lmPlayerOmnibox{
  padding-right: 2.75em;
  background-image: none;
}
.lmPlayerOmniboxClear{
  appearance: none;
  position: absolute;
  z-index: 2;
  top: 50%;
  right: var(--size-4);
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75em;
  height: 1.75em;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--size-2);
  background: transparent;
  color: var(--color-close-button);
  cursor: pointer;
}
.lmPlayerOmniboxClear:hover{
  color: var(--text);
  background: var(--color-surface-soft);
}
.lmPlayerOmniboxClear:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.lmPlayerOmniboxClear[hidden]{
  display: none !important;
}
.lmPlayerOmniboxClear__icon{
  display: inline-flex;
  line-height: 0;
}
.lmPlayerOmniboxFilterToggle{
  appearance: none;
  margin: 0;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--size-1);
  min-height: 2em;
  padding: var(--size-1) var(--size-2);
  border: var(--border) solid transparent;
  border-radius: var(--size-2);
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: var(--size-3);
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
  transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
}
.lmPlayerOmniboxFilterToggle:hover{
  color: var(--text);
  background: var(--color-surface-soft);
}
.lmPlayerOmniboxFilterToggle:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.lmPlayerOmniboxFilterToggle[aria-expanded='true'],
.lmPlayerOmniboxFilterToggle.lmPlayerOmniboxFilterToggle--active{
  color: var(--text);
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-active);
}
.lmPlayerOmniboxFilterToggle .lmFilterToggle__icon{
  display: inline-flex;
  line-height: 0;
}
.lmPlayerOmniboxFilterBadge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35em;
  min-height: 1.35em;
  padding: 0 0.35em;
  border-radius: 999px;
  background: var(--color-selected);
  color: var(--text);
  font-size: 0.85em;
  font-weight: 700;
  line-height: 1;
}
.lmPlayerOmniboxFilterBadge[hidden]{
  display: none !important;
}
.lmPlayerOmniboxFilterPanel.lmFilterPanel{
  position: absolute;
  z-index: 60;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  margin: 0;
  padding: var(--size-3);
  max-height: min(22em, 52vh);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--bg);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
  overflow-x: hidden;
  overflow-y: auto;
  font-size: var(--size-4);
}
.lmPlayerOmniboxFilterPanelHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--size-2);
}
.lmPlayerOmniboxFilterPanelTitle{
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--size-3);
  font-weight: 650;
  color: var(--muted);
  line-height: 1.35;
}
.lmPlayerOmniboxFilterClear{
  appearance: none;
  margin: 0;
  flex-shrink: 0;
  padding: var(--size-1) var(--size-2);
  border: 0;
  border-radius: var(--size-2);
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: var(--size-3);
  font-weight: 650;
  cursor: pointer;
}
.lmPlayerOmniboxFilterClear:hover{
  color: var(--text);
  background: var(--color-surface-soft);
}
.lmPlayerOmniboxFilterClear:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.lmPlayerOmniboxFilterClear[hidden]{
  display: none !important;
}
.lmPlayerOmniboxFilterGroups{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
}
.lmPlayerOmniboxFilterGroup{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  min-width: 0;
}
.lmPlayerOmniboxFilterGroupLabel{
  font-size: var(--size-3);
  font-weight: 650;
  color: var(--text);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.lmPlayerOmniboxFilterChips{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
  align-items: center;
}
.lmPlayerOmniboxFilterChip{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--size-1);
  max-width: 100%;
  min-height: 2em;
  padding: var(--size-1) var(--size-2);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--color-surface-input);
  color: var(--muted);
  font-size: var(--size-3);
  font-weight: 650;
  line-height: 1.2;
  cursor: pointer;
  transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
}
.lmPlayerOmniboxFilterChip:hover{
  color: var(--text);
  background: var(--color-surface-soft);
}
.lmPlayerOmniboxFilterChip:has(.lmPlayerOmniboxFilterChip__input:focus-visible){
  box-shadow: var(--focus);
}
.lmPlayerOmniboxFilterChip:has(.lmPlayerOmniboxFilterChip__input:checked){
  color: var(--text);
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-active);
}
.lmPlayerOmniboxFilterChip__input{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.lmPlayerOmniboxFilterChip .lmFilterChip__icon{
  flex-shrink: 0;
  width: 0.65em;
  height: 0.65em;
}
.lmPlayerOmniboxFilterChip .lmFilterChip__icon--drone,
.lmPlayerOmniboxFilterChip .lmFilterChip__icon--admin{
  width: auto;
  height: auto;
  display: inline-flex;
  line-height: 0;
}
.lmPlayerOmniboxFilterChip .lmFilterChip__icon svg{
  display: block;
}
.lmPlayerOmniboxFilterChip__label{
  min-width: 0;
}
.lmAdminFormRow > .btn{
  flex: 0 0 auto;
  align-self: flex-end;
  min-height: var(--size-btn-minh);
  max-width: 100%;
}
.lmAdminForm--messages > .lmAdminSubmitRow{
  align-self: stretch;
  width: 100%;
  margin-top: var(--size-1);
}
.lmAdminSubmitRow{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
  width: 100%;
}
.lmAdminSubmitRow--end{
  width: auto;
  justify-content: flex-end;
}
.lmAdminFormRow > .lmAdminSubmitRow{
  align-self: stretch;
  margin: -.25em 0.25em 0.25em;
}
.lmMessagesOutToggle{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25em;
  min-height: 2.25em;
  padding: 0.35em;
  line-height: 0;
}
.lmMessagesOutToggle--active{
  color: var(--accent);
  background: color-mix(in oklab, var(--accent) 12%, transparent);
}
.lmMessagesOut[hidden]{
  display: none !important;
}
.lmMessagesOut:not([hidden]){
  flex-shrink: 0;
  margin-top: var(--size-2);
  max-height: 12em;
  overflow: auto;
}
.lmAdminPopupIntro{
  margin: 0 0 var(--size-2);
  color: var(--text);
}
@supports (field-sizing: content){
  .lmPopupEventField select{
    field-sizing: content;
  }
}
.lmPopupEventSelect{
  min-height: var(--size-btn-minh);
  border: var(--border) solid var(--panelBorder);
  background: var(--color-surface-input);
  color: var(--text);
  font-weight: 600;
}

.lmPopupEventHint{
  margin-top: var(--size-3);
}
.lmPopupEventForm{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
  margin-top: 0;
}
.lmPopupCargoForm{
  gap: var(--size-3);
}
.lmPopupOptionalTag{
  margin-left: 0.35em;
  font-weight: 500;
  font-size: 0.85em;
  color: var(--muted);
}
.lmPopupOptionalTag::before{
  content: "(";
}
.lmPopupOptionalTag::after{
  content: ")";
}

.lmAdminFormRow > .field.lmMessageWarningColorField{
  flex: 0 0 auto;
  width: var(--size-btn-minh);
  min-width: var(--size-btn-minh);
}

.lmMessageWarningColor{
  display: block;
  box-sizing: border-box;
  height: var(--size-btn-minh);
  width: var(--size-btn-minh);
  padding: var(--size-1);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--color-surface-input);
}
.lmMessageWarningColor::-webkit-color-swatch-wrapper{
  padding: 0;
}
.lmMessageWarningColor::-webkit-color-swatch{
  border: 0;
  border-radius: calc(var(--size-2) - var(--size-1));
}
.lmMessageWarningColor::-moz-color-swatch{
  border: 0;
  border-radius: calc(var(--size-2) - var(--size-1));
}

.lmPopupEventForm[hidden]{
  display: none !important;
}
.lmPopupCoordsRow{
  align-items: flex-end;
  justify-content: flex-start;
  margin-bottom: 0;
}
.lmPopupLocationSection .lmPopupCoordsRow{
  gap: var(--size-2) var(--size-3);
}
.lmPopupUseMapBtn{
  flex: 0 0 auto;
  min-height: var(--size-btn-minh);
}
.lmAdminFormRow > .field.lmPopupDespawnField{
  flex: 0 1 12em;
  min-width: min(100%, 10em);
  max-width: 14em;
}
body.lmMapPickActive,
body.lmMapPickActive *{
  cursor: crosshair !important;
}
.lmPopupSpawnRows{
  display: flex;
  flex-direction: column;
  gap: 1.25ch;
  margin-top: 0;
}
.lmPopupSpawnRow{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1ch 1.5ch;
}
.lmPopupSpawnRow > .field:nth-child(1){
  flex: 2 1 14ch;
  min-width: 0;
}
.lmPopupSpawnRow > .field:nth-child(2){
  flex: 3 1 20ch;
  min-width: 0;
}
.lmPopupSpawnRow > .field:nth-child(3){
  flex: 0 1 10ch;
  min-width: min(100%, 10ch);
}
.lmPopupSpawnRow > .lmPopupSpawnemove{
  flex: 0 0 auto;
}
.lmPopupSpawnAdd{
  margin-top: 0;
}
.lmPopupSpawnemove{
  width: var(--size-btn-minh);
  height: var(--size-btn-minh);
  padding: 0;
}
@media (max-width: 768px){
  .lmPopupSpawnRow > .field:nth-child(n){
    flex: 1 1 100%;
    min-width: 0;
  }
  .lmPopupSpawnemove{
    width: 100%;
  }
}
.lmPopupPatternGrid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--size-3);
  align-items: start;
}
@media (min-width: 52em){
  .lmPopupPatternGrid:has(> :nth-child(2)){
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.lmPopupPatternCard{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  border: calc(var(--border) / 2) solid var(--panelBorder);
  border-radius: var(--radius);
  padding: var(--size-3);
  background: var(--color-panel-elevated);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}
.lmPopupPatternCard__head{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
}
.lmPopupPatternTitle{
  margin: 0;
  font-size: var(--size-4);
  font-weight: 650;
  color: var(--text);
}
.lmPopupPatternSubtitle{
  margin: 0;
  font-size: 0.85em;
  font-weight: 500;
  color: var(--muted);
  line-height: 1.35;
}
.lmPopupNpcPrimaryRow{
  justify-content: flex-start;
  margin: 0;
}
.lmAdminFormRow > .field.lmPopupNpcCountField{
  flex: 0 0 7.5em;
  min-width: 7.5em;
  max-width: 7.5em;
}
.lmPopupPatternFields{
  display: flex;
  flex-wrap: wrap;
  gap: 1ch 1.25ch;
}
.lmPopupPatternFields > .field{
  flex: 1 1 9ch;
  min-width: 0;
}
.lmPopupPatternCard .lmPopupEventHint{
  margin: 0;
  font-size: 0.85em;
  line-height: 1.4;
  color: var(--muted);
}
.lmPopupActions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1ch 1.25ch;
  margin: var(--size-4) var(--size-2);
}
.lmPopupActions--bar{
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin: var(--size-3) 0 0;
  padding: var(--size-3);
  border: calc(var(--border) / 2) solid var(--panelBorder);
  border-radius: var(--radius);
  background: color-mix(in oklab, var(--color-panel-elevated) 92%, black);
  box-shadow: 0 -0.5em 1.25em oklch(0 0 0 / 0.28);
  backdrop-filter: blur(8px);
}
.lmPopupActionBtns{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 1ch 1.25ch;
  margin-left: auto;
}
.lmPopupActions > .btn,
.lmPopupActionBtns > .btn{
  flex: 0 0 auto;
}
.lmPopupStatus{
  margin: 0;
  white-space: pre-wrap;
}
.lmStatsIntro{
  margin: 0;
  font-size: 0.9em;
  line-height: 1.45;
}
.lmAdminForm--stats{
  gap: var(--size-2);
}
.lmStatsPlayerSection{
  gap: var(--size-2);
}
.lmStatsSectionHead{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--size-1) var(--size-2);
  margin-bottom: var(--size-2);
}
.lmStatsSectionHead .lmSendItemSectionTitle{
  margin: 0;
}
.lmStatsSectionHint{
  margin: 0;
  font-size: 0.85em;
}
.lmStatsAttrSection,
.lmStatsSkillsSection{
  gap: var(--size-2);
}
.lmStatsAttrGaugeRow{
  margin-top: var(--size-1);
}
.lmStatsAttrEditor{
  gap: var(--size-1);
}
.lmStatsAttrShortLabel{
  font-weight: 800;
  letter-spacing: 0.14em;
  font-size: 0.72em;
  text-transform: uppercase;
}
.lmStatsAttrName{
  font-size: 0.78em;
  text-align: center;
  line-height: 1.2;
}
.lmStatsAttrGauge{
  position: relative;
}
.lmStatsAttrGaugeSvg{
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.lmStatsAttrGaugeSvg .lmAttrGauge__svg{
  position: absolute;
  inset: 0;
}
.lmStatsAttrGauge .lmAttrGauge__value{
  display: none;
}
.lmStatsAttrGauge--preview .lmAttrGauge__value{
  display: grid;
  opacity: 0.72;
}
.lmStatsAttrGauge--preview .lmStatsAttrInput{
  color: transparent;
  caret-color: color-mix(in oklab, currentColor 80%, var(--text));
  text-shadow: none;
}
.lmStatsAttrInput{
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: clamp(0.95em, 2.8vw, 1.2em);
  font-weight: 800;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}
.lmStatsAttrInput::-webkit-outer-spin-button,
.lmStatsAttrInput::-webkit-inner-spin-button{
  -webkit-appearance: none;
  margin: 0;
}
.lmStatsAttrInput::placeholder{
  color: color-mix(in oklab, currentColor 42%, transparent);
  opacity: 0.5;
}
.lmStatsAttrInput:focus{
  outline: none;
  box-shadow: inset 0 0 0 2px color-mix(in oklab, currentColor 55%, transparent);
}
.lmStatsAttrGauge--preview .lmStatsAttrInput:not(:focus){
  opacity: 0.72;
}
.lmStatsAttrGauge--pulse .lmAttrGauge__fills{
  animation: lmStatsGaugePulse 0.55s ease;
}
@keyframes lmStatsGaugePulse{
  0%{ filter: drop-shadow(0 0 5px color-mix(in oklab, currentColor 50%, transparent)); }
  45%{ filter: drop-shadow(0 0 14px color-mix(in oklab, currentColor 85%, transparent)); }
  100%{ filter: drop-shadow(0 0 5px color-mix(in oklab, currentColor 50%, transparent)); }
}
.lmStatsAttrGauge .lmAttrGauge__fill{
  transition: stroke-dasharray 0.45s cubic-bezier(0.33, 1, 0.68, 1);
}
.lmStatsSkillTabBar{
  margin-bottom: 0;
  border-radius: var(--size-1) var(--size-1) 0 0;
}
.lmStatsSkillPanels{
  display: grid;
  min-width: 0;
  border: var(--border) solid var(--color-row-selected-bg);
  border-top: none;
  border-radius: 0 0 var(--size-1) var(--size-1);
  overflow: hidden;
}
.lmStatsSkillPanel{
  grid-area: 1 / 1;
  min-width: 0;
}
.lmStatsSkillPanel--inactive{
  visibility: hidden;
  pointer-events: none;
  user-select: none;
}
.lmStatsSkillPanel:not(.lmStatsSkillPanel--inactive){
  z-index: 1;
}
.lmStatsSkillList{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--size-1);
  padding: var(--size-2);
  min-width: 0;
}
.lmStatsSkillRow{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
  margin: 0;
  min-width: 0;
  padding: 0.5em 0.65em;
  border-radius: var(--radius);
  border: calc(var(--border) / 2) solid var(--panelBorder);
  background: color-mix(in oklab, var(--color-panel-elevated) 88%, transparent);
}
.lmStatsSkillName{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.82em;
  font-weight: 650;
  color: var(--text);
  line-height: 1.25;
}
.lmStatsSkillInput{
  flex: 0 0 2.35em;
  width: 2.35em;
  margin: 0;
  padding: 0.35em 0.2em;
  border-radius: calc(var(--radius) - 2px);
  border: var(--border) solid var(--panelBorder);
  background: var(--bg);
  color: var(--text);
  font: inherit;
  font-size: 0.9em;
  font-variant-numeric: tabular-nums;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}
.lmStatsSkillInput::-webkit-outer-spin-button,
.lmStatsSkillInput::-webkit-inner-spin-button{
  -webkit-appearance: none;
  margin: 0;
}
.lmStatsSkillInput:focus{
  outline: none;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--panelBorder));
  box-shadow: var(--focus);
}
.lmStatsSkillInput::placeholder{
  color: var(--muted);
  opacity: 0.85;
}
.lmStatsActions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
  width: 100%;
  padding-top: var(--size-1);
}
@media (max-width: 720px){
  .lmStatsSkillList{
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 520px){
  .lmStatsAttrGaugeRow{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--size-3) var(--size-2);
  }
}
.lmPopupPoiHordeSection{
  display: flex;
  flex-direction: column;
  gap: 1.25ch;
}
.lmPopupPoiHordeLayout{
  display: flex;
  align-items: flex-start;
  gap: 1.5ch;
}
.lmPopupPoiHordeControls{
  flex: 1 1 28em;
  min-width: 16em;
  display: flex;
  flex-direction: column;
  gap: 1ch;
}
.lmPopupPoiHordeTopRow{
  flex-wrap: wrap;
}
.lmPopupPoiSiteMap{
  flex: 0 0 min(360px, 100%);
  min-width: 0;
}
.lmPopupPoiSiteMapEmpty{
  margin: 0;
  font-size: var(--size-4);
  line-height: 1.4;
}
.lmPopupPoiSiteMapWrap{
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface-2, var(--bg));
}
.lmPopupPoiSiteMapSvg{
  display: block;
  width: 100%;
  height: auto;
}
.lmPopupPoiSiteMapImage{
  pointer-events: none;
}
.lmPopupPoiSiteMapCaption{
  margin: 0.4ch 0 0;
  font-size: var(--size-3);
  line-height: 1.35;
}
.lmPopupPoiAreaFieldset{
  margin: 0;
  padding: 0;
  border: none;
  min-width: 0;
}
.lmPopupPoiAreaLegend{
  float: none;
  width: 100%;
  padding: 0;
  margin: 0 0 0.75ch;
  font-size: var(--size-4);
  font-weight: 600;
  color: var(--text);
}
.lmPopupPoiAreaGrid{
  display: grid;
  grid-template-columns: repeat(2, minmax(12em, 1fr));
  gap: 0.65ch 1.25ch;
  align-items: center;
}

.lmPopupPoiAreaGrid:has(p){
    display: block;
}

@media (max-width: 768px){
  .lmPopupPoiHordeLayout{
    flex-direction: column;
  }
  .lmPopupPoiSiteMap{
    flex-basis: auto;
    width: 100%;
  }
  .lmPopupPoiAreaGrid{
    grid-template-columns: 1fr;
  }
}
.lmPopupPoiAreaItem{
  display: flex;
  align-items: center;
  gap: var(--size-2);
  font-size: var(--size-4);
  cursor: pointer;
}
.lmPopupPoiAreaItem input{
  width: var(--size-4);
  height: var(--size-4);
  flex-shrink: 0;
  accent-color: var(--color-focus-accent);
  padding: 0;
  min-height: 0;
}
.lmPopupPoiSpawnBlock{
  margin-top: 0.5ch;
}
.lmSendItemCatalog{
  margin: 0 0 var(--size-2);
  font-size: var(--size-4);
}
.lmSendItemPanel{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
}
/* Author `display: flex` above overrides the [hidden] attribute; keep spawn tabpanel off-screen when inactive. */
#lmAdminPanelSpawn[hidden],
.lmSendItemPanel[hidden]{
  display: none !important;
}
.lmSendItemHeader{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--size-3);
}
.lmSendItemHeader > div{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
}
.lmSendItemIntro{
  margin: 0;
  color: var(--muted);
  font-size: var(--size-4);
  line-height: 1.4;
  max-width: 36ch;
}
.lmSendItemModeField{
  flex: 0 0 auto;
  margin: 0;
  border: 0;
  padding: 0;
  min-width: 0;
}
select{
  appearance: none;
  -webkit-appearance: none;
  max-width: 100%;
  min-height: var(--size-btn-minh);
  line-height: 1.2;
  padding: calc(var(--size-2) - 1px) var(--size-4);
  padding-right: var(--size-6);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background-color: var(--color-surface-input);
  color: var(--text);
  font: inherit;
  cursor: pointer;
  background-image: var(--select-caret-bg-image);
  background-repeat: no-repeat;
  background-position: calc(100% - var(--size-4)) 60%;
  background-size: 1.5em 1.5em;
}


.lmPlayerOmnibox{
  appearance: none;
  -webkit-appearance: none;
  max-width: 100%;
  min-height: var(--size-btn-minh);
  line-height: 1.2;
  padding: calc(var(--size-2) - 1px) var(--size-4);
  padding-right: var(--size-6);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background-color: var(--color-surface-input);
  color: var(--text);
  font: inherit;
  cursor: pointer;
  background-image: var(--select-caret-bg-image);
  background-repeat: no-repeat;
  background-position: calc(100% - var(--size-4)) 60%;
  background-size: 1.5em 1.5em;
}


/* Hide the native arrow in old Edge/IE rendering modes */
select::-ms-expand{
  display: none;
}
select:hover{
  border-color: var(--color-control-border-active);
  background-color: var(--color-control-bg-pressed);
}
select option{
  color: var(--text);
  background: var(--color-menu-bg);
  padding: var(--size-2) var(--size-3);
}
select option[value=""]{
  color: var(--muted);
  font-style: italic;
}
.lmSendItemModeRadios .visually-hidden{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.lmSendItemModeOptions{
  display: flex;
  gap: var(--size-2);
}
.lmSendItemModeCard{
  position: relative;
  display: flex;
  flex: 1;
  margin: 0;
  cursor: pointer;
  min-width: 0;
}
.lmSendItemModeCard input{
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}
.lmSendItemModeCardBody{
  display: flex;
  flex-direction: column;
  gap: 0.15em;
  flex: 1 1 auto;
  min-width: 0;
  padding: var(--size-3);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--color-surface-input);
  color: var(--text);
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease;
}
.lmSendItemModeCard:hover:not(.lmSendItemModeCard--disabled) .lmSendItemModeCardBody{
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-pressed);
}
.lmSendItemModeCard:has(input:checked) .lmSendItemModeCardBody,
.lmSendItemModeCard input:checked + .lmSendItemModeCardBody{
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-active);
  box-shadow: inset 0 0 0 1px var(--color-control-border-active);
}
.lmSendItemModeCard:has(input:focus-visible) .lmSendItemModeCardBody,
.lmSendItemModeCard input:focus-visible + .lmSendItemModeCardBody{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
}
.lmSendItemModeCard--disabled{
  opacity: 0.55;
  cursor: not-allowed;
}
.lmSendItemModeCardTitle{
  font-weight: 650;
  line-height: 1.2;
}
.lmSendItemModeCardDesc{
  color: var(--muted);
  font-size: 0.85em;
  font-weight: 500;
  line-height: 1.25;
}
.lmSendItemModeOpt{
  display: flex;
  align-items: flex-start;
  gap: var(--size-2);
  cursor: pointer;
  font-weight: 500;
  color: var(--text);
}
.lmSendItemModeOpt input{
  margin: 0;
  flex-shrink: 0;
  accent-color: var(--color-control-border-active);
  min-height: fit-content;
  zoom: 1.5;
}
.lmSendItemModeOpt span{
  min-width: 0;
}
.lmSendItemBuild{
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.5ch;
}
.lmSendItemSection{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  padding: var(--size-3);
  background: var(--color-panel-elevated);
  border-radius: var(--radius);
  border: calc(var(--border) / 2) solid var(--panelBorder);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}
.lmSendItemSection[hidden],
.lmSendItemAddRow[hidden]{
  display: none !important;
}
.lmSendItemVehiclePickWrap{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  min-width: 0;
}
.lmSendItemVehiclePickWrap .lmSendItemPickRow{
  margin: 0;
  width: 100%;
}
.lmSendItemVehiclePickWrap .lmSendItemPickBtn{
  width: 100%;
}
.lmSendItemVehicleOptions{
  margin: var(--size-1) 0 0;
  padding: 0;
  border: 0;
  min-width: 0;
}
.lmSendItemVehicleOptions > .field__label{
  padding: 0;
  margin: 0 0 var(--size-2);
}
.lmSendItemVehicleFlags{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--size-2);
}
.lmSendItemFlagOpt{
  display: flex;
  align-items: flex-start;
  gap: var(--size-2);
  margin: 0;
  padding: var(--size-2) var(--size-3);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--color-surface-input);
  cursor: pointer;
  font-weight: 500;
  color: var(--text);
  min-width: 0;
}
.lmSendItemFlagOpt:hover:not(.lmSendItemFlagOpt--disabled){
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-pressed);
}
.lmSendItemFlagOpt:has(input:checked){
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-active);
  box-shadow: inset 0 0 0 1px var(--color-control-border-active);
}
.lmSendItemFlagOpt:has(input:focus-visible){
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
}
.lmSendItemFlagOpt--disabled{
  opacity: 0.55;
  cursor: not-allowed;
}
.lmSendItemFlagOpt--disabled:hover{
  border-color: var(--panelBorder);
  background: var(--color-surface-input);
}
.lmSendItemFlagOpt input{
  margin: 0.15em 0 0;
  flex-shrink: 0;
  accent-color: var(--color-control-border-active);
  zoom: 1.25;
}
.lmSendItemFlagOpt--disabled input{
  cursor: not-allowed;
}
.lmSendItemFlagOpt > span{
  display: flex;
  flex-direction: column;
  gap: 0.1em;
  min-width: 0;
  line-height: 1.25;
}
.lmSendItemFlagOptTitle{
  font-weight: 600;
}
.lmSendItemFlagOptHint{
  color: var(--muted);
  font-size: 0.85em;
  font-weight: 500;
}
@media (max-width: 42em){
  .lmSendItemModeOptions{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lmSendItemVehicleFlags{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 36em){
  .lmSendItemModeOptions{
    grid-template-columns: 1fr;
  }
  .lmSendItemVehicleFlags{
    grid-template-columns: 1fr;
  }
}
.lmSendItemRowSub{
  display: block;
  font-size: 0.85em;
  margin-top: 0.15em;
}
.lmSendItemSectionTitle{
  margin: 0;
  font-weight: 650;
  color: var(--text);
}

#lmPopupStandardHordeSections .lmSendItemSectionTitle{
  margin-bottom: 0;
}

#lmPopupStandardHordeSections{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
}
.lmSendItemHint{
  margin: var(--size-2) 0 0;
  color: var(--muted);
}
.lmSendItemPickRow{
  display: flex;
  gap: var(--size-2);
  align-items: center;
}
.lmSendItemPickBtn{
  display: flex;
  align-items: center;
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  padding: calc(var(--size-2) - 1px) var(--size-4);
  background: var(--color-surface-input);
  color: var(--text);
  font: inherit;
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  width: 100%;
}
.lmSendItemPickBtnContent{
  display: inline-flex;
  align-items: center;
  gap: var(--size-2);
  min-width: 0;
}
.lmSendItemPickBtnIcon{
  width: 1.6em;
  height: 1.6em;
  flex-shrink: 0;
  border-radius: var(--size-1);
  background: var(--color-surface-soft);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.lmSendItemPickBtnLabel{
  min-width: 0;
  text-align: left;
  word-break: break-word;
}
.lmSendItemRows{
  display: grid;
  gap: var(--size-2);
}
.lmSendItemRow2{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  align-items: flex-end;
}
.lmSendItemRow2 .field{
  margin: 0;
  min-width: 0;
}
.lmSendItemRow2 > .field:nth-child(1){
  flex: 1 1 14em;
  min-width: min(100%, 10em);
}
.lmSendItemRow2 > .field:nth-child(2){
  flex: 0 0 7ch;
}
.lmSendItemRow2 > .field:nth-child(3){
  flex: 0 0 15ch;
}
.lmSendItemRow2 > .field:nth-child(4){
  flex: 0 0 9ch;
}
.lmSendItemRow2 .lmSendItemPickBtn,
.lmSendItemRow2 .lmSendItemQtyInput,
.lmSendItemRow2 .lmSendItemModInput{
  width: 100%;
  box-sizing: border-box;
  min-height: var(--size-btn-minh);
  padding: calc(var(--size-2) - 1px) var(--size-4);
}
.lmSendItemRow2 select{
  max-width: 100%;
  max-inline-size: 100%;
  box-sizing: border-box;
  min-height: var(--size-btn-minh);
  padding: calc(var(--size-2) - 1px) var(--size-4);
  padding-right: var(--size-6);
}
.lmSendItemRow2 .lmSendItemPickBtn{
  background: var(--color-surface-input);
}
.lmSendItemQtyInput{
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  padding: calc(var(--size-2) - 1px) var(--size-4);
  background: var(--color-surface-input);
  color: var(--text);
  font: inherit;
  cursor: pointer;
  box-sizing: border-box;
  min-height: var(--size-btn-minh);
}
.lmSendItememoveRow{
  width: var(--size-btn-minh);
  height: var(--size-btn-minh);
  padding: 0;
  border-radius: var(--size-2);
  border: var(--border) solid var(--panelBorder);
  background: var(--color-surface-input);
  color: var(--muted);
  cursor: pointer;
}
.lmSendItememoveRow:hover{
  background: var(--color-surface-hover);
  color: var(--text);
}
.lmSendItememoveRow:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
}
.lmSendItemAddRow{
  margin-top: var(--size-2);
}
.lmSendItemPicker{
  position: absolute;
  z-index: 20;
  width: min(26em, calc(100vw - 3em));
  width: min(26em, calc(100dvw - 3em));
  border: calc(var(--border) / 2) solid var(--panelBorderHi);
  border-radius: var(--radius);
  background: var(--color-surface-input);
  box-shadow: var(--shadow);
  padding: var(--size-2) var(--size-3);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
}
.lmSendItemPickerHeader{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-3);
  margin-bottom: var(--size-2);
}
.lmSendItemPickerClose{
  /* Match .lmDetailToastClose sizing/behavior when reused */
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--size-5);
  height: var(--size-5);
  border: 0;
  border-radius: var(--size-1);
  background: var(--color-surface-soft);
  color: var(--color-close-button);
  cursor: pointer;
}
.lmSendItemPickerClose .icon{
  display: block;
  margin: auto;
  color: #fff;
  line-height: 1;
}
.lmSendItemPickerClose:hover{ color: var(--text); background: var(--color-close-button); }
.lmSendItemPickerClose:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
  background: var(--color-close-button);
  color: var(--muted);
}
.lmSendItemPickerField{
  margin: 0 0 var(--size-2);
}
.lmSendItemPickerList{
  max-height: min(42vh, var(--size-picker-maxh));
  overflow: auto;
  border: var(--border) solid var(--color-border-subtle);
  border-radius: var(--size-2);
  padding: var(--size-1);
  background: var(--color-panel-elevated);
}
.lmSendItemToolbar{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--size-3);
  align-items: flex-end;
  margin-bottom: var(--size-3);
  flex: 0 0 auto;
}

.lmSendItemToolbar input[type="search"] {
  font-size: var(--size-4);
}


.lmSendItemMain{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--size-3);
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow: hidden;
}
.lmSendItemListWrap{
  height: var(--size-12);
  display: flex;
  flex-direction: column;
}
.lmSendItemList{
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: var(--border) solid var(--color-border-subtle);
  border-radius: var(--size-2);
  padding: var(--size-1);
  background: var(--color-panel-elevated);
}
.lmSendItemRow{
  display: flex;
  align-items: center;
  gap: var(--size-2);
  width: 100%;
  text-align: left;
  border: 0;
  border-radius: var(--size-1);
  padding: var(--size-2);
  margin-top: var(--size-1);
  background: transparent;
  color: var(--text);
  font: inherit;
  cursor: pointer;
  border-left: 3px solid transparent;
}
.lmSendItemRow:first-child{
  margin-top: 0;
}
.lmSendItemRow:hover{
  background: var(--color-row-selected-bg);
}
.lmSendItemRow:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
}
.lmSendItemRow--selected{
  background: var(--color-row-selected-bg);
  border-left-color: var(--color-close-button);
}
.lmSendItemRowIco{
  flex-shrink: 0;
  width: var(--size-icon-lg);
  height: var(--size-icon-lg);
  object-fit: contain;
  border-radius: var(--size-1);
  background: var(--color-surface-soft);
}
.lmSendItemRowIco--empty{
  display: inline-block;
  width: var(--size-icon-lg);
  height: var(--size-icon-lg);
  border-radius: var(--size-1);
  background: var(--color-surface-soft);
}
.lmSendItemRowLabel{
  min-width: 0;
  word-break: break-word;
}
.lmSendItemPreview{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-height: 0;
}
.lmSendItemPreviewMedia{
  flex: 1;
  min-height: 0;
  min-width: 0;
  border-radius: var(--radius);
  border: var(--border) solid var(--color-border-subtle);
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-size: var(--size-4);
  padding: var(--size-3);
  text-align: center;
  position: relative;
}
.lmSendItemPreviewImg{
  max-width: 100%;
  max-height: min(36vh, var(--size-preview-maxh));
  width: auto;
  height: auto;
  object-fit: contain;
}
.lmSendItemPreviewPlaceholder{
  margin: 0;
}
.lmSendItemPreviewTitle{
  margin: 0;
  font-weight: 650;
  word-break: break-word;
  text-align: center;
}
.lmSendItemPreviewClass{
  margin: 0;
  font-size: var(--size-4);
  word-break: break-all;
  text-align: center;
}
.lmSendItemFooter{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--size-3);
  justify-content: space-between;
  margin-top: var(--size-3);
  padding: var(--size-3);
  flex: 0 0 auto;
  justify-content: end;
  
}
.lmSendItemStatus{
  margin: 0;
  color: var(--color-close-button);
  font-size: var(--size-4);
  word-break: break-word;
}
.lmSendItemFields{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  align-items: flex-end;
}
.lmSendItemActions{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  align-items: center;
}
.lmSendItemGiveBtn{
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-active);
  box-shadow: 0 6px 18px -12px var(--color-control-border-active);
}

.lmSendItemStackHelp{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1em;
  height: 1.1em;
  margin-left: 0.15em;
  padding: 0;
  border: 0;
  border-radius: 999px;
  font: inherit;
  font-size: 0.85em;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
  cursor: help;
  color: var(--color-help-accent);
  background: var(--color-surface-soft);
}
.lmSendItemStackHelp:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset);
}
.lmSendItemList--empty{
  padding: var(--size-4);
  color: var(--muted);
  text-align: center;
}
@media (max-width: 768px){
  .lmSendItemToolbar{
    grid-template-columns: 1fr;
  }
  .lmSendItemMain{
    grid-template-columns: 1fr;
    max-height: none;
    overflow: visible;
  }
  .lmSendItemListWrap{
    max-height: none;
  }
  .lmSendItemRow2{
    flex-direction: column;
    align-items: stretch;
  }
  .lmSendItemRow2 > .field:nth-child(n){
    flex: 1 1 auto;
    max-width: none;
    min-width: 0;
  }
  .lmSendItemRow2 .lmSendItememoveRow{
    align-self: flex-end;
  }
}
#lmDetailOut{
  position: fixed;
  left: auto;
  top: auto;
  right: max(var(--lm-pad-right), env(safe-area-inset-right, 0px));
  bottom: max(var(--lm-pad-bottom), env(safe-area-inset-bottom, 0px));
  /* Viewport bottom-right; width â‰ˆ one map column on the two-column layout. */
  width: min(
    calc((100vw - var(--lm-pad-left) - var(--lm-pad-right) - var(--lm-gap)) / 2),
    calc(100vw - var(--lm-pad-left) - var(--lm-pad-right))
  );
  margin: 0;
  z-index: 3;
  height: 78vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(100% + var(--lm-pad-bottom)));
  transition: transform 220ms ease, opacity 220ms ease;

  border:var(--border) solid var(--panelBorder);
  border-top-color: var(--panelBorderHi);
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
  background: var(--panel-solid);
  box-shadow: var(--shadow);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  font-size: clamp(14px, 1vw, 18px);
}
#lmDetailOut::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;
  background: var(--glassSheen);
  opacity: .65;
  mix-blend-mode: screen;
}
#lmDetailOut > *{ position: relative; z-index: 1; }
#lmVehicleDetailOut{
  position: fixed;
  left: auto;
  top: auto;
  right: max(var(--lm-pad-right), env(safe-area-inset-right, 0px));
  bottom: max(var(--lm-pad-bottom), env(safe-area-inset-bottom, 0px));
  width: min(
    calc((100vw - var(--lm-pad-left) - var(--lm-pad-right) - var(--lm-gap)) / 2),
    calc(100vw - var(--lm-pad-left) - var(--lm-pad-right))
  );
  margin: 0;
  z-index: 3;
  max-height: 78vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(100% + var(--lm-pad-bottom)));
  transition: transform 220ms ease, opacity 220ms ease;

  border:var(--border) solid var(--panelBorder);
  border-top-color: var(--panelBorderHi);
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
  background: var(--panel);
  box-shadow: var(--shadow);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  font-size: clamp(14px, 1vw, 18px);
}
#lmVehicleDetailOut::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;
  background: var(--glassSheen);
  opacity: .65;
  mix-blend-mode: screen;
}
#lmVehicleDetailOut > *{ position: relative; z-index: 1; }
#lmDetailOut.is-visible{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
#lmVehicleDetailOut.is-visible{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.lmVehicleDetailAction[data-lm-vehicle-action="delete"]{
  color: var(--color-delete-button);
}
.lmVehicleDetailAction[data-lm-vehicle-action="delete"]:hover{
  background: var(--color-delete-button-hover);
  color: var(--text);
}
.lmDropToast{
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  left: 50%;
  transform: translateX(-50%) translateY(-14px);
  opacity: 0;
  pointer-events: none;
  z-index: 100000;
  padding: 0.6em 1em;
  max-width: min(92vw, 920px);
  overflow-wrap: anywhere;
  display: flex;
  flex-direction: column;
  gap: 0.55em;
  border-radius: 0.85em;
  border: var(--border) solid var(--color-border-subtle);
  background: color-mix(in oklch, var(--color-surface-input) 92%, transparent);
  color: var(--text);
  font-size: clamp(13px, 0.95vw, 15px);
  font-family: 'Inter';
  letter-spacing: 0.02em;
  box-shadow: var(--shadow);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  transition:
    transform 180ms ease,
    opacity 180ms ease;
}
.lmDropToast.is-visible{
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.lmDropToast[data-lm-has-actions]{
  --lm-drop-amber: oklch(0.72 0.14 70);
  --lm-drop-amber-border: oklch(0.48 0.1 65);
  --lm-drop-bg: oklch(18.1% 0.02441 57.523 / 0.745);
  --lm-drop-icon-bg: oklch(0.26 0.04 55);

  top: calc(var(--lm-pad-top, var(--size-4)) + var(--size-1, 0.15rem));
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  max-width: min(40rem, calc(100vw - 2 * var(--lm-pad-left, var(--size-4))));
  padding: 0.45rem 0.55rem 0.45rem 0.55rem;
  border: 1px solid var(--lm-drop-amber-border);
  border-radius: 0.55rem;
  background: var(--lm-drop-bg);
  color: oklch(0.86 0.01 70);
  font-size: 0.875rem;
  line-height: 1.3;
  letter-spacing: normal;
  box-shadow: 0 0.15rem 0.55rem oklch(0 0 0 / 0.35);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.lmDropToast__icon{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  background: var(--lm-drop-icon-bg);
  color: var(--lm-drop-amber);
}
.lmDropToast__icon svg{
  width: 1rem;
  height: 1rem;
  display: block;
}
.lmDropToast__label{
  flex: 0 0 auto;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--lm-drop-amber);
}
.lmDropToast__msg{
  line-height: 1.35;
}
.lmDropToast[data-lm-has-actions] .lmDropToast__msg{
  flex: 1 1 8rem;
  min-width: 0;
  font-weight: 450;
  color: oklch(0.82 0.01 70);
}
.lmDropToast__actions{
  display: flex;
  gap: var(--size-2);
  justify-content: flex-end;
  flex-wrap: wrap;
}
.lmDropToast[data-lm-has-actions] .lmDropToast__actions{
  flex: 0 0 auto;
  margin-left: auto;
  gap: 0.35rem;
}
.lmDropToast__actions > .btn{
  font-size: 0.95em;
  padding: 0.45em 0.75em;
}
.lmDropToast[data-lm-has-actions] .lmDropToast__actions > .btn{
  font-size: 0.8125rem;
  padding: 0.35em 0.7em;
  border-radius: 0.4rem;
  border-color: var(--lm-drop-amber-border);
  color: oklch(0.86 0.01 70);
}
.lmDropToast[data-lm-has-actions] .lmDropToast__actions > .btn.btn--ghost{
  background: transparent;
}
.lmDropToast[data-lm-has-actions] .lmDropToast__actions > .btn.btn--ghost:hover{
  background: oklch(0.26 0.04 55 / 0.85);
  color: oklch(0.9 0.01 70);
}
.lmDropToast[data-lm-has-actions] .lmDropToast__actions > .btn:not(.btn--ghost){
  background: var(--lm-drop-icon-bg);
  color: var(--lm-drop-amber);
  border-color: var(--lm-drop-amber-border);
}
.lmDropToast[data-lm-has-actions] .lmDropToast__actions > .btn:not(.btn--ghost):hover{
  background: oklch(0.32 0.06 60);
  color: oklch(0.9 0.08 70);
}
@media (max-width: 520px){
  .lmDropToast[data-lm-has-actions]{
    left: var(--lm-pad-left, var(--size-2));
    right: var(--lm-pad-right, var(--size-2));
    transform: translateY(-14px);
    max-width: none;
    gap: 0.45rem;
  }
  .lmDropToast[data-lm-has-actions].is-visible{
    transform: translateY(0);
  }
  .lmDropToast[data-lm-has-actions] .lmDropToast__actions{
    flex: 1 1 100%;
    margin-left: 0;
    justify-content: flex-end;
  }
}
@media (prefers-reduced-motion: reduce){
  .lmDropToast,
  .lmDropToast[data-lm-has-actions]{
    transition: none;
    transform: translateX(-50%) translateY(0);
  }
  .lmDropToast[data-lm-has-actions].is-visible{
    transform: translateX(-50%) translateY(0);
  }
}
@media (max-width: 520px) and (prefers-reduced-motion: reduce){
  .lmDropToast[data-lm-has-actions],
  .lmDropToast[data-lm-has-actions].is-visible{
    transform: none;
  }
}
.lmDetailToast{
  border-radius: var(--size-2);
}
.lmVehicleDetailToast{
  border-radius: var(--size-2);
}
.lmDetailHead{
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: var(--size-2);
  flex-shrink: 0;
  padding: var(--size-3);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid var(--color-border-subtle);
  border-radius: var(--size-2) var(--size-3) 0 0;
  background: color-mix(in oklch, var(--panel) 92%, transparent);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
}
.lmVehicleDetailHead{
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--size-2);
  flex-shrink: 0;
  padding: var(--size-3);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid var(--color-border-subtle);
  border-radius: var(--size-2) var(--size-3) 0 0;
  background: color-mix(in oklch, var(--panel) 92%, transparent);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
}
.lmVehicleDetailHeadLeft{
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.lmVehicleDetailTitle{
  font-size: var(--size-4);
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.lmVehicleDetailMeta{
  color: var(--muted);
  font-size: var(--size-3);
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 42ch;
}
.lmDetailTablistWrap{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
  align-items: center;
  flex: 1;
  min-width: 0;
  margin-right: auto;
}
.lmDetailTabLabel{
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
}
.lmDetailTabWarn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-message-yellow);
  line-height: 0;
}
.lmDetailTabWarn[hidden]{
  display: none !important;
}
.lmDetailTabWarn svg{
  width: 1.1em;
  height: 1.1em;
  display: block;
}
.lmDetailTabNotesMark{
  position: absolute;
  top: 0.2em;
  right: 0.2em;
  width: 0.45em;
  height: 0.45em;
  border-radius: 50%;
  background: var(--color-status-dot-offline);
  pointer-events: none;
}
#lmTabNotes{
  position: relative;
}
.lmDetailTabNotesMark[hidden]{
  display: none !important;
}
/* Author `display:flex` above overrides the native [hidden] display — hide tabs when not in player context */
#lmDetailTablist[hidden],
.lmDetailTablistWrap[hidden]{
  display: none !important;
}
#lmDetailFooter[hidden]{
  display: none !important;
}

.lmDetailToastClose{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--size-6);
  height: var(--size-6);
  font-size: var(--size-6);
  border: 0;
  border-radius: var(--size-1);
  background: var(--color-surface-soft);
  color: var(--color-close-button);
  cursor: pointer;
}

.lmDetailToastClose:hover{ color: var(--text); background: var(--color-close-button); }
.lmDetailToastClose:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
  background: var(--color-close-button);
  color: var(--muted);
}
.lmDetailPanels{
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: var(--size-3);
  padding-top: var(--size-2);
  background: var(--color-panel);
}
.lmVehicleDetailSplit{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 44%);
  grid-template-areas: "body map";
  gap: var(--size-3);
  align-items: start;
}
.lmVehicleDetailSplit > #lmVehicleMiniMap{
  grid-area: map;
}
.lmVehicleDetailSplit > .lmVehicleDetailMain{
  grid-area: body;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
}
.lmVehicleDetailMain > #lmVehicleDetailBody{
  min-width: 0;
}

.lmVehicleDetailLogs{
  min-height: 0;
  display: flex;
  flex-direction: column;
  border-top: var(--border) solid var(--panelBorder);
  padding-top: var(--size-3);
}
.lmVehicleDetailLogs > .lmDetailPanelBody{
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.lmVehicleDetailLogs .lmDetailLogs .log__list{
  max-height: min(28vh, 16rem);
}

.lmVehicleDetailSplit .lmKv{
  padding: 0 var(--size-2) var(--size-1);
}

.lmVehicleDetailSplit .lmDetailColTitle {
  margin: 0;
  font-size: var(--size-4);
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text);
  padding: 0;
  background: none;
}

.lmVehicleMiniMap{
  border: var(--border) solid var(--color-row-selected-bg);
  border-radius: var(--size-2);
  background: var(--color-surface-input);
  overflow: hidden;
  max-width: 530px;
  max-height: 530px;
  width: 100%;
  margin: 0 auto;
}
.lmVehicleMiniMapWrap{
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  display: block;
  border-radius: inherit;
  overflow: hidden;
}

.lmVehicleMiniMapSvg{
  width: 100%;
  height: 100%;
  display: block;
}
.lmVehicleMiniMapTiles image{
  /* Prevent map tiles from eating clicks/select, keep rendering cheap. */
  pointer-events: none;
}
.lmVehicleMiniMapSectorStroke{
  fill: rgb(0 0 0 / 0.5);
  pointer-events: none;
}
.liveMapSectors .liveMapSector rect.lmVehicleMiniMapSectorOutline{
  fill: none;
  stroke: rgb(255 255 255 / 1);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.lmVehicleMiniMapMarker{
  pointer-events: none;
}
.lmVehicleMiniMapMarkerIcon{
  filter: drop-shadow(var(--shadow-marker));
  fill: var(--marker-selected);
  stroke: var(--color-white);
  stroke-width: 0.75;
}
.lmVehicleMiniMapOverlay{
  position: absolute;
  left: var(--size-2);
  top: var(--size-2);
  z-index: 2;
  pointer-events: none;
  text-shadow: var(--shadow-text);
}
.lmVehicleMiniMapSector{
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1;
  font-size: clamp(1.1em, 1.8vw, 1.35em);
  color: var(--text);
}

.lmVehicleMiniMapName{
  margin-top: 0.15em;
  font-weight: 650;
  font-size: clamp(0.9em, 1.4vw, 1.05em);
  color: var(--text);
  opacity: 0.95;
}
.lmVehicleMiniMapSvg .liveMapSectors{
  /* Mini map should be static (no hover/focus interactions). */
  pointer-events: none;
}
.lmVehicleMiniMapSvg .liveMapSectors .liveMapSector{
  cursor: default;
}
.lmVehicleMiniMapSvg .liveMapSectors .liveMapSector rect.lmVehicleMiniMapSectorStroke{
  fill: rgb(0 0 0 / 0.5);
  pointer-events: none;
}

@media (max-width: 1080px){
  .lmVehicleDetailSplit{
    grid-template-columns: 1fr;
    grid-template-areas:
      "map"
      "body";
  }
}

/* Kill log detail: same split as vehicle toast â€” details left, 1:1 mini-map right */
.lmKillLogDetailSplit{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 44%);
  grid-template-areas: "body map";
  gap: var(--size-3);
  align-items: start;
}
.lmKillLogDetailSplit > .lmKillLogMiniMapAside{
  grid-area: map;
}
.lmKillLogDetailSplit > .lmKillLogDetailSplitBody{
  grid-area: body;
  min-width: 0;
}
@media (max-width: 1080px){
  .lmKillLogDetailSplit{
    grid-template-columns: 1fr;
    grid-template-areas:
      "map"
      "body";
  }
}

.lmKillLogDetail .lmDetailCol .lmKv{
  font-size: var(--size-4);
}
/* Source log spans full panel width (below map + detail split) */
.lmKillLogDetail > .lmKillLogDetail__sourceCol{
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: var(--size-3);
}
.lmKillLogDetail > .lmKillLogDetail__sourceCol .lmKillLogDetail__pre{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.lmKillLogDetail__pre{
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: ui-monospace, "Cascadia Code", "Segoe UI Mono", monospace;
  font-size: var(--size-3);
  line-height: 1.45;
  max-height: min(60vh, 28em);
  overflow: auto;
}
.lmKillLogDetail__warn .lmKillLogDetail__warnLead{
  margin: 0;
}
.lmKillLogDetail__warnDelta{
  margin: var(--size-2) 0 0;
  font-size: var(--size-4);
  line-height: 1.45;
}

/* Kill log detail: mini-map (killer / victim pins) â€” sizing aligned with vehicle mini-map */
.lmKillLogMiniMapSection{
  min-width: 0;
}
.lmKillEventMiniMapMount{
  border: var(--border) solid var(--color-row-selected-bg);
  border-radius: var(--size-2);
  background: var(--color-surface-input);
  overflow: hidden;
  max-width: 530px;
  max-height: 530px;
  width: 100%;
  margin: 0 auto;
}
.lmKillEventMiniMapHit{
  pointer-events: all;
  cursor: help;
}
.lmKillEventMiniMapMarker{
  pointer-events: none;
  filter: drop-shadow(var(--shadow-marker));
  stroke: var(--color-white);
}
.lmKillEventMiniMapMarkerIcon{
  stroke-width: 0.1;
}
.lmKillEventMiniMapMarker--killer{
  fill: var(--color-kill-killer);
}
.lmKillEventMiniMapMarker--victim{
  fill: var(--color-kill-victim);
}
.lmKillEventMiniMapMarker--suicide{
  fill: var(--color-kill-suicide);
}
.lmKillEventMiniMapMarker--event{
  fill: var(--color-kill-event);
}

.lmKillLogTpSection .lmKillLogTpRow{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  align-items: center;
}
.lmKillLogTpHint{
  margin: var(--size-2) 0 0;
  font-size: 0.875em;
  line-height: 1.45;
}

.lmDetailPanelBody{
  min-height: var(--size-4);
}
.lmInlineCode{
  font-size: 0.92em;
  font-variant-numeric: tabular-nums;
}
.lmSquadMemberList,
.lmSquadVehicleList{
  margin: 0;
  padding-left: 1.15em;
}
.lmSquadMemberList li,
.lmSquadVehicleList li{
  margin-bottom: var(--size-1);
  flex: auto;
}
.lmSquadVehicleList--cards,
.lmSquadMemberList--cards,
.lmSquadFlagList--cards{
  list-style: none;
  padding-left: 0;
  display: flex;
    flex-wrap: wrap;
    gap: var(--size-1);
}
.lmSquadVehicleItem,
.lmSquadMemberItem,
.lmSquadFlagItem{
  margin-bottom: var(--size-3);
}
.lmSquadVehicleCard,
.lmSquadPanelCard{
  border: var(--border) solid var(--color-row-selected-bg);
  border-radius: var(--size-2);
  padding: var(--size-3);
  background: var(--color-surface-panel-muted);
}
.lmSquadVehicleCard__head,
.lmSquadPanelCard__head{
  margin-bottom: var(--size-2);
}
.lmSquadVehicleCard__titleRow,
.lmSquadPanelCard__titleRow{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 var(--size-2);
  margin-bottom: var(--size-2);
}
.lmSquadVehicleCard__class,
.lmSquadPanelCard__title{
  font-size: var(--size-4);
}
.lmSquadVehicleCard__meta,
.lmSquadPanelCard__meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--size-2) var(--size-3);
}
.lmSquadVehicleCard__tags{
  margin: 0;
}
.lmSquadVehicleCard__grid,
.lmSquadPanelCard__grid{
  margin-top: var(--size-2);
}
.lmSquadVehicleCard .lmDetailExtra,
.lmSquadPanelCard .lmDetailExtra{
  margin-top: var(--size-2);
}
.lmSquadVehicleCard .lmDetailExtra summary,
.lmSquadPanelCard .lmDetailExtra summary{
  font-size: var(--size-3);
}
.lmSquadVehicleList--cards{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--size-2);
}
.lmSquadFlagList--cards{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--size-2);
}
.lmSquadVehicleList--cards .lmSquadVehicleItem{
  margin-bottom: 0;
}
.lmSquadFlagList--cards .lmSquadFlagItem{
  margin-bottom: 0;
}
.lmSquadVehicleStrip{
  border: var(--border) solid var(--color-row-selected-bg);
  border-radius: var(--size-2);
  background: linear-gradient(180deg, color-mix(in oklch, var(--color-surface-panel-muted) 88%, black), var(--color-surface-panel-muted));
  box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--color-surface-soft) 55%, transparent);
  padding: var(--size-2) var(--size-3);
}
.lmSquadVehicleStrip--clickable{
  cursor: pointer;
}
.lmSquadVehicleStrip--clickable:hover{
  box-shadow:
    inset 0 0 0 1px color-mix(in oklch, var(--color-surface-soft) 70%, transparent),
    0 0 0 1px color-mix(in oklch, var(--color-row-selected-bg) 40%, transparent);
}
.lmSquadVehicleStrip__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--size-2);
  margin-bottom: var(--size-2);
}
.lmSquadVehicleStrip__titleRow{
  display: flex;
  align-items: center;
  gap: 0.4em;
  min-width: 0;
}
.lmSquadVehicleStrip__warn{
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 1.1em;
  height: 1.1em;
  color: var(--color-message-yellow);
}
.lmSquadVehicleStrip__warn svg{
  width: 100%;
  height: 100%;
  display: block;
}
.lmSquadVehicleStrip--violation{
  border-color: color-mix(in oklch, var(--color-message-yellow) 45%, var(--color-row-hover-border));
}
.lmSquadVehicleStrip__name{
  display: block;
  font-size: var(--size-5);
  line-height: 1.15;
  color: var(--text);
}
.lmSquadVehicleStrip__status{
  display: flex;
  align-items: center;
  gap: var(--size-1);
  justify-content: flex-end;
  flex-wrap: wrap;
}
.lmSquadVehicleStrip__status .lmTags{
  margin: 0;
}
.lmSquadVehicleStrip__status .lmTag{
  background: color-mix(in oklch, var(--color-surface-input) 75%, transparent);
}
.lmSquadVehicleStrip__status .lmTypePill{
  padding: 0.12em 0.5em;
  font-size: var(--size-3);
}
.lmSquadVehicleStrip__meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}
.lmSquadVehicleStrip__metaItem{
  display: inline-flex;
  align-items: baseline;
  gap: var(--size-1);
  min-width: 0;
  padding-right: var(--size-2);
  margin-right: var(--size-2);
  border-right: var(--border) solid var(--color-border-subtle);
}
.lmSquadVehicleStrip__metaItem:last-child{
  border-right: 0;
  margin-right: 0;
  padding-right: 0;
}
.lmSquadVehicleStrip__metaKey{
  color: var(--muted);
  font-size: var(--size-4);
  white-space: nowrap;
}
.lmSquadVehicleStrip__metaValue{
  color: var(--text);
  font-size: var(--size-4);
  font-weight: 700;
  max-width: 28ch;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lmSquadMemberStrip{
  border: var(--border) solid var(--color-row-selected-bg);
  border-radius: var(--size-2);
  background: linear-gradient(180deg, color-mix(in oklch, var(--color-surface-panel-muted) 88%, black), var(--color-surface-panel-muted));
  box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--color-surface-soft) 55%, transparent);
  padding: var(--size-2) var(--size-3);
}
.lmSquadMemberStrip--clickable{
  cursor: pointer;
}
.lmSquadMemberStrip--clickable:hover{
  box-shadow:
    inset 0 0 0 1px color-mix(in oklch, var(--color-surface-soft) 70%, transparent),
    0 0 0 1px color-mix(in oklch, var(--color-row-selected-bg) 40%, transparent);
}
.lmSquadMemberStrip--clickable:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmSquadMemberStrip__head{
  display: flex;
  align-items: center;
  gap: var(--size-2);
  margin-bottom: var(--size-2);
}
.lmSquadMemberStrip__titleRow{
  min-width: 0;
}
.lmSquadMemberStrip__name{
  display: block;
  font-size: var(--size-4);
  line-height: 1.15;
  color: var(--text);
}
.lmSquadMemberStrip__status{
  display: flex;
  align-items: center;
  gap: var(--size-1);
  justify-content: flex-end;
  flex-wrap: wrap;
}
.lmSquadMemberStrip__status .lmTypePill{
  padding: 0.12em 0.62em;
  font-size: var(--size-3);
}
.lmSquadMemberStrip__meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}
.lmSquadMemberStrip__metaItem{
  display: inline-flex;
  align-items: baseline;
  gap: var(--size-1);
  min-width: 0;
  padding-right: var(--size-2);
  margin-right: var(--size-2);
  border-right: var(--border) solid var(--color-border-subtle);
}
.lmSquadMemberStrip__metaItem:last-child{
  border-right: 0;
  margin-right: 0;
  padding-right: 0;
}
.lmSquadMemberStrip__metaKey{
  color: var(--muted);
  font-size: var(--size-4);
  white-space: nowrap;
}
.lmSquadMemberStrip__metaValue{
  color: var(--text);
  font-size: var(--size-4);
  font-weight: 700;
  max-width: 22ch;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lmSquadFlagStrip{
  border: var(--border) solid var(--color-row-selected-bg);
  border-radius: var(--size-2);
  background: linear-gradient(180deg, color-mix(in oklch, var(--color-surface-panel-muted) 88%, black), var(--color-surface-panel-muted));
  box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--color-surface-soft) 55%, transparent);
  padding: var(--size-2) var(--size-3);
}
.lmSquadFlagStrip__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
  margin-bottom: var(--size-2);
}
.lmSquadFlagStrip__body{
  display: flex;
  align-items: flex-start;
  gap: var(--size-3);
  flex-wrap: wrap;
}
.lmSquadFlagMiniMap{
  --lm-flag-mm: clamp(8em, 18vw, 12em);
  flex: 0 0 var(--lm-flag-mm);
  width: var(--lm-flag-mm);
  border: var(--border) solid var(--color-row-selected-bg);
  border-radius: var(--size-2);
  overflow: hidden;
  background: var(--color-surface-panel-muted);
  height: var(--lm-flag-mm);
  margin-bottom: var(--size-2);
  content-visibility: auto;
}
.lmSquadFlagMiniMapTiles image{
  pointer-events: none;
}
.lmSquadFlagMiniMapWrap{
  position: relative;
  width: 100%;
  height: 100%;
}
.lmSquadFlagMiniMapSvg{
  width: 100%;
  height: 100%;
  display: block;
}
.lmSquadFlagMiniMapSectorStroke{
  fill: rgb(0 0 0 / 0.5);
  pointer-events: none;
}
.liveMapSectors .liveMapSector rect.lmSquadFlagMiniMapSectorOutline{
  fill: none;
  stroke: rgb(255 255 255 / 1);
  stroke-width: 2;
  pointer-events: none;
}
.lmSquadFlagMiniMapMarker{
  pointer-events: none;
}
.lmSquadFlagMiniMapMarkerIcon{
  filter: drop-shadow(var(--shadow-marker));
  fill: var(--color-selected);
  stroke: var(--color-white);
  stroke-width: 0.75;
}
.lmSquadFlagMiniMapOverlay{
  position: absolute;
  left: var(--size-5);
  top: var(--size-5);
  z-index: 2;
  pointer-events: none;
  text-shadow: var(--shadow-text);
}
.lmSquadFlagMiniMapSector{
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1;
  font-size: clamp(1.0em, 1.6vw, 1.25em);
  color: var(--text);
  opacity: 0.95;
}
.lmSquadFlagStrip__titleRow{
  min-width: 0;
}
.lmSquadFlagStrip__name{
  display: block;
  font-size: var(--size-5);
  line-height: 1.15;
  color: var(--text);
}
.lmSquadFlagStrip__status{
  display: flex;
  align-items: center;
  gap: var(--size-1);
  justify-content: flex-end;
  flex-wrap: wrap;
}
.lmSquadFlagStrip__status .lmTypePill{
  padding: 0.12em 0.62em;
  font-size: var(--size-3);
}
.lmSquadFlagStrip__meta{
  flex: 1 1 18em;
  min-width: 14em;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}
.lmSquadFlagStrip__metaItem{
  display: inline-flex;
  align-items: baseline;
  gap: var(--size-1);
  min-width: 0;
  padding-right: var(--size-2);
  margin-right: var(--size-2);
  border-right: var(--border) solid var(--color-border-subtle);
}
.lmSquadFlagStrip__metaItem:last-child{
  border-right: 0;
  margin-right: 0;
  padding-right: 0;
}
.lmSquadFlagStrip__metaKey{
  color: var(--muted);
  font-size: var(--size-4);
  white-space: nowrap;
}
.lmSquadFlagStrip__metaValue{
  color: var(--text);
  font-size: var(--size-4);
  font-weight: 700;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  min-width: 0;
}
.lmSquadFlagStrip__metaValue .lmKvActions{
  flex-shrink: 0;
}
@media (max-width: 768px){
  .lmSquadVehicleStrip__head{
    align-items: stretch;
    flex-direction: column;
    margin-bottom: var(--size-1);
  }
  .lmSquadVehicleStrip__status{
    justify-content: flex-start;
  }
  .lmSquadVehicleStrip__meta{
    flex-direction: column;
    align-items: stretch;
    gap: var(--size-1);
  }
  .lmSquadVehicleStrip__metaItem{
    border-right: 0;
    margin-right: 0;
    padding-right: 0;
    padding-bottom: var(--size-1);
    border-bottom: var(--border) solid var(--color-border-subtle);
  }
  .lmSquadVehicleStrip__metaItem:last-child{
    border-bottom: 0;
    padding-bottom: 0;
  }
  .lmSquadMemberStrip__head{
    align-items: stretch;
    flex-direction: column;
    margin-bottom: var(--size-1);
  }
  .lmSquadMemberStrip__status{
    justify-content: flex-start;
  }
  .lmSquadMemberStrip__meta{
    flex-direction: column;
    align-items: stretch;
    gap: var(--size-1);
  }
  .lmSquadMemberStrip__metaItem{
    border-right: 0;
    margin-right: 0;
    padding-right: 0;
    padding-bottom: var(--size-1);
    border-bottom: var(--border) solid var(--color-border-subtle);
  }
  .lmSquadMemberStrip__metaItem:last-child{
    border-bottom: 0;
    padding-bottom: 0;
  }
  .lmSquadFlagStrip__head{
    align-items: stretch;
    flex-direction: column;
    margin-bottom: var(--size-1);
  }
  .lmSquadFlagStrip__status{
    justify-content: flex-start;
  }
  .lmSquadFlagStrip__meta{
    flex-direction: column;
    align-items: stretch;
    gap: var(--size-1);
  }
  .lmSquadFlagStrip__metaItem{
    border-right: 0;
    margin-right: 0;
    padding-right: 0;
    padding-bottom: var(--size-1);
    border-bottom: var(--border) solid var(--color-border-subtle);
  }
  .lmSquadFlagStrip__metaItem:last-child{
    border-bottom: 0;
    padding-bottom: 0;
  }
}
.lmSquadSubSection{
  margin-top: var(--size-3);
  padding-top: var(--size-2);
  border-top: var(--border) solid var(--color-row-selected-bg);
}
.lmDetailSection > .lmSquadSubSection--lead{
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.lmDetailSection--squadGrid > .lmSquadSubSection--lead{
  grid-area: lead;
}
.lmDetailSection--squadGrid > .lmSquadSubSection--members{
  grid-area: members;
}
.lmDetailSection--squadGrid > .lmSquadSubSection--flags{
  grid-area: flags;
}
@media (min-width: 861px){
  .lmDetailSection--squadGrid{
    display: grid;
    grid-template-columns: 0.80fr 1.20fr;
    grid-template-areas:
      "lead flags"
      "members members";
    gap: var(--size-4);
    align-items: start;
  }
  .lmDetailSection--squadGrid > .lmSquadSubSection{
    margin-top: 0;
  }
  .lmDetailSection--squadGrid > .lmSquadSubSection--flags{
    padding-top: 0;
    border-top: none;
  }
}
.lmSquadSubSection h4{
  margin: 0 0 var(--size-2);
  font-size: var(--size-4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.lmSquadSquadMetaGrid{
  margin-top: var(--size-2);
}
.lmSquadSquadLeadGrid{
  margin-bottom: var(--size-3);
}
.lmSquadMemberName{
  font-weight: 700;
}
.lmLogsList{
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: auto;
}
.lmLogLine{
  margin: 0 0 var(--size-2);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid var(--color-surface-soft);
}
.lmLogLine:last-child{
  border-bottom: 0;
}
.lmLogLineMeta{
  display: block;
  font-size: var(--size-3);
  margin-bottom: var(--size-1);
}
.lmLogLineText{
  font-size: var(--size-4);
  white-space: pre-wrap;
  word-break: break-word;
}
.lmNotesField{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
}
.lmNotesExempt{
  margin-bottom: var(--size-3);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid var(--panelBorder);
}
.lmNotesExempt__row{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--size-1) var(--size-2);
}
.lmNotesExempt__row > .field__label{
  margin: 0;
  flex: 0 0 auto;
  padding-top: 0.4em;
  line-height: 1.35;
}
.lmNotesExempt__controls{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
  flex: 1 1 12em;
  min-width: 0;
}
.lmNotesExempt__add{
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--size-1);
}
.lmNotesExempt__field{
  display: block;
  flex: 1 1 auto;
  min-width: 0;
}
.lmNotesExempt__field .visually-hidden{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.lmNotesExempt__input{
  width: 100%;
  box-sizing: border-box;
  padding: 0.35em 0.65em;
  border-radius: var(--size-2);
  border: var(--border) solid var(--panelBorder);
  background: var(--color-textarea-bg);
  color: var(--text);
  font: inherit;
  font-size: var(--size-3);
  line-height: 1.35;
}
.lmNotesExempt__input:focus{
  outline: none;
  box-shadow: var(--focus);
}
.lmNotesExempt__input:disabled{
  opacity: 0.55;
  cursor: not-allowed;
}
.lmNotesExempt__add .btn{
  flex: 0 0 auto;
  padding: 0.35em 0.7em;
  font-size: var(--size-3);
  min-height: 0;
}
.lmNotesExempt__list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25em;
  min-height: 0;
}
.lmNotesExempt__item{
  display: inline-flex;
  align-items: center;
  gap: 0.15em;
  border: var(--border) solid var(--color-row-hover-border);
  border-radius: var(--size-pill);
  padding: 0.05em 0.15em 0.05em 0.5em;
  font-size: var(--size-3);
  color: var(--text);
  background: var(--color-surface-hover);
  line-height: 1.3;
}
.lmNotesExempt__id{
  font-variant-numeric: tabular-nums;
  word-break: break-all;
}
.lmNotesExempt__remove{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4em;
  min-height: 1.4em;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: var(--size-pill);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  font-size: var(--size-3);
  line-height: 1;
}
.lmNotesExempt__remove:hover{
  color: var(--text);
  background: color-mix(in oklch, var(--text) 10%, transparent);
}
.lmNotesExempt__remove:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.lmNotesExempt__empty{
  margin: 0;
  font-size: var(--size-3);
  line-height: 1.3;
}
.lmNotesTextarea{
  width: 100%;
  min-height: var(--size-notes-minh);
  box-sizing: border-box;
  resize: vertical;
  padding: var(--size-2) var(--size-3);
  border-radius: var(--size-2);
  border: var(--border) solid var(--panelBorder);
  background: var(--color-textarea-bg);
  color: var(--text);
  font: inherit;
  font-size: var(--size-4);
  line-height: 1.45;
}
.lmNotesTextarea:focus{
  outline: none;
  box-shadow: var(--focus);
}
.lmNotesHint{
  margin: var(--size-2) 0 0;
}
.lmNotesActions{
  display: flex;
  gap: var(--size-2);
  align-items: center;
  margin-top: var(--size-2);
}
.lmNotesEntries{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  margin-top: var(--size-3);
}
.lmNotesEntry{
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  padding: var(--size-2) var(--size-3);
  background: var(--color-surface-hover);
}
.lmNotesEntryMeta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-2);
  margin-bottom: var(--size-1);
}
.lmNotesEntryTime{
  font-size: var(--size-3);
  color: var(--muted);
}
.lmNotesEntryText{
  white-space: pre-wrap;
  word-break: break-word;
  font-size: var(--size-4);
}
.lmDetailSub{
  margin: var(--size-3);
  color: var(--muted);
  font-size: var(--size-4);
  word-break: break-word;
}
.lmDetailStack{
  display: flex;
  flex-direction: row;
  gap: var(--size-4);
  flex-wrap: wrap;
}
.lmDetailStack > .lmDetailCol{
  flex: 1 1 21.7em;
}
.lmDetailStack > .lmDetailCol--full{
  flex: 1 1 100%;
  min-width: 0;
  max-width: 100%;
}

.lmDetailGrid2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--size-3) var(--size-4);
  margin-top: var(--size-3);
  padding-top: var(--size-2);
  border-top: var(--border) solid var(--color-row-selected-bg);
}
.lmDetailGrid2 > .lmDetailCol:only-child{
  grid-column: 1 / -1;
}
@media (max-width: 768px){
  .lmDetailGrid2{
    grid-template-columns: 1fr;
  }
}
.lmDetailColTitle{
  margin: 0 0 var(--size-2);
  font-size: var(--size-4);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-sector-text);
  background-color: var(--color-surface-hover);
  padding: 0.25em 0.5em;
}
.lmDetailColTitleRow{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-3);
  flex-wrap: wrap;
  margin: 0 0 var(--size-2);
  background-color: var(--color-surface-hover);
  /* border: var(--border) solid var(--color-border-subtle); 
  border-radius: var(--size-1);*/
  padding: 0.4em 0.6em;
}
.lmDetailColTitleRow .lmDetailColTitle{
  margin: 0;
  font-size: var(--size-4);
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text);
}
.lmDetailColTitleTools{
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: var(--size-2);
  flex-wrap: wrap;
  font-size: var(--size-3);
}
.lmVehicleDetailState{
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  font-size: var(--size-4);
  line-height: 1.1;
  letter-spacing: 0;
  white-space: nowrap;
}
.lmVehicleDetailState .lmInlineIcon{
  width: 1.5em;
  height: 1.5em;
}
.lmDetailCol .lmKv{
  font-size: var(--size-4);
}
.lmKvValue--mono{
  font-variant-numeric: tabular-nums;
  font-size: 0.95em;
}
.lmAttrSkillsBlock{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
}
.lmAttrGaugeRow{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--size-2) var(--size-1);
  align-items: start;
  justify-items: center;
}
.lmAttrPill{
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 5.75em;
  margin-inline: auto;
}
.lmAttrPill__gauge{
  position: relative;
  width: 100%;
  aspect-ratio: 1;
}
.lmAttrGauge__svg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.lmAttrGauge__track{
  stroke: oklch(0.32 0.02 270 / 0.95);
  stroke-width: 5;
  stroke-linecap: butt;
}
.lmAttrGauge__fill{
  stroke: currentColor;
  stroke-width: 5;
  stroke-linecap: butt;
}
.lmAttrGauge__fills{
  filter: drop-shadow(0 0 5px color-mix(in oklab, currentColor 50%, transparent));
}
.lmAttrGauge__value{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: clamp(0.95em, 2.8vw, 1.2em);
  font-weight: 800;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-shadow:
    0 0 12px color-mix(in oklab, currentColor 45%, transparent),
    0 0 2px color-mix(in oklab, currentColor 70%, transparent);
  pointer-events: none;
}
.lmAttrPill--str{ color: var(--color-attr-strength); }
.lmAttrPill--con{ color: var(--color-attr-constitution); }
.lmAttrPill--dex{ color: var(--color-attr-dexterity); }
.lmAttrPill--int{ color: var(--color-attr-intelligence); }
.lmAttrTabBar{
  display: flex;
  flex-direction: row;
  width: 100%;
  border-radius: var(--size-1);
  overflow: hidden;
  border: var(--border) solid var(--color-row-selected-bg);
}
.lmAttrTab{
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  border: none;
  border-radius: 0;
  padding: var(--size-2) var(--size-1);
  background: var(--color-surface-panel-muted);
  color: var(--muted);
  font-weight: 700;
  letter-spacing: 0.12em;
  font-size: var(--size-3);
  cursor: pointer;
  font-family: inherit;
}
.lmAttrTab + .lmAttrTab{
  border-left: var(--border) solid var(--color-row-selected-bg);
}
.lmAttrTab:hover{
  background: var(--color-surface-hover);
  color: var(--text);
}
.lmAttrTab:focus{
  outline: none;
}
.lmAttrTab:focus-visible{
  box-shadow: var(--focus);
  z-index: 1;
  position: relative;
}
.lmAttrTab--active{
  background: var(--color-panel-elevated);
  color: var(--text);
}
.lmAttrSkillPanels{
  min-width: 0;
}
.lmAttrSkillPanel__empty{
  margin: 0;
  padding: var(--size-3);
  color: var(--muted);
  font-size: var(--size-3);
  line-height: 1.45;
}
.lmSkillTableWrap.lmSkillTableWrap--attrPanel{
  min-width: 0;
}
.lmSkillTableWrap{
  overflow: auto;
  border: var(--border) solid var(--color-row-selected-bg);
  border-radius: var(--size-1);
}
.lmSkillTable{
  width: 100%;
  border-collapse: collapse;
  font-size: var(--size-3);
}
.lmSkillTable th,
.lmSkillTable td{
  padding: var(--size-1) var(--size-2);
  text-align: left;
  border-bottom: var(--border) solid var(--color-border-subtle);
}
.lmSkillTable th{
  position: sticky;
  top: 0;
  background: var(--color-skill-header-bg);
  color: var(--muted);
}
.lmDetailFooter{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--size-2);
  margin-top: 0;
  border-top: var(--border) solid var(--color-row-selected-bg);
  padding: var(--size-3);
  padding-bottom: var(--size-2);
  border-bottom: var(--border) solid var(--color-border-subtle);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
}
#lmDetailFooterPlayerBlock{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--size-2);
  flex: 1 1 100%;
}
.lmDetailFooterActions--moderation{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  font-size: 0.85em;
}
#lmDetailFooterPlayerBlock[hidden],
#lmKillLogFooterActions[hidden]{
  display: none !important;
}
#lmKillLogFooterActions{
  flex: 1 1 100%;
}
.lmDetailActionStatus{
  flex: 1 1 100%;
  margin: 0 0 var(--size-1);
  min-height: 1.25em;
}
.lmSilenceWrap,
.lmDetailConfirmWrap{
  position: relative;
  display: inline-flex;
}
.lmDetailActionPopover{
  position: absolute;
  z-index: 20;
  left: 0;
  bottom: calc(100% + 6px);
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  min-width: 12em;
  max-width: min(18em, 70vw);
  padding: var(--size-2);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--bg);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}
.lmDetailActionPopover[hidden]{
  display: none !important;
}
.lmSilencePopover{
  right: 0;
  left: auto;
}
.lmDetailConfirmPopover{
  min-width: 13.5em;
}
.lmDetailActionPopover__msg{
  margin: 0;
  color: var(--text);
  font-size: var(--size-3);
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.lmDetailActionPopover__actions{
  display: flex;
  gap: var(--size-1);
  flex-wrap: wrap;
}
.lmDetailActionPopover__btn{
  flex: 1 1 auto;
  min-height: 2em;
  padding: var(--size-1) var(--size-3);
  font-size: var(--size-3);
}
.lmSilencePopover__scopes{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
}
.lmSilencePopover__check{
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: var(--size-1) var(--size-2);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-1);
  background: var(--color-surface-soft);
  color: var(--text);
  font-size: var(--size-3);
  font-weight: 650;
  line-height: 1.2;
  cursor: pointer;
  user-select: none;
}
.lmSilencePopover__check:has(input:checked){
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-active);
}
.lmSilencePopover__check:has(input:focus-visible){
  outline: none;
  box-shadow: var(--focus);
}
.lmSilencePopover__check input{
  display: none;
}
.lmSilencePopover__duration{
  display: flex;
  align-items: center;
  gap: var(--size-2);
  flex-wrap: wrap;
}
.lmSilencePopover__hoursLabel{
  color: var(--muted);
  font-size: var(--size-3);
  font-weight: 650;
  line-height: 1;
}
.lmSilencePopover__presets{
  display: inline-flex;
  gap: var(--size-1);
  flex-wrap: wrap;
}
.lmSilencePopover__preset{
  appearance: none;
  min-width: 2em;
  min-height: 1.85em;
  margin: 0;
  padding: 0 var(--size-2);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-1);
  background: var(--color-transparent);
  color: var(--muted);
  font: inherit;
  font-size: var(--size-3);
  font-weight: 650;
  cursor: pointer;
  line-height: 1;
}
.lmSilencePopover__preset:hover{
  color: var(--text);
  background: var(--color-surface-hover);
}
.lmSilencePopover__preset:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.lmSilencePopover__preset.is-active,
.lmSilencePopover__preset[aria-pressed='true']{
  color: var(--text);
  border-color: var(--color-control-border-active);
  background: var(--color-control-bg-active);
}
.lmSilencePopover__apply{
  align-self: stretch;
  min-height: 2em;
  padding: var(--size-1) var(--size-3);
  font-size: var(--size-3);
}
.lmDetailSection{
  margin-top: var(--size-3);
  padding-top: var(--size-2);
}
.lmDetailSection h4:not(.lmDetailColTitle){
  margin: 0 0 var(--size-2);
  color: var(--color-section-heading);
  font-size: var(--size-4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.lmKvGrid{
  display: grid;
  gap: var(--size-2) var(--size-3);
}
.lmKv.lmKv--vehicleHead{
  align-items: baseline;
  border-bottom: calc(var(--border) * 2) solid var(--color-row-selected-bg);
  padding-bottom: var(--size-2);
  margin-bottom: var(--size-1);
}
.lmVehicleHeadName{
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--size-4);
  font-weight: 650;
  color: var(--text);
}
.lmVehicleHeadId{
  flex: 0 0 auto;
  margin-left: var(--size-2);
  text-align: right;
}
.lmKv{
  display: flex;
  justify-content: space-between;
  gap: var(--size-2);
  border-bottom: var(--border) solid var(--color-border-subtle);
  padding: calc(var(--size-1) + 1px) var(--size-2);
  align-items: center;
}
.lmKvKey{
  color: var(--muted);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15em;
  min-width: 0;
}
.lmKvKeyLabel{
  color: inherit;
}
.lmKvUpdated{
  font-size: 0.78em;
  font-weight: 500;
  line-height: 1.2;
  opacity: 0.88;
  white-space: nowrap;
}
.lmKvValue{
  color: var(--text);
  font-weight: 650;
  text-align: right;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--size-1);
}
.lmKvActions{
  display: inline-flex;
  flex-direction: row-reverse;
  align-items: center;
  margin-left: var(--size-1);
  vertical-align: middle;
  border: var(--border) solid var(--color-border-subtle);
  border-radius: 0.6em;
  background: color-mix(in oklch, var(--color-surface-hover) 88%, transparent);
  overflow: hidden;
}
.lmKvIconBtn{
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: grid;
  place-items: center;
  width: 1.5em;
  height: 1.5em;
  padding: 0;
  line-height: 1;
  font-size: 1em;
}
.lmKvIconBtn .lmInlineIcon{
  width: 1em;
  height: 1em;
}
.lmKvIconBtn + .lmKvIconBtn{
  border-left: var(--border) solid var(--color-border-subtle);
}
.lmKvIconBtn:hover{
  background: color-mix(in oklch, var(--color-row-selected-bg) 18%, transparent);
}
.lmKvIconBtn:focus-visible{
  outline: 2px solid var(--color-row-selected-bg);
  outline-offset: -2px;
}
.lmMono{
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
}
.lmCallout{
  --lm-callout-accent: var(--lm-callout-warn-accent);
  --lm-callout-border: var(--lm-callout-warn-border);
  --lm-callout-bg: var(--lm-callout-warn-bg);
  --lm-callout-icon-bg: var(--lm-callout-warn-icon-bg);
  display: flex;
  align-items: flex-start;
  gap: var(--size-3);
  border: var(--border) solid var(--lm-callout-border);
  border-radius: var(--size-2);
  padding: var(--size-3);
  margin: 0 0 var(--size-3);
  background: var(--lm-callout-bg);
  color: var(--text);
  box-sizing: border-box;
}
.lmCallout:not(:has(.lmCallout__body)){
  flex-direction: column;
  gap: 0.4rem;
}
.lmCallout--warn{
  --lm-callout-accent: var(--lm-callout-warn-accent);
  --lm-callout-border: var(--lm-callout-warn-border);
  --lm-callout-bg: var(--lm-callout-warn-bg);
  --lm-callout-icon-bg: var(--lm-callout-warn-icon-bg);
}
.lmCallout--info{
  --lm-callout-accent: var(--lm-callout-info-accent);
  --lm-callout-border: var(--lm-callout-info-border);
  --lm-callout-bg: var(--lm-callout-info-bg);
  --lm-callout-icon-bg: var(--lm-callout-info-icon-bg);
}
.lmCallout__icon{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  color: var(--lm-callout-accent);
  background: var(--lm-callout-icon-bg);
}
.lmCallout__icon svg{
  width: 1.25rem;
  height: 1.25rem;
  display: block;
}
.lmCallout__body{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.lmCallout__title{
  display: block;
  font-weight: 700;
  font-size: 1.05em;
  line-height: 1.25;
  color: var(--lm-callout-accent);
}
.lmCallout__rules{
  margin: 0;
  font-size: var(--size-3);
  line-height: 1.45;
  color: var(--muted);
}
.lmCallout--info .lmCallout__rules{
  color: color-mix(in oklch, var(--lm-callout-info-accent) 45%, var(--muted));
}
.lmCallout__issues{
  margin: 0;
  padding-left: 1.15em;
  color: var(--text);
}
.lmCallout__issues li{
  margin: 0.2em 0;
  line-height: 1.4;
}
.lmCallout__issues li::marker{
  color: var(--lm-callout-accent);
}
.lmCallout__hl{
  color: var(--lm-callout-accent);
  font-weight: 700;
}
.lmCallout__issueName{
  color: var(--text);
}
.lmCallout__meta{
  color: var(--muted);
}
.lmCallout__actions{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  margin-top: 0.15rem;
}
.lmCallout__btn{
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0.4rem 0.85rem;
  border: var(--border) solid var(--lm-callout-warn-border);
  border-radius: var(--size-2);
  background: transparent;
  color: var(--lm-callout-accent);
  font: inherit;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
}
.lmCallout__btn:hover{
  background: color-mix(in oklch, var(--lm-callout-accent) 14%, transparent);
}
.lmCallout__btn:focus-visible{
  outline: var(--border) solid var(--lm-callout-accent);
  outline-offset: 2px;
}
.lmCallout__btnIcon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.lmCallout__btnIcon svg{
  width: 1rem;
  height: 1rem;
  display: block;
}
.lmDetailBodyWarn{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.lmDetailInfractions{
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
}
.lmDetailInfractions[hidden]{
  display: none;
}
.lmDetailCard > .lmDetailInfractions:first-child .lmDetailBodyWarn:first-child,
.lmDetailCard > .lmDetailBodyWarn:first-child,
.lmDetailPanelBody > .lmDetailBodyWarn:first-child{
  margin-top: 0;
}
/* Legacy aliases used by older markup hooks */
.lmSquadVehicleLimitWarn__rules{
  margin: 0.35em 0 0.5em;
  font-size: var(--size-3);
  color: var(--muted);
}
.lmSquadVehicleLimitWarn__issues{
  margin: 0 0 0.55em;
  padding-left: 1.15em;
}
.lmSquadVehicleLimitWarn__issues li{
  margin: 0.15em 0;
}
.lmSquadVehicleLimitWarnActions{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
}
.lmTags{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
}
.lmTag{
  border: var(--border) solid var(--color-row-hover-border);
  border-radius: var(--size-pill);
  padding: 0.15em 0.55em;
  font-size: var(--size-3);
  color: var(--muted);
}
.lmTag--warn{
  border-color: var(--color-message-yellow);
  color: var(--text);
  background: color-mix(in oklch, var(--color-message-yellow) 18%, transparent);
}
.lmSquadMemberStrip--inactive{
  opacity: 0.86;
}
.lmSkills{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--size-1) var(--size-3);
}
.lmSkillRow{
  display: flex;
  justify-content: space-between;
  gap: var(--size-2);
  border-bottom: var(--border) solid var(--color-border-subtle);
  padding-bottom: 0.2em;
}
.lmDetailExtra{
  margin-top: var(--size-3);
}
.lmDetailExtra summary{
  cursor: pointer;
  color: var(--muted);
}
.lmDetailExtraPre{
  margin-top: var(--size-2);
  padding: var(--size-2);
  border-radius: var(--size-1);
  background: var(--color-surface-input);
  white-space: pre-wrap;
  word-break: break-word;
}
.lmPlayerFilterBar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-3);
  flex-wrap: wrap;
  min-width: 0;
  padding: var(--size-1) var(--size-2);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: var(--color-surface-panel-muted);
}
.lmPlayerFilterBar__stats{
  font-size: var(--size-4);
  font-weight: 700;
  color: var(--text);
}
.lmFilterToggle{
  display: inline-flex;
  align-items: center;
  gap: var(--size-2);
  flex-shrink: 0;
  min-height: var(--size-btn-minh);
  padding: var(--size-1) var(--size-2);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--size-2);
  background: oklch(0.36 0.09 152 / 0.35);
  color: var(--text);
  font: inherit;
  font-size: var(--size-3);
  font-weight: 650;
  cursor: pointer;
  margin: var(--size-1) 0;
}
.lmFilterToggle:hover{
  background: oklch(0.36 0.09 152 / 0.5);
}
.lmFilterToggle:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
}
.lmFilterToggle__icon{
  font-size: 1.1em;
  line-height: 1;
}
.lmFilterPanel{
  margin: var(--size-2) -1em;
  padding: var(--size-2) 1.5em;
  border-top: calc(var(--border) / 2) solid var(--panelBorder);
  border-bottom: calc(var(--border) / 2) solid var(--panelBorder);
  background: var(--color-surface-input);
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
}
.lmFilterPanel[hidden]{
  display: none !important;
}
.lmFilterSearchWrap{
  width: 100%;
}
.lmFilterSearch{
  width: 100%;
  box-sizing: border-box;
  padding: var(--size-2) var(--size-3);
  border-radius: var(--size-2);
  border: var(--border) solid var(--panelBorder);
  background: oklch(0 0 0 / 0.35);
  color: var(--text);
  font: inherit;
  font-size: var(--size-4);
}
.lmFilterSearch:focus{
  outline: none;
  box-shadow: var(--focus);
}
.lmFilterSearch::-webkit-search-cancel-button{
  -webkit-appearance: none;
  appearance: none;
  width: 0.95em;
  height: 0.95em;
  margin-inline-end: 0.1em;
  cursor: pointer;
  background: center / contain no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e0534a'%3E%3Cpath d='M18.3 5.71a1 1 0 0 0-1.41 0L12 10.59 7.11 5.7A1 1 0 0 0 5.7 7.11L10.59 12 5.7 16.89a1 1 0 1 0 1.41 1.41L12 13.41l4.89 4.89a1 1 0 0 0 1.41-1.41L13.41 12l4.89-4.89a1 1 0 0 0 0-1.4z'/%3E%3C/svg%3E");
}
.lmFilterChips{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  align-items: center;
}
.lmFilterChip{
  display: inline-flex;
  align-items: center;
  gap: var(--size-2);
  padding: var(--size-2) var(--size-2);
  border: 0;
  border-bottom: var(--size-1) solid transparent;
  border-radius: var(--size-1);
  background: transparent;
  color: var(--text);
  font: var(--size-1);
  font-size: var(--size-3);
  font-weight: 650;
  cursor: pointer;
  line-height: 2;
}
.lmFilterChip__icon{
  flex-shrink: 0;
  width: 0.65em;
  height: 0.65em;
  border-radius: var(--size-1);
}
.lmFilterChip__icon--pve{
  background: oklch(0.62 0.14 160);
}
.lmFilterChip__icon--pvp,
.lmFilterChip__icon--kill-pvp{
  background: oklch(0.62 0.14 25);
}
.lmFilterChip__icon--zombie{
  background: oklch(0.58 0.12 140);
}
.lmFilterChip__icon--drifter{
  background: oklch(0.64 0.16 65);
}
.lmFilterChip__icon--animal{
  background: oklch(0.58 0.10 80);
}
.lmFilterChip__icon--kill-npc{
  background: oklch(0.58 0.14 290);
}
.lmFilterChip__icon--suicide{
  background: oklch(0.55 0.02 250);
}
.lmFilterChip__icon--offline{
  background: oklch(0.55 0.02 250);
}
.lmFilterChip__icon--drone,
.lmFilterChip__icon--admin{
  width: auto;
  height: auto;
  font-size: 1.05em;
  line-height: 1;
}
.lmFilterChip__icon svg{
  fill: var(--text);
  color: var(--text);
}
.lmFilterChip__icon svg *{
  fill: var(--text);
  stroke: var(--text);
}
.lmFilterChip__label{
  white-space: nowrap;
}
.lmFilterChip:hover{
  color: var(--text);
  background: oklch(1 0 0 / 0.06);
}
.lmFilterChip:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-1);
}
.lmFilterChip--on{
  border-bottom-color: var(--color-selected);
}
/* Toolbar search (vehicles): same bar as players/flags, field matches filter inputs */
.lmPlayerFilterBar > .lmFilterSearchWrap{
  flex: 1 1 16em;
  min-width: min(100%, 12em);
  width: auto;
}
.lmFlagBaseId{
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.15em 0.2em;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
.lmFlagBaseId__flag{
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
}
.lmFlagBaseId__flag .lmKvActions{
  flex-shrink: 0;
}
.lmFlagOwnerCell{
  font-weight: 600;
}
.lmFlagBase{
  margin-top: var(--size-1);
  font-size: var(--size-3);
}
.lmVehiclesAccordion{
  display: flex;
  flex-direction: column;
}
.lmVehicleClassAccordion{
  border: var(--border) solid var(--panelBorder);
  border-top-width: calc(var(--border) / 2);
  border-bottom-width: calc(var(--border) / 2);
  background: oklch(0 0 0 / 0.22);
  overflow: hidden;
}
.lmVehicleClassAccordion__summary{
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--size-1);
  padding: var(--size-3) var(--size-3);
  font-size: var(--size-4);
  font-weight: 650;
  color: var(--text);
  transition: background-color 0.14s ease;
  border-left: 4px solid var(--lm-vehicle-type-color, var(--panelBorder));
}
.lmVehicleClassAccordion__summary::-webkit-details-marker{
  display: none;
}
.lmVehicleClassAccordion__summary::before{
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  margin-right: var(--size-2);
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(-45deg);
  translate: 0 -0.1em;
  transition: transform 0.16s ease;
}
.lmVehicleClassAccordion[open] .lmVehicleClassAccordion__summary::before{
  transform: rotate(45deg);
  translate: 0 0.05em;
}
.lmVehicleClassAccordion__summary:hover{
  background: var(--color-surface-hover);
}
.lmVehicleClassAccordion__summary:focus-visible{
  outline: var(--border) solid var(--color-focus-accent);
  outline-offset: var(--size-outline-offset-tight);
}
.lmVehicleClassAccordion__title{
  flex: 1 1 auto;
  min-width: 0;
  word-break: break-word;
}
.lmVehicleClassAccordion__count{
  font-weight: 600;
  color: var(--muted);
  font-size: var(--size-3);
}
.lmVehicleClassAccordion .dataTable{
  margin: 0;
  border-radius: 0;
  border: 0;
  border-top: var(--border) solid var(--panelBorder);
}
.lmTypeCell{
  font-size: var(--size-4);
}
.lmTypePillGroup{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
  align-items: center;
}
.lmTypePill{
  display: inline-block;
  padding: 0.2em 0.55em;
  border-radius: 9999px;
  font-weight: 750;
  line-height: 1.35;
  border: var(--size-pill-border-width) solid var(--color-surface-hover);
  white-space: nowrap;
}
.lmTypePill--pve{
  background: oklch(0.38 0.09 165 / 0.75);
  color: oklch(0.92 0.06 165);
}
.lmTypePill--pvp{
  background: oklch(0.38 0.1 25 / 0.75);
  color: oklch(0.92 0.06 25);
}
.lmTypePill--unknown{
  background: oklch(0.35 0.02 250 / 0.55);
  color: oklch(0.82 0.03 250);
  font-weight: 650;
}
.lmTypePill--offline{
  background: oklch(0.33 0.02 270 / 0.6);
  color: oklch(0.8 0.04 270);
  font-weight: 750;
}
/* --drone: loading-in (gender null); --robot: SCUM drone (isDrone) */
.lmTypePill--drone,
.lmTypePill--admin{
  background: oklch(0.32 0.02 250 / 0.5);
  color: oklch(0.78 0.04 250);
  font-weight: 650;
}
.lmTypePill--robot{
  background: oklch(0.36 0.07 285 / 0.72);
  color: oklch(0.9 0.05 285);
  font-weight: 650;
}
.lmTypePill--rendered{
  color: oklch(0.9 0.05 285);
  font-weight: 650;
}
.lmTypePill--not-rendered{
  background: oklch(0.35 0.02 250 / 0.55);
  color: oklch(0.82 0.03 250);
  font-weight: 650;
}
.lmTypePill--exempt{
  background: oklch(0.36 0.06 145 / 0.7);
  color: oklch(0.92 0.05 145);
  font-weight: 650;
}
.lmStatsCell{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-1);
  align-items: center;
}
.lmStatsPill{
  display: inline-block;
  padding: 0.2em 0.55em;
  border-radius: 9999px;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
  color: var(--text);
}
.liveMapDataControls{
  display: flex;
  gap: var(--size-2);
  flex-wrap: wrap;
}
.liveMapDataControls .tab[disabled]{
  opacity: 0.5;
  cursor: not-allowed;
}

.liveMapDataControlsRow__actions .brand{
  margin-right: auto;
}


@media (max-width: 1080px){
  .wrap--livemap{
    padding: var(--size-2);
    --lm-pad-top: var(--size-2);
    --lm-pad-right: var(--size-2);
    --lm-pad-bottom: var(--size-2);
    --lm-pad-left: var(--size-2);
  }
  .liveMapLayout{
    --lm-gap: var(--size-2);
    grid-template-columns: 1fr;
    min-height: 0;
    height: auto;
    overflow: visible;
  }
  .liveMapInfoCol{
    gap: var(--size-2);
  }
  .liveMapDataPanel{
    gap: var(--size-2);
  }
  .wrap--livemap .panel{
    padding: var(--size-2);
  }
  .liveMapDataControlsRow{
    flex-direction: column-reverse;
    align-items: stretch;
    gap: var(--size-2);
  }
  .liveMapDataControlsRow__actions{
    width: 100%;
    justify-content: flex-end;
    flex-wrap: nowrap;
  }

  .liveMapDataControlsRow .liveMapDataControls{
    width: 100%;
  }
  /* Mobile: widest 1:1 square that fits the column (side capped by viewport height minus padding). */
  .liveMapPane{
    place-self: start center;
    height: auto;
    max-height: none;
    width: min(100%, calc(100dvh - var(--lm-pad-top) - var(--lm-pad-bottom)));
    max-width: 100%;
  }
  .liveMapSvg{
    width: 100%;
    height: 100%;
  }
  .liveMapInfoCol{
    min-height: 0;
    height: auto;
    overflow: visible;
  }
  #lmDetailOut,
  #lmVehicleDetailOut{
    left: max(var(--lm-pad-left), env(safe-area-inset-left, 0px));
    right: max(var(--lm-pad-right), env(safe-area-inset-right, 0px));
    bottom: max(var(--lm-pad-bottom), env(safe-area-inset-bottom, 0px));
    width: auto;
    height: auto;
    max-height: min(70vh, calc(100dvh - var(--lm-pad-top) - var(--lm-pad-bottom) - var(--lm-gap)));
    max-height: 90dvh; 
  }
  .lmDetailGrid2{ grid-template-columns: 1fr; }
}
.dialog{
  border:none;
  padding:0;
  background: var(--color-transparent);
}
.dialog::backdrop{
  background: var(--color-overlay-strong);
}
.dialog__card{
  position: relative;
  width: min(var(--size-15), calc(100vw - var(--size-6)));
  width: min(var(--size-15), calc(100dvw - var(--size-6)));
  max-width: 100%;
  border:var(--border) solid var(--panelBorder);
  border-top-color: var(--panelBorderHi);
  border-radius: var(--radius);
  color: var(--text);
  background: var(--panel);
  box-shadow: var(--shadow);
  backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  -webkit-backdrop-filter: blur(var(--glassBlur)) saturate(var(--glassSat));
  padding: var(--size-4);
}
.dialog__card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;
  background: var(--glassSheen);
  opacity: .65;
  mix-blend-mode: screen;
}
.dialog__card > *{ position: relative; z-index: 1; }
.dialog__title{margin:0 0 var(--size-2); font-size:var(--size-5);}
.dialog__body{margin:0 0 var(--size-4); color: var(--muted);}

/* —— Admin Lookup ID tab (vehicle, Steam, flag, chest, logs) —— */
.lmLookupIdLead,
.lmVehicleReviewLead,
.lmVehicleReviewHint,
.lmSteamLookupLead,
.lmSteamLookupHint{
  margin: 0 0 var(--size-3);
  line-height: 1.45;
}
.lmVehicleReviewHint,
.lmSteamLookupHint{
  margin-top: calc(var(--size-2) * -1);
  font-size: 0.92em;
}
.lmLookupIdForm .lmLookupIdLead{
  margin: 0 0 var(--size-2);
  font-size: 0.92em;
}
.lmLookupIdSearch{
  align-items: flex-end;
}
.lmLookupIdRun{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--size-2);
  min-width: 9.5rem;
}
.lmLookupIdRun.is-busy{
  cursor: wait;
}
.lmLookupIdStatus,
.lmVehicleReviewStatus,
.lmSteamLookupStatus{
  margin: 0;
}
.lmLookupIdMeta{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
}
.lmLookupIdMeta:has(> :not([hidden])){
  margin: 0 0 var(--size-3);
}
.lmLookupIdChrome{
  display: flex;
  flex-direction: column;
  gap: var(--size-1);
}
.lmLookupIdChrome[hidden]{
  display: none;
}
.lmLookupIdChrome .lmLookupInlineBusy{
  min-height: 2.25rem;
}
.lmLookupIdChrome .lmLookupReviewedToggle > summary{
  min-height: 2.25rem;
  padding: 0;
  font-size: 0.95em;
}
.lmLookupReviewedCard{
  padding: var(--size-2) var(--size-3);
  background: var(--color-panel-elevated);
  border: calc(var(--border) / 2) solid var(--panelBorder);
  border-radius: var(--radius);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}
.lmLookupIdOut,
.lmVehicleReviewOut,
.lmSteamLookupOut{
  flex: 1 1 auto;
  min-height: 10rem;
  overflow: auto;
  overscroll-behavior: contain;
  outline: none;
  padding: 0;
  background: var(--color-panel-elevated);
  border: calc(var(--border) / 2) solid var(--panelBorder);
  border-radius: var(--radius);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}
.lmLookupIdOut.is-searching{
  border-color: color-mix(in oklch, var(--accent) 45%, var(--panelBorder));
}
.lmLookupIdOut:focus-visible,
.lmVehicleReviewOut:focus-visible,
.lmSteamLookupOut:focus-visible,
.lmSearchLogsOut:focus-visible{
  box-shadow: 0 0 0 2px var(--focusRing, var(--accent));
  border-radius: var(--radius);
}
.lmSearchLogsForm .lmLookupIdLead{
  margin: 0 0 var(--size-2);
  font-size: 0.92em;
}
.lmSearchLogsOut:has(.lmSearchLogsViewer){
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.lmSearchLogsOut .lmSearchLogsViewer{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--color-log-bg);
  border-radius: inherit;
}
.lmSearchLogsOut .lmDetailLogs .log__list{
  height: auto;
  flex: 1 1 auto;
  min-height: 0;
}
.lmSearchLogsMetaEnd{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--size-2) var(--size-3);
  min-width: 0;
}
.lmSearchLogsCount{
  margin: 0;
  white-space: nowrap;
}
.lmLookupEmpty{
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
  justify-content: center;
  min-height: 4.5rem;
  padding: var(--size-3);
}
.lmLookupEmpty__title{
  margin: 0;
  font-weight: 650;
}
.lmLookupEmpty .muted{
  margin: 0;
  max-width: 42ch;
}
.lmLookupSearching{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--size-3);
  padding: var(--size-3);
  border-radius: var(--size-2);
  background: color-mix(in oklch, var(--color-surface-input) 88%, var(--accent));
  animation: lmAdminFormEnter 220ms var(--lm-admin-form-ease, ease-out);
}
.lmLookupSearching__copy{
  min-width: 0;
  flex: 1 1 12rem;
}
.lmLookupSearching__copy strong{
  display: block;
  margin: 0 0 var(--size-1);
  font-weight: 650;
}
.lmLookupSearching__copy p{
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}
.lmLookupSearching__sources{
  flex: 1 1 100%;
  min-width: 0;
}
.lmLookupReviewedToggle{
  margin: 0;
}
.lmLookupReviewedToggle > summary{
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--size-2);
  min-height: 2.75rem;
  padding: var(--size-1) 0;
  font-size: 1rem;
  font-weight: 650;
}
.lmLookupReviewedToggle > summary:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: var(--size-1);
}
.lmLookupReviewedToggle[open] > summary{
  margin-bottom: var(--size-2);
}
.lmLookupReviewed{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.lmLookupReviewed__item{
  display: grid;
  grid-template-columns: 1rem auto minmax(0, 1fr);
  grid-template-areas:
    "mark kind label"
    "mark kind detail";
  column-gap: var(--size-2);
  row-gap: 0.1rem;
  align-items: start;
  font-size: 0.88em;
  line-height: 1.35;
}
@media (min-width: 36rem){
  .lmLookupReviewed__item{
    grid-template-columns: 1rem auto minmax(0, 1fr) auto;
    grid-template-areas: "mark kind label detail";
    align-items: baseline;
  }
}
.lmLookupReviewed__mark{
  grid-area: mark;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  width: 1rem;
  height: 1rem;
  margin-top: 0.1em;
  border-radius: 50%;
  border: 2px solid color-mix(in oklch, var(--panelBorder) 70%, var(--text));
  background: transparent;
  color: var(--text);
}
.lmLookupReviewed__check{
  width: 0.7rem;
  height: 0.7rem;
  display: block;
}
.lmLookupReviewed__kind{
  grid-area: kind;
  color: var(--muted);
  font-size: 0.85em;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.lmLookupReviewed__label{
  grid-area: label;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.95em;
}
.lmLookupReviewed__detail{
  grid-area: detail;
  color: var(--muted);
  font-size: 0.9em;
}
.lmLookupReviewed__item--pending .lmLookupReviewed__mark{
  border-top-color: color-mix(in oklch, var(--accent) 45%, var(--text));
  animation: lmLookupSpin 800ms linear infinite;
}
.lmLookupReviewed__item--ok .lmLookupReviewed__mark{
  border-color: color-mix(in oklch, var(--muted) 70%, var(--panelBorder));
  background: transparent;
}
.lmLookupReviewed__item--hit .lmLookupReviewed__mark{
  border-color: color-mix(in oklch, var(--accent) 40%, white);
  background: color-mix(in oklch, var(--accent) 45%, white);
  color: oklch(0.22 0.06 152);
}
.lmLookupReviewed__item--hit .lmLookupReviewed__detail{
  color: color-mix(in oklch, var(--accent) 35%, var(--text));
  font-weight: 650;
}
.lmLookupReviewed__item--empty .lmLookupReviewed__mark,
.lmLookupReviewed__item--skipped .lmLookupReviewed__mark{
  border-color: color-mix(in oklch, var(--muted) 70%, var(--panelBorder));
  background: color-mix(in oklch, var(--muted) 35%, transparent);
}
.lmLookupReviewed__item--error .lmLookupReviewed__mark{
  border-color: color-mix(in oklch, var(--color-danger, #f87171) 70%, var(--text));
  background: color-mix(in oklch, var(--color-danger, #f87171) 70%, var(--text));
}
.lmLookupReviewed__item--error .lmLookupReviewed__detail{
  color: color-mix(in oklch, var(--color-danger, #f87171) 70%, var(--text));
}
.lmLookupInlineBusy{
  display: flex;
  align-items: center;
  gap: var(--size-2);
  margin: 0;
  color: var(--muted);
  line-height: 1.4;
}
.lmLookupInlineBusy[hidden]{
  display: none;
}
.lmLookupSpinner{
  box-sizing: border-box;
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  border: 2px solid color-mix(in oklch, var(--panelBorder) 70%, var(--text));
  border-top-color: color-mix(in oklch, var(--accent) 45%, var(--text));
  border-radius: 50%;
  animation: lmLookupSpin 800ms linear infinite;
}
.lmLookupSpinner--sm{
  width: 1rem;
  height: 1rem;
  border-width: 2px;
}
.lmLookupIdHero{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--size-2) var(--size-3);
}
.lmLookupIdHero__kind{
  display: inline-flex;
  align-self: center;
  margin: 0;
  padding: 0.1em 0.55em;
  border-radius: 999px;
  border: calc(var(--border) / 2) solid color-mix(in oklch, var(--accent) 40%, var(--panelBorder));
  background: color-mix(in oklch, var(--accent) 18%, var(--color-surface-input));
  font-size: 0.8em;
  font-weight: 650;
}
.lmLookupIdHero__id{
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--size-2);
  font-variant-numeric: tabular-nums;
}
.lmLookupIdHero__meta{
  margin: 0;
  flex: 1 1 10rem;
  font-size: 0.88em;
}
@keyframes lmLookupSpin{
  to{ transform: rotate(360deg); }
}
.lmVehicleReviewDossier{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
  animation: lmAdminFormEnter 280ms var(--lm-admin-form-ease, ease-out);
}
.lmLookupIdOut .lmVehicleReviewDossier{
  gap: 0;
}
.lmLookupIdOut .lmVehicleReviewDossier > * + *{
  border-top: calc(var(--border) / 2) solid var(--panelBorder);
}
.lmLookupIdOut .lmVehicleReviewSection{
  padding: var(--size-2) var(--size-3);
  background: transparent;
  border: 0;
  border-radius: 0;
}
.lmLookupIdOut .lmVehicleReviewSectionTitle{
  margin: 0 0 var(--size-1);
  font-size: 0.95rem;
}
.lmLookupIdOut .lmVehicleReviewSectionToggle > summary.lmVehicleReviewSectionTitle{
  min-height: 2.25rem;
}
.lmLookupIdOut .lmVehicleReviewSectionToggle[open] > summary.lmVehicleReviewSectionTitle{
  margin-bottom: var(--size-1);
}
.lmLookupIdOut .lmVehicleReviewDl{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: var(--size-1) var(--size-4);
}
.lmLookupIdOut .lmVehicleReviewKv{
  grid-template-columns: minmax(5.5rem, 7rem) minmax(0, 1fr);
  gap: var(--size-1) var(--size-2);
}
.lmLookupIdOut .lmVehicleReviewList{
  gap: var(--size-1);
}
.lmLookupIdOut .lmVehicleReviewHistory{
  gap: 0;
}
.lmLookupIdOut .lmVehicleReviewHistory > li{
  padding: var(--size-2) 0;
}
.lmLookupIdOut .lmLookupLogTypes{
  gap: 0;
}
.lmLookupIdOut .lmLookupLogTypes > * + *{
  border-top: calc(var(--border) / 2) solid var(--panelBorder);
}
.lmLookupLogEntry__head{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15em var(--size-3);
}
.lmLookupLogEntry__head .lmVehicleReviewHistory__when{
  margin: 0;
  font-size: 0.88em;
  font-weight: 550;
}
.lmLookupLogEntry__summary{
  font-weight: 650;
}
.lmLookupIdOut .lmLookupLogEntry__fields,
.lmLookupIdOut .lmVehicleReviewHistory .lmVehicleReviewDl{
  margin-top: var(--size-1);
  display: flex;
  flex-wrap: wrap;
  gap: 0.15em var(--size-3);
}
.lmLookupIdOut .lmVehicleReviewHistory .lmVehicleReviewKv{
  display: inline-flex;
  align-items: baseline;
  gap: 0.35em;
  grid-template-columns: none;
  width: auto;
  max-width: 100%;
}
.lmLookupIdOut .lmVehicleReviewHistory .lmVehicleReviewKv dt{
  font-size: 0.85em;
}
.lmLookupIdOut .lmVehicleReviewHistory .lmVehicleReviewKv dt::after{
  content: ":";
}
.lmLookupLogEntry__fields .lmVehicleReviewKv:has(.lmLookupLocRow){
  flex: 1 1 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--size-1);
}
.lmLookupIdOut .lmVehicleReviewHistory .lmVehicleReviewRaw{
  margin: var(--size-1) 0 0;
}
.lmLookupIdOut .lmVehicleReviewHistory .lmVehicleReviewRaw summary{
  min-height: 2rem;
  font-size: 0.88em;
  font-weight: 500;
  color: var(--muted);
}
.lmLookupIdOut .lmVehicleReviewRaw{
  margin: 0 0 var(--size-2);
}
.lmLookupIdOut .lmVehicleReviewGoneLead{
  padding: var(--size-2) var(--size-3);
}
@media (prefers-reduced-motion: reduce){
  .lmLookupSearching{
    animation: none;
  }
  .lmLookupSpinner,
  .lmLookupReviewed__item--pending .lmLookupReviewed__mark{
    animation: none;
    border-top-color: color-mix(in oklch, var(--accent) 45%, var(--text));
    opacity: 0.9;
  }
  .lmVehicleReviewDossier{
    animation: none;
  }
}
.lmVehicleReviewGoneLead{
  margin: 0;
}
.lmVehicleReviewSection{
  padding: var(--size-3);
  background: color-mix(in oklch, var(--color-surface-input) 88%, transparent);
  border: calc(var(--border) / 2) solid var(--panelBorder);
  border-radius: var(--size-2);
}
.lmVehicleReviewSectionTitle{
  margin: 0 0 var(--size-2);
  font-size: 1rem;
  font-weight: 650;
}
.lmVehicleReviewSectionToggle > summary.lmVehicleReviewSectionTitle{
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--size-2);
  min-height: 2.75rem;
  margin: 0;
}
.lmVehicleReviewSectionToggle > summary.lmVehicleReviewSectionTitle::-webkit-details-marker,
.lmVehicleReviewSectionToggle > summary.lmVehicleReviewSectionTitle::marker{
  display: none;
  content: "";
}
.lmVehicleReviewSectionToggle > summary.lmVehicleReviewSectionTitle::before{
  content: "";
  flex: 0 0 auto;
  width: 0.45em;
  height: 0.45em;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(-45deg);
  translate: 0 -0.1em;
  transition: transform 0.16s ease;
}
.lmVehicleReviewSectionToggle[open] > summary.lmVehicleReviewSectionTitle{
  margin-bottom: var(--size-2);
}
.lmVehicleReviewSectionToggle[open] > summary.lmVehicleReviewSectionTitle::before{
  transform: rotate(45deg);
  translate: 0 0.05em;
}
.lmVehicleReviewSectionToggle > summary.lmVehicleReviewSectionTitle:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: var(--size-1);
}
@media (prefers-reduced-motion: reduce){
  .lmVehicleReviewSectionToggle > summary.lmVehicleReviewSectionTitle::before{
    transition: none;
  }
}
.lmVehicleReviewDl{
  margin: 0;
  /* display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16em, 1fr));
  gap: var(--size-2) var(--size-4); */
}
.lmVehicleReviewKv{
  display: grid;
  grid-template-columns: minmax(6.5rem, 8.5rem) minmax(0, 1fr);
  gap: var(--size-2) var(--size-3);
  align-items: baseline;
}
.lmVehicleReviewKv dt{
  margin: 0;
  color: var(--muted);
  font-weight: 500;
}
.lmVehicleReviewKv dd{
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
  display: flex;
  align-items: center;
}
.lmVehicleReviewSid{
  font-size: 0.9em;
  display: flex;
  align-items: center;
}
.lmVehicleReviewList{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--size-2);
}
.lmVehicleReviewList li{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--size-2);
}
.lmVehicleReviewIdBtn{
  padding-inline: var(--size-2);
  font-variant-numeric: tabular-nums;
}
.lmVehicleReviewHistory{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
}
.lmVehicleReviewHistory > li{
  padding: var(--size-2) 0;
  border-top: var(--border) solid var(--panelBorder);
}
.lmVehicleReviewHistory > li:first-child{
  border-top: 0;
  padding-top: 0;
}
.lmVehicleReviewHistory__when{
  font-weight: 650;
  margin-bottom: var(--size-1);
}
.lmVehicleReviewHistory__note{
  margin: var(--size-1) 0 0;
}
.lmLookupLogTypes{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
}
.lmVehicleReviewHistory .lmVehicleReviewDl{
  margin-top: var(--size-2);
}
.lmVehicleReviewHistory .lmVehicleReviewRaw{
  margin: var(--size-2) 0 0;
}
.lmVehicleReviewHistory .lmVehicleReviewRaw summary{
  min-height: 2.75rem;
}
.lmVehicleReviewActions{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2);
  margin-top: var(--size-3);
}
.lmVehicleReviewInlineBtn{
  margin-left: var(--size-2);
  padding-inline: var(--size-2);
  vertical-align: baseline;
}
.lmLookupLocRow{
  display: flex;
  align-items: center;
  gap: var(--size-3);
  width: fit-content;
}
.lmLookupLocRow__tp{
  flex: 0 0 auto;
  margin: 0;
  padding: 0.28em 0.75em;
  font-size: 0.88em;
  font-weight: 550;
  white-space: nowrap;
  min-height: 2.25rem;
}
.lmLookupLocRow__tp:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
.lmLookupLocRow__coords{
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size: 0.92em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.lmLookupLocRow .lmKvIconBtn{
  flex: 0 0 auto;
  width: 2.25rem;
  height: 2.25rem;
}
.lmVehicleReviewSection > .lmLookupLocRow{
  margin-bottom: var(--size-2);
}
.lmVehicleReviewKv .lmKvIconBtn,
.lmVehicleReviewActions .lmKvIconBtn,
.lmVehicleReviewSid .lmKvIconBtn,
.lmVehicleReviewTracking .lmKvIconBtn{
  margin-left: var(--size-1);
  vertical-align: middle;
}
.lmVehicleReviewTracking li code{
  margin-right: var(--size-1);
}
.lmVehicleReviewLogsLead{
  margin: 0 0 var(--size-2);
}
.lmVehicleReviewLogs{
  margin-top: var(--size-2);
}
.lmVehicleReviewRaw{
  margin: 0 0 var(--size-3);
}
.lmVehicleReviewRaw summary{
  cursor: pointer;
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  font-weight: 550;
}
.lmVehicleReviewRaw summary:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: var(--size-1);
}
.lmVehicleReviewRawPre{
  margin: var(--size-2) 0 0;
  max-height: min(22rem, 40vh);
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.85em;
}
.lmVehicleReviewLogSource summary .muted{
  font-weight: 500;
}

/* Live Map user guide */
.wrap--guide{
  max-width: min(var(--size-19), 100%);
  width: 100%;
  margin: 0 auto;
  padding: var(--size-5) var(--size-4);
  box-sizing: border-box;
}

.guideToolbar{
  margin-bottom: var(--size-5);
}
.guidePage{
  --guide-accent-yellow: oklch(0.78 0.15 90);
  --guide-accent-cyan: oklch(0.72 0.12 230);
  --guide-accent-red: oklch(0.62 0.2 25);
  --guide-plate: oklch(0.22 0.012 270 / 0.72);
  --guide-space-page: var(--size-5);
  --guide-space-section: clamp(var(--size-4), 2.5vw, var(--size-6));
  --guide-space-card: clamp(var(--size-4), 2vw, var(--size-5));
  --guide-gap-sections: var(--size-6);
  --guide-gap-blocks: var(--size-5);
  --guide-gap-columns: var(--size-6);
  /* Extra air between screenshots so stacked figures do not feel cramped. */
  --guide-gap-figures: clamp(var(--size-7), 4.5vw, var(--size-10));
  --guide-line-body: 1.65;
  position: relative;
  padding: var(--guide-space-page);
}
@media (min-width: 768px){
  .guidePage{
    --guide-space-page: var(--size-6);
    --guide-gap-sections: var(--size-7);
    --guide-gap-blocks: var(--size-6);
    --guide-gap-columns: var(--size-7);
    --guide-gap-figures: clamp(var(--size-8), 5.5vw, var(--size-12));
  }
}
.guidePage__header{
  margin: 0 0 var(--guide-gap-blocks);
  padding: var(--guide-space-card);
  border: var(--border) solid var(--panelBorderHi);
  border-radius: var(--radius);
  background:
    linear-gradient(180deg, oklch(1 0 0 / 0.04), transparent 40%),
    var(--guide-plate);
  box-shadow: inset 0 0 0 1px oklch(0 0 0 / 0.25);
}
.guidePage__eyebrow{
  margin: 0 0 var(--size-4);
}
.guidePage__back{
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.guidePage__back:focus{
  outline: none;
  box-shadow: var(--focus);
}
.guidePage__title{
  margin: 0 0 var(--size-3);
  font-family: var(--brand);
  font-size: clamp(1.6rem, 2.4vw, 2.25rem);
  letter-spacing: 0.04em;
  text-transform: capitalize;
  color: var(--text);
}
.guidePage__lead{
  margin: 0;
  max-width: 52rem;
  line-height: var(--guide-line-body);
}
.guidePage__toc{
  margin: 0 0 var(--guide-gap-sections);
  padding: var(--guide-space-card);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: var(--guide-plate);
  box-shadow: inset 0 0 0 1px oklch(0 0 0 / 0.2);
}
.guidePage__tocTitle{
  margin: 0 0 var(--size-3);
  font-family: var(--brand);
  font-size: var(--size-4);
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: capitalize;
  color: var(--guide-accent-yellow);
}
.guidePage__tocList{
  margin: 0;
  padding-left: 1.25em;
  line-height: 1.75;
}
.guidePage__tocList a{
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  display: inline-flex;
  align-items: baseline;
  gap: 0.45em;
}
.guidePage__tocNum{
  font-family: var(--brand);
  font-size: 0.85em;
  letter-spacing: 0.04em;
  color: var(--guide-accent-yellow);
  flex-shrink: 0;
}
.guidePage__layout{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--guide-gap-blocks);
  align-items: start;
}
.guidePage__content{
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--guide-gap-sections);
}
@media (min-width: 1100px){
  .guidePage__layout{
    grid-template-columns: minmax(13rem, 16rem) minmax(0, 1fr);
    gap: var(--guide-gap-columns);
  }
  .guidePage__toc--side{
    position: sticky;
    top: var(--size-5);
    margin-bottom: 0;
    max-height: calc(100dvh - var(--size-9));
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
  .guidePage__toc--side .guidePage__tocList{
    padding-left: 0;
    list-style: none;
  }
  .guidePage__toc--side .guidePage__tocList li + li{
    margin-top: 0.55em;
  }
}
@media (min-width: 1400px){
  .wrap--guide{
    max-width: min(82em, 100%);
  }
}
.guidePage__subsectionStack{
  display: flex;
  flex-direction: column;
  gap: var(--guide-gap-blocks);
  margin-top: var(--guide-gap-blocks);
}
.guidePage__subsection{
  padding: var(--guide-space-card);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: oklch(0.19 0.01 270 / 0.45);
}
.guidePage__subsection > .guidePage__subTitle:first-child{
  margin-top: 0;
}
.guidePage__subsection .guidePage__intro:last-child,
.guidePage__subsection .guidePage__tips:last-child,
.guidePage__subsection .guidePage__steps:last-child,
.guidePage__subsection .guidePage__mediaRow:last-child,
.guidePage__subsection .guidePage__subblocks:last-child{
  margin-bottom: 0;
}
.guidePage__fieldGrid{
  display: grid;
  gap: var(--size-4);
  margin: 0 0 var(--size-4);
}
.guidePage__fieldCard{
  padding: var(--size-3) var(--size-4);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: var(--guide-plate);
}
.guidePage__fieldCard .guidePage__stepLabel{
  display: block;
  margin-bottom: var(--size-1);
}
.guidePage__fieldCard .guidePage__tips{
  margin-bottom: 0;
}
.guidePage__iconList--grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: var(--size-3);
}
.guidePage__figure--strip{
  max-width: 100%;
}
.guidePage__figure--strip .guidePage__img{
  width: auto;
  max-width: 100%;
  max-height: 4.5rem;
  object-fit: contain;
  object-position: left center;
}
.guidePage__subblocks--grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: var(--size-4);
}
.guidePage__subblocks--grid .guidePage__article{
  margin: 0;
}
.guidePage__tocList a:focus{
  outline: none;
  box-shadow: var(--focus);
}
.guidePage__section{
  margin: 0;
  padding: var(--guide-space-section);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: oklch(0.2 0.01 270 / 0.35);
  scroll-margin-top: var(--size-6);
}
.guidePage__sectionTitle{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35em 0.65em;
  margin: 0 0 var(--size-4);
  padding-bottom: var(--size-3);
  border-bottom: var(--border) solid var(--panelBorder);
  font-family: var(--brand);
  font-size: var(--size-5);
  font-weight: 650;
  letter-spacing: 0.03em;
  text-transform: capitalize;
  color: var(--text);
}
.guidePage__sectionNum{
  font-family: var(--brand);
  font-size: 1.35em;
  line-height: 1;
  letter-spacing: 0.04em;
  color: var(--guide-accent-yellow);
}
.guidePage__section--map .guidePage__sectionNum{ color: var(--guide-accent-yellow); }
.guidePage__section--lists .guidePage__sectionNum{ color: var(--guide-accent-cyan); }
.guidePage__section--details .guidePage__sectionNum{ color: var(--guide-accent-red); }
.guidePage__section--admin .guidePage__sectionNum{ color: var(--color-selected); }
.guidePage__section--dock .guidePage__sectionNum{ color: var(--guide-accent-cyan); }
.guidePage__section--code .guidePage__sectionNum{ color: var(--guide-accent-red); }
.guidePage__section--tips .guidePage__sectionNum{ color: var(--guide-accent-yellow); }
.guidePage__split{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--guide-gap-columns);
  align-items: start;
}
.guidePage__splitCopy .guidePage__intro,
.guidePage__splitCopy .guidePage__steps{
  margin-bottom: var(--size-4);
}
.guidePage__splitMedia{
  display: flex;
  flex-direction: column;
  gap: var(--size-4);
  min-width: 0;
}
.guidePage__splitMedia .guidePage__figure{
  margin: 0;
}
.guidePage__iconList{
  display: flex;
  flex-direction: column;
  gap: var(--size-3);
  margin: 0 0 var(--guide-gap-blocks);
  padding: 0;
  list-style: none;
}
.guidePage__iconItem{
  display: grid;
  grid-template-columns: 2.5em minmax(0, 1fr);
  gap: var(--size-4);
  align-items: start;
  margin: 0;
  padding: var(--size-3) var(--size-4);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: var(--guide-plate);
}
.guidePage__iconBadge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25em;
  height: 2.25em;
  margin-top: 0.1em;
  border: var(--border) solid var(--panelBorderHi);
  border-radius: var(--radius);
  background: oklch(0 0 0 / 0.25);
  color: var(--text);
  flex-shrink: 0;
}
.guidePage__iconBadge svg{
  display: block;
}
.guidePage__iconBadge--warn{
  color: var(--color-message-yellow, #fbbf24);
  border-color: color-mix(in oklab, var(--color-message-yellow, #fbbf24) 45%, transparent);
}
.guidePage__iconList--compact{
  margin-bottom: var(--size-4);
}
.guidePage__iconList--compact .guidePage__iconItem{
  padding: var(--size-3);
}
.guidePage__iconBody{
  min-width: 0;
}
.guidePage__iconBody .guidePage__stepLabel{
  margin-bottom: 0.2em;
}
.guidePage__iconBody p{
  margin: 0;
  line-height: 1.45;
}
.guidePage__markerSwatch{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25em;
  height: 2.25em;
  margin-top: 0.1em;
  flex-shrink: 0;
}
.guidePage__markerSwatchDot{
  width: 0.85em;
  height: 0.85em;
  border-radius: 50%;
  background: var(--marker-fill, var(--color-vehicle));
  border: 1px solid var(--color-white);
  box-shadow: var(--shadow-marker);
}
.guidePage__markerSwatchMulti{
  display: inline-flex;
  align-items: center;
  gap: 0.15em;
}
.guidePage__markerSwatchDot--killer{
  --marker-fill: var(--color-kill-killer, oklch(0.66 0.18 35));
}
.guidePage__markerSwatchDot--victim{
  --marker-fill: var(--color-kill-victim, oklch(0.62 0.14 280));
}
.guidePage__mediaStack{
  display: flex;
  flex-direction: column;
  gap: var(--guide-gap-figures);
  margin: 0 0 var(--guide-gap-figures);
}
.guidePage__mediaStack .guidePage__figure{
  margin: 0;
}
.guidePage__figureStack{
  display: flex;
  flex-direction: column;
  gap: var(--guide-gap-figures);
  min-width: 0;
}
.guidePage__figureStack .guidePage__figure{
  margin: 0;
}
.guidePage__mediaRow{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--guide-gap-figures);
  margin: 0 0 var(--guide-gap-figures);
}
.guidePage__mediaRow--pair{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: var(--guide-gap-figures);
  margin-bottom: 0;
}
.guidePage__mediaRow .guidePage__figure{
  margin: 0;
}
@media (max-width: 900px){
  .guidePage__mediaRow--pair{
    grid-template-columns: 1fr;
  }
  .guidePage__split{
    grid-template-columns: 1fr;
  }
}
.guidePage__intro{
  margin: 0 0 var(--size-4);
  line-height: var(--guide-line-body);
}
.guidePage__steps{
  margin: 0 0 var(--size-4);
  padding-left: 1.35em;
  line-height: var(--guide-line-body);
}
.guidePage__steps li{
  margin-bottom: var(--size-3);
}
.guidePage__steps ul{
  margin: var(--size-2) 0 0;
  padding-left: 1.25em;
}
.guidePage__steps ul li{
  margin-bottom: var(--size-1);
}
.guidePage__stepLabel{
  display: block;
  font-weight: 650;
  margin-bottom: 0.15em;
  color: var(--text);
}
.guidePage__subblocks{
  display: flex;
  flex-direction: column;
  gap: var(--guide-gap-blocks);
  margin-top: var(--size-4);
}
.guidePage__article{
  padding: var(--guide-space-card);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: var(--guide-plate);
}
.guidePage__article .guidePage__subTitle{
  margin-bottom: var(--size-4);
}
.guidePage__articleSplit{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: var(--guide-gap-columns);
  align-items: start;
}
.guidePage__articleSplit:has(.guidePage__figure--uiPreview){
  align-items: center;
}
.guidePage__articleCopy .guidePage__intro,
.guidePage__articleCopy .guidePage__tips{
  margin-bottom: var(--size-4);
}
.guidePage__articleCopy .guidePage__tips:last-child,
.guidePage__articleCopy .guidePage__figure:last-child{
  margin-bottom: 0;
}
.guidePage__articleSplit > .guidePage__figure{
  margin: 0;
  position: sticky;
  top: var(--size-4);
}
@media (max-width: 900px){
  .guidePage__articleSplit{
    grid-template-columns: 1fr;
  }
  .guidePage__articleSplit > .guidePage__figure{
    position: static;
  }
}
.guidePage__subTitle{
  margin: var(--size-4) 0 var(--size-3);
  font-family: var(--brand);
  font-size: var(--size-4);
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: capitalize;
  display: flex;
  align-items: center;
  gap: var(--size-2);
  flex-wrap: wrap;
}
.guidePage__sectionTitle + .guidePage__intro,
.guidePage__sectionTitle + .guidePage__plate,
.guidePage__sectionTitle + .guidePage__steps{
  margin-top: 0;
}
.guidePage__section > .guidePage__subTitle:first-of-type{
  margin-top: var(--size-2);
}
.guidePage__featureGrid{
  display: flex;
  flex-direction: column;
  gap: var(--guide-gap-sections);
  margin: 0 0 var(--guide-gap-sections);
}
.guidePage__feature{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: var(--guide-gap-columns);
  align-items: start;
  padding: var(--guide-space-card);
  border: var(--border) solid var(--panelBorder);
  border-radius: var(--radius);
  background: var(--guide-plate);
}
.guidePage__featureCopy .guidePage__intro{
  margin-bottom: 0;
}
.guidePage__feature .guidePage__mediaStack{
  margin-bottom: 0;
}
.guidePage__feature .guidePage__figure{
  margin-bottom: 0;
}
@media (max-width: 900px){
  .guidePage__feature{
    grid-template-columns: 1fr;
  }
}
.guidePage__figure{
  margin: 0 0 var(--guide-gap-figures);
}
.guidePage__figure--inset{
  max-width: min(40rem, 100%);
}
.guidePage__figure--inset .guidePage__img{
  width: auto;
  max-width: 100%;
}
.guidePage__figure--poster{
  max-width: min(28rem, 100%);
  margin-inline: auto;
}
.guidePage__figure--uiPreview{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0;
  min-height: 100%;
  padding: var(--size-6) var(--size-4);
  border: var(--border) solid var(--panelBorderHi);
  border-radius: var(--radius);
  background: oklch(0.16 0.01 250);
  box-shadow: 0 0.35em 1.25em oklch(0 0 0 / 0.35);
}
.guidePage__figure--uiPreview .guidePage__caption{
  margin-top: var(--size-3);
  text-align: center;
}
.guidePage__uiPreview{
  display: flex;
  align-items: center;
  justify-content: center;
}
.guidePage__uiPreview .lmPollCountdown{
  pointer-events: none;
  font-size: 1.05em;
  padding: 0.35em 0.85em;
  border-color: oklch(1 0 0 / 0.18);
  background: oklch(0 0 0 / 0.45);
}
.guidePage__uiPreview .lmPollCountdown__value{
  color: var(--text);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.guidePage__img{
  display: block;
  width: 100%;
  height: auto;
  border: var(--border) solid var(--panelBorderHi);
  border-radius: var(--radius);
  background: var(--color-surface-input, #111);
  box-shadow: 0 0.35em 1.25em oklch(0 0 0 / 0.35);
}
.guidePage__caption{
  margin: var(--size-4) 0 0;
  font-size: 0.9em;
  line-height: 1.5;
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
}
.guidePage__captionIcon{
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--text);
  opacity: 0.85;
}
.guidePage__tips{
  margin: 0 0 var(--guide-gap-blocks);
  padding-left: 1.25em;
  line-height: var(--guide-line-body);
}
.guidePage__tips li{
  margin-bottom: var(--size-3);
}
.guidePage__plate{
  margin: 0 0 var(--guide-gap-blocks);
  padding: var(--guide-space-card);
  border: var(--border) solid var(--panelBorderHi);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, oklch(1 0 0 / 0.05), transparent 45%),
    var(--guide-plate);
  box-shadow: inset 0 0 0 1px oklch(0 0 0 / 0.28);
}
.guidePage__plateTitle{
  margin: 0 0 var(--size-3);
  font-family: var(--brand);
  font-size: var(--size-4);
  letter-spacing: 0.05em;
  text-transform: capitalize;
  color: var(--guide-accent-yellow);
}
.guidePage__plate--warn .guidePage__plateTitle{
  color: var(--guide-accent-red);
}
.guidePage__plate--info .guidePage__plateTitle{
  color: var(--guide-accent-cyan);
}
.guidePage__plateQuote{
  margin: 0;
  font-family: var(--brand);
  font-size: 1.05em;
  line-height: 1.45;
  color: var(--text);
}
.guidePage__codeGrid{
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr);
  gap: var(--size-4);
  align-items: start;
  margin-bottom: var(--size-4);
}
@media (max-width: 900px){
  .guidePage__codeGrid{
    grid-template-columns: 1fr;
  }
}
.guidePage__codeCard{
  padding: var(--size-3);
  border-left: 0.28em solid var(--guide-accent-yellow);
  background: oklch(0 0 0 / 0.18);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.guidePage__codeCard--cyan{ border-left-color: var(--guide-accent-cyan); }
.guidePage__codeCard--red{ border-left-color: var(--guide-accent-red); }
.guidePage__codeCardTitle{
  margin: 0 0 var(--size-1);
  font-family: var(--brand);
  letter-spacing: 0.04em;
  text-transform: capitalize;
  color: var(--text);
}
.guidePage__codeCard .guidePage__tips{
  margin-bottom: 0;
}
.guidePage__footerNote{
  margin: 0;
}

@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important;}
  .btn:active{transform:none;}
  .dataTable tbody tr td{ transition: none; }
  .lmVehicleClassAccordion__summary,
  .lmVehicleClassAccordion__summary::before{ transition: none; }
  .lmMapDock__surface,
  .lmMapDock__panel.panel,
  .lmMapDock__detailsWrap{
    transition: none;
  }
  .lmMapDock.is-expanded .lmMapDock__detailsWrap{
    transform: none;
  }
}

.lmAdminDialogTitle{
  display: inline-block;
}

/* ==========================================================================
   Landing page (/) — borderless full-bleed marketing bands.
   Shares the guide's brand type, accent trio, and figure treatment; drops the
   bordered card shell so sections flow into one another.
   ========================================================================== */

.wrap--landingPage{
  display: block;
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  gap: 0;
}

.landingPage{
  --landing-yellow: oklch(0.78 0.15 90);
  --landing-cyan: oklch(0.72 0.12 230);
  --landing-red: oklch(0.62 0.2 25);
  --landing-green: oklch(0.72 0.18 150);
  --landing-accent: var(--landing-green);
  /* The global --text and --muted are tuned for dense app chrome and only
     reach ~2.9:1 on this background. Marketing prose is read once, at a
     glance, so both are lifted to clear AA here. */
  --landing-text: oklch(0.96 0.01 270 / 0.82);
  --muted: oklch(0.96 0.01 270 / 0.6);
  --landing-band: clamp(3rem, 6vw, 5.5rem);
  --landing-gutter: clamp(1rem, 4vw, 2.75rem);
  --landing-measure: 34rem;
  --landing-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --landing-plate: oklch(0.22 0.012 270 / 0.62);
  position: relative;
  color: var(--landing-text);
  /* clip, not hidden: it contains the reveal transforms and the aurora glow
     without becoming a scroll container that would break sticky columns. */
  overflow-x: clip;
}

.landingPage__inner{
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: min(79em, 100%);
  margin-inline: auto;
  padding-inline: var(--landing-gutter);
  box-sizing: border-box;
}

/* -------------------------------------------------- sticky toolbar dock */

.landingPage__toolbarDock{
  position: sticky;
  top: 0;
  z-index: 30;
  padding: var(--size-3) var(--landing-gutter);
  max-width: 80em;
  margin: auto;
}

/* -------------------------------------------------- bands */

.landingPage__band{
  position: relative;
  padding-block: var(--landing-band);
  scroll-margin-top: 5.5rem;
}

/* Feathered tint + accent wash instead of a border, so bands bleed together. */
.landingPage__band--alt::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    oklch(0.22 0.012 270 / 0),
    oklch(0.22 0.012 270 / 0.55) 16%,
    oklch(0.22 0.012 270 / 0.55) 84%,
    oklch(0.22 0.012 270 / 0)
  );
}
.landingPage__band--alt::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    55em 26em at var(--landing-glow-x, 18%) 50%,
    color-mix(in oklch, var(--landing-accent) 14%, transparent),
    transparent 64%
  );
}

/* -------------------------------------------------- shared type */

.landingPage__eyebrow{
  margin: 0 0 var(--size-3);
  font-family: var(--brand);
  font-size: 1em;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--landing-accent);
}
.landingPage__kicker{
  display: flex;
  align-items: baseline;
  gap: 0.55em;
  margin: 0 0 var(--size-3);
  font-family: var(--brand);
  font-size: 1.25em;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--landing-accent);
}
.landingPage__title{
  margin: 0 0 var(--size-4);
  font-family: var(--brand);
  font-size: clamp(1.75rem, 3.4vw, 2.85rem);
  font-weight: 850;
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-transform: capitalize;
  color: var(--text);
  text-shadow: var(--shadow-text);
}
.landingPage__body{
  margin: 0 0 var(--size-4);
  max-width: var(--landing-measure);
  font-size: 1.05rem;
  line-height: 1.65;
}
.landingPage__body:last-child{
  margin-bottom: 0;
}
.landingPage__srOnly{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* -------------------------------------------------- hero */

.landingPage__band--hero{
  --landing-accent: var(--landing-green);
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* Pack the hero + highlight strip into one composition on typical desktops. */
  min-height: calc(100svh - 4.5rem);
  padding-top: clamp(0.75rem, 2vw, 1.75rem);
}
.landingPage__aurora{
  position: absolute;
  inset: -20% -10% auto -10%;
  height: 90%;
  pointer-events: none;
  background:
    radial-gradient(40em 26em at 22% 18%, color-mix(in oklch, var(--landing-green) 22%, transparent), transparent 62%),
    radial-gradient(34em 22em at 82% 8%, color-mix(in oklch, var(--landing-cyan) 14%, transparent), transparent 60%),
    radial-gradient(28em 18em at 72% 72%, color-mix(in oklch, var(--landing-red) 10%, transparent), transparent 68%);
  filter: blur(2px);
}
.landingPage__heroGrid{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  gap: clamp(1.5em, 3vw, 2em);
  align-items: center;
  flex: 1 1 auto;
  max-height: 42em;
  margin-bottom: -3em;
}
.landingPage__heroTitle{
  margin: 0 0 var(--size-3);
  font-family: var(--brand);
  font-size: clamp(2.1rem, 5.4vw, 3.85rem);
  font-weight: 850;
  line-height: 0.98;
  letter-spacing: -0.01em;
  text-transform: capitalize;
  color: var(--text);
  text-shadow: var(--shadow-text);
}
.landingPage__heroTitle em{
  font-style: normal;
  color: var(--landing-green);
}
.landingPage__lead{
  margin: 0 0 var(--size-5);
  max-width: 32rem;
  padding: 0 0 0 1.15em;
  font-size: clamp(1rem, 1.45vw, 1.15rem);
  line-height: 1.55;
  list-style: disc;
}
.landingPage__lead li{
  margin: 0 0 0.35em;
}
.landingPage__lead li:last-child{
  margin-bottom: 0;
}
.landingPage__ctaRow{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-3);
  margin-bottom: var(--size-5);
}
.landingPage__cta{
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  min-height: var(--size-btn-minh);
  padding: var(--size-3) var(--size-6);
  align-self: auto;
  font-family: var(--brand);
  font-size: 1.05rem;
  letter-spacing: 0.06em;
  text-transform: capitalize;
  text-decoration: none;
  transition: background 180ms var(--landing-ease), transform 180ms var(--landing-ease);
}
/* Primary hero CTA: solid green fill like the fold mock. */
.landingPage__band--hero .btn.landingPage__cta:not(.btn--ghost){
  border-color: color-mix(in oklch, var(--landing-green) 55%, oklch(0.35 0.04 150));
  background: color-mix(in oklch, var(--landing-green) 42%, oklch(0.22 0.04 150));
  color: oklch(0.98 0.02 140);
  box-shadow:
    inset 0 1px 0 oklch(1 0 0 / 0.12),
    0 0.45em 1.25em color-mix(in oklch, var(--landing-green) 22%, transparent);
}
.landingPage__band--hero .btn.landingPage__cta:not(.btn--ghost):hover{
  background: color-mix(in oklch, var(--landing-green) 52%, oklch(0.24 0.05 150));
}
.landingPage__cta:hover{
  transform: translateY(-2px);
}
.landingPage__cta:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.landingPage__heroMedia{
  position: relative;
  min-width: 0;
}
.landingPage__heroShot{
  position: relative;
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow:
    0 1.5em 3.5em oklch(0 0 0 / 0.55),
    0 0 0 1px var(--panelBorderHi);
}
.landingPage__heroShot img{
  display: block;
  width: 100%;
  height: auto;
}
.landingPage__heroBadge{
  position: absolute;
  left: -2.75rem;
  bottom: -2.25rem;
  z-index: 2;
  width: clamp(6rem, 13vw, 11rem);
  height: auto;
  filter: drop-shadow(0 0.75em 1.5em oklch(0 0 0 / 0.6));
}
/* Compact highlight strip — sits in the hero fold under the main grid. */
.landingPage__highlights{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.75rem);
  margin: 4em 0 0;
  padding: 0;
  list-style: none;
}
.landingPage__highlight{
  --highlight-tone: var(--landing-green);
  display: grid;
  gap: 0.65rem;
  justify-items: start;
  min-width: 0;
  padding: 0;
  color: inherit;
  text-decoration: none;
  transition:
    transform 240ms var(--landing-ease),
    color 240ms var(--landing-ease);
}
.landingPage__highlight:hover,
.landingPage__highlight:focus-visible{
  transform: translateY(-0.2rem);
}
.landingPage__highlight:focus-visible{
  outline: 2px solid var(--highlight-tone);
  outline-offset: 0.35rem;
}
.landingPage__highlight--yellow{ --highlight-tone: var(--landing-yellow); }
.landingPage__highlight--cyan{ --highlight-tone: var(--landing-cyan); }
.landingPage__highlight--red{ --highlight-tone: var(--landing-red); }
.landingPage__highlight--green{ --highlight-tone: var(--landing-green); }

.landingPage__highlightIcon{
  display: grid;
  place-items: center;
  width: 2.65em;
  height: 2.65em;
  border-radius: calc(var(--radius) + 0.1rem);
  color: var(--highlight-tone);
  background:
    radial-gradient(
      120% 120% at 30% 20%,
      color-mix(in oklch, var(--highlight-tone) 32%, transparent),
      color-mix(in oklch, var(--highlight-tone) 12%, transparent) 55%,
      transparent 72%
    ),
    oklch(0.2 0.02 270 / 0.55);
  box-shadow:
    inset 0 0 0 2px color-mix(in oklch, var(--highlight-tone) 48%, transparent),
    0 0.55em 1.35em color-mix(in oklch, var(--highlight-tone) 20%, transparent);
}
.landingPage__highlightCopy{
  display: grid;
  gap: 0.3rem;
  min-width: 0;
}
.landingPage__highlightTitle{
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-family: var(--brand);
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  text-transform: capitalize;
  color: var(--highlight-tone);
  text-shadow: var(--shadow-text);
}
.landingPage__highlightBody{
  font-size: 0.88rem;
  line-height: 1.4;
  color: var(--landing-text);
}
.landingPage__highlightCue{
  display: inline-grid;
  place-items: center;
  color: inherit;
  opacity: 0.65;
  transition:
    opacity 240ms var(--landing-ease),
    transform 240ms var(--landing-ease);
}
.landingPage__highlight:hover .landingPage__highlightCue,
.landingPage__highlight:focus-visible .landingPage__highlightCue{
  opacity: 1;
  transform: translateY(0.15rem);
}

@media (max-width: 60em){
  .landingPage__highlights{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .landingPage__band--hero{
    min-height: 0;
  }
}
@media (max-width: 34em){
  .landingPage__highlights{
    grid-template-columns: minmax(0, 1fr);
  }
}

/* -------------------------------------------------- feature bands */

.landingPage__featureGrid{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2em, 5vw, 4em);
  align-items: center;
}
.landingPage__band--flip .landingPage__featureCopy{
  order: 2;
}
.landingPage__band--flip .landingPage__featureMedia{
  order: 1;
}
.landingPage__band--map{ --landing-accent: var(--landing-yellow); --landing-glow-x: 78%; }
.landingPage__band--lists{ --landing-accent: var(--landing-green); --landing-glow-x: 78%; }
.landingPage__band--details{ --landing-accent: var(--landing-red); --landing-glow-x: 78%; }
.landingPage__band--admin{ --landing-accent: var(--landing-green); --landing-glow-x: 18%; }
.landingPage__band--dock{ --landing-accent: var(--landing-cyan); --landing-glow-x: 78%; }

.landingPage__featureCopy{
  min-width: 0;
}
/* The media column runs much taller than the copy. Pinning the copy keeps the
   claim on screen while the reader scrolls the evidence for it. */
@media (min-width: 60.0625em){
  .landingPage__featureGrid{
    align-items: start;
  }
}
/* Only pin when the viewport is tall enough to hold the whole copy block;
   a clipped sticky column is worse than a scrolling one. */
@media (min-width: 60.0625em) and (min-height: 48em){
  .landingPage__featureCopy{
    position: sticky;
    top: calc(var(--landing-band) / 2 + 3.5rem);
  }
}
.landingPage__checks{
  display: grid;
  gap: var(--size-3);
  margin: 0 0 var(--size-5);
  padding: 0;
  list-style: none;
}
.landingPage__checks li{
  display: grid;
  grid-template-columns: 1.4em minmax(0, 1fr);
  gap: 0.65em;
  align-items: start;
  line-height: 1.55;
}
.landingPage__checks svg{
  margin-top: 0.2em;
  color: var(--landing-accent);
}
.landingPage__checks b{
  color: var(--text);
  font-weight: 650;
}

.landingPage__guideLink{
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding: 0.35em 0;
  border: 0;
  background: none;
  font: inherit;
  font-family: var(--brand);
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-transform: capitalize;
  color: var(--landing-accent);
  text-decoration: none;
  cursor: pointer;
  border-bottom: 2px solid color-mix(in oklch, var(--landing-accent) 35%, transparent);
  transition: border-color 180ms var(--landing-ease), gap 180ms var(--landing-ease);
}
.landingPage__guideLink:hover{
  gap: 0.85em;
  border-bottom-color: var(--landing-accent);
}
.landingPage__guideLink:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}

.landingPage__featureMedia{
  display: grid;
  gap: clamp(var(--size-8), 3.125vw, var(--size-16));
  min-width: 0;
}

/* -------------------------------------------------- figures & close-ups */

.landingPage__shot{
  margin: 0;
  min-width: 0;
}
.landingPage__shotImg{
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius);
  background: var(--color-surface-input);
  box-shadow:
    0 1em 2.5em oklch(0 0 0 / 0.5),
    0 0 0 1px color-mix(in oklch, var(--landing-accent) 40%, transparent);
}
.landingPage__caption{
  margin: var(--size-4) 0 0;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
}
.landingPage__showcaseTitle + .landingPage__caption{
  margin-top: 0.25em;
}
.landingPage__caption svg{
  flex: 0 0 auto;
  color: var(--landing-accent);
}

/* Close-up: crops and magnifies a region of an existing screenshot. */
.landingPage__zoomFig{
  margin: 0;
  min-width: 0;
}
.landingPage__zoom{
  position: relative;
  overflow: hidden;
  aspect-ratio: var(--zoom-aspect, 16 / 7);
  border-radius: var(--radius);
  background: var(--color-surface-input);
  box-shadow:
    0 1em 2.5em oklch(0 0 0 / 0.5),
    0 0 0 1px color-mix(in oklch, var(--landing-accent) 40%, transparent);
}
.landingPage__zoomImg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--zoom-x, 50%) var(--zoom-y, 50%);
  transform: scale(var(--zoom-scale, 2.2));
  transform-origin: var(--zoom-x, 50%) var(--zoom-y, 50%);
  transition: transform 1100ms var(--landing-ease);
}
.landingPage__zoomTag{
  position: absolute;
  left: var(--size-3);
  bottom: var(--size-3);
  z-index: 2;
  padding: 0.3em 0.75em;
  border-radius: var(--size-pill);
  background: oklch(0 0 0 / 0.72);
  color: var(--landing-accent);
  font-family: var(--brand);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: capitalize;
}
/* Native-resolution UI crops (already tight screenshots, shown 1:1). */
.landingPage__crop{
  margin: 0;
  padding: var(--size-4);
  border-radius: var(--radius);
  background: oklch(0 0 0 / 0.3);
  box-shadow:
    0 1em 2.5em oklch(0 0 0 / 0.5),
    0 0 0 1px color-mix(in oklch, var(--landing-accent) 40%, transparent);
}
/* --crop-max keeps very small native crops from upscaling into mush. */
.landingPage__cropImg{
  display: block;
  width: 100%;
  max-width: var(--crop-max, 100%);
  height: auto;
  margin-inline: auto;
  border-radius: calc(var(--radius) / 1.5);
}

.landingPage__mediaPair{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(var(--size-5), 2.5vw, var(--size-7));
}

/* -------------------------------------------------- marker legend */

.landingPage__legend{
  display: flex;
  flex-wrap: wrap;
  gap: var(--size-2) var(--size-4);
  margin: 0 0 var(--size-5);
  padding: 0;
  list-style: none;
  font-size: 0.92rem;
}
.landingPage__legendItem{
  display: flex;
  align-items: center;
  gap: 0.5em;
}
.landingPage__legendDot{
  display: inline-flex;
  gap: 0.15em;
  flex-shrink: 0;
}
.landingPage__legendDot::before,
.landingPage__legendDot--pair::after{
  content: "";
  width: 0.7em;
  height: 0.7em;
  border: 1px solid var(--color-white);
  border-radius: 50%;
  background: var(--dot, var(--color-player));
  box-shadow: var(--shadow-marker);
}
.landingPage__legendDot--pair::after{
  background: var(--dot-2, var(--color-vehicle));
}

/* -------------------------------------------------- showcase wall */

.landingPage__showcase{
  display: grid;
  /* --showcase-min is set per band so dense app screenshots get wider columns
     than the small dialog crops. */
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(var(--showcase-min, 18rem), 100%), 1fr)
  );
  gap: clamp(var(--size-8), 3.125vw, var(--size-16));
  align-items: start;
  margin: var(--size-12) 0 0;
  padding: 0;
  list-style: none;
}
.landingPage__showcaseItem{
  margin: 0;
  min-width: 0;
}
/* contain keeps every screenshot whole and evenly spaced while the letterbox
   stays invisible against the band. */
.landingPage__showcaseImg{
  display: block;
  width: 100%;
  aspect-ratio: var(--showcase-aspect, 4 / 3);
  object-fit: contain;
  object-position: center;
  border-radius: var(--radius);
  box-shadow:
    0 1em 2.5em oklch(0 0 0 / 0.5),
    0 0 0 1px color-mix(in oklch, var(--landing-accent) 40%, transparent);
}
.landingPage__showcaseTitle{
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  margin: var(--size-5) 0 0.25em;
  font-family: var(--brand);
  font-size: 1em;
  letter-spacing: 0.05em;
  text-transform: capitalize;
  color: var(--landing-accent);
}
.landingPage__showcaseTitle svg{
  flex: 0 0 auto;
  margin-top: -5px;
  width: 1.5em;
  height: 1.5em;
}
.landingPage__showcaseBody{
  display: block;
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--muted);
}

/* -------------------------------------------------- overlay gallery */

.landingPage__galleryHead{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--size-3);
  margin: var(--size-6) 0 0;
}
.landingPage__galleryHint{
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.4;
}
.landingPage__galleryControls{
  display: inline-flex;
  gap: var(--size-2);
}
.landingPage__galleryNav{
  appearance: none;
  display: inline-grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border: var(--border) solid color-mix(in oklch, var(--landing-accent) 45%, transparent);
  border-radius: calc(var(--radius) + 0.15rem);
  background: color-mix(in oklch, var(--landing-accent) 14%, oklch(0.18 0.01 270));
  color: var(--landing-accent);
  cursor: pointer;
  transition:
    background 180ms var(--landing-ease),
    border-color 180ms var(--landing-ease),
    color 180ms var(--landing-ease),
    opacity 180ms var(--landing-ease);
}
.landingPage__galleryNav:hover:not(:disabled){
  background: color-mix(in oklch, var(--landing-accent) 24%, oklch(0.2 0.02 270));
  border-color: color-mix(in oklch, var(--landing-accent) 70%, transparent);
}
.landingPage__galleryNav:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.landingPage__galleryNav:disabled{
  opacity: 0.35;
  cursor: default;
}
.landingPage__galleryShell{
  --gallery-pad: max(
    var(--landing-gutter),
    calc((100% - min(79em, 100%)) / 2 + var(--landing-gutter))
  );
  position: relative;
  margin-top: var(--size-4);
  max-width: 80em;
  margin: 0 auto;
}
.landingPage__galleryShell::before,
.landingPage__galleryShell::after{
  content: "";
  position: absolute;
  top: 0;
  bottom: var(--size-4);
  width: clamp(1.5rem, 4vw, 3.5rem);
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transition: opacity 220ms var(--landing-ease);
}
.landingPage__galleryShell::before{
  left: 0;
  background: linear-gradient(
    90deg,
    oklch(0.16 0.01 270 / 0.92),
    transparent
  );
}
.landingPage__galleryShell::after{
  right: 0;
  background: linear-gradient(
    270deg,
    oklch(0.16 0.01 270 / 0.92),
    transparent
  );
}
.landingPage__galleryShell.is-overflow-start::before,
.landingPage__galleryShell.is-overflow-end::after{
  opacity: 1;
}
.landingPage__gallery{
  display: grid;
  grid-auto-flow: column;
  /* Wide enough that ~2.5–3 cards show on desktop — invites scrolling. */
  grid-auto-columns: min(22rem, 78vw);
  gap: clamp(var(--size-4), 2vw, var(--size-6));
  margin: 0;
  padding: 0 var(--gallery-pad) var(--size-4);
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--gallery-pad);
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
  outline: none;
}
.landingPage__gallery:focus-visible{
  box-shadow: inset 0 0 0 2px color-mix(in oklch, var(--landing-accent) 55%, transparent);
}
.landingPage__gallery.is-dragging{
  cursor: grabbing;
  scroll-snap-type: none;
  user-select: none;
}
.landingPage__galleryItem{
  margin: 0;
  scroll-snap-align: start;
  min-width: 0;
}
.landingPage__galleryItem .landingPage__shotImg{
  aspect-ratio: 4 / 5;
  object-fit: cover;
  width: 100%;
  transition: transform 280ms var(--landing-ease);
}
.landingPage__galleryItem:hover .landingPage__shotImg{
  transform: scale(1.02);
}
.landingPage__gallery .landingPage__caption{
  margin: var(--size-5) 0 0;
  font-family: var(--brand);
  font-size: 1em;
  letter-spacing: 0.05em;
  text-transform: capitalize;
  color: var(--landing-accent);
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  line-height: 1.3;
}
.landingPage__gallery .landingPage__caption svg{
  color: inherit;
  margin-top: -5px;
  width: 1.5em;
  height: 1.5em;
}

/* -------------------------------------------------- responsibility plate */

.landingPage__band--trust{
  --landing-accent: var(--landing-red);
  --landing-glow-x: 50%;
}
.landingPage__trust{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(1.5em, 4vw, 3em);
  align-items: center;
  max-width: 62em;
  margin-inline: auto;
}
.landingPage__trustBadge{
  width: clamp(7em, 16vw, 22em);
  height: auto;
  filter: drop-shadow(0 0.75em 1.5em oklch(0 0 0 / 0.6));
}
.landingPage__trustQuote{
  margin: 0 0 var(--size-4);
  font-family: var(--brand);
  font-size: clamp(1.2rem, 2.4vw, 1.75rem);
  line-height: 1.35;
  color: var(--text);
}

/* -------------------------------------------------- guide index */

.landingPage__guideIndex{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(21rem, 100%), 1fr));
  gap: var(--size-2);
  margin: var(--size-6) 0 0;
  padding: 0;
  list-style: none;
}
.landingPage__guideIndexLink{
  display: grid;
  grid-template-columns: 2.6em minmax(0, 1fr);
  gap: var(--size-3);
  align-items: baseline;
  width: 100%;
  padding: var(--size-3) var(--size-4);
  border: 0;
  border-radius: var(--radius);
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background 180ms var(--landing-ease), transform 180ms var(--landing-ease);
}
.landingPage__guideIndexLink:hover{
  background: var(--color-surface-soft);
  transform: translateX(4px);
}
.landingPage__guideIndexLink:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.landingPage__guideIndexNum{
  font-family: var(--brand);
  font-size: 1.2rem;
  color: var(--landing-accent);
}
.landingPage__guideIndexTitle{
  display: block;
  font-family: var(--brand);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  text-transform: capitalize;
  color: var(--text);
}
.landingPage__guideIndexBody{
  display: block;
  margin-top: 0.2em;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--muted);
}

/* -------------------------------------------------- motion (JS-gated) */

/* Keep reveal content in its animation start state until critical page assets
   finish loading. The `.has-js` guard preserves readable content if JS is off. */
.has-js .landingPage.is-loading .landingPage__reveal{
  opacity: 0;
  transform:
    translate3d(var(--reveal-x, 0), var(--reveal-y, 1.75rem), 0)
    scale(var(--reveal-scale, 1));
  transition: none !important;
}
.has-js .landingPage.is-loading .landingPage__stagger > *{
  opacity: 0;
  transform: translate3d(0, 0.9rem, 0);
  transition: none !important;
}

.landingPage__parallax{
  transform: translate3d(0, var(--parallax-y, 0px), 0);
}
.landingPage.is-motion .landingPage__parallax{
  will-change: transform;
}
/* Blocks slide in from the edge they already sit on, so the motion reads as
   the layout assembling itself rather than parts flying across the page. */
.landingPage.is-motion .landingPage__reveal{
  opacity: 0;
  transform:
    translate3d(var(--reveal-x, 0), var(--reveal-y, 1.75rem), 0)
    scale(var(--reveal-scale, 1));
  transition:
    opacity 780ms var(--landing-ease),
    transform 780ms var(--landing-ease);
  transition-delay: var(--reveal-delay, 0ms);
}
.landingPage.is-motion .landingPage__reveal.is-visible{
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}
.landingPage__reveal--left{ --reveal-x: -2.75rem; --reveal-y: 0; }
.landingPage__reveal--right{ --reveal-x: 2.75rem; --reveal-y: 0; }
.landingPage__reveal--zoom{ --reveal-y: 1rem; --reveal-scale: 0.94; }
/* Stacked layouts are full-bleed, so a sideways start would push past the
   viewport. Rise them instead. */
@media (max-width: 60em){
  .landingPage__reveal--left,
  .landingPage__reveal--right{
    --reveal-x: 0;
    --reveal-y: 1.75rem;
  }
}

/* Staggered children: the container is observed, the children cascade. */
.landingPage.is-motion .landingPage__stagger > *{
  opacity: 0;
  transform: translate3d(0, 0.9rem, 0);
  transition:
    opacity 560ms var(--landing-ease),
    transform 560ms var(--landing-ease);
}
.landingPage.is-motion .landingPage__stagger.is-visible > *{
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.landingPage.is-motion .landingPage__stagger > *:nth-child(1){ transition-delay: 60ms; }
.landingPage.is-motion .landingPage__stagger > *:nth-child(2){ transition-delay: 140ms; }
.landingPage.is-motion .landingPage__stagger > *:nth-child(3){ transition-delay: 220ms; }
.landingPage.is-motion .landingPage__stagger > *:nth-child(4){ transition-delay: 300ms; }
.landingPage.is-motion .landingPage__stagger > *:nth-child(5){ transition-delay: 380ms; }
.landingPage.is-motion .landingPage__stagger > *:nth-child(6){ transition-delay: 460ms; }
.landingPage.is-motion .landingPage__stagger > *:nth-child(n + 7){ transition-delay: 540ms; }
.landingPage.is-motion .landingPage__reveal .landingPage__zoomImg{
  transform: scale(calc(var(--zoom-scale, 2.2) * 0.8));
}
.landingPage.is-motion .landingPage__reveal.is-visible .landingPage__zoomImg{
  transform: scale(var(--zoom-scale, 2.2));
}

/* -------------------------------------------------- responsive */

@media (max-width: 60em){
  .landingPage__heroGrid,
  .landingPage__featureGrid{
    grid-template-columns: minmax(0, 1fr);
  }
  .landingPage__band--flip .landingPage__featureCopy,
  .landingPage__band--flip .landingPage__featureMedia{
    order: 0;
  }
  .landingPage__heroBadge{
    left: auto;
    right: 0;
    bottom: -1.5rem;
  }
  .landingPage__trust{
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    text-align: center;
  }
}

@media (max-width: 34em){
  .landingPage__mediaPair{
    grid-template-columns: minmax(0, 1fr);
  }
  .landingPage__ctaRow .landingPage__cta{
    flex: 1 1 100%;
    justify-content: center;
  }
  .landingPage__heroBadge{
    display: none;
  }
}

@media (prefers-reduced-motion: reduce){
  .landingPage__parallax{
    transform: none !important;
  }
  .landingPage__reveal,
  .landingPage__stagger > *,
  .landingPage__zoomImg,
  .landingPage__cta,
  .landingPage__highlight,
  .landingPage__highlightCue,
  .landingPage__guideLink,
  .landingPage__guideIndexLink,
  .landingPage__galleryNav,
  .landingPage__galleryItem .landingPage__shotImg,
  .landingPage__galleryShell::before,
  .landingPage__galleryShell::after{
    transition: none;
  }
  .landingPage__galleryItem:hover .landingPage__shotImg,
  .landingPage__cta:hover,
  .landingPage__highlight:hover,
  .landingPage__guideIndexLink:hover{
    transform: none;
  }
}
/* Screenshot lightbox (landing + guide) */
img.is-lightboxable{
  cursor: zoom-in;
}
img.is-lightboxable:focus{
  outline: none;
  box-shadow: var(--focus);
}
img.is-lightboxable:focus-visible{
  outline: none;
  box-shadow: var(--focus);
}
.imageLightbox{
  border: none;
  padding: 0;
  max-width: none;
  max-height: none;
  width: min(96vw, 96rem);
  width: min(96dvw, 96rem);
  height: auto;
  background: transparent;
  color: var(--text);
}
/* Fill the viewport and center the frame so tall shots sit mid-screen. */
.imageLightbox[open]{
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  box-sizing: border-box;
}
.imageLightbox::backdrop{
  background: oklch(0 0 0 / 0.82);
}
html.is-lightbox-open{
  overflow: hidden;
}
html.is-lightbox-open body{
  /* position/top/width are set inline so the visual scroll offset stays put */
  overflow: hidden;
  padding-right: var(--lightbox-sbw, 0px);
}
.imageLightbox__frame{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--size-3);
  margin: 0;
  padding: var(--size-4);
  max-width: 100%;
  max-height: 100%;
  box-sizing: border-box;
}
.imageLightbox__img{
  display: block;
  width: auto;
  height: auto;
  max-width: min(92vw, 90rem);
  max-width: min(92dvw, 90rem);
  max-height: min(82vh, 82dvh);
  object-fit: contain;
  border: var(--border) solid var(--panelBorderHi);
  border-radius: var(--radius);
  background: var(--color-surface-input, #111);
  box-shadow: 0 1em 3em oklch(0 0 0 / 0.55);
}
.imageLightbox__caption{
  margin: 0;
  max-width: min(40rem, 90vw);
  text-align: center;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--muted);
}
.imageLightbox__close{
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border: var(--border) solid var(--panelBorderHi);
  border-radius: var(--radius);
  color: var(--text);
  background: var(--panel);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: var(--shadow);
}
.imageLightbox__close:hover{
  border-color: var(--panelBorderHi);
  background: color-mix(in oklch, var(--panel) 80%, oklch(1 0 0));
}
.imageLightbox__close:focus{
  outline: none;
  box-shadow: var(--focus);
}
@media (prefers-reduced-motion: reduce){
  .imageLightbox,
  .imageLightbox::backdrop{
    transition: none;
  }
}
