/* QR PASS PAGE */
.qr-page { min-height:100vh; background:var(--light-gray); position:relative; padding-bottom:60px; }
.qr-bg {
  position:fixed; inset:0; z-index:-1;
  background:linear-gradient(145deg, #0D1B12 0%, #1B4332 60%, #006D77 100%);
  opacity:.08;
}
.qr-success-banner {
  background:var(--white); border-radius:var(--r-lg); padding:24px 28px;
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  box-shadow:var(--shadow-sm); border:1px solid var(--border);
  margin:40px 0 28px;
}
.success-icon { font-size:2.5rem; color:var(--accent); flex-shrink:0; }
.qr-success-banner h2 { font-size:1.4rem; margin-bottom:4px; }
.qr-success-banner p { font-size:.85rem; color:var(--gray); }
.qr-success-banner .badge { margin-left:auto; }

.qr-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:start; }

/* PASS CARD */
.pass-card {
  background:var(--white); border-radius:20px; overflow:hidden;
  box-shadow:var(--shadow-xl);
  border:3px solid var(--primary);
}
.pass-header {
  background:linear-gradient(135deg,var(--primary),var(--primary-light));
  padding:20px 24px; display:flex; align-items:center; justify-content:space-between;
}
.pass-header-left { display:flex; align-items:center; gap:14px; }
.pass-flag { font-size:2rem; }
.pass-gov { color:rgba(255,255,255,.75); font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.pass-title { color:#fff; font-family:var(--font-display); font-size:1.05rem; font-weight:700; margin:2px 0; }
.pass-ministry { color:rgba(255,255,255,.65); font-size:.65rem; }
.pass-logo { font-size:2.5rem; }

.pass-body { display:grid; grid-template-columns:160px 1fr; gap:24px; padding:24px; }
.qr-box { width:140px; height:140px; }
.qr-box img, .qr-box canvas { border-radius:8px; }
.pass-id-label { font-size:.65rem; color:var(--gray); text-align:center; margin-top:8px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.pass-id { font-size:.75rem; font-weight:800; color:var(--primary); text-align:center; margin-top:2px; }
.pass-tourist-name { font-family:var(--font-display); font-size:1.4rem; font-weight:900; color:var(--dark); margin-bottom:14px; border-bottom:2px solid var(--border); padding-bottom:10px; }
.pass-info-grid { display:flex; flex-direction:column; gap:5px; }
.pi-row { display:flex; gap:8px; font-size:.78rem; }
.pi-key { color:var(--gray); min-width:80px; font-weight:600; }
.pi-val { color:var(--dark); font-weight:700; }

.pass-footer {
  background:var(--light-gray); border-top:2px dashed var(--border);
  padding:16px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
}
.pass-status { display:flex; align-items:center; gap:8px; font-size:.82rem; font-weight:800; color:#065F46; }
.status-dot { width:10px; height:10px; border-radius:50%; background:var(--accent); animation:pulse-ring 2s infinite; }
.pass-checkpoints { display:flex; gap:6px; flex-wrap:wrap; }
.cp-tag { background:var(--accent-soft); color:var(--primary); padding:3px 10px; border-radius:var(--r-full); font-size:.68rem; font-weight:700; }
.pass-issued { font-size:.65rem; color:var(--gray); width:100%; }

/* ACTIONS PANEL */
.action-card {
  background:var(--white); border-radius:var(--r-lg); padding:22px;
  box-shadow:var(--shadow-sm); border:1px solid var(--border); margin-bottom:16px;
}
.action-card h4 { font-size:.95rem; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.action-card h4 i { color:var(--primary); }
.action-card p { font-size:.83rem; margin-bottom:14px; }

/* TIMELINE */
.timeline { display:flex; flex-direction:column; gap:0; }
.tl-item { display:flex; gap:12px; padding:10px 0; position:relative; }
.tl-item:not(:last-child)::after {
  content:''; position:absolute; left:7px; top:28px;
  width:2px; height:calc(100% - 4px); background:var(--border);
}
.tl-dot { width:16px; height:16px; border-radius:50%; flex-shrink:0; margin-top:3px; z-index:1; }
.tl-dot.green { background:var(--accent); }
.tl-dot.gold  { background:var(--gold); }
.tl-dot.red   { background:var(--red); }
.tl-body strong { display:block; font-size:.84rem; color:var(--dark); margin-bottom:2px; }
.tl-body span   { font-size:.77rem; color:var(--gray); line-height:1.5; }

/* WARNING CARD */
.warn-card { border-color:#FDE68A; background:#FFFBEB; }
.warn-card h4 { color:#92400E; }
.reminder-list { list-style:none; padding:0; }
.reminder-list li {
  font-size:.8rem; color:#78350F; padding:5px 0; border-bottom:1px solid #FEF3C7;
  display:flex; align-items:flex-start; gap:7px;
}
.reminder-list li::before { content:'•'; color:var(--gold); font-size:.8rem; flex-shrink:0; }

/* EMERGENCY CARD */
.emergency-card { border-color:#FECACA; background:#FFF5F5; }
.emergency-card h4 { color:#991B1B; }
.emerg-row { display:flex; align-items:center; gap:12px; padding:8px 0; border-bottom:1px solid #FEE2E2; }
.emerg-row i { color:var(--red); width:18px; text-align:center; }
.emerg-row strong { display:block; font-size:.82rem; color:var(--dark); }
.emerg-row span { font-size:.88rem; color:var(--red); font-weight:800; }

@media print {
  nav,.qr-actions,.qr-success-banner { display:none!important; }
  .qr-page { background:white; padding:0; }
  .qr-grid { grid-template-columns:1fr; }
  .pass-card { box-shadow:none; }
}

@media(max-width:900px) {
  .qr-grid { grid-template-columns:1fr; }
  .pass-body { grid-template-columns:1fr; }
  .qr-success-banner { flex-direction:column; text-align:center; }
}
