﻿/* === QR Ticket (Ultralight Dark) === */
.qr-ticket-wrapper{
  max-width:560px;
  margin:12px auto;
  padding:16px;
  background:var(--card);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  text-align:center;
}
@media (min-width:480px){
  .qr-ticket-wrapper{ padding:20px; }
}

.qr-ticket-title{
  margin:0 0 .5rem 0;
  font-size:1.25rem;
}
@media (min-width:480px){
  .qr-ticket-title{ font-size:1.5rem; }
}

.qr-ticket-meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.5rem 1rem;
  color:var(--muted);
  margin-bottom:1rem;
}
.qr-ticket-type{
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--text);
}

/* Ð’ÐÐ–ÐÐž: Ð¾ÑÑ‚Ð°Ð²Ð»ÑÐµÐ¼ Ð±ÐµÐ»Ð¾Ðµ Ð¿Ð¾Ð»Ðµ Ð²Ð¾ÐºÑ€ÑƒÐ³ QR Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ */
.qr-ticket-image img{
  width:min(88vw,320px);
  height:auto;
  display:block;
  margin:0 auto 1rem;
  background:#ffffff;          /* Ð±ÐµÐ»Ð°Ñ Ð¿Ð¾Ð´Ð»Ð¾Ð¶ÐºÐ° */
  padding:12px;                /* "quiet zone" Ð²Ð¾ÐºÑ€ÑƒÐ³ ÐºÐ¾Ð´Ð° */
  border-radius:12px;
  border:1px solid var(--border);
  box-shadow:0 6px 24px rgba(0,0,0,.35);
}

.qr-ticket-code{
  display:grid;
  grid-template-columns: 1fr auto;
  gap:.75rem;
  margin-bottom:1.5rem;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}
.qr-ticket-code-value{
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
               "Liberation Mono","Courier New", monospace;
  background:var(--bg-elev);
  padding:.75rem 1rem;
  border-radius:12px;
  font-size:1.25rem;
  letter-spacing:.05em;
  border:1px solid var(--border);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Button in theme style (matches .btn-primary) */
.qr-ticket-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:14px 20px; /* Mobile friendly padding */
  border-radius:12px;
  border:1px solid var(--text);
  background:var(--text);
  color:var(--bg);
  font-weight:600;
  font-size: 1rem;
  cursor:pointer;
  text-decoration:none;
  transition: opacity 0.2s ease;
  min-height: 48px; /* Mobile touch target */
}
.qr-ticket-button:hover{ opacity: 0.9; }
.qr-ticket-button:active{ transform:scale(0.98); }

/* Full width for primary actions */
.qr-ticket-button.is-block {
    width: 100%;
    display: flex;
}

/* Secondary/Outline variant */
.qr-ticket-button.is-outline {
    background: transparent;
    color: var(--text);
    border: 1px solid var(--border-strong);
}

.qr-ticket-countdown{
  font-size:1rem;
  margin-bottom:1rem;
  color:var(--muted);
}
.qr-ticket-countdown strong{ color:var(--accent); }

.qr-ticket-email{ text-align:left; margin-top:2rem; }
.qr-ticket-email-fields{
  display:flex; 
  gap:.75rem; 
  flex-direction: column; /* Stack on mobile */
  margin-top:.75rem;
}
.qr-ticket-email input[type="email"] {
  width: 100%;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-elev);
  color: var(--text);
  font-size: 1rem;
}
.qr-ticket-email .qr-ticket-button{ 
    width: 100%; 
}

@media (min-width: 480px) {
    .qr-ticket-email-fields {
        flex-direction: row;
    }
    .qr-ticket-email .qr-ticket-button {
        width: auto;
    }
}

.qr-ticket-email-feedback{
  margin-top:.5rem;
  min-height:1.25rem;
  color:var(--muted);
}
.qr-ticket-email-feedback.is-success{ color:var(--success); }
.qr-ticket-email-feedback.is-error{ color:var(--danger); }

