/* Общее меню сайта. Цвета и шрифты совпадают с палитрой эмблемы. */
.sm-panel{--sm-ink:#170845;--sm-paper:#f4f2ff;--sm-pink:#f72585;--sm-line:#d3cbf3;--sm-muted:#564d80;position:fixed;z-index:110;top:16px;right:16px;width:min(340px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;display:grid;gap:0;background:var(--sm-paper);color:var(--sm-ink);border:1px solid var(--sm-ink);box-shadow:10px 10px 0 #12063a66;font-family:Manrope,sans-serif}
.sm-panel[hidden],.sm-user[hidden]{display:none!important}
.sm-panel:not([hidden]):not(.is-closing){animation:sm-in .3s cubic-bezier(.16,1,.3,1) both}
/* Выход мягче входа: 150ms, сдвиг вверх на 12px. */
.sm-panel.is-closing{pointer-events:none;animation:sm-out .15s ease-out both}
@keyframes sm-in{from{opacity:0;transform:translateY(-18px) scale(.975);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes sm-out{to{opacity:0;transform:translateY(-12px)}}
/* Меню открывают часто — пункты появляются вместе с панелью, без лесенки. */
.sm-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 14px 14px 18px;border-bottom:1px solid var(--sm-ink)}
.sm-title{font:800 12px/1.05 Unbounded,sans-serif;letter-spacing:-.04em}
.sm-close{position:relative;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--sm-ink);background:none;color:var(--sm-ink);font-size:18px;cursor:pointer;transition-property:scale,background-color,color;transition-duration:150ms;transition-timing-function:ease-out}
.sm-close::after{content:'';position:absolute;inset:-2px}
.sm-close:active{scale:.96}
.sm-close:hover{background:var(--sm-ink);color:var(--sm-paper)}
.sm-user{display:grid;gap:3px;padding:14px 18px;border-bottom:1px solid var(--sm-line)}
.sm-user strong{font-size:15px;font-weight:800;overflow-wrap:anywhere}
.sm-user span{font:700 9px Unbounded,sans-serif;color:var(--sm-muted);letter-spacing:.02em}
.sm-links{list-style:none;margin:0;padding:6px 0}
.sm-links a,.sm-telegram{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 18px;color:var(--sm-ink);text-decoration:none;font-size:15px;font-weight:800;transition-property:background-color,color;transition-duration:150ms;transition-timing-function:ease-out}
.sm-links a i,.sm-telegram i{font-size:21px}
.sm-links a:hover,.sm-links a:focus-visible{background:#e9e3fb}
.sm-links a[aria-current=page]{box-shadow:inset 4px 0 0 var(--sm-pink)}
.sm-badge{margin-left:auto;display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;background:var(--sm-pink);color:var(--sm-ink);font:700 10px Unbounded,sans-serif;font-variant-numeric:tabular-nums}
.sm-badge[hidden]{display:none}
.sm-telegram{border-top:1px solid var(--sm-ink);background:var(--sm-ink);color:var(--sm-paper)}
.sm-telegram:hover{background:#2c1170}
.sm-panel a:focus-visible,.sm-close:focus-visible{outline:3px solid var(--sm-pink);outline-offset:-3px}
[data-site-menu]{position:relative}
[data-site-menu].has-badge::after{content:'';position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:#f72585;border:2px solid #fff}
@media (max-width:700px){
  .sm-panel{top:0;right:0;left:0;width:auto;max-height:100dvh;border-width:0 0 1px;box-shadow:0 12px 40px #12063a66;padding-top:env(safe-area-inset-top)}
}
@media (prefers-reduced-motion:reduce){.sm-panel:not([hidden]),.sm-panel.is-closing{animation:none}.sm-links a,.sm-telegram,.sm-close{transition:none}.sm-close:active{scale:none}}
.sm-legal{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:12px 18px;background:var(--sm-ink);border-top:1px solid #ffffff22;font-size:12px}.sm-legal a{color:#d8d0ee;text-underline-offset:3px}.sm-legal a:hover{color:#fff}
.sm-map{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 18px;border-top:1px solid var(--sm-ink);background:var(--sm-pink);color:var(--sm-ink);text-decoration:none;font-size:15px;font-weight:800}.sm-map i{font-size:21px}.sm-map span{margin-left:auto;font-size:18px}.sm-map:hover{background:#ff4d9c}
/* Quick stagger conveys hierarchy; all items stay interactive while entering. */
@media(prefers-reduced-motion:no-preference){
  .sm-panel:not([hidden]):not(.is-closing) .sm-links li{animation:sm-item-in .38s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--menu-order,0) * 35ms + 35ms)}
  .sm-links li:nth-child(1){--menu-order:0}.sm-links li:nth-child(2){--menu-order:1}.sm-links li:nth-child(3){--menu-order:2}.sm-links li:nth-child(4){--menu-order:3}.sm-links li:nth-child(5){--menu-order:4}.sm-links li:nth-child(6){--menu-order:5}
  .sm-panel:not([hidden]):not(.is-closing) .sm-telegram{animation:sm-item-in .38s cubic-bezier(.16,1,.3,1) .21s both}
  .sm-panel.is-closing{animation:sm-dismiss .26s cubic-bezier(.4,0,.8,.2) both}
  .sm-panel.is-closing .sm-links li,.sm-panel.is-closing .sm-telegram{animation:sm-item-out .17s ease-in both}
  @keyframes sm-item-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  @keyframes sm-item-out{to{opacity:0;transform:translateY(-6px)}}
  @keyframes sm-dismiss{to{opacity:0;transform:translateY(-12px) scale(.975)}}
}
/* Surface expands diagonally from the opener; WAAPI owns the panel transform. */
.sm-panel.sm-anchored{animation:none!important;transform-origin:0 0;overflow-x:hidden}
[data-site-menu][aria-expanded=true]{z-index:111}
.sm-toggle-glyph{position:relative;display:inline-block!important;flex:none;width:20px;height:20px;overflow:visible!important;clip:auto!important}
.sm-toggle-glyph>span{display:block!important;position:absolute;left:1px;width:18px;height:1.8px;background:currentColor;border-radius:999px;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .16s ease-out;transform-origin:center}
.sm-toggle-glyph>span:nth-child(1){top:4px}.sm-toggle-glyph>span:nth-child(2){top:9px}.sm-toggle-glyph>span:nth-child(3){top:14px}
[data-site-menu][aria-expanded=true] .sm-toggle-glyph>span:nth-child(1){transform:translateY(5px) rotate(45deg)}
[data-site-menu][aria-expanded=true] .sm-toggle-glyph>span:nth-child(2){transform:scaleX(.3);opacity:0}
[data-site-menu][aria-expanded=true] .sm-toggle-glyph>span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
@media(prefers-reduced-motion:no-preference){
 .sm-panel.sm-anchored:not([hidden]):not(.is-closing) .sm-links li{animation-delay:calc(var(--menu-order,0) * 30ms + 100ms)}
 .sm-panel.sm-anchored:not([hidden]):not(.is-closing) .sm-telegram{animation-delay:.25s}
}
@media(prefers-reduced-motion:reduce){.sm-toggle-glyph>span{transition:none}}

/* The original burger morphs into the only close button. */
.sm-panel.sm-anchored .sm-close{display:none}

/* Account actions belong to the dropdown identity row. */
.sm-panel .sm-user{grid-template-columns:minmax(0,1fr) 44px;align-items:center;column-gap:12px}
.sm-user-identity{display:grid;gap:3px;min-width:0}
.sm-logout{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--sm-line);border-radius:50%;color:var(--sm-muted);background:var(--sm-paper);font-size:21px;cursor:pointer;transition:background-color .18s,color .18s,scale .18s}
.sm-logout:hover,.sm-logout:focus-visible{background:#f9dff0;color:#ab0870}
.sm-logout:focus-visible{outline:3px solid var(--sm-pink);outline-offset:2px}
.sm-logout:active{scale:.94}.sm-logout:disabled{opacity:.55;cursor:wait}
.sm-logout-error{grid-column:1/-1;margin:6px 0 0;font:600 12px/1.5 Manrope,sans-serif;color:#ab0870}
.sm-logout-error[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.sm-logout{transition:none}.sm-logout:active{scale:none}}

/* Shared matte menu: legal pages use the same surface as the map and cabinet. */
.sm-panel{width:min(350px,calc(100vw - 24px));padding:6px;border-radius:28px;border-color:var(--sm-line);box-shadow:0 18px 48px #17084525}
.sm-head{padding:14px 14px 16px;border-color:var(--sm-line)}
.sm-close{border-radius:50%;border-color:var(--sm-line)}
.sm-user{margin:0 8px;padding:16px 8px;border-color:var(--sm-line)}
.sm-user strong{font-size:17px}.sm-user span{font:600 12px Manrope,sans-serif}
.sm-links{display:grid;padding:8px;gap:4px}
.sm-links a{border-radius:16px;min-height:50px;font-size:14px;padding:0 14px}
.sm-links a[aria-current=page]{box-shadow:none;background:#f9dff3;color:#a90d64}
.sm-badge{border-radius:999px}
.sm-telegram{margin:0 6px;border:0;border-radius:18px;min-height:52px;padding:12px 14px;font-size:13px}
.sm-legal{background:none;border-color:var(--sm-line);margin:12px 14px 0;padding:12px 0 8px;justify-content:space-between;font-size:11px}
.sm-legal a{color:var(--sm-muted)}.sm-legal a:hover{color:var(--sm-ink)}
@media(max-width:700px){
 .sm-panel{left:auto;right:16px;width:min(320px,calc(100vw - 32px));max-height:calc(100dvh - 32px - env(safe-area-inset-top));padding:5px;border-width:1px;border-radius:24px}
 .sm-head{padding:9px 10px 12px}.sm-title{font-size:10px}
 .sm-user{margin:0;padding:12px 14px;gap:2px}.sm-user strong{font-size:14px}.sm-user span{font-size:8px}
 .sm-links{padding:6px;gap:2px}.sm-links a{min-height:44px;padding:0 12px;gap:10px;border-radius:13px;font-size:13px}.sm-links a i{font-size:19px}
}
