/* VX Platform — 12 point usability update */
.vxNavSvg{display:inline-grid;place-items:center;width:22px;height:22px;flex:0 0 22px;margin-right:7px;color:currentColor}.vxNavSvg svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.tabs .tab[data-tab="map"],.tabs .tab[data-tab="operations"]{display:inline-flex;align-items:center}

.vxLiveDot{width:9px;height:9px;border-radius:50%;background:#29d77d;box-shadow:0 0 0 4px rgba(41,215,125,.12),0 0 13px rgba(41,215,125,.8);animation:vxLivePulse 1.8s ease-in-out infinite}.vxMapLiveMetric{position:relative;padding-left:20px!important}.vxMapLiveMetric::before{content:"";position:absolute;left:8px;top:10px;width:7px;height:7px;border-radius:50%;background:#2bda80;box-shadow:0 0 10px rgba(43,218,128,.85);animation:vxLivePulse 1.8s ease-in-out infinite}@keyframes vxLivePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.62;transform:scale(.78)}}
.vxMapToolbar{min-height:50px!important;gap:9px!important}.vxMapToolGroup{gap:5px!important;padding:4px!important}.vxMapToolButton--enhanced{min-height:40px!important;height:40px!important;padding:0 13px!important;border:1px solid #2b3d53!important;border-radius:10px!important;background:#0d1722!important;font-size:13px!important;font-weight:750!important;line-height:1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important}.vxMapToolButton--enhanced:hover{background:#18283a!important;border-color:#46617e!important}.vxMapToolButton--iconOnly{width:42px!important;min-width:42px!important;padding:0!important;font-size:21px!important}.vxMapExtraTools{display:flex;align-items:center;gap:7px}.vxMapModeButton{min-height:38px!important;height:38px!important;font-size:12px!important}.vxMapPageTitleIcon,.vxMapTitleIcon{width:44px!important;height:44px!important;display:grid!important;place-items:center!important}.vxMapPageTitleIcon svg,.vxMapTitleIcon svg{width:27px!important;height:27px!important}

.vxTicketAutoRefresh{display:grid;gap:4px;min-width:210px;margin-left:2px}.vxTicketAutoRefresh label{display:flex;align-items:center;gap:8px}.vxTicketAutoRefresh label>span{font-size:12px;color:#a9b8ca;white-space:nowrap}.vxTicketAutoRefresh select{min-width:125px!important;height:36px!important}.vxTicketAutoRefresh small{max-width:330px;color:#71849a;font-size:10px;line-height:1.35}

.vxNotesSummary{margin:10px 0 4px;max-width:350px}.vxNotesSummary__button{width:100%;display:flex!important;align-items:center!important;gap:10px!important;padding:11px 13px!important;border:1px solid rgba(245,158,11,.34)!important;border-radius:12px!important;background:linear-gradient(135deg,rgba(245,158,11,.10),rgba(18,25,35,.94))!important;text-align:left!important}.vxNotesSummary__button:hover{border-color:rgba(245,158,11,.62)!important}.vxNotesSummary__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:rgba(245,158,11,.14);color:#fbbf24;font-size:18px}.vxNotesSummary__button>span:last-child{display:grid;gap:3px}.vxNotesSummary__button b{font-size:13px}.vxNotesSummary__button small{font-size:11px;color:#8fa1b7}.vxNotesSummary.has-notes .vxNotesSummary__icon{background:rgba(59,130,246,.16);color:#7db3ff}
body.vxNotesModalOpen{overflow:hidden}.vxNotesOverlay[hidden]{display:none!important}.vxNotesOverlay{position:fixed;inset:0;z-index:10040;display:grid;place-items:center;padding:24px}.vxNotesBackdrop{position:absolute;inset:0;width:100%;height:100%;border:0!important;border-radius:0!important;background:rgba(2,6,12,.76)!important;backdrop-filter:blur(6px)}.vxInternalNotes--modal{position:relative;z-index:1;width:min(680px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 48px));margin:0!important;padding:18px!important;overflow:hidden;display:grid!important;grid-template-rows:auto minmax(90px,1fr) auto;border-color:rgba(245,158,11,.42)!important;background:linear-gradient(180deg,#17202c,#0f1620)!important;box-shadow:0 30px 90px rgba(0,0,0,.58)}.vxInternalNotes--modal .vxInternalNotes__head{align-items:center;margin-bottom:12px}.vxInternalNotes--modal .vxInternalNotes__list{overflow:auto;padding-right:5px}.vxInternalNotes--modal .vxInternalNote{border:1px solid rgba(255,255,255,.07);background:#111a25}.vxInternalNotes--modal .vxInternalNotes__composer{grid-template-columns:1fr auto;align-items:end}.vxInternalNotes--modal textarea{min-height:82px!important;resize:vertical}.vxNotesClose{width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border-radius:9px!important;font-size:22px!important;line-height:1!important}

.vxPlanMark--lite,.vxPlanBadge--lite{background:linear-gradient(135deg,#5b4217,#b8892e 55%,#6d4e1b)!important;border-color:#d8ad51!important;color:#fff0bd!important;box-shadow:0 8px 24px rgba(190,139,43,.28)!important}.vxPlanBadge{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border:1px solid transparent;border-radius:999px;font-size:13px;font-weight:950;letter-spacing:.07em;line-height:1}.vxPlanBadge--free{background:#263143;border-color:#47566e;color:#d6e0ed}.vxPlanBadge--pro{background:linear-gradient(135deg,#075f46,#0d8b68);border-color:#28bd8e;color:#c8ffeb;box-shadow:0 8px 22px rgba(13,139,104,.24)}.vxPlanBadge--ultra{background:linear-gradient(135deg,#4c1d95,#7c3aed);border-color:#9b73ff;color:#f0e7ff;box-shadow:0 8px 24px rgba(124,58,237,.28)}.vxSubscriptionsFootnote{display:flex!important;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.vxSubscriptionCard--lite.is-current{border-color:#c6973a!important;box-shadow:0 0 0 1px rgba(216,173,81,.34),0 18px 44px rgba(110,78,24,.23)!important}.vxSubscriptionCard--pro.is-current{border-color:#28bd8e!important}.vxSubscriptionCard--ultra.is-current{border-color:#9b73ff!important}.vxSubscriptionCurrent{font-style:normal!important}.vxSubscriptionFeature--added{animation:vxFeatureIn .18s ease}@keyframes vxFeatureIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.vxTicketModuleCard,.vxTicketBundleCard{isolation:isolate}.vxUltraRibbon{position:absolute;z-index:4;left:50%;top:50%;width:155%;padding:7px 0;transform:translate(-50%,-50%) rotate(-38deg);background:linear-gradient(90deg,rgba(26,115,232,.93),rgba(58,170,255,.96),rgba(26,115,232,.93));border-top:1px solid rgba(190,228,255,.8);border-bottom:1px solid rgba(190,228,255,.6);box-shadow:0 8px 22px rgba(15,93,189,.26);color:#ecf8ff;text-align:center;font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;pointer-events:none;opacity:.88}.vxTicketModuleCard>*:not(.vxUltraRibbon),.vxTicketBundleCard>*:not(.vxUltraRibbon){position:relative;z-index:2}.vxTicketModuleCard.is-owned .vxUltraRibbon,.vxTicketBundleCard.is-owned .vxUltraRibbon{opacity:.28}

.vxHeartbeatHelp{margin:0 0 15px;border:1px solid #2d4058;border-radius:14px;background:#0d1621;overflow:hidden}.vxHeartbeatHelp summary{cursor:pointer;padding:13px 15px;color:#dce8f5;font-size:13px;font-weight:800}.vxHeartbeatHelp[open] summary{border-bottom:1px solid #26384d}.vxHeartbeatHelp__body{display:grid;gap:9px;padding:14px 15px;color:#9fb1c5;font-size:12px;line-height:1.5}.vxHeartbeatHelp__body p{margin:0!important}.vxHeartbeatHelp code,.vxHeartbeatHelp pre{display:block;margin:0;padding:10px 12px;border:1px solid #26394f;border-radius:10px;background:#081018;color:#a9d3ff;font:11px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.vxHeartbeatHelp small{color:#71879d}

@media(max-width:760px){.vxMapToolbar{flex-wrap:wrap;height:auto!important}.vxMapToolButton--enhanced{font-size:12px!important}.vxMapExtraTools{width:100%}.vxTicketAutoRefresh{width:100%;margin-top:6px}.vxInternalNotes--modal .vxInternalNotes__composer{grid-template-columns:1fr}.vxUltraRibbon{font-size:9px}}
#vx-app-sidebar .vxNavIcon.vxNavIcon--large{width:27px!important;height:27px!important;flex:0 0 27px!important}#vx-app-sidebar .vxNavIcon.vxNavIcon--large svg{width:24px!important;height:24px!important}


/* 2026-07-27: штатная иконка карты в меню + увеличенная иконка в шапке страницы */
#vx-app-sidebar .tab[data-tab="map"] > .vxNavIcon{
  width:22px!important;
  height:22px!important;
  flex:0 0 22px!important;
}
#vx-app-sidebar .tab[data-tab="map"] > .vxNavIcon svg{
  width:19px!important;
  height:19px!important;
}
#vx-app-sidebar .tab[data-tab="map"] > .vxNavSvg--map{display:none!important}
.vxMapPageTitleIcon{
  width:56px!important;
  height:56px!important;
  flex:0 0 56px!important;
  border-radius:16px!important;
  font-size:30px!important;
  line-height:1!important;
}
.vxMapPageTitleIcon svg{width:32px!important;height:32px!important}
@media(max-width:560px){
  .vxMapPageTitleIcon{width:50px!important;height:50px!important;flex-basis:50px!important;font-size:27px!important}
}

/* 2026-07-27: компактные заметки внутри карточки тикета */
#t_head.vxTicketHead--withNotes{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  column-gap:14px!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
}
#t_head.vxTicketHead--withNotes > :not(.vxNotesSummary){grid-column:1!important;min-width:0}
#t_head .vxNotesSummary{
  grid-column:2!important;
  grid-row:1 / span 8!important;
  align-self:center!important;
  margin:0!important;
  max-width:none!important;
}
#t_head .vxNotesSummary__button{
  width:auto!important;
  min-width:174px!important;
  min-height:48px!important;
  padding:8px 10px!important;
  border-radius:11px!important;
  background:linear-gradient(135deg,rgba(245,158,11,.10),rgba(18,25,35,.82))!important;
}
#t_head .vxNotesSummary__icon{width:30px!important;height:30px!important;font-size:16px!important}
#t_head .vxNotesSummary__button b{font-size:12px!important;white-space:nowrap}
#t_head .vxNotesSummary__button small{font-size:10px!important;white-space:nowrap}
@media(max-width:760px){
  #t_head.vxTicketHead--withNotes{grid-template-columns:1fr!important;row-gap:9px!important}
  #t_head .vxNotesSummary{grid-column:1!important;grid-row:auto!important;justify-self:start!important}
}

/* Ровно одна иконка Командного центра без наложения псевдоэлементов */
#vx-app-sidebar .tab[data-tab="operations"] > .vxNavIcon,
#vx-app-sidebar .tab[data-tab="operations"] > .vxNavSvg--command{display:none!important}
#vx-app-sidebar .tab[data-tab="operations"] > .vxOpsTabIcon--clean{
  position:relative!important;
  display:inline-grid!important;
  place-items:center!important;
  width:22px!important;
  height:22px!important;
  flex:0 0 22px!important;
  margin:0!important;
  font-size:0!important;
  line-height:0!important;
}
#vx-app-sidebar .tab[data-tab="operations"] > .vxOpsTabIcon--clean::before,
#vx-app-sidebar .tab[data-tab="operations"] > .vxOpsTabIcon--clean::after{content:none!important;display:none!important;box-shadow:none!important}
#vx-app-sidebar .tab[data-tab="operations"] > .vxOpsTabIcon--clean svg{
  display:block!important;
  width:20px!important;
  height:20px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.9!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

/* Лента Ultra: без отдельного бейджа на карточке, более плотная и читаемая */
.vxUltraRibbon{
  opacity:.97!important;
  background:linear-gradient(90deg,#1568cf,#39aaff 50%,#1568cf)!important;
  border-top-color:rgba(219,241,255,.94)!important;
  border-bottom-color:rgba(189,226,255,.88)!important;
  box-shadow:0 10px 28px rgba(15,93,189,.42)!important;
  letter-spacing:.045em!important;
  text-transform:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
}
.vxUltraRibbon__badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:3px 7px!important;
  border:1px solid #a98aff!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#4c1d95,#7c3aed)!important;
  color:#f0e7ff!important;
  box-shadow:0 4px 12px rgba(76,29,149,.42)!important;
  font-size:9px!important;
  font-weight:950!important;
  letter-spacing:.08em!important;
  line-height:1!important;
}
.vxTicketModuleCard.is-owned .vxUltraRibbon,
.vxTicketBundleCard.is-owned .vxUltraRibbon{opacity:.97!important}

/* Текущий тариф проекта всегда выглядит как фирменный шильдик */
#vx-subscriptions-project-note.vxSubscriptionsFootnote{
  min-height:42px;
  color:#9fb0c5;
}
#vx-subscriptions-project-note .vxPlanBadge{vertical-align:middle}

