:root {
  --bg: #0d1117;
  --panel: #141a21;
  --panel-2: #10161d;
  --line: #26323d;
  --text: #edf6fb;
  --muted: #9aabb7;
  --echo: #4232e4;
  --echo-2: #36c4ff;
  --echo-soft: rgba(66, 50, 228, .22);
  --danger: #b34b58;
  --good: #36b878;
  --warn: #d8aa3c;
}

:where([hidden]) {
  display: none !important;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: Segoe UI, system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
}

main {
  width: min(1240px, calc(100% - 32px));
  margin: 20px auto 64px;
}

h1, h2, h3, p { margin: 0; }
h1 { font-size: 24px; letter-spacing: 0; }
h1 span { color: var(--echo); }
h2 { font-size: 15px; }
h3 { font-size: 13px; margin: 14px 0 8px; color: var(--text); }
p { color: var(--muted); margin-top: 4px; font-size: 13px; }
code { color: var(--echo-2); }
.muted { color: var(--muted); font-size: 12px; }

.order-error {
  max-width: 360px;
  margin-top: 4px;
  color: #ff8796;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid rgba(66, 50, 228, .48);
  padding-bottom: 16px;
}

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

.brand img {
  width: 46px;
  height: 46px;
}

.auth {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-items: end;
}

.status-strip, .workspace {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.status-strip > div, .panel {
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: 8px;
  padding: 14px;
}

.status-strip > div {
  border-color: rgba(66, 50, 228, .28);
  box-shadow: 0 0 0 1px rgba(66, 50, 228, .05) inset;
}

.workspace {
  grid-template-columns: 1.35fr .85fr;
}

.workspace + .workspace {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.panel-large {
  min-height: 320px;
}

.panel-head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 12px;
  margin-bottom: 12px;
}

.panel-head h2 {
  position: relative;
  padding-left: 11px;
}

.panel-head h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 3px;
  height: 14px;
  border-radius: 999px;
  background: var(--echo);
}

input, select, button, textarea, .button {
  width: 100%;
  border: 1px solid #33424e;
  border-radius: 6px;
  background: var(--panel-2);
  color: var(--text);
  padding: 10px 11px;
  margin-top: 8px;
  font: inherit;
}

label {
  color: var(--muted);
  font-size: 12px;
}

button, .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: linear-gradient(135deg, #4232e4, #1c95d2);
  border-color: #5a50f0;
  color: white;
  font-weight: 700;
  text-decoration: none;
}

button:hover, .button:hover { filter: brightness(1.1); }
.button.secondary, button.secondary { background: #1b2630; border-color: rgba(66, 50, 228, .5); }
button.small { width: auto; padding: 6px 8px; margin: 0 6px 6px 0; font-size: 12px; }
.compact-button { width: auto; margin: 0; white-space: nowrap; }
button.danger { background: var(--danger); border-color: var(--danger); }

.walker-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-2);
}

.service-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  margin-right: 8px;
  background: var(--danger);
  box-shadow: 0 0 12px rgba(179, 75, 88, .6);
}

.service-dot.online {
  background: var(--good);
  box-shadow: 0 0 12px rgba(54, 184, 120, .6);
}

.walker-process { display: flex; gap: 8px; flex-wrap: wrap; justify-content: end; }
.walker-process span { padding: 5px 8px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); font-size: 12px; }
.walker-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.walker-metrics > div { padding: 12px; border: 1px solid rgba(66, 50, 228, .35); border-radius: 8px; background: rgba(66, 50, 228, .08); }
.walker-metrics span { display: block; color: var(--muted); font-size: 11px; }
.walker-metrics strong { display: block; margin-top: 5px; color: var(--echo-2); font-size: 17px; }
.walker-split { display: grid; grid-template-columns: 1.35fr .65fr; gap: 12px; }
.walker-log { max-height: 430px; overflow: auto; font: 11px Consolas, monospace; }
.walker-log > div { display: grid; grid-template-columns: auto auto 1fr; gap: 7px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.walker-log time, .walker-log .log-source { color: var(--muted); }

.walker-lab {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  min-height: 680px;
  margin: 16px 0;
  overflow: hidden;
  border: 1px solid rgba(66, 50, 228, .38);
  border-radius: 8px;
  background: #080e14;
}

.walker-lab-sidebar {
  min-width: 0;
  padding: 14px;
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: var(--panel-2);
}

.walker-lab-heading {
  margin-bottom: 12px;
}

.walker-lab-heading h3 {
  margin: 0;
  font-size: 14px;
}

.walker-coordinate-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.walker-coordinate-grid fieldset {
  display: grid;
  grid-template-columns: minmax(78px, 1fr) minmax(78px, 1fr) 58px;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
}

.walker-coordinate-grid legend {
  padding: 0 5px;
  color: var(--echo-2);
  font-size: 11px;
  font-weight: 700;
}

.walker-coordinate-grid input {
  width: 100%;
  min-width: 5.5ch;
  padding: 7px 6px;
  font-variant-numeric: tabular-nums;
}

.walker-coordinate-grid label:last-child input {
  min-width: 3.5ch;
}

.walker-picker-row,
.walker-option-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.walker-picker-row button {
  margin-top: 8px;
}

.walker-option-grid {
  margin: 12px 0;
}

.walker-option-grid label {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--text);
}

