/* Menu settings: group cards with list rows, arrow ordering, visibility switches and a live sidebar preview. */
.menu-settings { display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:24px;align-items:start; }
.menu-settings-form { display:grid;gap:16px;min-width:0; }
.menu-settings .sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.menu-settings svg { fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }

/* Group card */
.menu-group-card { background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 14px #39335c08;overflow:hidden; }
.menu-group-head { display:flex;align-items:center;gap:14px;padding:16px 20px;background:#fbfbfe;border-bottom:1px solid var(--line); }
.menu-group-icon { display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border-radius:11px;background:var(--brand-soft);color:var(--brand-text); }
.menu-group-icon svg { width:19px;height:19px; }
.menu-group-title { flex:1;min-width:0; }
.menu-group-title h3 { margin:0;font-size:15px;line-height:1.5; }
.menu-group-title p { margin:3px 0 0;color:var(--muted);font-size:11px; }
.menu-group-name { display:flex;align-items:center;gap:10px; }
.menu-group-name > span { flex-shrink:0;color:var(--muted);font-size:11px;font-weight:600; }
.menu-group-name input { width:min(240px,100%);min-width:0;padding:8px 11px;border-radius:9px;font-size:14px;font-weight:700; }
.menu-group-name + p { margin-left:0; }
.menu-group-count { flex-shrink:0;padding:5px 10px;border-radius:999px;background:#f1f2f6;color:var(--muted);font-size:11px;font-weight:600;white-space:nowrap; }
.menu-group-card.is-empty .menu-group-count { background:#fbf0e6;color:#9a5a1c; }

/* Item rows */
.menu-item-list { list-style:none;margin:0;padding:6px 8px; }
.menu-item-row { display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto 112px;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;transition:background .15s,opacity .15s; }
.menu-item-row + .menu-item-row { box-shadow:0 -1px 0 var(--line); }
.menu-item-row:hover { background:#fafafe; }
.menu-item-row:focus-within { background:#fafafe; }
.menu-item-pos { color:#a3a6b4;font-size:12px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums; }
.menu-item-icon { display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;color:#6c6b80; }
.menu-item-icon svg { width:17px;height:17px; }
.menu-item-name { display:grid;gap:4px;min-width:0; }
.menu-item-name input { width:100%;max-width:340px;min-width:0;padding:9px 12px;border-radius:9px;font-size:13px;font-weight:600; }
.menu-item-name small { color:var(--muted);font-size:10.5px; }
.menu-item-order { display:flex;gap:4px; }
.menu-move { display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:#5d5c72;cursor:pointer;transition:background .15s,border-color .15s,color .15s; }
.menu-move svg { width:16px;height:16px; }
.menu-move:hover:not(:disabled) { border-color:var(--brand-border);background:var(--brand-soft);color:var(--brand-text); }
.menu-move:disabled { opacity:.35;cursor:default; }
.menu-move:focus-visible { outline:2px solid var(--brand-text);outline-offset:2px; }
.menu-item-visibility { display:flex;justify-content:flex-end; }
.menu-group-card.is-single .menu-item-order { visibility:hidden; }
.menu-item-row.is-hidden :is(.menu-item-icon,.menu-item-name input,.menu-item-pos) { opacity:.5; }
.menu-item-row.is-hidden .menu-item-name input { text-decoration:line-through;text-decoration-color:#b6b8c4; }
.menu-item-row.is-moved { animation:menu-moved .7s ease-out; }
@keyframes menu-moved { from { background:var(--brand-soft); } to { background:transparent; } }

/* Visibility switch */
.menu-switch { display:inline-flex;align-items:center;gap:9px;position:relative;cursor:pointer;font-size:12px;font-weight:600;color:var(--ink); }
.menu-switch input { position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit; }
.menu-switch-track { position:relative;width:38px;height:22px;flex-shrink:0;border-radius:999px;background:#d6d8e1;transition:background .18s; }
.menu-switch-track::after { content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #24233b40;transition:transform .18s; }
.menu-switch input:checked + .menu-switch-track { background:var(--brand-fill,var(--brand-primary)); }
.menu-switch input:checked + .menu-switch-track::after { transform:translateX(16px); }
.menu-switch input:not(:checked) ~ .menu-switch-text { color:var(--muted); }
.menu-switch input:focus-visible + .menu-switch-track { outline:2px solid var(--brand-text);outline-offset:2px; }
.menu-switch-text { min-width:26px; }
.menu-switch:has(input:disabled) { cursor:not-allowed;opacity:.55; }
.menu-core-badge { display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#f1f2f6;color:#626a7c;font-size:11px;font-weight:600;white-space:nowrap;cursor:help; }
.menu-core-badge svg { width:13px;height:13px; }

/* Save bar */
.menu-settings-form .workflow-error { margin:0; }
.menu-savebar { position:relative;z-index:5;margin-top:8px;display:flex;align-items:center;gap:10px;padding:12px 12px 12px 20px;border:1px solid var(--line);border-radius:14px;background:#ffffffeb;backdrop-filter:blur(10px);box-shadow:0 10px 30px #39335c14; }
.menu-save-status { margin-right:auto;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px; }
.menu-save-status::before { content:'';width:7px;height:7px;border-radius:50%;background:#3a9a74; }
/* Only pin the bar once there is something to save, so it never covers content needlessly. */
.is-dirty .menu-savebar { position:sticky;bottom:16px;border-color:var(--brand-border); }
.is-dirty .menu-save-status { color:var(--ink);font-weight:600; }
.is-dirty .menu-save-status::before { background:var(--brand-accent); }
.menu-savebar button { min-height:40px;padding:9px 16px;font-size:13px; }
.menu-savebar .secondary-button:disabled { opacity:.45;cursor:default; }
.menu-readonly-note { margin:0;padding:14px 18px;border-radius:12px;background:#f5f6f9;color:var(--muted);font-size:12px; }

/* Live preview */
.menu-preview { position:sticky;top:24px; }
.menu-preview-card { padding:20px 16px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 4px 14px #39335c08; }
.menu-preview-eyebrow { margin:0 4px 4px;color:var(--brand-text);font-size:10px;font-weight:700;letter-spacing:1.2px; }
.menu-preview-card h3 { margin:0 4px 14px;font-size:15px; }
.menu-preview-nav { display:grid;gap:2px;padding:10px;border-radius:12px;background:var(--canvas);border:1px solid var(--line);font-size:12px;color:#5d5c72; }
.menu-preview-nav span { display:flex;align-items:center;gap:9px;min-width:0;padding:7px 8px;border-radius:7px;overflow-wrap:anywhere; }
.menu-preview-nav svg { width:15px;height:15px;flex-shrink:0; }
.menu-preview-personal { display:grid;gap:2px;padding-bottom:8px;margin-bottom:6px;border-bottom:1px solid var(--line); }
.menu-preview-top { font-weight:650; }
.menu-preview-top i { margin-left:auto;display:grid;font-style:normal;color:#a3a6b4; }
.menu-preview-group > div { display:grid;gap:1px;margin:0 0 4px 15px;padding-left:12px;border-left:1px solid var(--line); }
.menu-preview-group > div span { padding:5px 8px;font-size:11.5px; }
.menu-preview-note { margin:12px 4px 0;color:var(--muted);font-size:11px;line-height:1.7; }

@media (prefers-reduced-motion:reduce) { .menu-item-row.is-moved { animation:none; } .menu-switch-track,.menu-switch-track::after { transition:none; } }
@media (max-width:1180px) {
  .menu-settings { grid-template-columns:minmax(0,1fr); }
  .menu-preview { display:none; }
}
@media (max-width:680px) {
  .menu-group-head { flex-wrap:wrap;gap:10px 12px;padding:14px; }
  .menu-group-icon { width:34px;height:34px; }
  .menu-group-name { flex-direction:column;align-items:stretch;gap:5px; }
  .menu-group-name input { width:100%;font-size:15px; }
  .menu-group-count { order:-1;margin-left:auto; }
  .menu-group-head .menu-group-icon { order:-2; }
  .menu-group-title { flex-basis:100%; }
  .menu-item-list { padding:4px; }
  .menu-item-row { grid-template-columns:22px minmax(0,1fr) auto;grid-template-areas:'pos name name' '. order vis';gap:10px;padding:12px 10px; }
  .menu-item-pos { grid-area:pos;align-self:start;padding-top:11px; }
  .menu-item-icon { display:none; }
  .menu-item-name { grid-area:name; }
  .menu-item-name input { max-width:none;font-size:15px; }
  .menu-item-order { grid-area:order; }
  .menu-item-visibility { grid-area:vis; }
  .menu-move { width:40px;height:40px; }
  .menu-group-card.is-single .menu-item-order { display:none; }
  .menu-savebar { flex-wrap:wrap;padding:12px; }
  .is-dirty .menu-savebar { bottom:80px; }
  .menu-save-status { flex-basis:100%; }
  .menu-savebar button { flex:1; }
}
