.menu-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  background: none;
  border: none;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: background var(--transition);
}
.menu-btn:hover          { background: var(--border); }
.menu-btn:disabled       { color: var(--text-dim); cursor: default; }
.menu-btn:disabled:hover { background: none; }

/* ---- Context menu (desktop) ---- */
.solo-ctx-menu {
  display: none;
  position: fixed;
  z-index: 350;
  min-width: 160px;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border2);
  border-radius: var(--radius-md);
  box-shadow: 0 4px 16px rgb(0 0 0 / 0.6);
}
.solo-ctx-menu ul        { padding: 4px 0; list-style: none; }
.solo-ctx-menu li button { padding: 8px 16px; font-size: 0.9rem; }

.solo-ctx-menu li.ctx-sep,
.bottom-sheet-sep { height: 1px; background: var(--border); }

.solo-ctx-menu li.ctx-sep { margin: 4px 0; }

.ctx-hint {
  margin-left: auto;
  color: var(--text-dim);
  font-size: 0.72rem;
  font-weight: normal;
}

/* ---- Bottom sheet (mobile) ---- */
.solo-bottom-sheet {
  position: fixed;
  inset: 0;
  z-index: 350;
  pointer-events: none;
}
.solo-bottom-sheet.active { pointer-events: auto; }

.bottom-sheet-backdrop {
  position: absolute;
  inset: 0;
  background: var(--overlay-bg-soft);
  opacity: 0;
  transition: opacity 0.2s ease;
}
.solo-bottom-sheet.active .bottom-sheet-backdrop { opacity: 1; }

.bottom-sheet-panel {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  min-height: 300px;
  max-height: 80vh;
  padding: 8px 0 max(12px, env(safe-area-inset-bottom));
  overflow-y: auto;
  background: var(--surface);
  border-top: 1px solid var(--border2);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  transform: translateY(100%);
  transition: transform 0.25s ease;
}
.solo-bottom-sheet.active .bottom-sheet-panel { transform: translateY(0); }

.bottom-sheet-handle {
  width: 36px;
  height: 4px;
  margin: 0 auto 8px;
  background: var(--border2);
  border-radius: 2px;
}

.bottom-sheet-btn { padding: 14px 20px; font-size: 1rem; }
.bottom-sheet-sep { margin: 4px 16px; }