.walker-option-grid input {
  width: auto;
  margin: 0;
}

.walker-quest-preset {
  display: grid;
  gap: 5px;
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 11px;
}

.walker-quest-preset select {
  width: 100%;
}

.walker-capabilities {
  margin-bottom: 10px;
}

.walker-capabilities summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 12px;
}

.walker-capabilities textarea {
  min-height: 130px;
  font-size: 11px;
}

.walker-lab-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 12px;
}

.walker-lab-stats div {
  min-width: 0;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #0b131b;
}

.walker-lab-stats strong,
.walker-lab-stats span {
  display: block;
}

.walker-lab-stats strong {
  color: var(--echo-2);
  font-size: 16px;
}

.walker-lab-stats span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
}

.walker-lab-message {
  min-height: 34px;
  margin-top: 11px;
  padding: 8px 9px;
  border-left: 3px solid var(--echo);
  background: rgba(66, 50, 228, .08);
}

.walker-lab-message.success { border-left-color: var(--good); color: #7ef0b3; }
.walker-lab-message.error { border-left-color: var(--danger); color: #ff9aa7; }

.walker-traversal-list {
  display: grid;
  gap: 6px;
  max-height: 220px;
  margin-top: 10px;
  overflow-y: auto;
}

.walker-traversal-list > div {
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  font-size: 11px;
}

.walker-traversal-list b {
  color: #ff7c86;
}

.walker-map-wrap {
  position: relative;
  min-width: 0;
  min-height: 680px;
}

#walkerMap {
  position: absolute;
  inset: 0;
  background: #02070b;
}

.walker-map-tools {
  position: absolute;
  z-index: 500;
  top: 12px;
  left: 50%;
  display: flex;
  gap: 6px;
  max-width: calc(100% - 24px);
  padding: 7px;
  transform: translateX(-50%);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(8, 14, 20, .94);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .42);
}

.walker-map-tools button,
.walker-map-tools select {
  width: auto;
  min-width: 68px;
  margin: 0;
  padding: 7px 9px;
  white-space: nowrap;
}

.walker-map-tools button.active {
  border-color: var(--echo-2);
  background: rgba(66, 50, 228, .35);
}

.walker-transport-marker,
.walker-endpoint-marker {
  border: 0;
  background: transparent;
}

.walker-transport-marker div {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 2px solid white;
  border-radius: 50%;
  background: #e84e5a;
  color: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .7);
  font: 800 11px system-ui;
}

.walker-endpoint-marker div {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border: 2px solid white;
  border-radius: 6px;
  color: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .7);
  font: 800 11px system-ui;
}

.walker-endpoint-marker .start { background: #168758; }
.walker-endpoint-marker .end { background: #cc3c62; }
.walker-map-wrap .leaflet-control-attribution { background: rgba(8, 14, 20, .88); color: var(--muted); }
.walker-map-wrap .leaflet-control-attribution a { color: var(--echo-2); }
.walker-map-wrap .leaflet-popup-content-wrapper,
.walker-map-wrap .leaflet-popup-tip { background: #0b131b; color: var(--text); }

textarea {
  min-height: 118px;
  font-family: Consolas, monospace;
  resize: vertical;
}

.script-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
  max-height: 360px;
  overflow-y: auto;
  padding-right: 6px;
}

.script-card {
  position: relative;
  display: block;
  border: 1px solid var(--line);
  background: #101820;
  border-radius: 8px;
  padding: 12px 12px 12px 38px;
  color: var(--text);
}

.script-card input {
  position: absolute;
  left: 12px;
  top: 9px;
  width: auto;
  margin: 0;
}

.script-card strong {
  display: block;
  font-size: 13px;
}

.script-card span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 3px;
}

.script-card:has(input:checked) {
  border-color: var(--echo);
  box-shadow: 0 0 0 1px rgba(66, 50, 228, .34) inset, 0 0 24px rgba(66, 50, 228, .12);
}

.empty-note {
  grid-column: 1 / -1;
  border: 1px dashed rgba(66, 50, 228, .36);
  border-radius: 8px;
  padding: 14px;
  background: rgba(66, 50, 228, .08);
}

.import-results {
  display: grid;
  gap: 8px;
  max-height: 190px;
  overflow: auto;
  margin-top: 12px;
}

.import-row {
  display: grid;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-2);
  padding: 9px 10px;
}

