.cg-event{
  background:#000;
  color:#fff;
  border:1px solid #b30000;
  border-radius:12px;
  padding:24px;
  max-width:720px;
  margin:24px auto;
  box-shadow:0 12px 30px rgba(0,0,0,.6);
  font-family:inherit;
}

/* Widget wrapper - removes default margins for Elementor */
.cg-event-widget .cg-event {
  margin: 0;
  max-width: none;
}

.cg-event a{color:#ff2a2a !important;text-decoration:none;border-bottom:1px solid rgba(255,42,42,.5)}
.cg-event a:hover{color:#cc0000 !important;border-bottom-color:#ff2a2a}

.cg-event p{margin:0 0 14px}
.cg-event label{display:block;font-weight:600;margin-bottom:6px}

.cg-event input[type="text"],
.cg-event input[type="email"],
.cg-event input[type="number"]{
  width:100%;
  box-sizing:border-box;
  background:#0b0b0b;
  color:#fff;
  border:1px solid rgba(255,42,42,.55);
  border-radius:10px;
  padding:12px 14px;
  outline:none;
}

.cg-event input[type="text"]:focus,
.cg-event input[type="email"]:focus,
.cg-event input[type="number"]:focus{
  border-color:#ff2a2a;
  box-shadow:0 0 0 3px rgba(255,42,42,.2);
}

.cg-event button,
.cg-event input[type="submit"]{
  background:#ff2a2a;
  color:#000;
  border:0;
  border-radius:12px;
  padding:12px 16px;
  font-weight:800;
  letter-spacing:.5px;
  cursor:pointer;
}

.cg-event button:hover,
.cg-event input[type="submit"]:hover{
  filter:brightness(1.05);
}

.cg-event .cg-event-divider{height:1px;background:#b30000;opacity:.9;margin:16px 0}

.cg-event .cg-event-errors,
.cg-event .cg-event-result{
  border:1px solid rgba(255,193,7,.8);
  background:#fff3cd;
  color:#856404;
  border-radius:10px;
  padding:14px;
  margin-bottom:16px;
}

.cg-event .cg-event-errors p{margin:0 0 8px;color:#856404 !important}
.cg-event .cg-event-errors p:last-child{margin-bottom:0}

/* Ensure error text is always visible */
.cg-event .cg-event-errors,
.cg-event .cg-event-errors *{
  color:#856404 !important;
}

.cg-event .cg-event-qr{margin-top:14px}
.cg-event .cg-event-qr img{display:block;max-width:320px;width:100%;height:auto;border-radius:10px;border:1px solid rgba(255,42,42,.55)}

.cg-event pre{
  background:#050505;
  border:1px solid rgba(255,42,42,.55);
  color:#fff;
  border-radius:12px;
  padding:12px 14px;
  overflow:auto;
}

/* Status colors for ticket widget */
.cg-event-status-confirmed {
  color: #00ff00;
}

.cg-event-status-waitlist {
  color: #ffaa00;
}

.cg-event-status-cancelled {
  color: #ff0000;
}

.cg-event-status-used {
  color: #ff0000;
}

.cg-event-status-available {
  color: #00ff00;
}

/* QR Scanner Styles */
.cg-event-scanner-section {
  margin-bottom: 20px;
}

.cg-event-scanner-buttons {
  display: flex;
  gap: 10px;
  margin-bottom: 15px;
  flex-wrap: wrap;
}

.cg-event-scan-btn, .cg-event-manual-btn, .cg-event-stop-btn {
  background: #ff2a2a;
  color: #000;
  border: 0;
  border-radius: 12px;
  padding: 12px 20px;
  font-weight: 800;
  letter-spacing: 0.5px;
  cursor: pointer;
  font-size: 16px;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.cg-event-scan-btn:hover, .cg-event-manual-btn:hover, .cg-event-stop-btn:hover {
  background: #ff4444;
  transform: translateY(-1px);
}

.cg-event-scan-btn:active, .cg-event-manual-btn:active, .cg-event-stop-btn:active {
  transform: translateY(0);
}

.cg-event-manual-btn {
  background: #666;
  color: #fff;
}

.cg-event-manual-btn:hover {
  background: #888;
}

.cg-event-stop-btn {
  background: #dc3545;
  color: #fff;
  margin-top: 10px;
}

.cg-event-stop-btn:hover {
  background: #c82333;
}

#cg_event_camera_container {
  text-align: center;
  padding: 15px;
  background: #111;
  border-radius: 12px;
  border: 1px solid rgba(255,42,42,.55);
}

#cg_event_camera {
  border: 2px solid #ff2a2a;
  background: #000;
}

.cg-event-camera-controls {
  margin-top: 10px;
}

/* Base styles - High Contrast Override */
.cg-event {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #333 !important;
  max-width: none;
}

/* Override any theme inheritance that might cause white text */
.cg-event,
.cg-event p,
.cg-event h1,
.cg-event h2,
.cg-event h3,
.cg-event h4,
.cg-event h5,
.cg-event h6,
.cg-event span,
.cg-event div,
.cg-event strong,
.cg-event em {
  color: inherit !important;
}

/* Result Display Styles */
.cg-event-result-display {
  padding: 15px;
  border-radius: 12px;
  margin-top: 15px;
  font-size: 16px;
  line-height: 1.4;
  border: 2px solid transparent;
  min-height: 50px;
  display: block;
}

/* Ensure check-in verdict and details stack vertically (avoid theme flex overrides) */
.cg-event-result-display .cg-event-verdict,
.cg-event-result-display .cg-event-details {
  display: block !important;
  width: 100% !important;
}

.cg-event-result-success {
  background: #d4edda;
  color: #155724;
  border-color: #28a745;
}

.cg-event-result-error, .cg-event-result-invalid, .cg-event-result-used {
  background: #f8d7da;
  color: #721c24;
  border-color: #dc3545;
}

.cg-event-result-waitlist {
  background: #fff3cd;
  color: #856404;
  border-color: #ffc107;
}

.cg-event-result-info, .cg-event-result-loading {
  background: #d1ecf1;
  color: #0c5460;
  border-color: #17a2b8;
}

.cg-event-result-loading {
  animation: pulse 1.5s ease-in-out infinite alternate;
}

@keyframes pulse {
  from { opacity: 0.6; }
  to { opacity: 1; }
}

/* Mobile-first responsive design */
@media (max-width: 768px) {
  .cg-event {
    padding: 16px;
    margin: 16px auto;
  }
  
  .cg-event-widget .cg-event {
    margin: 0;
  }
  
  .cg-event-qr img {
    max-width: 250px;
  }
  
  .cg-event-scanner-buttons {
    flex-direction: column;
  }
  
  .cg-event-scan-btn, .cg-event-manual-btn, .cg-event-stop-btn {
    width: 100%;
    font-size: 18px;
    padding: 15px 20px;
    min-height: 56px;
  }
  
  #cg_event_camera {
    width: 100%;
    max-width: 100%;
    height: 250px;
  }
  
  .cg-event-result-display {
    font-size: 18px;
    padding: 20px;
  }
}

/* Large mobile screens */
@media (min-width: 769px) and (max-width: 1024px) {
  #cg_event_camera {
    max-width: 500px;
    height: 375px;
  }
}

/* Touch-friendly improvements */
@media (pointer: coarse) {
  .cg-event button {
    min-height: 48px;
    font-size: 16px;
  }
  
  .cg-event input[type="text"], .cg-event input[type="email"] {
    min-height: 48px;
    font-size: 16px;
  }
}

/* Tab Styles */
.cg-event-tabs {
  display: flex;
  margin-bottom: 20px;
  border-bottom: 2px solid #eee;
  gap: 0;
}

.cg-event-tab {
  background: #f5f5f5;
  color: #666;
  border: none;
  padding: 12px 20px;
  font-weight: 600;
  cursor: pointer;
  font-size: 14px;
  border-radius: 8px 8px 0 0;
  margin-right: 2px;
  transition: all 0.2s ease;
  border-bottom: 3px solid transparent;
}

.cg-event-tab:hover {
  background: #e9e9e9;
  color: #333;
}

.cg-event-tab.active {
  background: #fff;
  color: #ff2a2a;
  border-bottom: 3px solid #ff2a2a;
  font-weight: 700;
}

.cg-event-tab-content {
  display: none;
  padding: 20px 0;
}

.cg-event-tab-content.active {
  display: block;
}

/* DNI Input Styles */
#cg_event_dni {
  border: 2px solid #ddd;
  border-radius: 8px;
  padding: 12px;
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  letter-spacing: 1px;
  transition: border-color 0.2s ease;
}