/* Ð¡Ð¾ÑÑ‚Ð¾ÑÐ½Ð¸Ðµ Â«Ð¸ÑÑ‚Ñ‘ÐºÂ» */
.qr-ticket-expired{
  padding:1rem;
  background:rgba(239,68,68,.12);           /* danger tint */
  border:1px solid rgba(239,68,68,.35);
  border-radius:12px;
  color:var(--danger);
  font-size:1.1rem;
  margin-bottom:1rem;
}
.qr-tickets-table{
  width:100%;
  border-collapse:separate; border-spacing:0;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  font-size:.88rem;
}
.qr-tickets-table th,
.qr-tickets-table td{
  padding:8px 10px;
}
.qr-tickets-table thead th{
  text-align:left;
  color:var(--muted);
  font-weight:600;
  background:var(--bg-elev);
}
.qr-tickets-table tbody tr + tr td{
  border-top:1px solid var(--border);
}
.qr-tickets-table .qr-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  padding:4px 6px;
  border-radius:8px;
  background:var(--bg-elev);
  border:1px solid var(--border);
}
.qr-tickets-table .badge{
  display:inline-block;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--bg-elev);
  font-size:.85rem;
  line-height:1;
}
.qr-tickets-table .badge.ok{
  border-color:#2b3a51;
  background:rgba(34,197,94,.14);
}
.qr-tickets-table .badge.bad{
  border-color:#3a2b2b;
  background:rgba(239,68,68,.14);
}
.qr-tickets-table .actions{
  text-align:right;
  
}
.qr-tickets-table .actions-col{
  width:1%;
}
.btn-xs{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  font-size:.88rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--bg-elev);
  color:var(--text);
  text-decoration:none;
}
.btn-xs:hover{
  border-color:var(--accent);
}

@media (max-width:560px){
  .qr-tickets-table thead{
    display:none;
  }
  .qr-tickets-table tbody tr{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px 10px;
    padding:10px 8px;
  }
  .qr-tickets-table tbody tr + tr{
    border-top:1px solid var(--border);
  }
  .qr-tickets-table td{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0;
  }
  .qr-tickets-table td::before{
    content:attr(data-label);
    color:var(--muted);
    margin-right:10px;
  }
  .qr-tickets-table td.actions{
    grid-column:1 / -1;
    justify-content:flex-end;
    margin-top:2px;
  }
}
.qr-tickets-table tbody tr.is-active{
  background:rgba(34,197,94,.06);
}
.qr-tickets-table tbody tr.is-expired{
  background:rgba(239,68,68,.06);
}
.qr-tickets-table tbody tr.is-expired .badge{
  color:#ff8a8a;
}
.qr-tickets-table tbody tr.is-active .badge{
  color:#7dea9f;
}
.qr-tickets-table tbody tr.is-active td{
  background:rgba(34,197,94,.08);
}
.qr-tickets-table tbody tr.is-expired td{
  background:rgba(239,68,68,.08);
}
.qr-tickets-table .actions .btn-xs{
  width:100%;
  justify-content:center;
}

.qr-ticket-save{

  margin-top:1.5rem;

  padding:1rem;

  border:1px dashed var(--border);

  border-radius:14px;

  background:rgba(255,255,255,.04);

  text-align:left;

}

.qr-ticket-save[hidden]{ display:none !important; }

.qr-ticket-save-actions{

  display:flex;

  flex-wrap:wrap;

  gap:.5rem;

  margin-bottom:.5rem;

}

.qr-ticket-save-description{

  margin:0;

  font-size:.95rem;

  color:var(--muted);

}

.qr-ticket-save-feedback{

  margin-top:.5rem;

  min-height:1.1rem;

  font-size:.9rem;

  color:var(--muted);

}

.qr-ticket-save-feedback.is-success{ color:var(--success); }

.qr-ticket-save-feedback.is-error{ color:var(--danger); }

.qr-ticket-install-button{
  background:var(--text);
  color:var(--bg);
  border: 1px solid var(--text);
}

/* Global modal handled by theme style.css */

/* --- New UX Elements --- */

.qr-ticket-offline-badge {
    display: inline-block;
    background-color: var(--warning, #ffc107);
    color: #000;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}
.qr-ticket-offline-badge[hidden] { display: none !important; }

.qr-ticket-progress-bar {
    height: 8px;
    background-color: var(--bg-elev, #333);
    border-radius: 4px;
    margin-top: 8px;
    overflow: hidden;
}

.qr-ticket-progress-fill {
    height: 100%;
    background-color: var(--success, #28a745);
    transition: width 1s linear, background-color 0.5s ease;
}

.qr-ticket-progress-fill.warning {
    background-color: var(--warning, #ffc107);
}

.qr-ticket-progress-fill.danger {
    background-color: var(--danger, #dc3545);
}

.qr-ticket-wrapper.expired {
    opacity: 0.7;
    filter: grayscale(1);
    border-color: var(--muted);
}


/* --- Active Ticket Modal/Banner Redesign moved to Theme CSS --- */

