.menu-sheet { position:fixed; top:auto; bottom:0; width:calc(100% - 24px); max-width:560px; max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px)); margin:0 auto; padding:12px 24px calc(24px + env(safe-area-inset-bottom,0px)); border:1px solid var(--line); border-bottom:0; border-radius:var(--r-hero) var(--r-hero) var(--frame-square) var(--frame-square); background:var(--surface); color:var(--ink); overflow-y:auto; overscroll-behavior:contain; }
.menu-sheet::backdrop { background:var(--navy-deep); opacity:.34; }
.sheet-handle { width:36px; height:3px; margin:0 auto 16px; border-radius:var(--r-pill); background:var(--line); }
.sheet-head { position:sticky; top:-12px; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:12px; background:var(--surface); }
.sheet-head h2 { color:var(--muted); font-size:var(--frame-text-13); font-weight:400; letter-spacing:0; }
.sheet-close { display:flex; align-items:center; justify-content:center; gap:10px; min-height:var(--tap-min); padding:8px 14px; border-radius:var(--r-s); background:var(--band); font-size:var(--frame-text-13); }
.sheet-nav { display:flex; flex-direction:column; }
.sheet-nav a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:68px; padding:12px 10px; border-bottom:1px solid var(--line); font-size:var(--frame-text-28); font-weight:300; letter-spacing:-.045em; line-height:1.4; }
.sheet-nav a::after { content:''; width:8px; height:8px; margin-right:4px; border-top:1px solid var(--muted); border-right:1px solid var(--muted); transform:rotate(45deg); flex-shrink:0; }
.sheet-nav a[aria-current] { background:var(--tint); border-radius:var(--r-s); color:var(--navy); font-weight:600; }
.sheet-nav a[aria-current]::after { width:6px; height:6px; border:0; border-radius:var(--frame-circle); background:var(--navy); transform:none; }
.sheet-group { padding:0; border-bottom:1px solid var(--line); }
.sheet-nav button.sheet-parent { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:60px; padding:10px; background:transparent; color:var(--ink); text-align:left; font-size:var(--frame-text-23); font-weight:300; letter-spacing:-.045em; }
.sheet-parent::after { content:'+'; color:var(--navy); font-size:var(--frame-text-24); font-weight:400; }
.sheet-parent[aria-expanded="true"]::after { content:'−'; }
.sheet-sublinks { display:flex; flex-wrap:wrap; margin:0; padding:0 0 12px; gap:4px; }
.sheet-nav .sheet-sublinks a { display:inline-flex; justify-content:flex-start; gap:0; min-height:var(--tap-min); padding:8px 10px; border:0; border-radius:var(--r-s); font-size:var(--frame-text-15); font-weight:400; line-height:1.7; letter-spacing:0; }
.sheet-nav .sheet-sublinks a::after { display:none; }
.sheet-nav .sheet-overview { flex-basis:100%; color:var(--navy); font-weight:500; }
.sheet-shortcuts { padding:4px 0 16px; }
.sheet-shortcuts h3 { margin-bottom:8px; color:var(--muted); font-size:var(--frame-text-13); font-weight:400; letter-spacing:0; }
.sheet-chips { display:flex; flex-wrap:wrap; gap:6px; }
.sheet-chips a { display:flex; align-items:center; min-height:var(--tap-min); padding:9px 12px; border:1px solid var(--line); border-radius:var(--r-pill); background:var(--tint); color:var(--navy); font-size:var(--frame-text-15); }
.sheet-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:24px; }
.sheet-actions a { display:flex; align-items:center; justify-content:center; min-height:52px; padding:12px 8px; border-radius:var(--r-s); background:var(--navy); color:var(--surface); font-size:var(--frame-text-15); }
.sheet-actions a:focus-visible { outline-color:var(--focus-ring-on-navy); outline-offset:-4px; }
.sheet-actions .sheet-ai { background:var(--lime); color:var(--navy); font-weight:600; white-space:nowrap; }
.sheet-actions .sheet-ai:focus-visible { outline-color:var(--focus-ring); }
.sheet-number { display:block; width:fit-content; min-height:var(--tap-min); margin:8px auto 0; padding:10px 12px; font-size:var(--frame-text-13); color:var(--muted); font-variant-numeric:tabular-nums; }
@media (hover:hover) {
  .sheet-nav a:hover,.sheet-parent:hover { background:var(--tint); }
  .sheet-actions a:hover { background:var(--navy-deep); }
  .sheet-actions .sheet-ai:hover { background:var(--lime-hover); }
}
@media (max-width:600px) { .menu-sheet { padding-inline:20px; } }