.import-row strong {
  font-size: 12px;
}

.import-row span {
  color: var(--muted);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.import-row.imported {
  border-color: rgba(54, 184, 120, .45);
}

.import-row.imported strong {
  color: #7ef0b3;
}

.import-row.skipped {
  border-color: rgba(216, 170, 60, .45);
}

.import-row.skipped strong {
  color: #ffd879;
}

.import-row.error {
  border-color: rgba(179, 75, 88, .62);
}

.import-row.error strong {
  color: #ff9aa7;
}

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

.form-grid.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.preset-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.preset-row button {
  margin-top: 0;
  padding: 8px;
}

.latest-key-panel {
  border-color: rgba(66, 50, 228, .45);
}

.inline-status {
  display: inline-flex;
  width: auto;
  max-width: 190px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(66, 50, 228, .55);
  border-radius: 999px;
  background: rgba(66, 50, 228, .15);
  color: #d9d5ff;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.inline-status.error {
  border-color: rgba(179, 75, 88, .75);
  background: rgba(179, 75, 88, .18);
  color: #ffb5bf;
}

.inline-status.pulse {
  animation: notice-pulse .42s ease;
}

@keyframes notice-pulse {
  0% { transform: scale(.98); }
  60% { transform: scale(1.04); }
  100% { transform: scale(1); }
}

.key-results {
  display: grid;
  gap: 10px;
  min-height: 118px;
}

.key-results.empty {
  align-items: center;
  border: 1px dashed rgba(66, 50, 228, .36);
  border-radius: 8px;
  padding: 14px;
}

.key-card {
  border: 1px solid rgba(66, 50, 228, .36);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(66, 50, 228, .12), rgba(16, 22, 29, .72));
  padding: 12px;
}

.key-label {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 8px;
}

.key-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.key-main + .key-main {
  margin-top: 8px;
}

.key-code {
  display: block;
  overflow-wrap: anywhere;
  border: 1px solid rgba(66, 50, 228, .3);
  border-radius: 6px;
  background: #0d141c;
  color: #e6e3ff;
  padding: 8px;
  font-size: 13px;
}

.key-link a {
  color: var(--echo-2);
  overflow-wrap: anywhere;
  text-decoration: none;
}

.key-hint {
  display: block;
  color: #d9d5ff;
  font-size: 12px;
  margin-top: 8px;
}

.quick-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.quick-actions button {
  margin-top: 0;
}

.hidden-input {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.upload-panel {
  position: relative;
}

.drop-zone {
  display: grid;
  place-items: center;
  min-height: 164px;
  border: 1px dashed rgba(66, 50, 228, .55);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(66, 50, 228, .14), rgba(16, 22, 29, .75)),
    var(--panel-2);
  color: var(--text);
  cursor: pointer;
  padding: 18px;
  text-align: center;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.drop-zone:hover,
.drop-zone.dragging,
.drop-zone:focus-visible {
  border-color: var(--echo-2);
  box-shadow: 0 0 0 1px rgba(66, 50, 228, .35) inset, 0 0 28px rgba(66, 50, 228, .16);
  outline: none;
  transform: translateY(-1px);
}

.drop-zone svg {
  width: 44px;
  height: 44px;
  color: var(--echo-2);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  margin-bottom: 10px;
}

.drop-zone strong {
  display: block;
  color: #f4f2ff;
  font-size: 14px;
}

.drop-zone span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 4px;
}

.upload-selection {
  overflow-wrap: anywhere;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  background: rgba(3, 6, 10, .72);
  padding: 20px;
}

.modal-backdrop[hidden] {
  display: none;
}