#cg_event_dni:focus {
  border-color: #ff2a2a;
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 42, 42, 0.1);
}

/* DNI Result Styles */
#cg_event_dni_result {
  background: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 15px;
  margin-top: 15px;
}

#cg_event_dni_info {
  margin-bottom: 15px;
  line-height: 1.6;
}

/* DNI Buttons */
#cg_event_search_dni, #cg_event_confirm_dni {
  background: #ff2a2a;
  color: #000;
  border: 0;
  border-radius: 8px;
  padding: 12px 24px;
  font-weight: 700;
  cursor: pointer;
  font-size: 16px;
  min-height: 48px;
  transition: all 0.2s ease;
}

#cg_event_search_dni:hover, #cg_event_confirm_dni:hover {
  background: #ff4444;
  transform: translateY(-1px);
}

#cg_event_confirm_dni {
  background: #28a745;
  color: #fff;
  font-size: 18px;
  padding: 15px 30px;
}

#cg_event_confirm_dni:hover {
  background: #218838;
}

/* Verdict Styles - High Contrast */
.cg-event-verdict {
  text-align: center;
  padding: 20px;
  margin: 20px 0;
  border-radius: 12px;
  border: 3px solid;
}

.cg-event-verdict h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.cg-event-verdict-success {
  background: #d4edda !important;
  border-color: #28a745;
  color: #155724 !important;
}

