/* Foreveryuppy Tickets — Public Styles */
:root {
	--fyt-primary:   #1a73e8;
	--fyt-primary-d: #1558b0;
	--fyt-green:     #27ae60;
	--fyt-red:       #e74c3c;
	--fyt-orange:    #f39c12;
	--fyt-bg:        #f7f8fc;
	--fyt-card-bg:   #ffffff;
	--fyt-border:    #e0e6f0;
	--fyt-text:      #1a1a2e;
	--fyt-text-muted:#6b7280;
	--fyt-radius:    10px;
	--fyt-shadow:    0 2px 12px rgba(0,0,0,.08);
}

/* ---- Buttons ---- */
.fyt-btn {
	display:inline-flex; align-items:center; justify-content:center;
	padding:10px 20px; border-radius:6px; font-size:14px; font-weight:600;
	cursor:pointer; border:2px solid transparent; text-decoration:none;
	transition:all .2s ease; white-space:nowrap;
}
.fyt-btn-primary { background:var(--fyt-primary); color:#fff; border-color:var(--fyt-primary); }
.fyt-btn-primary:hover { background:var(--fyt-primary-d); border-color:var(--fyt-primary-d); color:#fff; }
.fyt-btn-outline { background:transparent; color:var(--fyt-primary); border-color:var(--fyt-primary); }
.fyt-btn-outline:hover { background:var(--fyt-primary); color:#fff; }
.fyt-btn-sm { padding:6px 14px; font-size:13px; }
.fyt-btn-large { padding:14px 28px; font-size:16px; }
.fyt-btn-full { width:100%; }
.fyt-btn:disabled { opacity:.5; cursor:not-allowed; }

/* ---- Events listing ---- */
.fyt-events-wrap { max-width:1200px; margin:0 auto; padding:20px; }

.fyt-category-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; align-items:center; }
.fyt-filter-btn { padding:6px 14px; border-radius:20px; font-size:13px; border:1px solid var(--fyt-border); text-decoration:none; color:var(--fyt-text); background:#fff; transition:all .2s; }
.fyt-filter-btn:hover, .fyt-filter-btn.active { background:var(--fyt-primary); color:#fff; border-color:var(--fyt-primary); }
.fyt-filter-group-label { font-size:11px; text-transform:uppercase; color:var(--fyt-text-muted); font-weight:700; padding:6px 4px 0; }

.fyt-search-form { display:flex; gap:8px; margin-bottom:24px; }
.fyt-search-input { flex:1; padding:10px 14px; border:1px solid var(--fyt-border); border-radius:6px; font-size:14px; }

.fyt-events-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:24px; }

.fyt-event-card { background:var(--fyt-card-bg); border-radius:var(--fyt-radius); box-shadow:var(--fyt-shadow); overflow:hidden; position:relative; transition:transform .2s, box-shadow .2s; }
.fyt-event-card:hover { transform:translateY(-3px); box-shadow:0 6px 20px rgba(0,0,0,.12); }
.fyt-event-card.fyt-featured { border:2px solid #f39c12; }
.fyt-event-card.fyt-sold-out { opacity:.75; }

.fyt-event-card-img { height:200px; overflow:hidden; position:relative; background:var(--fyt-primary); }
.fyt-event-card-img img { width:100%; height:100%; object-fit:cover; }
.fyt-event-card-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.fyt-event-card-placeholder span { font-size:60px; color:rgba(255,255,255,.4); font-weight:900; }

.fyt-badge { position:absolute; top:12px; right:12px; padding:4px 10px; border-radius:20px; font-size:11px; font-weight:700; text-transform:uppercase; }
.fyt-badge-featured { background:#f39c12; color:#fff; }
.fyt-badge-sold-out { background:var(--fyt-red); color:#fff; }

.fyt-event-card-body { padding:16px 18px; }
.fyt-event-cat { font-size:11px; text-transform:uppercase; color:var(--fyt-primary); font-weight:700; margin-bottom:6px; letter-spacing:.5px; }
.fyt-event-title { font-size:17px; font-weight:700; margin:0 0 6px; line-height:1.3; }
.fyt-event-title a { color:var(--fyt-text); text-decoration:none; }
.fyt-event-title a:hover { color:var(--fyt-primary); }
.fyt-event-teams { font-size:13px; color:var(--fyt-text-muted); margin-bottom:10px; }
.fyt-event-meta { display:flex; flex-direction:column; gap:4px; margin-bottom:14px; font-size:13px; color:var(--fyt-text-muted); }

.fyt-event-card-footer { display:flex; justify-content:space-between; align-items:center; }
.fyt-price-from { font-size:11px; color:var(--fyt-text-muted); }
.fyt-price-amount { font-size:20px; font-weight:800; color:var(--fyt-text); }
.fyt-price-to { font-size:13px; color:var(--fyt-text-muted); }

.fyt-no-events { text-align:center; padding:48px; color:var(--fyt-text-muted); font-size:16px; }

/* ---- Checkout ---- */
.fyt-checkout-wrap { max-width:1100px; margin:0 auto; padding:20px; }
.fyt-checkout-header { margin-bottom:24px; }
.fyt-checkout-header h2 { font-size:26px; font-weight:800; margin-bottom:4px; }
.fyt-checkout-event-meta { color:var(--fyt-text-muted); font-size:14px; }

.fyt-checkout-grid { display:grid; grid-template-columns:1fr 380px; gap:32px; }
@media(max-width:768px){ .fyt-checkout-grid { grid-template-columns:1fr; } }

.fyt-ticket-types { display:flex; flex-direction:column; gap:12px; }
.fyt-ticket-type { display:flex; justify-content:space-between; align-items:center; background:#fff; border:2px solid var(--fyt-border); border-radius:var(--fyt-radius); padding:16px 20px; transition:border-color .2s; }
.fyt-ticket-type:hover { border-color:var(--fyt-primary); }
.fyt-ticket-type.fyt-sold-out { opacity:.6; }

.fyt-ticket-type-name { font-size:16px; font-weight:700; margin-bottom:2px; }
.fyt-ticket-type-desc { font-size:13px; color:var(--fyt-text-muted); margin-bottom:6px; }
.fyt-ticket-type-price { font-size:18px; font-weight:800; color:var(--fyt-primary); }
.fyt-ticket-avail { font-size:12px; margin-top:4px; }
.fyt-sold-out-text { color:var(--fyt-red); }
.fyt-low-stock { color:var(--fyt-orange); font-weight:600; }
.fyt-ticket-avail-bar { width:100%; height:4px; background:#eee; border-radius:2px; margin-top:8px; }
.fyt-ticket-avail-bar div { height:100%; background:var(--fyt-primary); border-radius:2px; transition:width .3s; }

.fyt-ticket-qty-control { display:flex; align-items:center; gap:12px; }
.fyt-qty-btn { width:32px; height:32px; border-radius:50%; border:2px solid var(--fyt-primary); background:#fff; color:var(--fyt-primary); font-size:18px; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1; transition:all .2s; }
.fyt-qty-btn:hover { background:var(--fyt-primary); color:#fff; }
.fyt-qty-display { font-size:18px; font-weight:700; min-width:24px; text-align:center; }

/* Order summary */
.fyt-order-summary { background:#fff; border:2px solid var(--fyt-border); border-radius:var(--fyt-radius); padding:20px; margin-bottom:16px; }
.fyt-order-summary h3 { margin-bottom:16px; font-size:18px; }
.fyt-summary-item { display:flex; justify-content:space-between; font-size:14px; margin-bottom:8px; }
.fyt-summary-empty { color:var(--fyt-text-muted); font-size:14px; text-align:center; padding:8px; }

.fyt-promo-row { display:flex; gap:8px; margin:12px 0; }
.fyt-promo-row .fyt-input { flex:1; }
.fyt-promo-msg { font-size:13px; min-height:20px; margin-bottom:4px; }
.fyt-promo-msg.success { color:var(--fyt-green); }
.fyt-promo-msg.error { color:var(--fyt-red); }

.fyt-totals-table { width:100%; font-size:14px; border-collapse:collapse; margin-top:12px; }
.fyt-totals-table tr td { padding:6px 0; }
.fyt-totals-table tr td:last-child { text-align:right; }
.fyt-totals-total td { font-size:18px; border-top:2px solid var(--fyt-border); padding-top:10px; }

/* Guest info / Payment */
.fyt-guest-info, .fyt-payment-section { background:#fff; border:2px solid var(--fyt-border); border-radius:var(--fyt-radius); padding:20px; margin-bottom:16px; }
.fyt-input { width:100%; padding:10px 14px; border:1px solid var(--fyt-border); border-radius:6px; font-size:14px; margin-bottom:10px; }
.fyt-input:focus { outline:none; border-color:var(--fyt-primary); box-shadow:0 0 0 3px rgba(26,115,232,.15); }
.fyt-input-full { width:100%; }

.fyt-payment-method { margin-bottom:12px; }
.fyt-payment-method-label { display:flex; align-items:center; gap:8px; font-weight:600; margin-bottom:10px; cursor:pointer; }
.fyt-stripe-input { padding:12px; border:1px solid var(--fyt-border); border-radius:6px; background:#fff; min-height:44px; }
.fyt-secure-note { font-size:12px; color:var(--fyt-text-muted); text-align:center; margin-top:10px; }

.fyt-error-msg { color:var(--fyt-red); font-size:13px; margin-top:6px; }
.fyt-success-msg { color:var(--fyt-green); font-size:14px; padding:12px; background:#d4edda; border-radius:6px; margin-top:8px; }

/* Waitlist */
.fyt-waitlist-form { background:#fff8e1; border:2px solid #f39c12; border-radius:var(--fyt-radius); padding:24px; margin-top:24px; }
.fyt-waitlist-form h3 { margin-bottom:8px; }
.fyt-waitlist-form p { font-size:14px; margin-bottom:16px; color:var(--fyt-text-muted); }

/* Resale section */
.fyt-resale-section { margin-top:24px; }
.fyt-resale-section h4 { margin-bottom:12px; font-size:15px; color:var(--fyt-text-muted); }
.fyt-resale-item { display:flex; align-items:center; gap:12px; padding:12px; background:#fff; border:1px solid var(--fyt-border); border-radius:8px; margin-bottom:8px; }
.fyt-resale-type { flex:1; font-weight:600; }
.fyt-resale-seat { color:var(--fyt-text-muted); font-size:13px; }
.fyt-resale-price { font-size:16px; font-weight:700; color:var(--fyt-green); }

/* My Tickets */
.fyt-my-tickets-wrap { max-width:900px; margin:0 auto; padding:20px; }
.fyt-tabs { display:flex; gap:0; border-bottom:2px solid var(--fyt-border); margin-bottom:24px; }
.fyt-tab { padding:10px 20px; font-size:14px; font-weight:600; color:var(--fyt-text-muted); text-decoration:none; border-bottom:3px solid transparent; margin-bottom:-2px; transition:all .2s; }
.fyt-tab:hover { color:var(--fyt-primary); }
.fyt-tab.active { color:var(--fyt-primary); border-bottom-color:var(--fyt-primary); }
.fyt-tab-count { background:var(--fyt-primary); color:#fff; border-radius:12px; padding:1px 7px; font-size:11px; margin-left:4px; }

.fyt-tickets-list { display:flex; flex-direction:column; gap:16px; }
.fyt-ticket-item { background:#fff; border:2px solid var(--fyt-border); border-radius:var(--fyt-radius); padding:20px; display:flex; gap:20px; align-items:flex-start; flex-wrap:wrap; }
.fyt-ticket-item.fyt-ticket-used { opacity:.7; border-color:#ccc; }
.fyt-ticket-item.fyt-ticket-transferred { opacity:.6; }
.fyt-ticket-qr { flex-shrink:0; text-align:center; }
.fyt-ticket-number { font-family:monospace; font-size:11px; color:var(--fyt-text-muted); margin-top:6px; }
.fyt-ticket-info { flex:1; min-width:200px; }
.fyt-ticket-event-title { font-size:18px; font-weight:800; margin-bottom:4px; }
.fyt-ticket-type-name { font-size:14px; color:var(--fyt-primary); font-weight:600; margin-bottom:8px; }
.fyt-ticket-date, .fyt-ticket-venue, .fyt-ticket-seat { font-size:13px; color:var(--fyt-text-muted); margin-bottom:4px; }
.fyt-ticket-status-badge { display:inline-block; padding:3px 10px; border-radius:12px; font-size:11px; font-weight:700; text-transform:uppercase; margin-top:8px; }
.fyt-status-active { background:#d4edda; color:#155724; }
.fyt-status-used { background:#f8d7da; color:#721c24; }
.fyt-status-transferred { background:#d1ecf1; color:#0c5460; }
.fyt-status-voided { background:#e2e3e5; color:#495057; }
.fyt-status-resale { background:#fff3cd; color:#856404; }
.fyt-status-completed { background:#d4edda; color:#155724; }
.fyt-status-pending { background:#fff3cd; color:#856404; }
.fyt-status-failed { background:#f8d7da; color:#721c24; }
.fyt-status-cancelled { background:#e2e3e5; color:#495057; }
.fyt-status-refunded { background:#d1ecf1; color:#0c5460; }
.fyt-ticket-actions { display:flex; flex-direction:column; gap:8px; flex-shrink:0; }

.fyt-transfer-form, .fyt-resale-form { width:100%; background:var(--fyt-bg); border:1px solid var(--fyt-border); border-radius:8px; padding:16px; margin-top:12px; }
.fyt-transfer-form h4, .fyt-resale-form h4 { margin-bottom:12px; }

.fyt-table { width:100%; border-collapse:collapse; font-size:14px; }
.fyt-table th { background:var(--fyt-bg); padding:10px 14px; text-align:left; font-size:12px; text-transform:uppercase; color:var(--fyt-text-muted); border-bottom:2px solid var(--fyt-border); }
.fyt-table td { padding:12px 14px; border-bottom:1px solid var(--fyt-border); }

/* Notices */
.fyt-notice { padding:14px 18px; border-radius:8px; margin-bottom:16px; }
.fyt-notice-info { background:#e8f4f8; border-left:4px solid var(--fyt-primary); color:#0c5460; }
.fyt-notice-success { background:#d4edda; border-left:4px solid var(--fyt-green); color:#155724; }
.fyt-notice-error { background:#f8d7da; border-left:4px solid var(--fyt-red); color:#721c24; }

/* Resale listings */
.fyt-resale-listings { display:flex; flex-direction:column; gap:10px; }
.fyt-resale-listing-item { display:flex; align-items:center; gap:16px; padding:12px 16px; background:#fff; border:1px solid var(--fyt-border); border-radius:8px; }
.fyt-resale-event { flex:1; font-weight:600; }
.fyt-resale-type { color:var(--fyt-text-muted); font-size:13px; }

/* Responsive */
@media(max-width:600px){
	.fyt-events-grid { grid-template-columns:1fr; }
	.fyt-ticket-item { flex-direction:column; }
	.fyt-ticket-actions { flex-direction:row; }
}
