body.csm-ticket-open { overflow: hidden; }
dialog.csm-ticket-dialog {
  box-sizing: border-box;
  width: min(520px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 40px);
  margin: auto;
  padding: 32px;
  overflow: auto;
  color: #f7f7f7;
  background: #101010;
  border: 1px solid #ffffff38;
  border-radius: 20px;
  box-shadow: 0 24px 90px #000b;
  text-align: left;
  font: 16px/1.5 Arial, sans-serif;
}
.csm-ticket-dialog::backdrop { background: #000c; }
.csm-ticket-dialog h2 { color: #fff; margin: 0 36px 16px 0; font: 700 28px/1.2 Arial, sans-serif; }
.csm-ticket-dialog .csm-ticket-close {
  position: absolute; right: 14px; top: 10px;
  width: 40px; height: 40px; padding: 0; border: 0;
  border-radius: 50%; color: #fff; background: transparent;
  font: 32px/1 Arial, sans-serif; cursor: pointer;
}
.csm-ticket-form { display: grid; gap: 16px; margin: 0; }
.csm-ticket-form p { margin: 0; }
.csm-ticket-form .csm-ticket-event { font-weight: 700; font-size: 18px; }
.csm-ticket-form > label { display: block; margin: 0; font-size: 14px; font-weight: 600; }
.csm-ticket-form input:not([type="checkbox"]):not([type="hidden"]) {
  display: block; box-sizing: border-box; width: 100%; margin: 6px 0 0;
  min-height: 44px; padding: 10px 12px; border: 1px solid #777;
  border-radius: 8px; background: #191919; color: #fff;
  font: 16px/1.4 Arial, sans-serif; box-shadow: none;
}
.csm-ticket-form .csm-ticket-consent { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.csm-ticket-consent input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #fff; }
.csm-ticket-form .csm-ticket-optional { color: #bbb; font-weight: 400; }
.csm-ticket-form .csm-ticket-privacy { font-size: 13px; color: #ddd; text-decoration: underline; }
.csm-ticket-form .csm-ticket-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.csm-ticket-form button[type="submit"], .csm-ticket-content > button {
  min-height: 46px; padding: 12px 18px; border: 1px solid #666; border-radius: 24px;
  background: linear-gradient(#292929, #070707); color: #fff;
  font: 700 15px/1.3 Arial, sans-serif; cursor: pointer; letter-spacing: .04em;
}
.csm-ticket-form button:disabled { opacity: .6; cursor: wait; }
.csm-ticket-form .csm-ticket-status:empty { display: none; }
.csm-ticket-status[role="alert"] { color: #ffbbbb; }
.csm-ticket-success { margin: 12px 0; line-height: 1.6; }
.csm-ticket-dialog :focus-visible, .csm-ticket-page :focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.csm-ticket-page { box-sizing: border-box; width: min(580px, 100%); margin: 40px auto; padding: 24px; color: #fff; background: #101010; }
.csm-ticket-page h1 { color: inherit; font-size: 30px; }
.csm-ticket-page > p { margin-top: 20px; }
@media (max-width: 480px) {
  dialog.csm-ticket-dialog { padding: 24px; }
  .csm-ticket-dialog h2 { font-size: 25px; }
}
