/* ===== ETM Frontend Styles ===== */
.etm-booking-wrap { max-width:700px; margin:30px auto; font-family:'Segoe UI',sans-serif; }

/* Event Header */
.etm-event-header { display:flex; gap:20px; align-items:center; background:#fafafa; border:1px solid #e0e0e0; border-radius:12px; padding:20px; margin-bottom:25px; }
.etm-event-thumb img { width:120px; height:80px; object-fit:cover; border-radius:8px; }
.etm-event-info h2 { font-size:22px; margin:0 0 8px; color:#1a1a1a; }
.etm-event-info p  { margin:4px 0; color:#555; font-size:14px; }

/* Ticket Options */
.etm-ticket-options h3, .etm-form-wrap h3 { font-size:18px; color:#2c3e50; margin-bottom:15px; }
.etm-ticket-cards { display:flex; gap:16px; }
.etm-ticket-option {
    flex:1; border:2px solid #d0d0d0; border-radius:12px; padding:20px;
    cursor:pointer; text-align:center; transition:all .25s;
    background:#fff;
}
.etm-ticket-option:hover:not(.sold-out) { border-color:#6c3483; box-shadow:0 4px 20px rgba(108,52,131,.15); transform:translateY(-3px); }
.etm-ticket-option.selected { border-color:#6c3483; background:#f9f1fc; }
.etm-ticket-option.sold-out { opacity:.55; cursor:not-allowed; }
.vip-option { border-color:#d4ac0d; background:#fefdf5; }
.vip-option:hover:not(.sold-out) { border-color:#b8860b; box-shadow:0 4px 20px rgba(184,134,11,.2); }
.vip-option.selected { border-color:#b8860b; background:#fef9e7; }
.etm-type-badge { font-size:16px; font-weight:700; color:#2c3e50; margin-bottom:10px; }
.etm-price { font-size:26px; font-weight:700; color:#6c3483; margin:8px 0; }
.vip-option .etm-price { color:#b8860b; }
.etm-avail { font-size:13px; color:#555; margin-bottom:8px; }
.etm-mini-bar { height:6px; background:#eee; border-radius:3px; overflow:hidden; }
.etm-mini-bar div { height:100%; background:#6c3483; border-radius:3px; transition:width .4s; }
.vip-option .etm-mini-bar div { background:#d4ac0d; }

/* Form */
.etm-form-wrap { background:#fff; border:1px solid #e0e0e0; border-radius:12px; padding:25px; }
.etm-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin-bottom:20px; }
.etm-form-group { display:flex; flex-direction:column; gap:6px; }
.etm-form-group label { font-size:13px; font-weight:600; color:#555; }
.etm-form-group input,
.etm-form-group select {
    border:1px solid #ccc; border-radius:8px; padding:10px 14px;
    font-size:15px; outline:none; transition:border-color .2s;
}
.etm-form-group input:focus,
.etm-form-group select:focus { border-color:#6c3483; }

/* Summary */
.etm-order-summary { background:#f8f9fa; border-radius:10px; padding:16px; margin-bottom:20px; }
.etm-summary-row { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid #eee; font-size:14px; color:#444; }
.etm-summary-row:last-child { border:none; }
.etm-summary-row.total { font-size:17px; font-weight:700; color:#1a1a1a; padding-top:10px; }

/* Buttons */
.etm-pay-btn {
    width:100%; padding:14px; background:linear-gradient(135deg,#6c3483,#8e44ad);
    color:#fff; border:none; border-radius:10px; font-size:17px; font-weight:700;
    cursor:pointer; transition:all .25s; margin-bottom:10px;
}
.etm-pay-btn:hover { background:linear-gradient(135deg,#5b2c6f,#7d3c98); transform:translateY(-1px); }
.etm-pay-btn:disabled { opacity:.7; cursor:not-allowed; transform:none; }
.etm-back-btn {
    background:none; border:none; color:#888; cursor:pointer;
    font-size:14px; padding:5px 0; text-decoration:underline;
}

/* Success */
.etm-success-wrap { text-align:center; padding:40px 20px; }
.etm-success-icon { font-size:60px; margin-bottom:15px; }
.etm-success-wrap h3 { font-size:26px; color:#27ae60; margin-bottom:10px; }
.etm-success-wrap p { color:#555; margin:6px 0; font-size:15px; }
.etm-ticket-code { font-size:20px; color:#6c3483; letter-spacing:2px; }
.etm-print-btn {
    display:inline-block; margin-top:20px; background:#6c3483; color:#fff !important;
    padding:12px 28px; border-radius:30px; text-decoration:none !important;
    font-size:16px; font-weight:700;
}

/* Messages */
.etm-error { color:#e74c3c; font-size:14px; background:#fdf2f2; padding:10px 15px; border-radius:8px; border-left:4px solid #e74c3c; margin-top:10px; }

@media(max-width:540px){
    .etm-ticket-cards { flex-direction:column; }
    .etm-form-grid { grid-template-columns:1fr; }
    .etm-event-header { flex-direction:column; }
}
