:root {
  --ctt-bg: #08080a;
  --ctt-panel: #151519;
  --ctt-line: #303038;
  --ctt-text: #f8f5ef;
  --ctt-muted: #a9a9b2;
  --ctt-accent: #d4ff3f;
  --ctt-danger: #ff5b63;
}

.ctt-event-selector,
.ctt-ticket-card,
.ctt-scanner {
  box-sizing: border-box;
  color: var(--ctt-text);
  background: var(--ctt-bg);
  border: 1px solid var(--ctt-line);
  border-radius: 20px;
  padding: clamp(20px, 4vw, 34px);
}

.ctt-event-selector__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--ctt-muted); text-transform: uppercase; letter-spacing: .08em; }
.ctt-event-selector__price { margin: 18px 0; color: var(--ctt-accent); font-size: clamp(25px, 5vw, 38px); font-weight: 800; }
.ctt-event-selector .quantity .qty { min-height: 50px; }
.ctt-event-selector button.single_add_to_cart_button,
.ctt-button { min-height: 50px; border: 0; border-radius: 999px; padding: 0 24px; background: var(--ctt-accent); color: #08080a; font-weight: 900; letter-spacing: .04em; cursor: pointer; }
.ctt-button:disabled { cursor: wait; opacity: .55; }
.ctt-button--muted { background: #29292f; color: var(--ctt-text); }

.ctt-ticket-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 18px; }
.ctt-ticket-card { display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 22px; align-items: center; overflow: hidden; }
.ctt-ticket-card--large { max-width: 760px; margin-inline: auto; grid-template-columns: minmax(0, 1fr) minmax(180px, 270px); }
.ctt-ticket-card h2 { margin: 0 0 8px; color: var(--ctt-text); font-size: clamp(24px, 5vw, 36px); }
.ctt-ticket-card p { margin: 6px 0; color: var(--ctt-muted); }
.ctt-ticket-card__type { color: var(--ctt-accent) !important; font-weight: 800; text-transform: uppercase; }
.ctt-eyebrow { color: var(--ctt-accent) !important; font-size: 12px; letter-spacing: .28em; }
.ctt-ticket-card__code { color: var(--ctt-text) !important; font: 800 18px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .1em; }
.ctt-ticket-card__qr img { display: block; width: 100%; height: auto; background: #fff; border-radius: 12px; padding: 8px; }
.ctt-status { display: inline-block; margin: 12px 0; padding: 7px 11px; border-radius: 999px; background: rgba(212,255,63,.14); color: var(--ctt-accent); font-weight: 900; font-size: 12px; letter-spacing: .08em; }
.ctt-ticket-card--used .ctt-status,
.ctt-ticket-card--cancelled .ctt-status,
.ctt-ticket-card--refunded .ctt-status { background: rgba(255,91,99,.13); color: var(--ctt-danger); }

.ctt-scanner { max-width: 620px; margin-inline: auto; }
.ctt-scanner__camera { overflow: hidden; border-radius: 16px; }
.ctt-scanner__camera video { border-radius: 16px; }
.ctt-scanner__actions,
.ctt-scanner__result-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.ctt-scanner__manual { margin-top: 24px; }
.ctt-scanner__manual label { display: block; margin-bottom: 7px; color: var(--ctt-muted); }
.ctt-scanner__manual > div { display: flex; gap: 8px; }
.ctt-scanner__manual input { width: 100%; min-width: 0; min-height: 50px; border: 1px solid var(--ctt-line); border-radius: 12px; background: #fff; color: #111; padding: 0 14px; }
.ctt-scanner__result { min-height: 24px; margin-top: 22px; }
.ctt-scanner__result--valid,
.ctt-scanner__result--invalid { padding: 22px; border-radius: 16px; background: var(--ctt-panel); }
.ctt-scanner__verdict { color: var(--ctt-accent); font-weight: 900; letter-spacing: .05em; }
.ctt-scanner__result--invalid .ctt-scanner__verdict { color: var(--ctt-danger); }
.ctt-scanner__result h2 { color: var(--ctt-text); margin: 8px 0; }

.ctt-notice { border-radius: 12px; padding: 16px 18px; background: #f1f1f1; color: #222; }
.ctt-notice--error { border-left: 4px solid #b32d2e; }
.ctt-notice--info { border-left: 4px solid #2271b1; }

.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { max-width: 1120px; margin-inline: auto; }
.wp-block-woocommerce-cart .wc-block-cart-items,
.wp-block-woocommerce-checkout .wc-block-components-sidebar,
.woocommerce-cart .cart_totals,
.woocommerce-checkout #order_review { border-radius: 16px; overflow: hidden; }
.wp-block-woocommerce-cart .wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-button,
.woocommerce-cart .checkout-button,
.woocommerce-checkout #place_order { min-height: 54px; border-radius: 999px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.wp-block-woocommerce-cart .wc-block-components-product-name,
.woocommerce-cart .product-name { font-weight: 800; }

@media (max-width: 600px) {
  .ctt-ticket-card,
  .ctt-ticket-card--large { grid-template-columns: 1fr; }
  .ctt-ticket-card__qr { max-width: 260px; }
  .ctt-scanner__manual > div { flex-direction: column; }
  .ctt-button { width: 100%; }
}
