/* Стражи Рунета 5.1.0 — Киберимпульс */
#sr-game-root.sr-v51-enabled,
.strazi-runeta-app.sr-v51-enabled { position: relative; isolation: isolate; --sr-v51-map-scale: 1; }
.sr-v51-cyber-background { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; opacity: .82; mix-blend-mode: screen; }
[data-sr-v51-quality="static"] .sr-v51-cyber-background { display: none; }
.sr-v51-save-dock { position: fixed; z-index: 2147481500; right: max(18px, env(safe-area-inset-right)); bottom: max(20px, calc(env(safe-area-inset-bottom) + 18px)); display: flex; flex-direction: column; align-items: flex-end; pointer-events: none; }
.sr-v51-save-button { pointer-events: auto; min-width: 210px; min-height: 56px; padding: 8px 13px; border: 1px solid rgba(52,220,255,.42); border-radius: 17px; background: linear-gradient(145deg, rgba(5,28,48,.97), rgba(8,44,70,.97)); color: #f3f8ff; display: flex; align-items: center; gap: 11px; box-shadow: 0 16px 42px rgba(0,0,0,.38), inset 0 1px rgba(255,255,255,.06); cursor: pointer; text-align: left; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.sr-v51-save-button:hover { transform: translateY(-2px); border-color: #34dcff; box-shadow: 0 18px 48px rgba(0,0,0,.44), 0 0 22px rgba(52,220,255,.14); }
.sr-v51-save-button:focus-visible { outline: 3px solid #ffbe5c; outline-offset: 3px; }
.sr-v51-save-button:disabled { cursor: wait; opacity: .82; }
.sr-v51-save-icon { width: 31px; height: 31px; border: 2px solid #34dcff; border-radius: 9px; position: relative; flex: 0 0 auto; }
.sr-v51-save-icon::before { content: ""; position: absolute; width: 13px; height: 8px; left: 7px; top: 4px; border: 2px solid currentColor; border-top: 0; color: #34dcff; }
.sr-v51-save-icon::after { content: ""; position: absolute; width: 13px; height: 9px; left: 7px; bottom: 4px; border-radius: 3px; background: rgba(52,220,255,.24); }
.sr-v51-save-copy { display: grid; min-width: 0; }
.sr-v51-save-copy b { font-size: 14px; line-height: 1.15; color: #f3f8ff; text-transform: none; }
.sr-v51-save-copy small { margin-top: 3px; max-width: 220px; font-size: 11px; line-height: 1.25; color: #a9bfd3; text-transform: none; }
.sr-v51-save-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.sr-v51-save-dock[data-status="changed"] .sr-v51-save-button,
.sr-v51-save-dock[data-status="queued"] .sr-v51-save-button { border-color: rgba(255,190,92,.75); }
.sr-v51-save-dock[data-status="changed"] .sr-v51-save-icon,
.sr-v51-save-dock[data-status="queued"] .sr-v51-save-icon { border-color: #ffbe5c; color: #ffbe5c; }
.sr-v51-save-dock[data-status="saving"] .sr-v51-save-icon,
.sr-v51-save-dock[data-status="retrying"] .sr-v51-save-icon { border-radius: 50%; border-color: rgba(52,220,255,.2); border-top-color: #34dcff; animation: sr-v51-spin .8s linear infinite; }
.sr-v51-save-dock[data-status="saving"] .sr-v51-save-icon::before,
.sr-v51-save-dock[data-status="saving"] .sr-v51-save-icon::after,
.sr-v51-save-dock[data-status="retrying"] .sr-v51-save-icon::before,
.sr-v51-save-dock[data-status="retrying"] .sr-v51-save-icon::after { display: none; }
.sr-v51-save-dock[data-status="saved"] .sr-v51-save-button,
.sr-v51-save-dock[data-status="clean"] .sr-v51-save-button { border-color: rgba(76,229,170,.58); }
.sr-v51-save-dock[data-status="saved"] .sr-v51-save-icon { border-color: #4ce5aa; box-shadow: 0 0 22px rgba(76,229,170,.25); }
.sr-v51-save-dock[data-status="saved"] .sr-v51-save-icon::before { width: 15px; height: 8px; border: 0; border-left: 3px solid #4ce5aa; border-bottom: 3px solid #4ce5aa; transform: rotate(-45deg); left: 7px; top: 8px; }
.sr-v51-save-dock[data-status="saved"] .sr-v51-save-icon::after { display: none; }
.sr-v51-save-dock[data-status="offline"] .sr-v51-save-button { border-color: rgba(255,190,92,.8); }
.sr-v51-save-dock[data-status="error"] .sr-v51-save-button,
.sr-v51-save-dock[data-status="conflict"] .sr-v51-save-button { border-color: #ff405d; box-shadow: 0 0 20px rgba(255,64,93,.13); }
.sr-v51-save-dock[data-status="error"] .sr-v51-save-icon,
.sr-v51-save-dock[data-status="conflict"] .sr-v51-save-icon { border-color: #ff405d; }
@keyframes sr-v51-spin { to { transform: rotate(360deg); } }

.sr-v51-impulse { position: absolute; z-index: 2147481000; width: 12px; height: 12px; margin: -6px; border: 2px solid #34dcff; border-radius: 50%; pointer-events: none; animation: sr-v51-impulse .72s ease-out forwards; }
.sr-v51-impulse.is-tap { border-color: #4ce5aa; }
@keyframes sr-v51-impulse { 0% { transform: scale(.3); opacity: 1; box-shadow: 0 0 0 0 rgba(52,220,255,.6); } 100% { transform: scale(7); opacity: 0; box-shadow: 0 0 0 14px rgba(52,220,255,0); } }
.sr-v51-hover { --sr-v51-tilt-x: calc(var(--sr-py, 0) * -1.2deg); --sr-v51-tilt-y: calc(var(--sr-px, 0) * 1.5deg); transform: perspective(800px) rotateX(var(--sr-v51-tilt-x)) rotateY(var(--sr-v51-tilt-y)) translateY(-2px); filter: brightness(1.06); }
.sr-v51-pressed { transform: scale(.985) !important; }
.sr-v51-longpress { box-shadow: 0 0 0 3px rgba(255,190,92,.5), 0 0 28px rgba(255,190,92,.2) !important; }
.sr-v51-context-bubble { position: absolute; z-index: 2147481600; width: min(240px, calc(100% - 24px)); padding: 10px 12px; border: 1px solid rgba(52,220,255,.5); border-radius: 12px; background: rgba(3,17,31,.97); color: #f3f8ff; font-size: 13px; line-height: 1.35; opacity: 0; transform: translateY(6px); pointer-events: none; transition: .18s ease; box-shadow: 0 12px 32px rgba(0,0,0,.35); }
.sr-v51-context-bubble.is-visible { opacity: 1; transform: translateY(0); }

.sr-v5-fortress-stage > .sr-v5-world-links,
.sr-v5-fortress-stage > .sr-v5-ground,
.sr-v5-fortress-stage > .sr-v5-district,
.sr-v5-fortress-stage > .sr-v5-fortress-core,
.sr-v5-fortress-stage > .sr-v5-threat-wave { transform-origin: 50% 50%; scale: var(--sr-v51-map-scale, 1); transition: scale .18s ease; }

.sr-v51-enabled[data-sr-v51-background="intrusion"] { --sr-v51-atmosphere: rgba(255,64,93,.08); }
.sr-v51-enabled[data-sr-v51-background="spread"] { --sr-v51-atmosphere: rgba(255,64,93,.14); }
.sr-v51-enabled[data-sr-v51-background="localization"] { --sr-v51-atmosphere: rgba(76,229,170,.08); }
.sr-v51-enabled::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(circle at 50% 40%, var(--sr-v51-atmosphere, transparent), transparent 55%); transition: background .5s ease; }

@media (max-width: 768px) {
  .sr-v51-save-dock { right: max(10px, env(safe-area-inset-right)); bottom: calc(var(--sr-mobile-nav-height, 82px) + env(safe-area-inset-bottom) + 10px); }
  .sr-v51-save-button { min-width: 0; width: 54px; height: 54px; min-height: 54px; padding: 9px; border-radius: 16px; justify-content: center; }
  .sr-v51-save-copy { position: absolute; right: 62px; width: min(250px, calc(100vw - 94px)); padding: 8px 10px; border: 1px solid rgba(52,220,255,.3); border-radius: 12px; background: rgba(3,17,31,.94); opacity: 0; transform: translateX(8px); pointer-events: none; transition: .18s ease; }
  .sr-v51-save-button:focus .sr-v51-save-copy,
  .sr-v51-save-button:active .sr-v51-save-copy,
  .sr-v51-save-dock[data-status="changed"] .sr-v51-save-copy,
  .sr-v51-save-dock[data-status="saving"] .sr-v51-save-copy,
  .sr-v51-save-dock[data-status="error"] .sr-v51-save-copy,
  .sr-v51-save-dock[data-status="conflict"] .sr-v51-save-copy,
  .sr-v51-save-dock[data-status="offline"] .sr-v51-save-copy { opacity: 1; transform: translateX(0); }
  .sr-v51-save-icon { width: 30px; height: 30px; }
  .sr-v51-cyber-background { opacity: .58; }
  .sr-v51-hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .sr-v51-cyber-background { display: none; }
  .sr-v51-hover, .sr-v51-pressed, .sr-v51-context-bubble, .sr-v51-save-button { transition: none !important; transform: none !important; }
  .sr-v51-impulse { display: none; }
  .sr-v51-save-icon { animation: none !important; }
}

/* Save recovery and partial-sync states. */
.sr-v51-save-dock[data-status="expired_session"] .sr-v51-save-button,
.sr-v51-save-dock[data-status="partially_saved"] .sr-v51-save-button { border-color: rgba(255,190,92,.82); box-shadow: 0 0 20px rgba(255,190,92,.12); }
.sr-v51-save-dock[data-status="expired_session"] .sr-v51-save-icon,
.sr-v51-save-dock[data-status="partially_saved"] .sr-v51-save-icon { border-color: #ffbe5c; color: #ffbe5c; }
@media (max-width: 768px) {
  .sr-v51-save-dock[data-status="retrying"] .sr-v51-save-copy,
  .sr-v51-save-dock[data-status="partially_saved"] .sr-v51-save-copy,
  .sr-v51-save-dock[data-status="expired_session"] .sr-v51-save-copy { opacity: 1; transform: translateX(0); }
}
