.shm,
.shm * { box-sizing: border-box; }
.shm-toggle { position: fixed; z-index: 99998; top: max(var(--shm-toggle-top, 20px), env(safe-area-inset-top)); left: var(--shm-toggle-left, auto); right: var(--shm-toggle-right, 20px); display: flex; align-items: center; justify-content: center; width: var(--shm-toggle-size, 48px); height: var(--shm-toggle-size, 48px); padding: 0; border: 0; border-radius: 50%; color: var(--shm-toggle-color, #fff); background: var(--shm-toggle-bg, #111); box-shadow: 0 4px 18px rgba(0, 0, 0, .2); cursor: pointer; }
.admin-bar .shm-toggle { top: calc(var(--shm-toggle-top, 20px) + 32px); }
.shm-toggle-lines { display: grid; gap: calc(var(--shm-toggle-size, 48px) / 12); width: calc(var(--shm-toggle-size, 48px) * .46); }
.shm-toggle-lines span { display: block; height: max(2px, calc(var(--shm-toggle-size, 48px) / 24)); background: currentColor; transition: transform .2s, opacity .2s; }
.shm.is-open .shm-toggle-lines span:first-child { transform: translateY(calc(var(--shm-toggle-size, 48px) / 8)) rotate(45deg); }
.shm.is-open .shm-toggle-lines span:nth-child(2) { opacity: 0; }
.shm.is-open .shm-toggle-lines span:last-child { transform: translateY(calc(var(--shm-toggle-size, 48px) / -8)) rotate(-45deg); }
.shm-backdrop { position: fixed; z-index: 99996; inset: 0; background: transparent; }
.shm-panel { position: fixed; z-index: 99997; inset: 0; overflow: auto; overscroll-behavior: contain; background: var(--shm-modal-bg, #fff); color: var(--shm-menu-color, #171717); }
.shm-panel-inner { position: relative; width: min(100% - 40px, var(--shm-content-max, 1200px)); margin: 0 auto; padding: clamp(80px, 10vw, 130px) 0 60px; }
.shm-menu-root { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 5vw, 70px); margin: 0; padding: 0; list-style: none; }
.shm-menu-root li { margin: 0; padding: 0; list-style: none; }
.shm-menu-root > li { border-top: var(--shm-border-width, 2px) solid var(--shm-border-color, currentColor); padding-top: 18px; }
.shm-menu-root a { display: inline-block; color: inherit; text-decoration: none; }
.shm .shm-menu-root > li > a { font-size: var(--shm-parent-size, 32px) !important; font-weight: var(--shm-parent-weight, 400) !important; line-height: 1.3; }
.shm-menu-root .sub-menu { margin: 16px 0 0; padding: 0; list-style: none; }
.shm-menu-root .sub-menu li { border-top: var(--shm-border-width, 2px) solid var(--shm-border-color, #ddd); }
.shm .shm-menu-root .sub-menu a { display: block; padding: 12px 4px; font-size: var(--shm-child-size, 16px) !important; font-weight: var(--shm-child-weight, 400) !important; }
.shm-menu-root .sub-menu .sub-menu { margin: 0 0 0 18px; }
.shm-menu-root a:hover,
.shm-menu-root a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.shm-toggle:focus-visible { outline: 3px solid #2271b1; outline-offset: 3px; }
body.shm-lock { overflow: hidden; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: no-preference) {
	.shm-panel { animation: shm-in .2s ease-out; }
	.shm-backdrop { animation: shm-fade .2s ease-out; }
	@keyframes shm-in { from { opacity: 0; transform: translateY(-12px); } }
	@keyframes shm-fade { from { opacity: 0; } }
}
@media (max-width: 782px) { .admin-bar .shm-toggle { top: calc(var(--shm-toggle-top, 20px) + 46px); } }
