/* Interactive Shire menu preview.
   Metrics, colours and spacing mirror the in-game shell:
   window 1120x720, sidebar 256, topbar 64, content column 720, statusbar 68. */
.menu-hero { padding-bottom: clamp(24px, 3vw, 36px); }
.menu-demo-section { padding-block: 0 clamp(80px, 9vw, 120px); }

.menu-window {
  --menu-bg: #151515;
  --menu-card: rgba(28, 28, 28, .5);
  --menu-card-solid: #1c1c1c;
  --menu-fg: #f2f2f2;
  --menu-muted: #868686;
  --menu-border: rgba(255, 255, 255, .05);
  --menu-border-strong: rgba(255, 255, 255, .1);
  position: relative;
  display: grid;
  grid-template-columns: 256px minmax(0, 1fr);
  width: min(1120px, 100%);
  height: 720px;
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 16px;
  background: var(--menu-bg);
  color: var(--menu-fg);
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.4;
  box-shadow: 0 40px 120px rgba(0, 0, 0, .72);
  transition: grid-template-columns .2s ease;
}
.menu-window.is-rail { grid-template-columns: 68px minmax(0, 1fr); }
.menu-window button,
.menu-window input,
.menu-window select { font-family: var(--font); }
.menu-window button { -webkit-tap-highlight-color: transparent; }

/* Sidebar */
.menu-sidebar {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0 12px;
  overflow: hidden;
  border-right: 1px solid var(--menu-border);
  background: var(--menu-bg);
}
.menu-brand {
  display: flex;
  flex: 0 0 68px;
  align-items: flex-start;
  gap: 12px;
  height: 68px;
  padding: 20px 8px 0;
}
.menu-brand img { width: 28px; height: 28px; flex: 0 0 auto; }
.menu-brand-word { color: var(--menu-fg); font-size: 14px; font-weight: 600; letter-spacing: -.02em; line-height: 28px; }

.menu-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-height: 0;
  margin-top: 6px;
  overflow-y: auto;
  scrollbar-width: none;
}
.menu-nav::-webkit-scrollbar { display: none; }
.menu-nav-item {
  display: flex;
  flex: 0 0 36px;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 36px;
  padding: 0 12px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--menu-muted);
  font-size: 14px;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
}
.menu-nav-item:hover { color: var(--menu-fg); }
.menu-nav-item.is-active { background: var(--menu-card-solid); color: var(--menu-fg); }
.menu-nav-item .icon { width: 16px; height: 16px; flex: 0 0 16px; opacity: .9; }
.menu-nav-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-nav-label {
  flex: 0 0 28px;
  height: 28px;
  margin: 18px 0 2px;
  padding: 0 8px;
  color: var(--menu-muted);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .14em;
  line-height: 16px;
}

.menu-sidebar-foot {
  position: relative;
  flex: 0 0 68px;
  min-height: 68px;
  margin-top: auto;
  padding: 15px 8px 0 5px;
}
.menu-sidebar-foot::before {
  content: "";
  position: absolute;
  top: 0;
  right: -12px;
  left: -12px;
  height: 1px;
  background: var(--menu-border);
}
.menu-sidebar-mark { display: flex; align-items: center; gap: 12px; min-width: 0; }
.menu-sidebar-mark img { width: 36px; height: 36px; flex: 0 0 auto; border-radius: 50%; }
.menu-sidebar-mark strong { display: block; color: var(--menu-fg); font-size: 14px; font-weight: 500; line-height: 18px; }
.menu-sidebar-mark small { display: block; margin-top: 1px; color: var(--menu-muted); font-size: 12px; font-weight: 400; line-height: 16px; }

/* Collapsed rail */
.menu-window.is-rail .menu-sidebar { padding-inline: 8px; }
.menu-window.is-rail .menu-brand { justify-content: center; padding-inline: 0; }
.menu-window.is-rail .menu-brand-word,
.menu-window.is-rail .menu-nav-item span,
.menu-window.is-rail .menu-nav-label,
.menu-window.is-rail .menu-sidebar-mark span { display: none; }
.menu-window.is-rail .menu-nav-item { justify-content: center; padding: 0; }
.menu-window.is-rail .menu-sidebar-foot { padding-inline: 0; }
.menu-window.is-rail .menu-sidebar-foot::before { right: -8px; left: -8px; }
.menu-window.is-rail .menu-sidebar-mark { justify-content: center; }