/* 2026-07-27 control hub and visual corrections */
.vxTicketOwnedBadge{
  top:7px!important;
  right:9px!important;
  z-index:8!important;
}
.vxTicketBundleCard .vxTicketOwnedBadge{top:7px!important}
.vxUltraRibbon{top:47%!important}

.vxMapRulerIcon{display:inline-grid;place-items:center;width:21px;height:21px;flex:0 0 21px}
.vxMapRulerIcon svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.vxSubscriptionAlertActions{display:flex;justify-content:flex-end;margin-top:12px}
.vxSubscriptionAlertActions button{border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(10,16,25,.58);color:#dbe7f5;padding:8px 11px;font-size:12px;font-weight:750;cursor:pointer}
.vxSubscriptionAlertActions button:hover{border-color:rgba(255,255,255,.46);background:rgba(22,32,47,.82)}
#project-banner.vxSubscriptionAcknowledged{border-color:rgba(83,105,135,.34)!important;background:linear-gradient(135deg,rgba(25,35,49,.76),rgba(14,20,29,.94))!important}

body.vxSaToolModalOpen{overflow:hidden}
#vx-store-sa-card.vxStoreSaCard--moved{display:none!important}
.vxCommerceSaGrid{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.vxCommerceSaGrid>button{min-height:82px;position:relative;overflow:hidden}
.vxCommerceSaGrid>button>span,.vxCommerceSaGrid .vxSaQuickIcon{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;flex:0 0 38px!important;border-radius:11px;background:linear-gradient(145deg,rgba(95,108,255,.24),rgba(73,150,255,.12));font-size:21px!important}
.vxCommerceSaGrid .vxSaQuickIcon{font-size:0!important}
.vxCommerceSaGrid>button>span svg,.vxCommerceSaGrid .vxSaQuickIcon svg{width:23px;height:23px;fill:none;stroke:#c8d7ff;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.vxCommerceSaGrid>button b{font-size:13px}.vxCommerceSaGrid>button small{font-size:10px;line-height:1.35}
#vx-sa-tool-dock[hidden]{display:none!important}
.vxSaToolOverlay[hidden]{display:none!important}
.vxSaToolOverlay{position:fixed;inset:0;z-index:100060;display:grid;place-items:start center;padding:28px;overflow:auto}
.vxSaToolBackdrop{position:fixed;inset:0;border:0!important;border-radius:0!important;background:rgba(3,6,12,.80)!important;backdrop-filter:blur(12px);cursor:default}
.vxSaToolModal{position:relative;z-index:1;width:min(1220px,calc(100vw - 40px));max-height:calc(100vh - 56px);display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid #2c3850;border-radius:20px;background:linear-gradient(180deg,#111927,#0b111b);box-shadow:0 34px 110px rgba(0,0,0,.68);overflow:hidden}
.vxSaToolModal>header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:19px 22px;border-bottom:1px solid #263248;background:rgba(18,27,41,.94)}
.vxSaToolModal>header span{display:block;color:#73849c;font-size:10px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.vxSaToolModal>header h2{margin:3px 0 0;font-size:24px}.vxSaToolModal>header p{margin:5px 0 0;color:#91a2b9;font-size:12px}
.vxSaToolClose{width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;border:1px solid #334158!important;border-radius:11px!important;background:#182334!important;color:#fff!important;font-size:24px!important;line-height:1!important;cursor:pointer}
#vx-sa-tool-body{min-height:240px;padding:20px;overflow:auto}
.vxSaToolSource--open{display:block!important;margin:0!important;max-width:none!important}
.vxSaToolSource--open.vxSaOperations{border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important}
.vxSaToolSource--open .vxCompactPicker,.vxSaToolSource--open select{max-width:none}
.vxSaToolEmpty{padding:40px;text-align:center;color:#91a2b9}
body.vxSaToolsOrganized #sa-root>hr{display:none}

@media(max-width:1050px){.vxCommerceSaGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:680px){.vxCommerceSaGrid{grid-template-columns:1fr 1fr!important}.vxSaToolOverlay{padding:8px}.vxSaToolModal{width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:14px}.vxSaToolModal>header{padding:15px}#vx-sa-tool-body{padding:12px}}
@media(max-width:440px){.vxCommerceSaGrid{grid-template-columns:1fr!important}}

/* 2026-07-27 follow-up: карточки, подписка и полноэкранный центр СА */
.vxTicketOwnedBadge,
.vxTicketBundleCard .vxTicketOwnedBadge{
  top:2px!important;
  right:9px!important;
}

.vxSubscriptionAlertIntro{margin-top:2px;color:#d5dfec;line-height:1.45}
.vxSubscriptionAlert ul{margin-top:9px!important;margin-bottom:10px!important;gap:5px!important}
.vxSubscriptionAlert li{color:#c8d4e3;line-height:1.45}
.vxSubscriptionAlertLinks{display:flex;justify-content:flex-start;margin-top:11px}
.vxSubscriptionAlertLinks a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 13px;border:1px solid rgba(121,157,255,.55);border-radius:10px;background:linear-gradient(135deg,rgba(76,96,225,.34),rgba(49,116,225,.20));color:#eef4ff;text-decoration:none;font-size:12px;font-weight:850}
.vxSubscriptionAlertLinks a:hover{border-color:#8eabff;background:linear-gradient(135deg,rgba(76,96,225,.48),rgba(49,116,225,.30))}

/* Старые входы скрыты: все инструменты доступны из единой панели с иконками. */
body.vxSaToolsOrganized .vxPricingAdminBar,
body.vxSaToolsOrganized #vx-platform-management-nav,
body.vxSaToolsOrganized #vx-platform-management-frame-wrap{display:none!important}

/* Модалки инструментов СА прикреплены к body и занимают весь интерфейс. */
.vxSaToolOverlay{position:fixed!important;inset:0!important;z-index:100500!important;padding:20px!important;place-items:center!important}
.vxSaToolModal{width:calc(100vw - 40px)!important;height:calc(100vh - 40px)!important;max-width:none!important;max-height:none!important}
#vx-sa-tool-body{min-height:0!important;height:100%!important;overflow:auto!important}
.vxSaToolSource--open{min-height:100%!important}
.vxSaToolFrame{display:block;width:100%;height:100%;min-height:620px;border:0;background:#0b111b}
.vxCommerceSaGrid{grid-template-columns:repeat(4,minmax(0,1fr))!important}

@media(max-width:900px){.vxCommerceSaGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){
  .vxSaToolOverlay{padding:6px!important}
  .vxSaToolModal{width:calc(100vw - 12px)!important;height:calc(100vh - 12px)!important;max-height:none!important}
  .vxSaToolFrame{min-height:520px}
}
@media(max-width:440px){.vxCommerceSaGrid{grid-template-columns:1fr!important}}

/* 2026-07-27: финальные правки СА, модалок и уведомлений */
.vxTicketOwnedBadge,
.vxTicketBundleCard .vxTicketOwnedBadge{
  top:0!important;
  right:9px!important;
  transform:translateY(-1px)!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
  z-index:12!important;
}

/* Дочерние формы СА всегда открываются поверх полноэкранного раздела. */
body.vxSaToolModalOpen #vx-modal-overlay:not(.hidden),
body.vxSaToolModalOpen #ticket-module-modal:not(.hidden),
body.vxSaToolModalOpen .sa-modal:not(.hidden),
body.vxSaToolModalOpen #ipModal:not(.hidden){
  position:fixed!important;
  z-index:100900!important;
}
body.vxSaToolModalOpen #vx-modal-overlay:not(.hidden),
body.vxSaToolModalOpen #ticket-module-modal:not(.hidden){
  display:flex!important;
}
body.vxSaToolModalOpen .sa-modal:not(.hidden){
  display:flex!important;
}

/* Крестик в настройках тарифов. */
#vx-modal-overlay .vx-modal[data-vx-pricing-modal="1"]{
  position:relative!important;
  padding-top:27px!important;
}
.vxPricingModalClose{
  position:sticky!important;
  float:right!important;
  top:0!important;
  right:0!important;
  z-index:8!important;
  width:38px!important;
  height:38px!important;
  min-height:38px!important;
  margin:-15px -13px 2px 12px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid #3a4960!important;
  border-radius:11px!important;
  background:#172334!important;
  color:#fff!important;
  box-shadow:0 7px 22px rgba(0,0,0,.30)!important;
  font-size:25px!important;
  font-weight:500!important;
  line-height:1!important;
  cursor:pointer!important;
}
.vxPricingModalClose:hover{background:#23334a!important;border-color:#607795!important}

/* Красивые информационные уведомления вместо стандартного browser alert(). */
body.vxPrettyAlertOpen{overflow:hidden}
.vxPrettyAlert[hidden]{display:none!important}
.vxPrettyAlert{
  position:fixed;
  inset:0;
  z-index:101500;
  display:grid;
  place-items:center;
  padding:20px;
  opacity:0;
  transition:opacity .16s ease;
}
.vxPrettyAlert.is-open{opacity:1}
.vxPrettyAlert__backdrop{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:rgba(2,6,12,.80)!important;
  backdrop-filter:blur(10px);
  cursor:default!important;
}
.vxPrettyAlert__dialog{
  position:relative;
  z-index:1;
  width:min(510px,calc(100vw - 30px));
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  gap:15px;
  padding:22px;
  border:1px solid #314158;
  border-radius:18px;
  background:linear-gradient(180deg,#172232,#0e1622);
  box-shadow:0 32px 100px rgba(0,0,0,.68);
  transform:translateY(8px) scale(.985);
  transition:transform .18s ease;
}
.vxPrettyAlert.is-open .vxPrettyAlert__dialog{transform:none}
.vxPrettyAlert__close{
  position:absolute!important;
  top:12px!important;
  right:12px!important;
  width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid #34445b!important;
  border-radius:10px!important;
  background:#192638!important;
  color:#fff!important;
  font-size:23px!important;
  line-height:1!important;
  cursor:pointer!important;
}
.vxPrettyAlert__icon{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border:1px solid #5278aa;
  border-radius:15px;
  background:linear-gradient(145deg,rgba(54,121,221,.30),rgba(43,101,184,.14));
  color:#bcd8ff;
  font-size:24px;
  font-weight:950;
}
.vxPrettyAlert[data-kind="success"] .vxPrettyAlert__icon{border-color:#2ca77b;background:rgba(22,145,103,.18);color:#7ff0c4}
.vxPrettyAlert[data-kind="warning"] .vxPrettyAlert__icon{border-color:#b7832c;background:rgba(183,131,44,.17);color:#ffd585}
.vxPrettyAlert[data-kind="error"] .vxPrettyAlert__icon{border-color:#c44f62;background:rgba(196,79,98,.18);color:#ff9faf}
.vxPrettyAlert__content{min-width:0;padding-right:28px}
.vxPrettyAlert__content>span{display:block;margin:1px 0 4px;color:#6f849e;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.vxPrettyAlert__content h3{margin:0;color:#f4f7fb;font-size:20px;line-height:1.25}
.vxPrettyAlert__content p{margin:9px 0 0;color:#b9c8d9;font-size:13px;line-height:1.58;white-space:pre-wrap;overflow-wrap:anywhere}
.vxPrettyAlert__actions{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:4px}
.vxPrettyAlert__ok{
  min-width:112px!important;
  min-height:38px!important;
  padding:9px 15px!important;
  border:1px solid #557fde!important;
  border-radius:10px!important;
  background:linear-gradient(135deg,#315fbf,#486ed8)!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:850!important;
  cursor:pointer!important;
}
.vxPrettyAlert__ok:hover{filter:brightness(1.08)}

@media(max-width:560px){
  .vxPrettyAlert{padding:10px}
  .vxPrettyAlert__dialog{grid-template-columns:42px minmax(0,1fr);gap:12px;padding:18px 15px}
  .vxPrettyAlert__icon{width:42px;height:42px;border-radius:12px;font-size:20px}
  .vxPrettyAlert__content{padding-right:26px}
}
/* Освобождаем больше воздуха под верхним бейджем — визуально он находится заметно выше контента карточки. */
.vxTicketModuleCard.is-owned,
.vxTicketBundleCard.is-owned{padding-top:28px!important}

/* 2026-07-27: компактные действия у нижнего края карточек */
.vxSubscriptionCard,
.vxTicketModuleCard,
.vxTicketBundleCard{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  min-height:0!important;
}

.vxSubscriptionCard .vxCommerceActionHost,
.vxTicketModuleCard .vxCommerceActionHost,
.vxTicketBundleCard .vxCommerceActionHost{
  width:100%!important;
  margin-top:auto!important;
  padding-top:14px!important;
  box-sizing:border-box!important;
}

.vxSubscriptionCard .vxCommerceAction,
.vxTicketModuleCard .vxCommerceAction,
.vxTicketBundleCard .vxCommerceAction{
  width:100%!important;
  min-height:42px!important;
  height:42px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:8px 12px!important;
  border-radius:10px!important;
  font-size:13px!important;
  line-height:1.15!important;
}

.vxTicketModuleCard .vxDevelopmentBadge,
.vxTicketBundleCard .vxDevelopmentBadge{
  align-self:flex-start!important;
}

/* Grid сам выравнивает карточки внутри строки. height:100% здесь не нужен — он растягивал карточки и кнопки. */
.vxTicketModulesGrid,
.vxTicketBundlesGrid,
.vxSubscriptionsGrid{
  align-items:stretch!important;
}

.vxTicketModulesGrid > .vxTicketModuleCard,
.vxTicketBundlesGrid > .vxTicketBundleCard,
.vxSubscriptionsGrid > .vxSubscriptionCard{
  height:auto!important;
  align-self:stretch!important;
}

@media(max-width:560px){
  .vxSubscriptionCard .vxCommerceAction,
  .vxTicketModuleCard .vxCommerceAction,
  .vxTicketBundleCard .vxCommerceAction{
    min-height:40px!important;
    height:40px!important;
    padding:7px 10px!important;
    font-size:12px!important;
  }
}


/* 2026-07-27: компактные статусы «Подключено» и исправление растяжения верхнего бейджа */
.vxTicketOwnedBadge,
.vxTicketBundleCard .vxTicketOwnedBadge{
  left:auto!important;
  width:max-content!important;
  max-width:118px!important;
  min-width:0!important;
  align-self:auto!important;
  white-space:nowrap!important;
  padding:4px 8px!important;
  font-size:10px!important;
  line-height:1!important;
}

.vxTicketModuleCard .vxCommerceAction.owned:not(.disabled),
.vxTicketBundleCard .vxCommerceAction.owned:not(.disabled){
  width:min(72%,210px)!important;
  min-width:132px!important;
  margin:0 auto!important;
  padding-left:12px!important;
  padding-right:12px!important;
}

@media(max-width:560px){
  .vxTicketModuleCard .vxCommerceAction.owned:not(.disabled),
  .vxTicketBundleCard .vxCommerceAction.owned:not(.disabled){
    width:min(82%,210px)!important;
    min-width:124px!important;
  }
}

/* 2026-07-27: безопасная компактная сетка карточек без пересечений */
.vxTicketModulesGrid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}

.vxTicketBundlesGrid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}

.vxTicketModulesGrid > .vxTicketModuleCard,
.vxTicketBundlesGrid > .vxTicketBundleCard{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  justify-self:stretch!important;
  align-self:stretch!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

@media(max-width:1280px){
  .vxTicketModulesGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .vxTicketBundlesGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

@media(max-width:860px){
  .vxTicketModulesGrid,
  .vxTicketBundlesGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:560px){
  .vxTicketModulesGrid,
  .vxTicketBundlesGrid{grid-template-columns:minmax(0,1fr)!important}
}

/* 2026-07-27: аккуратный верхний статус подключения на карточках тикетных каналов */
.vxTicketModuleCard .vxTicketOwnedBadge,
.vxTicketBundleCard .vxTicketOwnedBadge{
  position:absolute!important;
  top:11px!important;
  left:12px!important;
  right:auto!important;
  transform:none!important;
  z-index:12!important;
  display:none;
  align-items:center!important;
  gap:6px!important;
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  height:22px!important;
  padding:0 9px!important;
  box-sizing:border-box!important;
  border:1px solid rgba(96,165,250,.48)!important;
  border-radius:999px!important;
  background:rgba(37,99,235,.14)!important;
  color:#cfe5ff!important;
  box-shadow:none!important;
  font-size:10px!important;
  font-weight:850!important;
  letter-spacing:.01em!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.vxTicketModuleCard.is-owned .vxTicketOwnedBadge,
.vxTicketBundleCard.is-owned .vxTicketOwnedBadge{
  display:inline-flex!important;
}
.vxTicketModuleCard .vxTicketOwnedBadge::before,
.vxTicketBundleCard .vxTicketOwnedBadge::before{
  content:"";
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:#5ca7ff;
  box-shadow:0 0 0 3px rgba(92,167,255,.12);
}

/* 2026-07-27: отступ после верхнего статуса и компактная красная скидка */
.vxTicketModuleCard.is-owned > .vxTicketChannelTitle{
  margin-top:30px!important;
}
.vxTicketBundleCard.is-owned > .vxBundleChannelIcons{
  margin-top:30px!important;
}

.vxTicketBundleCard .vxBundleDiscount{
  position:absolute!important;
  top:11px!important;
  right:12px!important;
  left:auto!important;
  z-index:13!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:max-content!important;
  min-width:0!important;
  max-width:96px!important;
  height:22px!important;
  margin:0!important;
  padding:0 9px!important;
  align-self:auto!important;
  box-sizing:border-box!important;
  border:1px solid rgba(248,113,113,.58)!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#7f1d1d,#dc2626)!important;
  color:#fff1f2!important;
  box-shadow:0 6px 16px rgba(220,38,38,.24)!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.01em!important;
  line-height:1!important;
  white-space:nowrap!important;
}

@media(max-width:560px){
  .vxTicketModuleCard.is-owned > .vxTicketChannelTitle,
  .vxTicketBundleCard.is-owned > .vxBundleChannelIcons{
    margin-top:28px!important;
  }
}

/* 2026-07-27: цены тикетных каналов и комплектов по центру */
.vxTicketModuleCard .vxTicketModulePrice,
.vxTicketModuleCard .vxTicketModulePeriod,
.vxTicketBundleCard .vxTicketModulePrice,
.vxTicketBundleCard .vxTicketModulePeriod{
  width:100%!important;
  box-sizing:border-box!important;
  text-align:center!important;
}

.vxTicketModuleCard .vxTicketModulePrice,
.vxTicketBundleCard .vxTicketModulePrice{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* 2026-07-27: фиксированная линия цены непосредственно над нижним действием */
.vxTicketModuleCard .vxTicketModulePrice,
.vxTicketBundleCard .vxTicketModulePrice{
  margin-top:auto!important;
  padding-top:14px!important;
}

.vxTicketModuleCard .vxTicketModulePeriod,
.vxTicketBundleCard .vxTicketModulePeriod{
  min-height:18px!important;
  margin-top:2px!important;
}

.vxTicketModuleCard .vxCommerceActionHost,
.vxTicketBundleCard .vxCommerceActionHost{
  margin-top:0!important;
  padding-top:12px!important;
}

.vxTicketModuleCard.is-development .vxDevelopmentBadge,
.vxTicketBundleCard.is-development .vxDevelopmentBadge{
  margin-top:auto!important;
}

.vxTicketModuleCard.is-development .vxCommerceActionHost,
.vxTicketBundleCard.is-development .vxCommerceActionHost{
  padding-top:12px!important;
}


/* 2026-07-27: цена внутри кнопок тикетных каналов и комплектов */
.vxTicketModuleCard .vxTicketModulePrice,
.vxTicketModuleCard .vxTicketModulePeriod,
.vxTicketBundleCard .vxTicketModulePrice,
.vxTicketBundleCard .vxTicketModulePeriod{
  display:none!important;
}

.vxTicketModuleCard .vxCommerceActionHost,
.vxTicketBundleCard .vxCommerceActionHost{
  margin-top:auto!important;
  padding-top:16px!important;
}

.vxTicketModuleCard .vxCommerceAction--priced,
.vxTicketBundleCard .vxCommerceAction--priced{
  height:52px!important;
  min-height:52px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  padding:7px 12px!important;
  line-height:1.05!important;
}

.vxCommerceAction--priced .vxCommerceAction__label{
  display:block;
  font-size:12px;
  font-weight:900;
  letter-spacing:.015em;
  text-transform:uppercase;
}

.vxCommerceAction--priced .vxCommerceAction__price{
  display:block;
  font-size:12px;
  font-weight:750;
  color:rgba(236,245,255,.82);
  white-space:nowrap;
}

@media(max-width:560px){
  .vxTicketModuleCard .vxCommerceAction--priced,
  .vxTicketBundleCard .vxCommerceAction--priced{
    height:50px!important;
    min-height:50px!important;
  }
}

/* 2026-07-27 v2: цена и статус только внутри нижнего действия */
[data-ticket-module] [data-ticket-price],
[data-ticket-module] [data-ticket-period],
[data-ticket-bundle] [data-bundle-price],
[data-ticket-bundle] [data-bundle-period],
[data-ticket-module] > .vxTicketModulePrice,
[data-ticket-module] > .vxTicketModulePeriod,
[data-ticket-bundle] > .vxTicketModulePrice,
[data-ticket-bundle] > .vxTicketModulePeriod{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
}

.vxTicketModuleCard .vxCommerceAction.owned.vxCommerceAction--priced,
.vxTicketBundleCard .vxCommerceAction.owned.vxCommerceAction--priced{
  min-height:52px!important;
  height:52px!important;
}

.vxTicketModuleCard .vxCommerceAction.owned .vxCommerceAction__price,
.vxTicketBundleCard .vxCommerceAction.owned .vxCommerceAction__price{
  color:rgba(215,232,255,.78)!important;
  font-size:11px!important;
  font-weight:750!important;
  text-transform:none!important;
}


/* 2026-07-27 v3: цены внутри действий для тарифов и Ticket Workspace */
.vxSubscriptionCard > .vxSubscriptionPrice,
.vxSubscriptionCard [data-plan-price],
.vxSubscriptionCard [data-plan-period],
.vxSubscriptionCard [data-plan-equivalent],
.vxWorkspaceCard > strong,
.vxWorkspaceCard > .vxWorkspaceEquivalent,
.vxWorkspaceCard > .vxWorkspaceLegacyPrice{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
}

.vxSubscriptionCard .vxCommerceAction--priced,
.vxWorkspaceCard .vxCommerceAction--priced{
  height:52px!important;
  min-height:52px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  padding:7px 12px!important;
  line-height:1.05!important;
}

.vxSubscriptionCard .vxCommerceActionHost,
.vxWorkspaceCard .vxCommerceActionHost{
  margin-top:auto!important;
  padding-top:16px!important;
}

.vxWorkspaceCard{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
}

.vxWorkspaceCard > p{
  flex:1 1 auto!important;
  margin-bottom:0!important;
}

@media(max-width:560px){
  .vxSubscriptionCard .vxCommerceAction--priced,
  .vxWorkspaceCard .vxCommerceAction--priced{
    height:50px!important;
    min-height:50px!important;
  }
}

/* 2026-07-27: восстановление Ticket Workspace и каталога подписок */
.vxSubscriptionsCatalogNotice{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:14px 0 20px;
  padding:14px 16px;
  border:1px solid rgba(78,132,214,.34);
  border-radius:14px;
  background:linear-gradient(135deg,rgba(33,67,116,.24),rgba(18,30,49,.62));
}
.vxSubscriptionsCatalogNotice>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.vxSubscriptionsCatalogNotice strong{color:#f2f6fc;font-size:13px}
.vxSubscriptionsCatalogNotice span{color:#93a6bd;font-size:12px;line-height:1.45}
.vxSubscriptionsCatalogNotice a{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:9px 14px;
  border:1px solid #6653c7;
  border-radius:10px;
  background:rgba(94,69,178,.22);
  color:#d9d2ff;
  font-size:12px;
  font-weight:850;
  text-decoration:none;
}
.vxSubscriptionsCatalogNotice a:hover{background:rgba(108,78,204,.34);border-color:#806cf0}

.vxWorkspaceCommerceHead{align-items:flex-start!important}
.vxWorkspaceCommerceHead>div:last-child:not(:first-child){display:none!important}
.vxWorkspaceCommerceGrid{align-items:stretch!important;gap:14px!important}
.vxWorkspaceCard{
  min-width:0!important;
  min-height:286px!important;
  padding:18px!important;
  gap:14px!important;
  border:1px solid #29364a!important;
  border-radius:15px!important;
  background:linear-gradient(180deg,rgba(17,25,38,.96),rgba(11,17,27,.98))!important;
  box-sizing:border-box!important;
}
.vxWorkspaceCardHead{display:flex;flex-direction:column;gap:7px}
.vxWorkspaceCardHead h4{margin:0!important;color:#f0f4fa;font-size:16px!important;line-height:1.25}
.vxWorkspaceCardHead p{margin:0!important;color:#91a2b8;font-size:12px;line-height:1.48;min-height:36px}
.vxWorkspaceFeatures{display:grid;gap:7px}
.vxWorkspaceFeatures>div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  min-height:34px;
  padding:7px 9px;
  border:1px solid rgba(64,80,104,.38);
  border-radius:9px;
  background:rgba(28,39,55,.48);
}
.vxWorkspaceFeatures span{color:#9cadc1;font-size:11px;line-height:1.25}
.vxWorkspaceFeatures b{flex:0 0 auto;color:#7ce1b4;font-size:11px;text-align:right}
.vxWorkspaceCard .vxCommerceActionHost{margin-top:auto!important;padding-top:2px!important}
.vxWorkspaceCard .vxCommerceAction--priced{
  width:100%!important;
  height:48px!important;
  min-height:48px!important;
  padding:6px 12px!important;
  border-radius:10px!important;
}
.vxWorkspaceCard .vxCommerceAction__label{font-size:11px!important}
.vxWorkspaceCard .vxCommerceAction__price{font-size:11px!important}

/* Лицензии и покупки: пустой список не растягивает страницу, IP отделены визуально. */
#pmods_empty.vxPmodsEmpty{
  max-width:560px;
  min-height:0!important;
  margin:14px 0 0!important;
  padding:16px 18px!important;
  border-style:dashed!important;
}
.vxPmodsEmpty__title{margin-bottom:5px;color:#eef3f9;font-size:14px;font-weight:850}
#pmods_ip_wrap{
  margin-top:30px!important;
  padding-top:26px!important;
  border-top:1px solid rgba(70,88,116,.42);
}
#pmods_mods_wrap[aria-hidden="true"]{display:none!important}

/* Создание/редактирование мода всегда является одной верхнеуровневой модалкой. */
#sa-mod-modal.vxSaStandaloneModal{
  position:fixed!important;
  inset:0!important;
  z-index:101100!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  background:rgba(2,6,12,.82)!important;
  backdrop-filter:blur(10px);
}
#sa-mod-modal.vxSaStandaloneModal.hidden{display:none!important}
#sa-mod-modal.vxSaStandaloneModal .sa-modal-content{
  width:min(560px,calc(100vw - 30px))!important;
  max-height:calc(100vh - 36px)!important;
  overflow:auto!important;
  box-shadow:0 30px 100px rgba(0,0,0,.68)!important;
}

@media(max-width:700px){
  .vxSubscriptionsCatalogNotice{align-items:stretch;flex-direction:column}
  .vxSubscriptionsCatalogNotice a{width:100%;box-sizing:border-box}
  .vxWorkspaceCard{min-height:0!important}
}

/* 2026-07-27 v8: исправление Ticket Workspace и блока лицензий */
#vx-workspace-commerce .vxWorkspaceCommerceGrid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  overflow:visible!important;
}
#vx-workspace-commerce .vxWorkspaceCard,
#vx-workspace-commerce .vxCommerceActionHost,
#vx-workspace-commerce .vxCommerceAction{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#vx-workspace-commerce .vxWorkspaceCard .vxCommerceAction{
  width:100%!important;
  margin:0!important;
}
#tab-pmods #pmods_ip_wrap,
#tab-pmods #pmods_ip_wrap.vxPmodsIpSeparated{
  margin-top:42px!important;
  padding-top:30px!important;
  border-top:1px solid rgba(91,112,147,.52)!important;
}
#tab-pmods #pmods_mods_wrap.is-empty{
  display:none!important;
}
@media(max-width:850px){
  #vx-workspace-commerce .vxWorkspaceCommerceGrid{grid-template-columns:1fr!important}
}