.cg-event-verdict-success h2,
.cg-event-verdict-success p,
.cg-event-verdict-success strong,
.cg-event-verdict-success * {
  color: #155724 !important;
}

.cg-event-verdict-error {
  background: #f8d7da !important;
  border-color: #dc3545;
  color: #721c24 !important;
}

.cg-event-verdict-error h2,
.cg-event-verdict-error p,
.cg-event-verdict-error strong,
.cg-event-verdict-error * {
  color: #721c24 !important;
}

.cg-event-verdict-warning {
  background: #fff3cd !important;
  border-color: #ffc107;
  color: #856404 !important;
}

.cg-event-verdict-warning h2,
.cg-event-verdict-warning p,
.cg-event-verdict-warning strong,
.cg-event-verdict-warning * {
  color: #856404 !important;
}

/* Details Section - High Contrast */
.cg-event-details {
  background: #f8f9fa !important;
  padding: 15px;
  border-radius: 8px;
  margin: 15px 0;
  border-left: 4px solid #6c757d;
  color: #212529 !important;
}

.cg-event-details p,
.cg-event-details strong,
.cg-event-details * {
  margin: 8px 0;
  font-size: 16px;
  color: #212529 !important;
}

/* Confirm Button */
.cg-event-confirm-section {
  text-align: center;
  margin: 20px 0;
}

.cg-event-confirm-btn {
  background: #28a745;
  color: white;
  border: none;
  padding: 15px 30px;
  font-size: 18px;
  font-weight: 700;
  border-radius: 8px;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.2s ease;
  min-height: 60px;
}

.cg-event-confirm-btn:hover {
  background: #218838;
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

.cg-event-confirm-btn:active {
  transform: translateY(0);
}

/* DNI Check-in Styles */
.cg-event-dni-checkin {
  text-align: center;
  margin: 30px 0;
}

.cg-event-dni-checkin input {
  border: 3px solid #ddd;
  border-radius: 12px;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 2px;
  transition: border-color 0.2s ease;
}

.cg-event-dni-checkin input:focus {
  border-color: #ff2a2a;
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 42, 42, 0.1);
}