/* Main column */
.menu-main {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  background: var(--menu-bg);
}

/* Topbar */
.menu-topbar {
  position: relative;
  display: flex;
  flex: 0 0 64px;
  align-items: center;
  height: 64px;
  padding: 0 16px;
  border-bottom: 1px solid var(--menu-border);
}
.menu-panel-toggle {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--menu-muted);
  cursor: pointer;
}
.menu-panel-toggle:hover { background: var(--menu-card-solid); color: var(--menu-fg); }
.menu-panel-toggle .icon { width: 16px; height: 16px; }
.menu-topbar-rule { width: 1px; height: 20px; margin-left: 8px; background: var(--menu-border); }
.menu-crumb {
  margin-left: 16px;
  overflow: hidden;
  color: var(--menu-fg);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.menu-top-search {
  position: absolute;
  top: 8px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 288px;
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--menu-border);
  border-radius: 12px;
  background: rgba(21, 21, 21, .6);
  transition: border-color .15s ease;
}
.menu-top-search:hover { border-color: var(--menu-border-strong); }
.menu-top-search:focus-within { border-color: var(--menu-border-strong); }
.menu-top-search > .icon { width: 16px; height: 16px; flex: 0 0 16px; color: var(--menu-muted); }
.menu-top-search input {
  flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--menu-fg);
  font-size: 14px;
  font-weight: 400;
}
.menu-top-search input::placeholder { color: var(--menu-muted); opacity: 1; }
.menu-top-search input::-webkit-search-cancel-button { display: none; }
.menu-top-search kbd {
  display: grid;
  place-items: center;
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border: 1px solid var(--menu-border);
  border-radius: 6px;
  background: transparent;
  color: var(--menu-muted);
  font-family: var(--font);
  font-size: 12px;
  line-height: 1;
}

/* Scroll area */
.menu-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  margin-right: 29px;
  padding: 24px 0 28px 28px;
  scrollbar-color: rgba(255, 255, 255, .12) transparent;
  scrollbar-width: thin;
}
.menu-scroll::-webkit-scrollbar { width: 6px; }
.menu-scroll::-webkit-scrollbar-track { background: transparent; }
.menu-scroll::-webkit-scrollbar-thumb { border-radius: 3px; background: rgba(255, 255, 255, .12); }
.menu-view { width: min(720px, 100%); }

