/* VX owner UI redesign v25 */
#vx-modal-overlay .vx-modal.vxModalWide{width:min(1180px,96vw);max-width:96vw;max-height:92vh;overflow:auto}
#vx-modal-overlay .vx-modal.vxModalAccess{width:min(1080px,96vw);max-width:96vw}
.vxAccessIntro,.vxPlayersToolbar,.vxLogIntegrationHero,.vxTicketPageEditorHead{display:flex;align-items:center;justify-content:space-between;gap:14px}
.vxAccessIntro{margin-bottom:14px;padding:14px 16px;border:1px solid rgba(88,111,172,.32);border-radius:14px;background:linear-gradient(135deg,rgba(38,48,78,.62),rgba(18,23,36,.78))}
.vxAccessIntro p,.vxTicketPageEditorHead p{margin:4px 0 0;color:#8f9bb1;font-size:13px}
.vxAccessLegend{display:flex;gap:12px;flex-wrap:wrap;color:#9ba7bb;font-size:12px}.vxAccessLegend span{display:inline-flex;align-items:center;gap:6px}.vxAccessDot{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;border:1px solid #45516b;font-size:10px}.vxAccessDot.on{color:#77e4b0;border-color:#2f9d73;background:rgba(40,181,125,.12)}.vxAccessDot.off{color:#ff8c99;border-color:#a34958;background:rgba(198,54,75,.11)}.vxAccessDot.lock{position:relative;border-radius:6px;color:transparent;background:#202738}.vxAccessDot.lock:before{content:'';position:absolute;width:7px;height:6px;left:4px;top:7px;border-radius:2px;background:#aeb8ca}.vxAccessDot.lock:after{content:'';position:absolute;width:7px;height:6px;left:4px;top:3px;border:1.5px solid #aeb8ca;border-bottom:0;border-radius:5px 5px 0 0;box-sizing:border-box}
.vxAccessTableWrap{overflow:auto;border:1px solid #283248;border-radius:15px;background:#0c111b}.vxAccessTable{width:100%;min-width:760px;border-collapse:collapse}.vxAccessTable th{padding:12px 10px;text-align:center;color:#7f8ca5;font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:#121927;border-bottom:1px solid #283248}.vxAccessTable th:first-child{text-align:left}.vxAccessTable td{padding:11px 10px;border-bottom:1px solid rgba(47,59,82,.58);text-align:center}.vxAccessTable tr:last-child td{border-bottom:0}.vxAccessUser{display:flex;align-items:center;gap:10px;text-align:left}.vxAccessAvatar,.vxPlayerAvatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#284d9c,#7b48dc);font-weight:900;color:#fff;flex:none}.vxAccessUser b{display:block}.vxAccessUser small{color:#7e8aa1}.vxRolePill{display:inline-flex;margin-top:3px;padding:3px 7px;border-radius:999px;background:#1d2638;color:#9daccc;font-size:10px}.vxAccessCheck{appearance:none;width:22px!important;height:22px!important;min-width:22px;min-height:22px;margin:0!important;padding:0!important;border-radius:50%;border:1px solid #4a566e;background:#151c2a;display:inline-grid;place-items:center;vertical-align:middle;position:relative;cursor:pointer;box-sizing:border-box}.vxAccessCheck:checked{border-color:#36bd84;background:rgba(42,190,128,.18)}.vxAccessCheck:checked:after{content:'✓';color:#76e6b2;font-size:13px;font-weight:900}.vxAccessCheck:disabled{cursor:not-allowed;opacity:.76;border-radius:7px}.vxAccessCheck:disabled:checked:after{content:''}.vxAccessCheck:disabled:before{content:'';position:absolute;width:8px;height:7px;left:6px;top:8px;border-radius:2px;background:#aeb8ca}.vxAccessCheck:disabled:after{content:'';position:absolute;width:7px;height:6px;left:6.5px;top:4px;border:1.5px solid #aeb8ca;border-bottom:0;border-radius:5px 5px 0 0;box-sizing:border-box}.vxAccessTicketGroup{background:rgba(91,64,168,.08)}
.vxPlayersShell{display:grid;grid-template-columns:minmax(320px,430px) minmax(360px,1fr);gap:14px;min-height:570px}.vxPlayersListPane,.vxPlayerDetails{border:1px solid #29334a;border-radius:16px;background:#0d121d;overflow:hidden}.vxPlayersToolbar{padding:14px;border-bottom:1px solid #29334a}.vxPlayersSearch{flex:1;min-width:0}.vxPlayersSearch input{width:100%;margin:0}.vxPlayersCount{padding:10px 14px;color:#7f8aa1;font-size:12px}.vxPlayersList{display:grid;gap:7px;padding:0 10px 12px;max-height:480px;overflow:auto}.vxPlayerRow{width:100%;display:flex;align-items:center;gap:10px;padding:10px;border:1px solid transparent;border-radius:12px;background:#111827;color:#e8edf7;text-align:left;cursor:pointer}.vxPlayerRow:hover,.vxPlayerRow.is-active{border-color:#536ce9;background:linear-gradient(135deg,rgba(48,69,130,.45),rgba(65,42,111,.35))}.vxPlayerRowMain{min-width:0;flex:1}.vxPlayerRowMain b,.vxPlayerRowMain small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vxPlayerRowMain small{color:#7f8aa0;margin-top:2px}.vxPlayerTicketBadge{padding:4px 7px;border-radius:999px;color:#a9b7d3;background:#202a3e;font-size:10px}.vxPlayerDetails{padding:20px}.vxPlayerEmpty{height:100%;display:grid;place-items:center;color:#7f8aa0;text-align:center}.vxPlayerDetailHead{display:flex;align-items:center;gap:13px;padding-bottom:16px;border-bottom:1px solid #29334a}.vxPlayerDetailHead .vxPlayerAvatar{width:54px;height:54px;border-radius:16px;font-size:18px}.vxPlayerDetailHead h3{margin:0 0 5px}.vxPlayerDetailHead p{margin:0;color:#8793a9}.vxPlayerFacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.vxPlayerFact{padding:13px;border:1px solid #29334a;border-radius:12px;background:#121927}.vxPlayerFact span{display:block;color:#7f8ba2;font-size:11px;margin-bottom:5px}.vxPlayerFact b{word-break:break-word}.vxPlayerActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.vxPlayerActions button{border:1px solid #3d4b69;background:#151d2d}.vxPlayerActions button.primary{background:linear-gradient(135deg,#466ae8,#824fe4)}
.vxLogIntegrationHero{padding:16px;border:1px solid rgba(67,111,218,.35);border-radius:16px;background:linear-gradient(135deg,rgba(27,55,112,.28),rgba(75,38,137,.18));margin-bottom:14px}.vxLogIntegrationHero h3{margin:0 0 5px}.vxLogIntegrationHero p{margin:0;color:#91a0b7}.vxLogAlways{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(44,181,126,.1);border:1px solid rgba(44,181,126,.28);color:#91e5bd;font-size:12px}.vxLogTypeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vxLogTypeCard{padding:14px;border:1px solid #2a354c;border-radius:14px;background:#0f1623}.vxLogTypeHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.vxLogTypeHead h4{margin:0 0 4px}.vxLogTypeHead p{margin:0;color:#7f8da4;font-size:12px}.vxLogSwitch{display:inline-flex;align-items:center;gap:7px;color:#91a0b5;font-size:11px}.vxLogSwitch input{width:auto}.vxLogWebhook{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;margin-top:12px}.vxLogWebhook input{margin:0;min-width:0}.vxLogWebhook button{padding:9px 11px}.vxLogStats{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px;color:#7d899f;font-size:10px}.vxLogStats span{padding:4px 7px;border-radius:999px;background:#192235}.vxLogSaveBar{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.vxLogSaveBar span{align-self:center;color:#7e8aa0;font-size:12px}
.vxTicketPageEditor{display:grid;grid-template-columns:minmax(360px,1fr) minmax(300px,410px);gap:16px}.vxTicketPageFields{display:grid;gap:12px}.vxTicketPageFields label{display:grid;gap:6px}.vxTicketPageFields input,.vxTicketPageFields textarea{width:100%;margin:0}.vxTicketMediaRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vxTicketColorRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vxTicketColorField{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center}.vxTicketColorField input[type=color]{padding:3px;height:42px}.vxTicketToggles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vxTicketToggle{display:flex!important;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid #2a354b;border-radius:12px;background:#111826}.vxTicketToggle input{width:auto}.vxTicketPreview{position:sticky;top:0;border:1px solid #2d3850;border-radius:17px;background:#090e17;overflow:hidden;min-height:560px}.vxTicketPreviewBanner{height:120px;background:linear-gradient(135deg,#29235f,#145f97);background-size:cover;background-position:center;position:relative}.vxTicketPreviewLogo{position:absolute;left:18px;bottom:-28px;width:58px;height:58px;border-radius:16px;background:#151c2b;border:1px solid #44516d;display:grid;place-items:center;font-weight:900;overflow:hidden}.vxTicketPreviewLogo img{width:100%;height:100%;object-fit:cover}.vxTicketPreviewBody{padding:42px 18px 18px}.vxTicketPreviewBody h3{margin:0 0 7px}.vxTicketPreviewBody p{margin:0;color:#8e9bb1;line-height:1.5}.vxTicketPreviewSearch{margin-top:15px;padding:10px 12px;border:1px solid #2d3850;border-radius:10px;color:#6f7c91}.vxTicketPreviewTopics{display:grid;gap:8px;margin-top:15px}.vxTicketPreviewTopic{padding:11px;border:1px solid #29344b;border-radius:11px;background:#111827}.vxTicketPreviewFoot{margin-top:20px;color:#607088;font-size:11px;text-align:center}
@media(max-width:850px){.vxPlayersShell,.vxTicketPageEditor{grid-template-columns:1fr}.vxPlayerDetails{min-height:330px}.vxLogTypeGrid{grid-template-columns:1fr}.vxTicketPreview{position:relative}.vxTicketMediaRow,.vxTicketColorRow,.vxTicketToggles{grid-template-columns:1fr}}

#ticket-module-modal .vx-modal{width:min(1120px,96vw)!important;max-width:96vw!important;max-height:92vh;overflow:auto}
.vxTicketMediaField{display:grid;gap:6px}.vxTicketMediaField>span{font-size:12px;color:#9ba6ba}.vxTicketMediaField small{color:#68758c;font-size:10px}.vxTicketMediaControls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px}.vxTicketMediaControls button{padding:9px 10px;border:1px solid #3b4965;background:#172132}.vxTicketMediaControls button.danger{border-color:#6d3540;background:#29151c;color:#ff9aa5}@media(max-width:700px){.vxTicketMediaControls{grid-template-columns:1fr 1fr}.vxTicketMediaControls input:not([type=file]){grid-column:1/-1}}


/* hotfix v26: log test result states */
.vxLogWebhook button.is-test-ok{border-color:#2ca873!important;background:rgba(34,166,111,.2)!important;color:#81e8b8!important;box-shadow:0 0 0 1px rgba(44,168,115,.12),0 0 20px rgba(44,168,115,.12)}
.vxLogWebhook button.is-test-fail{border-color:#b84a5a!important;background:rgba(184,54,75,.18)!important;color:#ff9aa8!important;box-shadow:0 0 0 1px rgba(184,74,90,.12),0 0 20px rgba(184,74,90,.1)}
.vxLogTestHint{margin-top:9px;padding:8px 10px;border-radius:10px;border:1px solid #2e394f;background:#121a28;color:#8290a7;font-size:11px;line-height:1.45}
.vxLogTestHint.is-ok{border-color:rgba(44,168,115,.35);background:rgba(34,166,111,.09);color:#8ae2b9}
.vxLogTestHint.is-fail{border-color:rgba(184,74,90,.38);background:rgba(184,54,75,.08);color:#ff9ca8}
#vx-log-save-status.is-ok{color:#78dfad}#vx-log-save-status.is-fail{color:#ff91a0}
#vx-modal-cancel[hidden]{display:none!important}

/* DayZ ticket coordinates */
.vxTicketGamePosition{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid rgba(68,126,255,.34);border-radius:12px;background:linear-gradient(135deg,rgba(31,75,145,.18),rgba(100,58,180,.14));}
.vxTicketGamePosition__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:rgba(50,111,255,.2);color:#7fb4ff;font-size:20px;flex:0 0 auto;}
.vxTicketGamePosition>div{display:grid;gap:2px;min-width:0;flex:1;}
.vxTicketGamePosition b{font-size:12px;color:#dce8ff;}
.vxTicketGamePosition span{font-size:11px;color:#8fa5c9;}
.vxTicketGamePosition__map{white-space:nowrap;}
@media(max-width:720px){.vxTicketGamePosition{align-items:flex-start;flex-wrap:wrap}.vxTicketGamePosition__map{width:100%}}
.vxSupportRestrictionState{display:flex;flex-direction:column;gap:4px;margin:14px 0;padding:12px 14px;border:1px solid rgba(255,92,92,.35);border-radius:12px;background:rgba(255,70,70,.08)}
.vxSupportRestrictionState b{color:#ff8c8c}.vxSupportRestrictionState span,.vxSupportRestrictionState small{opacity:.8}
.vxRestrictionRights{display:grid;gap:10px}.vxRestrictionRights>p{margin:0 0 6px;opacity:.75}.vxRestrictionRights label{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid rgba(255,255,255,.1);border-radius:12px}.vxRestrictionRights label span{display:flex;flex-direction:column;gap:3px}.vxRestrictionRights small{opacity:.65}

/* 2026-07-26 safe visual hotfix: centered locks and visible denied permissions */
.vxAccessDot.lock::before{
  width:8px!important;
  height:7px!important;
  left:50%!important;
  top:52%!important;
  transform:translate(-50%,-5%)!important;
}
.vxAccessDot.lock::after{
  width:8px!important;
  height:6px!important;
  left:50%!important;
  top:48%!important;
  transform:translate(-50%,-100%)!important;
}
.vxAccessCheck:not(:checked):not(:disabled){
  border-color:#8a4550!important;
  background:
    linear-gradient(45deg,transparent 43%,#ff8c99 44% 56%,transparent 57%),
    linear-gradient(-45deg,transparent 43%,#ff8c99 44% 56%,transparent 57%),
    rgba(198,54,75,.08)!important;
  background-size:10px 10px,10px 10px,auto!important;
  background-position:center,center,center!important;
  background-repeat:no-repeat!important;
}
.vxAccessCheck:disabled::before{
  width:8px!important;
  height:7px!important;
  left:50%!important;
  top:52%!important;
  transform:translate(-50%,-5%)!important;
}
.vxAccessCheck:disabled::after{
  width:8px!important;
  height:6px!important;
  left:50%!important;
  top:48%!important;
  transform:translate(-50%,-100%)!important;
}