.modal {
  width: min(440px, 100%);
  border: 1px solid rgba(66, 50, 228, .55);
  border-radius: 8px;
  background: #111820;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .48), 0 0 0 1px rgba(66, 50, 228, .12) inset;
  padding: 16px;
}

.modal-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}

.modal-actions button {
  margin-top: 0;
}

.upload-progress {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.upload-progress-head,
.job-head,
.job-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.upload-progress progress,
.job-progress {
  display: block;
  width: 100%;
  height: 10px;
  margin: 9px 0;
  accent-color: var(--echo-2);
}

.upload-progress p {
  margin: 6px 0;
  color: var(--muted);
}

.processing-panel {
  margin-bottom: 14px;
}

.artifact-jobs {
  display: grid;
  gap: 8px;
  max-height: 680px;
  overflow-y: auto;
  padding-right: 5px;
  scrollbar-gutter: stable;
}

.artifact-job {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-2);
  padding: 12px;
}

.artifact-job.running,
.artifact-job.queued {
  border-color: rgba(66, 50, 228, .7);
}

.artifact-job.completed {
  border-color: rgba(45, 185, 112, .6);
}

.artifact-job.failed {
  border-color: rgba(221, 75, 92, .65);
}

.job-head strong,
.job-meta span {
  overflow-wrap: anywhere;
}

.job-head .pill {
  flex: 0 0 auto;
}

.job-meta {
  color: var(--muted);
  font-size: 12px;
}

.job-message {
  margin: 7px 0 0;
}

.job-error {
  margin: 8px 0 0;
  color: #ff8796;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.job-log {
  max-height: 150px;
  overflow: auto;
  margin-top: 9px;
  padding: 8px;
  border: 1px solid var(--line);
  background: #090f15;
  color: #b9c8d5;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 11px;
}

.job-log div + div {
  margin-top: 5px;
}

@media (max-width: 560px) {
  .job-head,
  .job-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
}

.file-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  border: 1px solid rgba(66, 50, 228, .5);
  border-radius: 6px;
  background: #1b2630;
  color: var(--text);
  font-weight: 700;
  cursor: pointer;
}

.file-button input {
  display: none;
}

.filter-bar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 180px 180px;
  gap: 10px;
  margin-bottom: 10px;
}

.filter-bar input, .filter-bar select {
  margin-top: 0;
}

.filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}

.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel-2);
  color: var(--text);
  padding: 7px 10px;
  font-size: 12px;
}

.filter-chip:has(input:checked) {
  border-color: var(--echo);
  background: rgba(66, 50, 228, .18);
  color: #e8e5ff;
}

.filter-chip input {
  width: auto;
  margin: 0;
}

.tabs {
  display: flex;
  gap: 8px;
  margin-top: 18px;
  border-bottom: 1px solid var(--line);
}

.tab {
  width: auto;
  margin: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background: #111820;
}

.tab.active {
  background: rgba(66, 50, 228, .22);
  border-color: var(--echo);
}

.tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  margin-left: 7px;
  border-radius: 999px;
  background: #d64055;
  color: white;
  font-size: 12px;
  font-weight: 800;
}

.tab-panel { display: none; margin-top: 0; border-top-left-radius: 0; }
.tab-panel.active { display: block; }

.split-tables {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin-top: 14px;
}

.nested-table {
  overflow-x: auto;
}

.guide-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.guide-grid article {
  border: 1px solid rgba(66, 50, 228, .25);
  background: var(--panel-2);
  border-radius: 8px;
  padding: 14px;
}

.store-admin-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 16px;
  align-items: start;
}

.store-product-list {
  display: grid;
  gap: 14px;
}

.review-admin-panel {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.review-stars {
  color: #ffd34e;
  white-space: nowrap;
  font-size: 16px;
}

.review-copy {
  max-width: 460px;
  margin-top: 4px;
  color: var(--muted);
  white-space: pre-wrap;
}

.store-admin-card,
.mini-panel {
  border: 1px solid rgba(66, 50, 228, .28);
  border-radius: 8px;
  background: var(--panel-2);
  padding: 14px;
}

.loader-release-panel {
  align-self: start;
}

.loader-release-panel .file-button {
  margin-top: 10px;
}

.loader-release-panel > .muted {
  margin: 6px 0 0;
  overflow-wrap: anywhere;
}

.loader-upload-progress {
  margin-top: 10px;
}

.panel-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.orders-panel {
  min-width: 0;
}

.credit-grant-panel {
  display: grid;
  gap: 10px;
}

.credit-grant-panel h3 {
  margin-bottom: 2px;
}

.credit-grant-panel button {
  margin-top: 0;
}

.autocomplete-field {
  position: relative;
}

.suggestions {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  max-height: 220px;
  overflow-y: auto;
  border: 1px solid rgba(66, 50, 228, .58);
  border-radius: 8px;
  background: #0b1118;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .38);
  padding: 6px;
}

.suggestions button {
  display: grid;
  gap: 2px;
  width: 100%;
  margin: 0;
  padding: 8px;
  text-align: left;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text);
}