/* Page heading */
.menu-page-head { padding: 4px 0 12px; }
.menu-page-head h2 {
  margin: 0;
  color: var(--menu-fg);
  font-family: var(--font);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 28px;
}
.menu-page-head p {
  margin: 0;
  color: var(--menu-muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
}

/* About card */
.menu-about-card {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  height: 136px;
  padding: 16px;
  border: 1px solid var(--menu-border);
  border-radius: 16px;
  background: var(--menu-card);
}
.menu-about-card > img { width: 64px; height: 64px; flex: 0 0 auto; border-radius: 14px; object-fit: cover; }
.menu-about-copy { min-width: 0; padding-top: 10px; }
.menu-about-copy strong { display: block; color: var(--menu-fg); font-size: 14px; font-weight: 500; line-height: 18px; }
.menu-about-copy p { margin: 0; color: var(--menu-muted); font-size: 12px; font-weight: 500; line-height: 16px; }
.menu-about-copy span { display: block; margin-top: 10px; color: var(--menu-fg); font-size: 14px; font-weight: 500; line-height: 18px; }
.menu-about-copy small { display: block; color: var(--menu-muted); font-size: 12px; font-weight: 500; line-height: 16px; }

/* Accordion cards: plain 54px header + individual 64/96px row panels */
.menu-card-list { display: flex; flex-direction: column; }
.menu-card { position: relative; }
.menu-card-head {
  display: flex;
  align-items: center;
  min-height: 54px;
  padding: 0 10px 0 16px;
  border-radius: 28px;
}
.menu-card-head:hover { background: rgba(242, 242, 242, .03); }
.menu-card-toggle {
  flex: 1 1 auto;
  min-width: 0;
  height: 54px;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: transparent;
  color: var(--menu-fg);
  font-size: 14px;
  font-weight: 500;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.menu-card-star,
.menu-card-chevron {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--menu-muted);
  cursor: pointer;
}
.menu-card-star { width: 28px; height: 28px; border-radius: 8px; }
.menu-card-star:hover { color: var(--menu-fg); }
.menu-card-star.is-on { color: var(--menu-fg); }
.menu-card-star .icon { width: 14px; height: 14px; }
.menu-card.no-star .menu-card-star { display: none; }
.menu-card-chevron { width: 24px; height: 32px; }
.menu-card-chevron .icon { width: 12px; height: 12px; transition: transform .18s ease; }
.menu-card.is-open .menu-card-chevron .icon { transform: rotate(180deg); }
.menu-card-body { display: none; flex-direction: column; gap: 8px; padding-bottom: 20px; }
.menu-card.is-open .menu-card-body { display: flex; }
.menu-card.is-highlight .menu-card-head { background: rgba(242, 242, 242, .06); }

/* Rows */
.menu-row {
  position: relative;
  display: flex;
  align-items: flex-start;
  min-height: 64px;
  padding: 14px 16px;
  border: 1px solid var(--menu-border);
  border-radius: 16px;
  background: var(--menu-card);
}
.menu-row-copy { flex: 1 1 auto; min-width: 0; padding-right: 68px; }
.menu-row-copy strong {
  display: block;
  color: var(--menu-fg);
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
}
.menu-row-copy p {
  margin: 0;
  overflow: hidden;
  color: var(--menu-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  text-overflow: ellipsis;
}
.menu-row-copy p:empty { display: none; }
.menu-row.is-highlight { border-color: rgba(195, 198, 255, .45); }
.menu-row-value {
  position: absolute;
  top: 16px;
  right: 16px;
  color: var(--menu-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
}
.menu-row-control { position: absolute; }
.menu-row-control.is-switch { top: 18px; right: 16px; }
.menu-row.is-knob { min-height: 96px; }
.menu-row.is-knob .menu-row-copy { padding-right: 100px; }
.menu-row.is-knob .menu-row-control { top: 50px; right: 16px; left: 16px; height: 40px; }
.menu-row.is-select { min-height: 96px; }
.menu-row.is-select .menu-row-copy { padding-right: 90px; }
.menu-row.is-select .menu-row-control { top: 52px; left: 16px; width: 220px; max-width: calc(100% - 32px); height: 38px; }
.menu-row.is-keybind { min-height: 96px; }
.menu-row.is-keybind .menu-row-copy { padding-right: 170px; }
.menu-row.is-keybind .menu-row-control { top: 52px; right: 16px; width: 150px; height: 30px; }
.menu-row.is-input { min-height: 96px; }
.menu-row.is-input .menu-row-copy { padding-right: 60px; }
.menu-row.is-input .menu-row-control { top: 50px; right: 16px; left: 16px; height: 40px; }
.menu-row.is-action { min-height: 48px; padding: 0; border: 0; background: transparent; }
.menu-row.is-progress { min-height: 74px; }
.menu-row.is-progress .menu-row-copy { padding-right: 150px; }
.menu-row.is-progress .menu-row-control { top: 52px; right: 16px; left: 16px; height: 6px; }
.menu-row.is-buttons { min-height: 48px; padding: 0; border: 0; background: transparent; }
.menu-row.is-readout { min-height: 64px; }
.menu-row.is-readout .menu-row-copy { padding-right: 110px; }
.menu-row.is-heading { min-height: 32px; padding: 8px 4px 0; border: 0; background: transparent; }
.menu-row.is-heading .menu-row-copy strong { color: var(--menu-muted); font-size: 14px; font-weight: 500; }
.menu-row.is-note { min-height: 32px; padding: 6px 4px 0; border: 0; background: transparent; }
.menu-row.is-note .menu-row-copy strong { color: #ff6050; font-size: 14px; font-weight: 500; }

/* Switch 48x28 */
.menu-switch {
  position: relative;
  width: 48px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 14px;
  background: rgba(134, 134, 134, .6);
  cursor: pointer;
  transition: background .18s ease;
}
.menu-switch::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--menu-bg);
  transition: transform .18s ease;
}
.menu-switch.is-on { background: var(--menu-fg); }
.menu-switch.is-on::after { transform: translateX(20px); }

/* Select 38px */
.menu-select {
  width: 100%;
  height: 38px;
  padding: 0 34px 0 12px;
  border: 1px solid var(--menu-border);
  border-radius: 12px;
  outline: 0;
  background-color: var(--menu-bg);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23868686' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  color: var(--menu-fg);
  font-size: 14px;
  font-weight: 400;
  appearance: none;
  cursor: pointer;
}
.menu-select:hover, .menu-select:focus { border-color: var(--menu-border-strong); }

/* Range: 10px track, 6x20 handle */
.menu-range { display: flex; align-items: center; width: 100%; height: 40px; }
.menu-range input[type="range"] {
  width: 100%;
  height: 10px;
  margin: 0;
  border-radius: 5px;
  outline: 0;
  background: linear-gradient(to right, rgba(242, 242, 242, .1) 0 var(--fill, 50%), #1c1c1c var(--fill, 50%) 100%);
  appearance: none;
  cursor: pointer;
}
.menu-range input[type="range"]::-webkit-slider-thumb {
  width: 6px;
  height: 20px;
  border: 0;
  border-radius: 3px;
  background: var(--menu-fg);
  appearance: none;
}
.menu-range input[type="range"]::-moz-range-thumb {
  width: 6px;
  height: 20px;
  border: 0;
  border-radius: 3px;
  background: var(--menu-fg);
}
.menu-range input[type="range"]:active::-webkit-slider-thumb { transform: scaleX(1.35); }

/* Keybind chip */
.menu-keybind {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--menu-border-strong);
  border-radius: 6px;
  background: rgba(28, 28, 28, .9);
  color: var(--menu-fg);
  font-size: 12px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.menu-keybind:hover { background: #242424; }
.menu-keybind.is-listening { border-color: var(--menu-fg); }

/* Primary action button */
.menu-action {
  width: 100%;
  height: 48px;
  padding: 0 18px;
  border: 0;
  border-radius: 24px;
  background: var(--menu-fg);
  color: var(--menu-bg);
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s ease, transform .1s ease;
}
.menu-action:hover { background: #dedede; }
.menu-action:active { transform: scale(.985); }
.menu-buttons3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.menu-buttons3 .menu-action { height: 48px; padding: 0 8px; font-size: 14px; }

/* Progress */
.menu-progress { width: 100%; height: 6px; overflow: hidden; border-radius: 3px; background: var(--menu-border); }
.menu-progress span { display: block; height: 100%; border-radius: inherit; background: var(--menu-fg); }

/* Text input row */
.menu-input {
  width: 100%;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--menu-border);
  border-radius: 12px;
  outline: 0;
  background: var(--menu-bg);
  color: var(--menu-fg);
  font-size: 14px;
}
.menu-input::placeholder { color: var(--menu-muted); }
.menu-input:focus { border-color: var(--menu-border-strong); }

/* Favorites */
.menu-fav-card { padding: 16px 0; border: 1px solid var(--menu-border); border-radius: 16px; background: var(--menu-card); }
.menu-fav-row { display: flex; align-items: center; height: 44px; padding: 0 16px; }
.menu-fav-row + .menu-fav-row { box-shadow: inset 0 1px 0 var(--menu-border); }
.menu-fav-star {
  display: grid;
  flex: 0 0 28px;
  place-items: center;
  width: 28px;
  height: 28px;
  margin-left: -6px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--menu-fg);
  cursor: pointer;
}
.menu-fav-star .icon { width: 16px; height: 16px; }
.menu-fav-open {
  display: flex;
  flex: 1 1 auto;
  align-items: baseline;
  gap: 12px;
  min-width: 0;
  height: 44px;
  padding: 0 0 0 16px;
  border: 0;
  background: transparent;
  color: var(--menu-fg);
  text-align: left;
  cursor: pointer;
}
.menu-fav-open strong { overflow: hidden; font-size: 14px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.menu-fav-open small { color: var(--menu-muted); font-size: 12px; font-weight: 400; }
.menu-fav-cat { margin-left: auto; color: var(--menu-muted); font-size: 12px; font-weight: 400; }
.menu-fav-empty {
  display: flex;
  height: 104px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--menu-border);
  border-radius: 16px;
  background: var(--menu-card);
  text-align: center;
}
.menu-fav-empty strong { color: var(--menu-fg); font-size: 14px; font-weight: 500; line-height: 20px; }
.menu-fav-empty p { margin: 4px 0 0; color: var(--menu-muted); font-size: 12px; line-height: 16px; }

/* Search results */
.menu-results { display: flex; flex-direction: column; gap: 8px; }
.menu-result {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 64px;
  padding: 12px 16px;
  border: 1px solid var(--menu-border);
  border-radius: 16px;
  background: var(--menu-card);
  color: var(--menu-fg);
  text-align: left;
  cursor: pointer;
}
.menu-result:hover { border-color: var(--menu-border-strong); background: rgba(28, 28, 28, .7); }
.menu-result-main { flex: 1 1 auto; min-width: 0; }
.menu-result-main strong { display: block; font-size: 14px; font-weight: 500; line-height: 18px; }
.menu-result-main small { display: block; overflow: hidden; color: var(--menu-muted); font-size: 12px; line-height: 16px; text-overflow: ellipsis; white-space: nowrap; }
.menu-result-cat { color: var(--menu-muted); font-size: 12px; }

/* Searchable list inside a card */
.menu-list {
  max-height: 300px;
  padding: 12px 16px;
  overflow: auto;
  border: 1px solid var(--menu-border);
  border-radius: 16px;
  background: var(--menu-card);
  overscroll-behavior: contain;
  scrollbar-color: rgba(255, 255, 255, .12) transparent;
  scrollbar-width: thin;
}
.menu-list.is-tall { max-height: 430px; }
.menu-list::-webkit-scrollbar { width: 6px; }
.menu-list::-webkit-scrollbar-thumb { border-radius: 3px; background: rgba(255, 255, 255, .12); }
.menu-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; }
.menu-check-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.menu-check {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  height: 30px;
  color: var(--menu-muted);
  font-size: 14px;
  cursor: pointer;
}
.menu-check input { width: 16px; height: 16px; margin: 0; accent-color: var(--menu-fg); flex: 0 0 16px; }
.menu-check span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-list .menu-empty { display: grid; height: 100%; place-items: center; color: var(--menu-muted); font-size: 14px; }

.menu-table { display: flex; min-width: 440px; flex-direction: column; gap: 2px; font-size: 12px; }
.menu-table-head,
.menu-table-row { display: grid; grid-template-columns: 26px 46px minmax(0, 1fr) 50px 50px 50px 60px; gap: 6px; align-items: center; min-height: 30px; }
.menu-table-head { color: var(--menu-muted); font-weight: 600; }
.menu-table-row { color: var(--menu-muted); }
.menu-table-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-table-row .is-name { color: var(--menu-fg); }

/* Statusbar */
.menu-statusbar {
  display: flex;
  flex: 0 0 68px;
  align-items: flex-start;
  justify-content: space-between;
  height: 68px;
  padding: 12px 29px 0 28px;
  border-top: 1px solid var(--menu-border);
}
.menu-status-view span { display: block; color: var(--menu-muted); font-size: 10px; font-weight: 400; letter-spacing: .16em; line-height: 15px; }
.menu-status-view strong { display: block; margin-top: 4px; color: var(--menu-fg); font-size: 14px; font-weight: 500; line-height: 20px; }
.menu-status-close {
  margin-top: 23px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--menu-muted);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}
.menu-status-close:hover { color: var(--menu-fg); }

/* Closed state */
.menu-closed {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: grid;
  place-items: center;
  background: rgba(21, 21, 21, .96);
  backdrop-filter: blur(16px);
}
.menu-closed[hidden] { display: none; }
.menu-closed > div { max-width: 300px; padding: 24px; text-align: center; }
.menu-closed-mark { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 14px; border-radius: 16px; background: var(--menu-card-solid); }
.menu-closed-mark img { width: 34px; height: 34px; }
.menu-closed strong { display: block; color: var(--menu-fg); font-size: 16px; font-weight: 600; }
.menu-closed p { margin: 6px 0 0; color: var(--menu-muted); font-size: 12px; line-height: 1.55; }
.menu-closed p kbd { padding: 1px 5px; border: 1px solid var(--menu-border-strong); border-radius: 4px; font-size: 11px; }
.menu-closed .btn { margin-top: 16px; }

/* Toast */
.menu-toast {
  position: absolute;
  left: 50%;
  bottom: 82px;
  z-index: 6;
  transform: translateX(-50%) translateY(8px);
  padding: 8px 12px;
  border: 1px solid rgba(120, 255, 180, .2);
  border-radius: 7px;
  background: rgba(15, 30, 22, .92);
  color: #9df0c0;
  font-size: 12px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.menu-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }

/* Home embed */
.menu-embed-section { overflow: hidden; }
.menu-embed-section .menu-window { margin-top: 0; }
.menu-embed-section .menu-disclaimer { margin-top: 16px; }

/* Responsive */
@media (max-width: 1180px) {
  .menu-window { grid-template-columns: 230px minmax(0, 1fr); }
  .menu-scroll { margin-right: 24px; padding: 22px 0 26px 24px; }
  .menu-statusbar { padding-inline: 24px; }
}
@media (max-width: 900px) {
  .menu-window { grid-template-columns: 210px minmax(0, 1fr); }
  .menu-top-search { width: 230px; }
  .menu-view { width: 100%; }
}
@media (max-width: 780px) {
  .menu-window {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    height: min(720px, 82vh);
    min-height: 520px;
  }
  .menu-window.is-rail { grid-template-columns: 1fr; }
  .menu-sidebar {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    padding: 8px 12px;
    overflow: hidden;
    border-right: 0;
    border-bottom: 1px solid var(--menu-border);
  }
  .menu-brand { flex: 1 0 100%; align-items: center; gap: 8px; height: 36px; padding: 0 4px 0 0; }
  .menu-brand img { width: 24px; height: 24px; }
  .menu-nav { flex: 1 0 100%; flex-direction: row; flex-wrap: wrap; gap: 3px; margin: 0; overflow: visible; }
  .menu-nav-item[data-menu-search] { display: none; }
  .menu-nav-label { display: none; }
  .menu-nav-item { flex: 0 0 auto; width: auto; height: 32px; padding: 0 3px; font-size: 11px; }
  .menu-nav-item .icon { width: 14px; height: 14px; flex-basis: 14px; }
  .menu-sidebar-foot { display: none; }
  .menu-window.is-rail .menu-brand-word,
  .menu-window.is-rail .menu-nav-item span { display: block; }
  .menu-window.is-rail .menu-nav-item { justify-content: flex-start; padding: 0 8px; }
  .menu-main { min-height: 0; }
  .menu-scroll { margin-right: 0; padding: 18px 16px 22px; }
  .menu-statusbar { flex-basis: 64px; height: 64px; padding: 10px 16px 0; }
  .menu-status-close { margin-top: 21px; }
  .menu-top-search { width: min(288px, 46vw); }
  .menu-page-head h2 { font-size: 19px; }
}
@media (max-width: 620px) {
  .menu-row.is-knob .menu-row-control,
  .menu-row.is-input .menu-row-control,
  .menu-row.is-progress .menu-row-control { right: 16px; }
  .menu-row-copy { padding-right: 64px; }
  .menu-row.is-keybind .menu-row-copy { padding-right: 150px; }
  .menu-row.is-keybind .menu-row-control { width: 130px; }
}
@media (max-width: 520px) {
  .menu-topbar { padding-inline: 10px; }
  .menu-crumb { margin-left: 10px; }
  .menu-topbar-rule { margin-left: 4px; }
  .menu-top-search { right: 10px; width: min(180px, 45vw); padding: 0 10px; gap: 8px; }
  .menu-top-search kbd { display: none; }
  .menu-statusbar { padding-inline: 12px; }
  .menu-status-close { font-size: 10px; }
  .menu-page-head p { font-size: 13px; }
  .menu-row { padding-inline: 12px; }
  .menu-row.is-knob .menu-row-control,
  .menu-row.is-input .menu-row-control,
  .menu-row.is-progress .menu-row-control { left: 12px; right: 12px; }
  .menu-row.is-select .menu-row-control { left: 12px; max-width: calc(100% - 24px); }
  .menu-row-value { right: 12px; }
  .menu-row-control.is-switch { right: 12px; }
  .menu-check-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
