/* Shared public purchase identity. Deliberately not loaded by admin or scanner. */
:root {
  --bg-primary: #f6f5f2;
  --bg-secondary: #eeede9;
  --bg-card: #fff;
  --bg-card-hover: #faf9f6;
  --bg-input: #f6f7f9;
  --accent-primary: #386b0b;
  --accent-secondary: #294f08;
  --accent-glow: rgba(90,145,12,.14);
  --text-primary: #1b202a;
  --text-secondary: #525966;
  --text-muted: #646b77;
  --border-color: #dddfe3;
  --border-focus: #386b0b;
  --danger: #b62337;
  --warning: #946000;
  --success: #147d57;
  --gradient-accent: linear-gradient(110deg,#467d12,#315d09);
  --gradient-success: linear-gradient(135deg,#e4f6ee,#ccebdc);
  --shadow-lg: 0 16px 50px -20px rgba(28,34,45,.2);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:28px; }
body.public-page { margin:0; padding:0; display:block; background:var(--bg-primary); color:var(--text-primary); font:400 15px/1.6 'Plus Jakarta Sans',system-ui,sans-serif; color-scheme:light; }
button,input,select,textarea { font-family:inherit; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--accent-primary); outline-offset:4px; }
button:disabled { cursor:not-allowed; }
a { color:var(--accent-primary); }
.brand-header { width:100%; background:var(--bg-primary); border-bottom:1px solid var(--border-color); }
.brand-header-inner { max-width:1240px; min-height:86px; padding:14px 32px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand-logo { display:inline-flex; align-items:center; gap:10px; color:var(--text-primary); font-size:21px; font-weight:800; letter-spacing:-.9px; text-decoration:none; white-space:nowrap; }
.brand-logo img { width:42px; height:42px; object-fit:contain; border-radius:50%; }
.brand-logo-accent,.brand-logo-dot { color:var(--accent-primary); }
.brand-header nav { display:flex; gap:30px; align-items:center; font-size:13px; font-weight:700; }
.brand-header nav a { color:var(--text-primary); text-decoration:none; }
.brand-header nav a:hover { color:var(--accent-primary); }
.brand-header .nav-support { padding:9px 17px; border:1px solid #c8cbd1; border-radius:40px; }
.skip-link { position:fixed; left:16px; top:-100px; padding:10px 20px; background:white; z-index:9999; }
.skip-link:focus { top:12px; }
.brand-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; background:var(--accent-primary); color:#fff; border-radius:50px; padding:16px 26px; font-weight:700; text-decoration:none; border:0; }
.brand-button:hover { background:var(--accent-secondary); }
.purchase-steps { display:flex; list-style:none; padding:0; margin:0 0 28px; gap:18px; justify-content:center; }
.purchase-steps li { display:flex; gap:8px; align-items:center; color:var(--text-muted); font-size:12px; font-weight:600; white-space:nowrap; }
.purchase-steps li span { width:26px; height:26px; display:grid; place-items:center; border:1px solid #bfc5ce; border-radius:50%; font-size:11px; }
.purchase-steps [aria-current] { color:var(--accent-primary); }
.purchase-steps [aria-current] span { background:var(--accent-primary); color:white; border-color:var(--accent-primary); }
.purchase-steps .is-complete span { background:#e0f2e9; color:var(--success); border-color:#b9d9ca; }
.checkout-container { max-width:1180px; min-height:0; padding:32px; }
.checkout-header { margin-bottom:26px; padding-bottom:22px; }
.checkout-title { font-size:24px; letter-spacing:-.8px; }
.checkout-grid { gap:28px; align-items:start; }
.form-section,.event-summary { border:1px solid var(--border-color); border-radius:20px; box-shadow:0 5px 20px rgba(26,31,43,.025); }
.event-summary { top:24px; }
.event-summary,.form-section { align-self:stretch; min-width:0; }
.event-date-text { font-size:12px; font-weight:600; color:var(--accent-primary); margin:0 0 12px; }
.event-image { height:260px; background:#e9e8e4; }
.event-image img { height:100%; width:100%; object-fit:contain; }
.event-image-overlay { display:none; }
.event-date-badge { background:white; color:var(--text-primary); box-shadow:0 4px 20px #0002; }
.event-date-badge .month { color:var(--accent-primary); }
.event-date-badge .day { color:var(--text-primary); }
.form-step { padding:28px; }
.step-number { background:var(--text-primary); color:white; flex-shrink:0; }
.tier-card { border-radius:14px; min-width:0; gap:12px; }
.tier-card.selected,.tier-card.tier-group.selected { background:#f1f8e8; border-color:var(--accent-primary); box-shadow:inset 3px 0 var(--accent-primary); }
.tier-card.sold-out { background:#eeeef0; opacity:1; }
.tier-info,.form-row>* { min-width:0; }
.tier-price { color:var(--text-primary); flex-shrink:0; }
.tier-name,.event-name,.event-location,.attendee-card { overflow-wrap:anywhere; }
.form-input,.form-select { background:#fff; border-color:#cbd0d8; min-height:48px; }
.form-input::placeholder { color:#777d87; }
.form-input:focus,.form-select:focus { box-shadow:0 0 0 3px var(--accent-glow); }
.order-summary { background:#fafafa; }
.order-row { gap:12px; }
.order-value { text-align:right; }
.order-row.total .value { color:var(--accent-primary); font-variant-numeric:tabular-nums; }
.order-row.total { border-color:var(--border-color); }
.submit-btn { border-radius:12px; box-shadow:none; }
.legal-content h2 { padding-right:28px; }
.legal-content li { color:var(--text-secondary); }
.public-page .page-container { max-width:600px; margin:32px auto 60px; padding:0 20px; animation:none; }
.public-page .confirmation-card,.public-page .success-card { border-radius:22px; box-shadow:var(--shadow-lg); }
.public-page .card-header,.public-page .success-header { background:#fff; padding:30px 26px 24px; border-bottom:1px solid var(--border-color); }
.public-page .success-header::before,.public-page .success-icon::after { display:none; }
.public-page .success-icon { width:64px; height:64px; border-radius:20px; animation:none; box-shadow:none; background:#eaf4db; margin-bottom:18px; }
.public-page .success-icon i { color:var(--accent-primary); font-size:28px; }
.purchase-ticket .success-icon { background:#e1f3ea; }
.purchase-ticket .success-icon i { color:var(--success); }
.success-title { font-size:28px; letter-spacing:-1px; }
.success-title .highlight { color:var(--success); }
.card-body { padding:26px; }
.detail-row { gap:12px; align-items:flex-start; }
.detail-label { flex-shrink:0; }
.detail-value { min-width:0; text-align:right; overflow-wrap:anywhere; }
.detail-value.code { border:1px dashed #c3c8d0; color:var(--text-primary); }
.qr-section { background:#f7f8fa; border:1px dashed #c9cdd4; border-radius:18px; }
.qr-label,.qr-code-id { color:var(--text-primary); }
.qr-code-wrapper,.qr-code-wrapper img,.qr-card img { background:#fff; filter:none; opacity:1; max-width:100%; }
.qr-code-id { letter-spacing:3px; font-variant-numeric:tabular-nums; }
.qr-card { background:white; border-color:var(--border-color); }
.qr-name,.qr-id,.qr-doc,.doc-summary span,.group-code-name,.info-box strong { overflow-wrap:anywhere; }
.qr-card-actions a { background:#eaf4db; color:var(--accent-primary); }
.btn-primary,.btn-confirm,.btn-copy { color:white; }
.btn-copy.copied { color:white; background:var(--success); }
.modal-header { background:#f6f7f9; }
.modal-content { max-height:90dvh; overflow-y:auto; border-color:var(--border-color); }
.toast { max-width:calc(100vw - 32px); width:max-content; pointer-events:none; }
.group-banner,.group-success-banner { background:#f6f7f9; border:1px solid var(--border-color); }
.summary-line { gap:12px; }
.summary-line>span:last-child { flex-shrink:0; }
.loader-card { min-width:0; max-width:calc(100vw - 32px); }
.public-page .confetti { display:none; }
.sales-countdown { background:#202631; color:#fff; box-shadow:none; border:1px solid #363e4a; border-radius:20px; backdrop-filter:none; -webkit-backdrop-filter:none; }
.sales-countdown::before,.sales-countdown::after { display:none; }
.sales-countdown__number { animation:none; text-shadow:none; }
.sales-countdown__title span,.sales-countdown__eyebrow,.sales-countdown__deadline,.sales-countdown__label,.sales-countdown__separator { color:#d0d6e0; }
.sales-countdown__status { color:#fff; }
.sales-countdown.is-urgent { border-color:#ed7b8d; }
.sales-countdown.is-urgent .sales-countdown__number { color:#ffacb7; }
.public-state { max-width:700px; margin:60px auto; padding:0 24px; }
.state-card { border:1px solid var(--border-color); background:white; padding:40px; border-radius:24px; }
.state-card h1 { font-size:30px; letter-spacing:-1px; margin:12px 0; }
.state-card p { color:var(--text-secondary); margin-bottom:24px; overflow-wrap:anywhere; }
.state-icon { font-size:36px; color:var(--accent-primary); }
@media(max-width:700px) {
  .brand-header-inner { padding:12px 18px; min-height:72px; gap:10px; }
  .brand-logo { font-size:17px; gap:7px; }
  .brand-logo img { width:32px; height:32px; }
  .brand-header nav { gap:14px; font-size:12px; }
  .brand-header .nav-how,.brand-header .nav-support { display:none; }
  .checkout-container { padding:24px 16px; }
  .checkout-title { font-size:18px; }
  .checkout-header { flex-direction:row; align-items:center; }
  .checkout-title i { display:none; }
  .secure-badge { display:none; }
  .purchase-steps { gap:12px; margin-bottom:24px; }
  .purchase-steps li { font-size:11px; gap:5px; }
  .purchase-steps li span { width:23px; height:23px; }
  .form-step,.submit-section { padding:20px; }
  .tier-card { flex-wrap:wrap; padding:14px; }
  .tier-info { flex:1 1 150px; }
  .tier-price { margin-left:auto; }
  .event-image { height:220px; }
  .card-body { padding:20px; }
  .public-page .page-container { padding:0 16px; margin-top:24px; }
  .public-page .card-header,.public-page .success-header { padding:26px 20px; }
  .qr-grid { grid-template-columns:minmax(0,1fr); }
  .detail-row { gap:8px; }
  .modal-title { min-width:0; }
  .modal-close { flex-shrink:0; }
  .state-card { padding:26px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
