/**
 * Echoholics Performances — styles.
 *
 * Hardcoded hex, dark by default with light as an explicit override —
 * matching the other Echoholics plugins. CSS custom properties break
 * under the theme toggle for add-on plugins.
 */

.ech-perf-follow, .ech-perf-followers {
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}
.ech-perf-follow *, .ech-perf-followers * { box-sizing: border-box; }
.ech-perf-follow button {
  all: unset !important; box-sizing: border-box !important; cursor: pointer !important;
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif !important;
}
.ech-perf-follow .ech-perf-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 100% !important; font-size: 14px !important; font-weight: 600 !important;
  padding: 13px 24px !important; border-radius: 6px !important;
  border-width: 1px !important; border-style: solid !important; line-height: 1.2 !important;
}
.ech-perf-follow .ech-perf-btn:disabled { opacity: 0.55 !important; cursor: not-allowed !important; }

.ech-perf-follow { border-radius: 10px; border-width: 1px; border-style: solid; padding: 22px; max-width: 460px; }
.ech-perf-follow.is-compact { padding: 16px; }
.ech-perf-follow-title { font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 17px; margin: 0 0 6px; }
.ech-perf-follow-note { font-size: 12.5px; line-height: 1.55; margin: 0 0 16px; }
.ech-perf-fields { display: flex; flex-direction: column; gap: 9px; margin-bottom: 14px; }
.ech-perf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.ech-perf-input {
  border-radius: 6px !important; padding: 11px 13px !important; font-size: 14px !important;
  border-width: 1px !important; border-style: solid !important; width: 100% !important;
  box-shadow: none !important; line-height: 1.4 !important;
}
.ech-perf-check { display: flex; align-items: flex-start; gap: 8px; font-size: 12.5px; line-height: 1.5; cursor: pointer; margin-top: 2px; }
.ech-perf-check input { margin-top: 2px; flex-shrink: 0; }
.ech-perf-error { border-radius: 6px; padding: 10px 13px; font-size: 12.5px; margin-bottom: 12px; }
.ech-perf-following { border-radius: 8px; padding: 16px; font-size: 13.5px; line-height: 1.55; text-align: center; }

.ech-perf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin-bottom: 14px; }
.ech-perf-stat { border-radius: 10px; border-width: 1px; border-style: solid; padding: 18px; text-align: center; }
.ech-perf-stat-num { display: block; font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 27px; line-height: 1.1; }
.ech-perf-stat-label {
  display: block; margin-top: 5px;
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 9.5px; letter-spacing: 0.09em; text-transform: uppercase;
}
.ech-perf-note { font-size: 12px; line-height: 1.55; margin: 0 0 18px; }
.ech-perf-sub { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 10px; }
.ech-perf-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.ech-perf-person { display: flex; justify-content: space-between; gap: 12px; padding: 10px 13px; border-radius: 6px; font-size: 13px; }
.ech-perf-person-date { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10.5px; flex-shrink: 0; }
.ech-perf-empty { border-radius: 10px; border-width: 1px; border-style: solid; padding: 26px; text-align: center; font-size: 13.5px; line-height: 1.55; }

@media (max-width: 480px) { .ech-perf-row { grid-template-columns: 1fr; } }

