.ticket-page {
  --ticket-ink: #192638;
  --ticket-muted: #59687b;
  --ticket-line: #dfe6eb;
  --ticket-teal: #06796f;
  --ticket-light: #e5f5f3;
  color: var(--ticket-ink);
  max-width: 1060px;
  padding-block: 42px 100px;
}
.ticket-page [hidden] { display: none !important; }
.ticket-hero { text-align: center; margin-bottom: 24px; }
.ticket-hero h1 { font-size: clamp(30px, 6vw, 44px); margin: 7px 0; line-height: 1.25; }
.ticket-hero p, .ticket-card p { color: var(--ticket-muted); line-height: 1.65; margin: 0 0 14px; }
.ticket-tabs {
  display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 5px;
  margin: 0 auto 18px; max-width: 440px; border-radius: 14px;
  background: #fff; border: 1px solid var(--ticket-line);
}
.ticket-tabs a {
  min-height: 42px; display: grid; place-items: center; padding: 4px;
  border-radius: 10px; color: var(--ticket-muted); font-weight: 700; text-decoration: none;
}
.ticket-tabs [aria-current="page"] { background: var(--ticket-light); color: var(--ticket-teal); }
.ticket-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.ticket-fields { min-width: 0; display: grid; gap: 16px; }
.ticket-card {
  min-width: 0; padding: 21px; border: 1px solid var(--ticket-line); border-radius: 17px;
  background: #fff; box-shadow: 0 7px 20px #18304008;
}
.ticket-card h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: 20px; }
.ticket-card h2 span { padding: 4px 7px; background: var(--ticket-light); border-radius: 7px; font-size: 13px; color: var(--ticket-teal); }
.ticket-card label { display: grid; min-width: 0; gap: 6px; margin-bottom: 14px; font-weight: 650; }
.ticket-card input, .ticket-card textarea, .ticket-card select {
  box-sizing: border-box; color: var(--ticket-ink); background: #f8fafb; font: inherit;
  font-size: 16px; font-weight: 400; border: 1px solid var(--ticket-line);
  border-radius: 10px; min-height: 44px; width: 100%; min-width: 0; padding: 9px 11px;
}
.ticket-card textarea { resize: vertical; }
.ticket-card input:focus, .ticket-card textarea:focus, .ticket-card select:focus { outline: 2px solid #6ac7bf; outline-offset: 1px; }
.ticket-card details { border-top: 1px solid var(--ticket-line); padding-top: 12px; }
.ticket-card summary { font-weight: 700; color: var(--ticket-teal); cursor: pointer; min-height: 36px; }
.ticket-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ticket-problem { grid-template-columns: minmax(0, 3fr) minmax(90px, 1fr); }
.ticket-card .ticket-upload { border: 1px dashed #abcac8; background: #f6fbfa; border-radius: 12px; margin-bottom: 0; padding: 12px; }
.ticket-upload small { color: var(--ticket-muted); font-weight: 400; }
.ticket-upload input { background: white; }
.ticket-card dl { margin: 8px 0 17px; }
.ticket-card dl div { display: grid; grid-template-columns: 6em minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid #edf1f3; }
.ticket-card dt { color: var(--ticket-muted); }
.ticket-card dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
.ticket-page .ticket-button {
  display: inline-flex; justify-content: center; align-items: center; min-height: 44px;
  padding: 8px 15px; border-radius: 10px; border: 1px solid transparent; text-decoration: none;
  color: var(--ticket-ink); font: inherit; font-weight: 700; cursor: pointer;
}
.ticket-page .ticket-primary { background: linear-gradient(105deg, #23b2a6, #67d8cd); color: #092e2c; }
.ticket-page .ticket-outline { background: #f0faf8; border-color: #b7e0dc; color: var(--ticket-teal); }
.ticket-page .ticket-button:disabled { opacity: .58; cursor: wait; }
.ticket-summary .ticket-button { width: 100%; }
.ticket-card .ticket-feedback { margin: 8px 0 0; overflow-wrap: anywhere; }
.ticket-feedback:empty { display: none; }
.ticket-card .ticket-error { color: #a72a2a; }
.ticket-query, .ticket-success { max-width: 760px; margin-inline: auto; }
.ticket-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.ticket-progress { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--ticket-line); }
.ticket-progress article { border-radius: 10px; background: #f4f8fa; margin-bottom: 10px; padding: 12px; }
.ticket-progress p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 4px 0 0; }
.ticket-progress form { margin-top: 16px; }
@media (max-width: 640px) {
  .ticket-page { padding-block: 25px 130px; }
  .ticket-grid, .ticket-pair:not(.ticket-problem) { grid-template-columns: minmax(0, 1fr); }
  .ticket-pair:not(.ticket-problem) { gap: 0; }
  .ticket-card { padding: 16px; }
  .ticket-card h2 { font-size: 18px; }
}