.cg-event-dni-checkin button {
  background: #ff2a2a;
  color: white;
  border: none;
  border-radius: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.cg-event-dni-checkin button:hover {
  background: #ff4444;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 42, 42, 0.3);
}

/* Registration Result Styles - High Contrast */
.cg-event-success {
  background: #d4edda !important;
  border: 2px solid #28a745;
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0;
  text-align: center;
  color: #155724 !important;
}

.cg-event-success h3,
.cg-event-success p,
.cg-event-success strong,
.cg-event-success em,
.cg-event-success span,
.cg-event-success div,
.cg-event-success * {
  color: #155724 !important;
  margin-top: 0;
}

/* Force text color in success messages - override any theme styles */
.cg-event-success,
.cg-event-success h1,
.cg-event-success h2,
.cg-event-success h3,
.cg-event-success h4,
.cg-event-success h5,
.cg-event-success h6,
.cg-event-success p,
.cg-event-success span,
.cg-event-success div,
.cg-event-success strong,
.cg-event-success em,
.cg-event-success small,
.cg-event-success * {
  color: #155724 !important;
  text-shadow: none !important;
}

.cg-event-waitlist {
  background: #fff3cd !important;
  border: 2px solid #ffc107;
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0;
  text-align: center;
  color: #856404 !important;
}

.cg-event-waitlist h3,
.cg-event-waitlist p,
.cg-event-waitlist strong,
.cg-event-waitlist * {
  color: #856404 !important;
  margin-top: 0;
}

.cg-event-existing {
  background: #d1ecf1 !important;
  border: 2px solid #17a2b8;
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0;
  text-align: center;
  color: #0c5460 !important;
}

.cg-event-existing h3,
.cg-event-existing p,
.cg-event-existing strong,
.cg-event-existing * {
  color: #0c5460 !important;
  margin-top: 0;
}

/* Error and Info Styles - High Contrast */
.cg-event-error {
  background: #f8d7da !important;
  border: 2px solid #dc3545;
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0;
  text-align: center;
  color: #721c24 !important;
}

.cg-event-error h3,
.cg-event-error p,
.cg-event-error strong,
.cg-event-error a,
.cg-event-error * {
  color: #721c24 !important;
}

.cg-event-error a {
  text-decoration: underline;
  border-bottom: 1px solid #721c24 !important;
}

.cg-event-info {
  background: #d1ecf1 !important;
  border: 2px solid #17a2b8;
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0;
  text-align: center;
  color: #0c5460 !important;
}

.cg-event-info h3,
.cg-event-info p,
.cg-event-info strong,
.cg-event-info * {
  color: #0c5460 !important;
}

/* Result Display - High Contrast */
.cg-event-result-display {
  color: #212529 !important;
}

.cg-event-result-display.cg-event-result-success {
  color: #155724 !important;
}

.cg-event-result-display.cg-event-result-error {
  color: #721c24 !important;
}

.cg-event-result-display.cg-event-result-warning {
  color: #856404 !important;
}

.cg-event-result-display.cg-event-result-info {
  color: #0c5460 !important;
}

/* Ticket View Styles */
.cg-event-ticket-lookup {
  text-align: center;
  padding: 30px;
}

.cg-event-ticket-lookup input {
  border: 2px solid #ddd;
  border-radius: 8px;
  padding: 15px;
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  letter-spacing: 1px;
  width: 100%;
  max-width: 300px;
}

.cg-event-ticket-lookup button {
  background: #007cba;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 15px 30px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  margin-top: 10px;
}

.cg-event-ticket-info {
  background: #f8f9fa !important;
  border-radius: 8px;
  padding: 20px;
  margin: 15px 0;
  color: #212529 !important;
}

.cg-event-ticket-info h3,
.cg-event-ticket-info p,
.cg-event-ticket-info strong,
.cg-event-ticket-info * {
  color: #212529 !important;
}

/* Checkbox styles */
.cg-event input[type="checkbox"] {
  margin-right: 8px;
  transform: scale(1.2);
}

.cg-event label input[type="checkbox"] {
  margin-right: 8px;
  vertical-align: middle;
}

/* Mobile optimizations */
@media (max-width: 768px) {
  .cg-event-dni-checkin input {
    font-size: 20px;
    padding: 18px;
    max-width: 280px;
  }
  
  .cg-event-dni-checkin button {
    width: 100%;
    max-width: 280px;
    font-size: 18px;
    padding: 18px;
  }
  
  .cg-event-verdict h2 {
    font-size: 20px;
  }
  
  .cg-event-confirm-btn {
    width: 100%;
    font-size: 20px;
    padding: 18px;
  }
}