.suggestions button:hover,
.suggestions button:focus {
  background: rgba(66, 50, 228, .28);
}

.suggestions span {
  color: var(--muted);
  font-size: 11px;
}

.store-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 116px;
  gap: 12px;
  align-items: start;
  margin-bottom: 12px;
}

.store-card-head img,
.store-image-empty {
  width: 116px;
  height: 70px;
  border: 1px solid var(--line);
  border-radius: 8px;
  object-fit: cover;
  background: #0d141c;
}

.store-image-empty {
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: 12px;
}

.store-product-form,
.store-plan-form {
  display: grid;
  gap: 10px;
}

.store-product-form textarea {
  min-height: 84px;
}

.store-plan-form {
  margin-top: 12px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.checkbox-line {
  display: inline-flex;
  width: auto;
  align-items: center;
  gap: 8px;
  color: var(--text);
}

.checkbox-line input {
  width: auto;
  margin: 0;
}

.plan-list {
  display: grid;
  gap: 8px;
}

.plan-admin-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #0d141c;
  padding: 8px;
  color: var(--muted);
  font-size: 12px;
}

table {
  width: 100%;
  border-collapse: collapse;
}

th, td {
  text-align: left;
  padding: 10px 8px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  vertical-align: top;
}

th {
  color: var(--muted);
  font-weight: 650;
}

.pill {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 999px;
  background: #20313c;
}

.status-active {
  background: rgba(54, 184, 120, .18);
  color: #7ef0b3;
}

.status-revoked, .status-banned {
  background: rgba(179, 75, 88, .22);
  color: #ff9aa7;
}

.status-denied {
  background: rgba(179, 75, 88, .22);
  color: #ff9aa7;
}

.status-suspended {
  background: rgba(216, 170, 60, .22);
  color: #ffd879;
}

.plugin-list {
  display: grid;
  gap: 4px;
  max-height: 130px;
  min-width: 260px;
  overflow: auto;
  padding-right: 6px;
}

.plugin-list span {
  display: block;
  color: var(--text);
  line-height: 1.35;
}

.locked {
  opacity: .72;
}

.login-page {
  display: grid;
  min-height: calc(100vh - 80px);
  place-items: center;
}

.login-card {
  width: min(420px, 100%);
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: 8px;
  padding: 24px;
  text-align: center;
}

.login-card img {
  width: 96px;
  height: 96px;
  margin-bottom: 14px;
}

.login-card .button {
  margin-top: 18px;
}

.warning {
  margin-top: 14px;
  color: #ffcc7a;
}

.diagnostic-detail summary {
  cursor: pointer;
  color: var(--accent);
  white-space: nowrap;
}

.diagnostic-detail pre {
  max-width: 620px;
  max-height: 280px;
  overflow: auto;
  margin: 8px 0 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #090d13;
  color: var(--text);
  font-size: 11px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .topbar, .status-strip, .workspace, .workspace + .workspace, .form-grid, .script-grid, .guide-grid, .preset-row, .filter-bar, .quick-actions, .modal-actions, .store-admin-layout, .walker-metrics, .walker-split {
    grid-template-columns: 1fr;
  }
  .walker-status { align-items: flex-start; flex-direction: column; }
  .walker-process { justify-content: start; }
  .topbar { display: grid; }
  .auth { justify-items: stretch; }
  .auth details { width: 100%; }
  .walker-lab { grid-template-columns: 1fr; }
  .walker-lab-sidebar { max-height: none; border-right: 0; border-bottom: 1px solid var(--line); }
  .walker-map-wrap { min-height: 520px; }
}

@media (max-width: 560px) {
  .walker-map-tools { left: 8px; right: 8px; flex-wrap: wrap; transform: none; }
  .walker-map-tools button,
  .walker-map-tools select { flex: 1 1 30%; }
}