/* Dark — the default */
html:not(.psk-theme-light) .ech-perf-follow,
html:not(.psk-theme-light) .ech-perf-stat,
html:not(.psk-theme-light) .ech-perf-empty { background: #161616; border-color: #2A2A2A; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-follow-title { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-follow-note, html:not(.psk-theme-light) .ech-perf-note { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-input { background: #1E1E1E !important; border-color: #3A3A3A !important; color: #E3E3E3 !important; }
html:not(.psk-theme-light) .ech-perf-input::placeholder { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-input:focus { border-color: #4B9BD5 !important; outline: 2px solid #4B9BD5; outline-offset: 2px; }
html:not(.psk-theme-light) .ech-perf-check { color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-btn { background: #33769F !important; border-color: transparent !important; color: #FFFFFF !important; }
html:not(.psk-theme-light) .ech-perf-btn:hover { background: #3A86B7 !important; }
html:not(.psk-theme-light) .ech-perf-error { background: rgba(248,113,113,0.12); color: #F87171; }
html:not(.psk-theme-light) .ech-perf-following { background: #12202B; color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-stat-num { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-stat-label { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-sub { color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-person { background: #161616; color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-person-date { color: #6B6B6B; }

/* Light — explicit override */
html.psk-theme-light .ech-perf-follow,
html.psk-theme-light .ech-perf-stat,
html.psk-theme-light .ech-perf-empty { background: #FFFFFF; border-color: #E3E3E3; color: #4A4A4A; }
html.psk-theme-light .ech-perf-follow-title { color: #0E0E0E; }
html.psk-theme-light .ech-perf-follow-note, html.psk-theme-light .ech-perf-note { color: #6B6B6B; }
html.psk-theme-light .ech-perf-input { background: #F7F7F5 !important; border-color: #D1D1CE !important; color: #0E0E0E !important; }
html.psk-theme-light .ech-perf-input:focus { border-color: #33769F !important; outline: 2px solid #33769F; outline-offset: 2px; }
html.psk-theme-light .ech-perf-check { color: #4A4A4A; }
html.psk-theme-light .ech-perf-btn { background: #33769F !important; border-color: transparent !important; color: #FFFFFF !important; }
html.psk-theme-light .ech-perf-error { background: rgba(220,38,38,0.08); color: #DC2626; }
html.psk-theme-light .ech-perf-following { background: #EAF2F8; color: #33769F; }
html.psk-theme-light .ech-perf-stat-num { color: #0E0E0E; }
html.psk-theme-light .ech-perf-stat-label { color: #6B6B6B; }
html.psk-theme-light .ech-perf-sub { color: #33769F; }
html.psk-theme-light .ech-perf-person { background: #F7F7F5; color: #0E0E0E; }
html.psk-theme-light .ech-perf-person-date { color: #6B6B6B; }

/* ---------- Dashboard management ---------- */
.ech-perf-manage, .ech-perf-mine {
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}
.ech-perf-manage *, .ech-perf-mine * { box-sizing: border-box; }
.ech-perf-manage button, .ech-perf-mine button {
  all: unset !important; box-sizing: border-box !important; cursor: pointer !important;
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif !important;
}
.ech-perf-manage .ech-perf-btn, .ech-perf-mine .ech-perf-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  font-size: 13px !important; font-weight: 600 !important; padding: 10px 18px !important;
  border-radius: 6px !important; border-width: 1px !important; border-style: solid !important;
  line-height: 1.2 !important; text-decoration: none !important;
}
.ech-perf-manage .ech-perf-btn:disabled { opacity: 0.5 !important; cursor: not-allowed !important; }
.ech-perf-full { width: 100% !important; margin-top: 10px !important; }

.ech-perf-manage-list { display: flex; flex-direction: column; gap: 8px; }
.ech-perf-manage-list.is-past { opacity: 0.62; }
.ech-perf-item { border-radius: 10px; border-width: 1px; border-style: solid; overflow: hidden; }
/* Scoped to .ech-perf-manage so this is 0-2-0 and outranks the
   `all: unset !important` reset at 0-1-1. Unscoped at 0-1-0 it loses,
   and the whole grid collapses to inline flow. */
.ech-perf-manage .ech-perf-summary {
  display: grid !important; width: 100% !important; align-items: center !important;
  grid-template-columns: 22px 116px minmax(180px, 2fr) 90px 130px !important;
  gap: 16px !important; padding: 15px 18px !important; text-align: left !important;
  box-sizing: border-box !important;
}
.ech-perf-manage .ech-perf-summary > * { min-width: 0 !important; }
.ech-perf-manage .ech-perf-chevron { display: flex !important; align-items: center !important; justify-content: center !important; }
.ech-perf-chevron svg { width: 15px; height: 15px; transition: transform 0.15s ease; }
.ech-perf-item.is-open .ech-perf-chevron svg { transform: rotate(90deg); }
.ech-perf-manage .ech-perf-when,
.ech-perf-manage .ech-perf-identity {
  display: flex !important; flex-direction: column !important; gap: 3px !important; min-width: 0 !important;
}
.ech-perf-manage .ech-perf-date { font-size: 13.5px !important; font-weight: 600 !important; }
.ech-perf-manage .ech-perf-time,
.ech-perf-manage .ech-perf-venue {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace !important; font-size: 10.5px !important;
}
.ech-perf-manage .ech-perf-name {
  font-size: 14px !important; font-weight: 600 !important;
  overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important;
}
.ech-perf-manage .ech-perf-venue {
  overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important;
}
.ech-perf-manage .ech-perf-capacity {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace !important;
  font-size: 12px !important; text-align: right !important;
}
.ech-perf-manage .ech-perf-badge-cell { display: flex !important; justify-content: flex-end !important; }
.ech-perf-badge {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace !important;
  font-size: 9.5px !important; letter-spacing: 0.07em !important; text-transform: uppercase !important;
  padding: 4px 10px !important; border-radius: 999px !important; white-space: nowrap !important;
  display: inline-block !important;
}
.ech-perf-detail { padding: 4px 16px 18px; border-top-width: 1px; border-top-style: solid; }
.ech-perf-detail-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; padding-top: 16px; }
.ech-perf-h4 {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 10px;
}
.ech-perf-message { width: 100% !important; margin-bottom: 10px !important; resize: vertical !important; min-height: 68px !important; }
.ech-perf-test-row { display: flex; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.ech-perf-test-row .ech-perf-input { flex: 1; min-width: 150px; }
.ech-perf-status-msg { font-size: 12px; margin: 10px 0 0; min-height: 1em; }
.ech-perf-sent-note { font-size: 12px; line-height: 1.55; padding: 9px 12px; border-radius: 6px; margin: 0 0 10px; }
.ech-perf-meta { list-style: none; margin: 0; padding: 0; }
.ech-perf-meta li { display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; padding: 6px 0; border-top-width: 1px; border-top-style: solid; }
.ech-perf-meta li:first-child { border-top: none; }
.ech-perf-meta li span { flex-shrink: 0; }

.ech-perf-mine { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.ech-perf-card { border-radius: 10px; border-width: 1px; border-style: solid; padding: 18px; }
.ech-perf-card.is-past { opacity: 0.6; }
.ech-perf-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.ech-perf-card-date { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 11px; }
.ech-perf-card-title { font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 16px; margin: 0 0 12px; line-height: 1.3; }

@media (max-width: 1100px) {
  .ech-perf-manage .ech-perf-summary {
    grid-template-columns: 22px 110px minmax(150px, 2fr) 78px 120px !important;
    gap: 12px !important;
  }
}
@media (max-width: 900px) {
  .ech-perf-detail-grid { grid-template-columns: 1fr; gap: 18px; }
  .ech-perf-manage .ech-perf-summary {
    grid-template-columns: 22px minmax(0, 1fr) auto !important;
    gap: 12px !important; row-gap: 6px !important;
  }
  .ech-perf-manage .ech-perf-when {
    grid-column: 2 !important; flex-direction: row !important; align-items: baseline !important; gap: 8px !important;
  }
  .ech-perf-manage .ech-perf-identity { grid-column: 2 !important; }
  .ech-perf-manage .ech-perf-capacity { display: none !important; }
}

html:not(.psk-theme-light) .ech-perf-item { background: #161616; border-color: #2A2A2A; }
html:not(.psk-theme-light) .ech-perf-item.is-open { border-color: #3A3A3A; }
html:not(.psk-theme-light) .ech-perf-summary:hover { background: #1A1A1A !important; }
html:not(.psk-theme-light) .ech-perf-chevron svg { stroke: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-date, html:not(.psk-theme-light) .ech-perf-name { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-time, html:not(.psk-theme-light) .ech-perf-venue { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-capacity { color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-detail { border-top-color: #2A2A2A; }
html:not(.psk-theme-light) .ech-perf-h4 { color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-meta li { border-top-color: #2A2A2A; color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-meta li span { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-sent-note { background: rgba(245,185,59,0.08); color: #F5B93B; }
html:not(.psk-theme-light) .ech-perf-status-msg { color: #4ADE80; }
html:not(.psk-theme-light) .ech-perf-status-msg.is-error { color: #F87171; }
html:not(.psk-theme-light) .ech-perf-btn.is-secondary { background: #1E1E1E !important; border-color: #3A3A3A !important; color: #E3E3E3 !important; }
html:not(.psk-theme-light) .ech-perf-card { background: #161616; border-color: #2A2A2A; }
html:not(.psk-theme-light) .ech-perf-card-title { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-card-date { color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-status-announced { background: rgba(75,155,213,0.14); color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-status-on-sale { background: rgba(74,222,128,0.14); color: #4ADE80; }
html:not(.psk-theme-light) .ech-perf-status-sold-out { background: rgba(245,185,59,0.14); color: #F5B93B; }
html:not(.psk-theme-light) .ech-perf-status-postponed { background: #1E1E1E; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-status-cancelled { background: rgba(248,113,113,0.14); color: #F87171; }

html.psk-theme-light .ech-perf-item { background: #FFFFFF; border-color: #E3E3E3; }
html.psk-theme-light .ech-perf-summary:hover { background: #FAFAF8 !important; }
html.psk-theme-light .ech-perf-chevron svg { stroke: #6B6B6B; }
html.psk-theme-light .ech-perf-date, html.psk-theme-light .ech-perf-name { color: #0E0E0E; }
html.psk-theme-light .ech-perf-time, html.psk-theme-light .ech-perf-venue { color: #6B6B6B; }
html.psk-theme-light .ech-perf-capacity { color: #33769F; }
html.psk-theme-light .ech-perf-detail { border-top-color: #E3E3E3; }
html.psk-theme-light .ech-perf-h4 { color: #33769F; }
html.psk-theme-light .ech-perf-meta li { border-top-color: #E3E3E3; color: #0E0E0E; }
html.psk-theme-light .ech-perf-meta li span { color: #6B6B6B; }
html.psk-theme-light .ech-perf-sent-note { background: rgba(217,119,6,0.07); color: #B45309; }
html.psk-theme-light .ech-perf-status-msg { color: #16A34A; }
html.psk-theme-light .ech-perf-status-msg.is-error { color: #DC2626; }
html.psk-theme-light .ech-perf-btn.is-secondary { background: #F7F7F5 !important; border-color: #D1D1CE !important; color: #0E0E0E !important; }
html.psk-theme-light .ech-perf-card { background: #FFFFFF; border-color: #E3E3E3; }
html.psk-theme-light .ech-perf-card-title { color: #0E0E0E; }
html.psk-theme-light .ech-perf-card-date { color: #33769F; }
html.psk-theme-light .ech-perf-status-announced { background: #EAF2F8; color: #33769F; }
html.psk-theme-light .ech-perf-status-on-sale { background: rgba(22,163,74,0.10); color: #16A34A; }
html.psk-theme-light .ech-perf-status-sold-out { background: rgba(217,119,6,0.10); color: #B45309; }
html.psk-theme-light .ech-perf-status-postponed { background: #F0F0EE; color: #6B6B6B; }
html.psk-theme-light .ech-perf-status-cancelled { background: rgba(220,38,38,0.10); color: #DC2626; }

/* ---------- Checkout ---------- */
.ech-perf-checkout, .ech-perf-confirm {
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}
.ech-perf-checkout *, .ech-perf-confirm * { box-sizing: border-box; }
.ech-perf-checkout button {
  all: unset !important; box-sizing: border-box !important; cursor: pointer !important;
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif !important;
}
.ech-perf-checkout .ech-perf-btn, .ech-perf-checkout a.ech-perf-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 100% !important; font-size: 14px !important; font-weight: 600 !important;
  padding: 13px 24px !important; border-radius: 6px !important; line-height: 1.2 !important;
  border-width: 1px !important; border-style: solid !important; text-decoration: none !important;
}
.ech-perf-checkout .ech-perf-btn:disabled { opacity: 0.55 !important; cursor: not-allowed !important; }
.ech-perf-checkout .ech-perf-text-btn {
  display: inline-block !important; font-size: 12.5px !important;
  text-decoration: underline !important; padding: 6px 0 !important;
}

.ech-perf-checkout { border-radius: 10px; border-width: 1px; border-style: solid; padding: 22px; max-width: 460px; }
.ech-perf-scarce { font-size: 12.5px; font-weight: 600; margin: 0 0 14px; }
.ech-perf-account-prompt { border-radius: 8px; padding: 16px; margin-bottom: 18px; border-width: 1px; border-style: solid; }
.ech-perf-account-prompt strong { display: block; font-size: 13.5px; margin-bottom: 5px; }
.ech-perf-account-prompt p { font-size: 12.5px; line-height: 1.55; margin: 0 0 12px; }
.ech-perf-prompt-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.ech-perf-checkout .ech-perf-prompt-pair .ech-perf-btn { width: 100% !important; padding: 12px 14px !important; font-size: 13.5px !important; }
.ech-perf-checkout .ech-perf-guest {
  width: 100% !important; padding: 11px 14px !important; font-size: 13px !important; font-weight: 500 !important;
}
@media (max-width: 380px) {
  .ech-perf-prompt-pair { grid-template-columns: 1fr; }
}
.ech-perf-qty-row { margin-bottom: 14px; }
.ech-perf-label { display: block; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 6px; }
.ech-perf-total { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0; margin-bottom: 14px; border-top-width: 1px; border-bottom-width: 1px; border-top-style: solid; border-bottom-style: solid; }
.ech-perf-total strong { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 20px; }
.ech-perf-card-element { margin-bottom: 14px; padding: 14px; border-radius: 8px; border-width: 1px; border-style: solid; }
.ech-perf-hint { font-size: 11.5px; line-height: 1.55; margin: 8px 0 0; }
.ech-perf-secure { text-align: center; }
.ech-perf-free, .ech-perf-closed { border-radius: 8px; padding: 16px; text-align: center; font-size: 14px; font-weight: 600; }

.ech-perf-confirm { border-radius: 10px; border-width: 1px; border-style: solid; padding: 34px 26px; text-align: center; max-width: 460px; margin: 0 auto; }
.ech-perf-confirm-mark { width: 48px; height: 48px; border-radius: 999px; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center; }
.ech-perf-confirm-mark svg { width: 24px; height: 24px; stroke: currentColor; }
.ech-perf-confirm-title { font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 23px; margin: 0 0 6px; }
.ech-perf-confirm-sub { font-size: 13.5px; margin: 0 0 18px; }
.ech-perf-ticket-numbers { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.ech-perf-ticket-number {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 16px; letter-spacing: 0.1em; padding: 12px; border-radius: 8px;
  border-width: 1px; border-style: solid;
}
.ech-perf-ticket-number.is-used { opacity: 0.45; text-decoration: line-through; }
.ech-perf-warning { border-radius: 6px; padding: 12px 14px; font-size: 12.5px; margin-top: 12px; }
.ech-perf-warning code { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 11px; word-break: break-all; }

html:not(.psk-theme-light) .ech-perf-checkout,
html:not(.psk-theme-light) .ech-perf-confirm { background: #161616; border-color: #2A2A2A; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-scarce { color: #F5B93B; }
html:not(.psk-theme-light) .ech-perf-account-prompt { background: #12202B; border-color: rgba(75,155,213,0.28); }
html:not(.psk-theme-light) .ech-perf-account-prompt strong { color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-account-prompt p { color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-text-btn { color: #6B6B6B !important; }
html:not(.psk-theme-light) .ech-perf-btn.is-ghost {
  background: transparent !important; border-color: #3A3A3A !important; color: #9A9A9A !important;
}
html:not(.psk-theme-light) .ech-perf-btn.is-ghost:hover { border-color: #4B9BD5 !important; color: #83BDE7 !important; }
html:not(.psk-theme-light) .ech-perf-label { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-total { border-color: #2A2A2A; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-total strong { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-card-element { background: #1E1E1E; border-color: #3A3A3A; }
html:not(.psk-theme-light) .ech-perf-hint { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-free { background: rgba(74,222,128,0.12); color: #4ADE80; }
html:not(.psk-theme-light) .ech-perf-closed { background: #1E1E1E; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-confirm-mark { background: rgba(74,222,128,0.12); color: #4ADE80; }
html:not(.psk-theme-light) .ech-perf-confirm-title, html:not(.psk-theme-light) .ech-perf-confirm-sub { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-ticket-number { background: #12202B; border-color: rgba(131,189,231,0.3); color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-warning { background: rgba(245,185,59,0.1); color: #F5B93B; }

html.psk-theme-light .ech-perf-checkout,
html.psk-theme-light .ech-perf-confirm { background: #FFFFFF; border-color: #E3E3E3; color: #4A4A4A; }
html.psk-theme-light .ech-perf-scarce { color: #B45309; }
html.psk-theme-light .ech-perf-account-prompt { background: #EAF2F8; border-color: rgba(51,118,159,0.25); }
html.psk-theme-light .ech-perf-account-prompt strong { color: #33769F; }
html.psk-theme-light .ech-perf-text-btn { color: #6B6B6B !important; }
html.psk-theme-light .ech-perf-btn.is-ghost {
  background: transparent !important; border-color: #D1D1CE !important; color: #4A4A4A !important;
}
html.psk-theme-light .ech-perf-btn.is-ghost:hover { border-color: #33769F !important; color: #33769F !important; }
html.psk-theme-light .ech-perf-label { color: #6B6B6B; }
html.psk-theme-light .ech-perf-total { border-color: #E3E3E3; }
html.psk-theme-light .ech-perf-total strong { color: #0E0E0E; }
html.psk-theme-light .ech-perf-card-element { background: #F7F7F5; border-color: #D1D1CE; }
html.psk-theme-light .ech-perf-hint { color: #6B6B6B; }
html.psk-theme-light .ech-perf-free { background: rgba(22,163,74,0.1); color: #16A34A; }
html.psk-theme-light .ech-perf-closed { background: #F0F0EE; color: #4A4A4A; }
html.psk-theme-light .ech-perf-confirm-mark { background: rgba(22,163,74,0.1); color: #16A34A; }
html.psk-theme-light .ech-perf-confirm-title, html.psk-theme-light .ech-perf-confirm-sub { color: #0E0E0E; }
html.psk-theme-light .ech-perf-ticket-number { background: #EAF2F8; border-color: rgba(51,118,159,0.25); color: #33769F; }
html.psk-theme-light .ech-perf-warning { background: rgba(217,119,6,0.08); color: #B45309; }

/* ---------- Door check-in ---------- */
.ech-perf-door { font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; max-width: 480px; margin: 0 auto; }
.ech-perf-door * { box-sizing: border-box; }
.ech-perf-door button {
  all: unset !important; box-sizing: border-box !important; cursor: pointer !important;
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif !important;
}
.ech-perf-door .ech-perf-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  font-size: 15px !important; font-weight: 600 !important; padding: 16px 24px !important;
  border-radius: 8px !important; border-width: 1px !important; border-style: solid !important;
  line-height: 1.2 !important; white-space: nowrap !important;
}
.ech-perf-door .ech-perf-btn:disabled { opacity: 0.55 !important; }

.ech-perf-door-picker { margin-bottom: 14px !important; }
.ech-perf-door-head { text-align: center; margin-bottom: 16px; }
.ech-perf-door-title { font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 19px; margin: 0 0 3px; }
.ech-perf-door-sub { font-size: 12.5px; margin: 0; }
.ech-perf-door-counts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 18px; }
.ech-perf-door-count { border-radius: 10px; border-width: 1px; border-style: solid; padding: 14px 8px; text-align: center; }
.ech-perf-door-num { display: block; font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 25px; line-height: 1.1; }
.ech-perf-door-label {
  display: block; margin-top: 3px;
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 8.5px; letter-spacing: 0.09em; text-transform: uppercase;
}
.ech-perf-door-entry { display: flex; gap: 8px; margin-bottom: 14px; }
.ech-perf-door-entry .ech-perf-input { flex: 1; min-width: 0; }
/* Deliberately large: this gets typed one-handed in the dark. */
.ech-perf-door-input {
  flex: 1 !important; min-width: 0 !important;
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace !important;
  font-size: 19px !important; letter-spacing: 0.08em !important; text-align: center !important;
  padding: 16px 12px !important; border-radius: 8px !important;
  border-width: 1px !important; border-style: solid !important;
  text-transform: uppercase !important; box-shadow: none !important; width: 100% !important;
}
.ech-perf-door-verdict { border-radius: 10px; padding: 18px; margin-bottom: 16px; text-align: center; }
.ech-perf-door-verdict strong { display: block; font-size: 19px; margin-bottom: 4px; }
.ech-perf-door-verdict span { display: block; font-size: 13px; line-height: 1.5; }
.ech-perf-door-search { margin-bottom: 18px; }
.ech-perf-door-search summary { font-size: 12.5px; cursor: pointer; padding: 8px 0; }
.ech-perf-door-result { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 13px; border-radius: 8px; margin-bottom: 6px; }
.ech-perf-door-result strong { display: block; font-size: 13.5px; }
.ech-perf-door-result span { display: block; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10.5px; }
.ech-perf-door-result.is-used { opacity: 0.5; }
.ech-perf-door-result .ech-perf-btn { padding: 9px 16px !important; font-size: 12.5px !important; }
.ech-perf-door-log { display: flex; flex-direction: column; gap: 5px; }
.ech-perf-door-entry-row { display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; padding: 8px 12px; border-radius: 6px; }
.ech-perf-door-entry-row.is-new { animation: ech-perf-flash 1.2s ease-out; }
@keyframes ech-perf-flash { from { background: rgba(74,222,128,0.22); } }

html:not(.psk-theme-light) .ech-perf-door-title { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-door-sub { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-door-count { background: #161616; border-color: #2A2A2A; }
html:not(.psk-theme-light) .ech-perf-door-num { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-door-label { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-door-input { background: #1E1E1E !important; border-color: #3A3A3A !important; color: #E3E3E3 !important; }
html:not(.psk-theme-light) .ech-perf-door-input:focus { border-color: #4B9BD5 !important; outline: 2px solid #4B9BD5; outline-offset: 2px; }
html:not(.psk-theme-light) .ech-perf-door-verdict.is-ok { background: rgba(74,222,128,0.15); color: #4ADE80; }
html:not(.psk-theme-light) .ech-perf-door-verdict.is-used { background: rgba(245,185,59,0.15); color: #F5B93B; }
html:not(.psk-theme-light) .ech-perf-door-verdict.is-wrong_show { background: rgba(245,185,59,0.15); color: #F5B93B; }
html:not(.psk-theme-light) .ech-perf-door-verdict.is-unknown,
html:not(.psk-theme-light) .ech-perf-door-verdict.is-unpaid,
html:not(.psk-theme-light) .ech-perf-door-verdict.is-error { background: rgba(248,113,113,0.15); color: #F87171; }
html:not(.psk-theme-light) .ech-perf-door-search summary { color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-door-result { background: #161616; }
html:not(.psk-theme-light) .ech-perf-door-result strong { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-door-result span { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-door-entry-row { background: #161616; color: #9A9A9A; }

html.psk-theme-light .ech-perf-door-title { color: #0E0E0E; }
html.psk-theme-light .ech-perf-door-sub { color: #6B6B6B; }
html.psk-theme-light .ech-perf-door-count { background: #FFFFFF; border-color: #E3E3E3; }
html.psk-theme-light .ech-perf-door-num { color: #0E0E0E; }
html.psk-theme-light .ech-perf-door-label { color: #6B6B6B; }
html.psk-theme-light .ech-perf-door-input { background: #F7F7F5 !important; border-color: #D1D1CE !important; color: #0E0E0E !important; }
html.psk-theme-light .ech-perf-door-verdict.is-ok { background: rgba(22,163,74,0.12); color: #16A34A; }
html.psk-theme-light .ech-perf-door-verdict.is-used,
html.psk-theme-light .ech-perf-door-verdict.is-wrong_show { background: rgba(217,119,6,0.12); color: #B45309; }
html.psk-theme-light .ech-perf-door-verdict.is-unknown,
html.psk-theme-light .ech-perf-door-verdict.is-unpaid,
html.psk-theme-light .ech-perf-door-verdict.is-error { background: rgba(220,38,38,0.10); color: #DC2626; }
html.psk-theme-light .ech-perf-door-search summary { color: #33769F; }
html.psk-theme-light .ech-perf-door-result, html.psk-theme-light .ech-perf-door-entry-row { background: #F7F7F5; color: #4A4A4A; }
html.psk-theme-light .ech-perf-door-result strong { color: #0E0E0E; }

.ech-perf-door-select { margin-bottom: 16px; }
.ech-perf-pin-row { display: flex; align-items: flex-start; gap: 8px; font-size: 12.5px; line-height: 1.5; cursor: pointer; margin-top: 10px; }
.ech-perf-pin-row input { margin-top: 2px; flex-shrink: 0; }
.ech-perf-door-select .ech-perf-hint { margin-top: 4px; }
.ech-perf-door-stale { border-radius: 8px; padding: 14px 16px; margin-bottom: 14px; text-align: center; }
.ech-perf-door-stale strong { display: block; font-size: 14px; margin-bottom: 3px; }
.ech-perf-door-stale span { display: block; font-size: 12.5px; line-height: 1.5; }
html:not(.psk-theme-light) .ech-perf-pin-row { color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-door-stale { background: rgba(248,113,113,0.14); color: #F87171; }
html.psk-theme-light .ech-perf-pin-row { color: #4A4A4A; }
html.psk-theme-light .ech-perf-door-stale { background: rgba(220,38,38,0.10); color: #DC2626; }

/* ---------- Public listing ---------- */
.ech-perf-listing { font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; }
.ech-perf-listing * { box-sizing: border-box; }
.ech-perf-listing-row {
  display: grid; grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: 18px; align-items: center; padding: 18px 20px;
  border-radius: 10px; border-width: 1px; border-style: solid;
  margin-bottom: 8px; text-decoration: none !important;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.ech-perf-listing-date { text-align: center; line-height: 1.1; }
.ech-perf-listing-month {
  display: block; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase;
}
.ech-perf-listing-day { display: block; font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 26px; margin: 2px 0; }
.ech-perf-listing-year { display: block; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 9.5px; }
.ech-perf-listing-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ech-perf-listing-title { font-size: 16px; font-weight: 600; line-height: 1.3; }
.ech-perf-listing-meta, .ech-perf-listing-lineup { font-size: 12.5px; line-height: 1.45; }
.ech-perf-listing-lineup { font-style: italic; }
.ech-perf-listing-action { flex-shrink: 0; }
.ech-perf-listing-cta {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.09em; text-transform: uppercase;
  padding: 8px 16px; border-radius: 999px; border-width: 1px; border-style: solid;
  white-space: nowrap; display: inline-block;
}
.ech-perf-listing.is-past .ech-perf-listing-row { opacity: 0.62; }

@media (max-width: 600px) {
  .ech-perf-listing-row { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; padding: 15px 16px; }
  .ech-perf-listing-action { grid-column: 2; margin-top: 4px; }
  .ech-perf-listing-day { font-size: 22px; }
}

html:not(.psk-theme-light) .ech-perf-listing-row { background: #161616; border-color: #2A2A2A; }
html:not(.psk-theme-light) .ech-perf-listing-row:hover { background: #1A1A1A; border-color: #3A3A3A; }
html:not(.psk-theme-light) .ech-perf-listing-month { color: #4B9BD5; }
html:not(.psk-theme-light) .ech-perf-listing-day { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-listing-year { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-listing-title { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-listing-meta { color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-listing-lineup { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-perf-listing-cta { border-color: #33769F; color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-listing-row:hover .ech-perf-listing-cta { background: #33769F; color: #FFFFFF; }
html:not(.psk-theme-light) .ech-perf-alert { background: rgba(248,113,113,0.12); border: 1px solid rgba(248,113,113,0.3); }
html:not(.psk-theme-light) .ech-perf-alert strong { color: #F87171; }
html:not(.psk-theme-light) .ech-perf-alert span { color: #9A9A9A; }

html.psk-theme-light .ech-perf-listing-row { background: #FFFFFF; border-color: #E3E3E3; }
html.psk-theme-light .ech-perf-listing-row:hover { background: #FAFAF8; border-color: #D1D1CE; }
html.psk-theme-light .ech-perf-listing-month { color: #33769F; }
html.psk-theme-light .ech-perf-listing-day, html.psk-theme-light .ech-perf-listing-title { color: #0E0E0E; }
html.psk-theme-light .ech-perf-listing-year, html.psk-theme-light .ech-perf-listing-lineup { color: #6B6B6B; }
html.psk-theme-light .ech-perf-listing-meta { color: #4A4A4A; }
html.psk-theme-light .ech-perf-listing-cta { border-color: #33769F; color: #33769F; }
html.psk-theme-light .ech-perf-listing-row:hover .ech-perf-listing-cta { background: #33769F; color: #FFFFFF; }
html.psk-theme-light .ech-perf-alert { background: rgba(220,38,38,0.07); border: 1px solid rgba(220,38,38,0.22); }
html.psk-theme-light .ech-perf-alert strong { color: #DC2626; }
html.psk-theme-light .ech-perf-alert span { color: #4A4A4A; }

.ech-perf-alert { border-radius: 8px; padding: 14px 16px; margin-bottom: 14px; }
.ech-perf-alert strong { display: block; font-size: 13.5px; margin-bottom: 3px; }
.ech-perf-alert span { display: block; font-size: 12.5px; line-height: 1.5; margin-bottom: 10px; }

/* ---------- Show editor ---------- */
.ech-perf-editor, .ech-perf-editor-list { font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; }
.ech-perf-editor *, .ech-perf-editor-list * { box-sizing: border-box; }
.ech-perf-editor button, .ech-perf-editor-list button {
  all: unset !important; box-sizing: border-box !important; cursor: pointer !important;
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif !important;
}
.ech-perf-editor .ech-perf-btn,
.ech-perf-editor-list .ech-perf-btn,
.ech-perf-editor-list a.ech-perf-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  font-size: 14px !important; font-weight: 600 !important; padding: 12px 22px !important;
  border-radius: 6px !important; border-width: 1px !important; border-style: solid !important;
  line-height: 1.2 !important; text-decoration: none !important;
}
.ech-perf-new-show { margin-bottom: 16px !important; }
.ech-perf-edit-rows { display: flex; flex-direction: column; gap: 7px; }
.ech-perf-edit-row {
  display: grid; grid-template-columns: 110px minmax(0, 1fr) auto;
  gap: 14px; align-items: center; padding: 13px 16px;
  border-radius: 8px; border-width: 1px; border-style: solid;
  text-decoration: none !important;
}
.ech-perf-edit-row.is-past { opacity: 0.55; }
.ech-perf-edit-date { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 11px; }
.ech-perf-edit-title { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ech-perf-back { display: inline-block; font-size: 12.5px; margin-bottom: 14px; text-decoration: none; }
.ech-perf-editor-section { margin-bottom: 22px; padding-bottom: 18px; border-bottom-width: 1px; border-bottom-style: solid; }
.ech-perf-editor-section:last-of-type { border-bottom: 0; }
.ech-perf-field-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.ech-perf-field { display: flex; flex-direction: column; }
.ech-perf-field .ech-perf-hint { margin-top: 4px; }
.ech-perf-creator-picks { display: flex; flex-wrap: wrap; gap: 7px; }
.ech-perf-creator-pick {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 13px; border-radius: 999px; font-size: 12.5px; cursor: pointer;
  border-width: 1px; border-style: solid;
}
.ech-perf-editor-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 6px; }

@media (max-width: 640px) {
  .ech-perf-edit-row { grid-template-columns: minmax(0, 1fr) auto; }
  .ech-perf-edit-date { grid-column: 1 / -1; }
}

html:not(.psk-theme-light) .ech-perf-edit-row { background: #161616; border-color: #2A2A2A; }
html:not(.psk-theme-light) .ech-perf-edit-row:hover { border-color: #4B9BD5; }
html:not(.psk-theme-light) .ech-perf-edit-date { color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-edit-title { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-perf-back { color: #83BDE7; }
html:not(.psk-theme-light) .ech-perf-editor-section { border-bottom-color: #2A2A2A; }
html:not(.psk-theme-light) .ech-perf-creator-pick { background: #1E1E1E; border-color: #3A3A3A; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-perf-creator-pick:has(input:checked) { background: #12202B; border-color: #4B9BD5; color: #83BDE7; }

html.psk-theme-light .ech-perf-edit-row { background: #FFFFFF; border-color: #E3E3E3; }
html.psk-theme-light .ech-perf-edit-row:hover { border-color: #33769F; }
html.psk-theme-light .ech-perf-edit-date { color: #33769F; }
html.psk-theme-light .ech-perf-edit-title { color: #0E0E0E; }
html.psk-theme-light .ech-perf-back { color: #33769F; }
html.psk-theme-light .ech-perf-editor-section { border-bottom-color: #E3E3E3; }
html.psk-theme-light .ech-perf-creator-pick { background: #F7F7F5; border-color: #D1D1CE; color: #4A4A4A; }
html.psk-theme-light .ech-perf-creator-pick:has(input:checked) { background: #EAF2F8; border-color: #33769F; color: #33769F; }
