:root{--max-width:980px;--accent:#7c5cff;--muted:#6b7280}
*{box-sizing:border-box;font-family:Inter, 'Segoe UI', Roboto, Arial, sans-serif}
body{margin:0;padding:32px;background:linear-gradient(180deg,#0f172a 0%, #0b1220 60%);color:#e6eef8}
.container{max-width:var(--max-width);margin:0 auto}
.hero{background:linear-gradient(135deg,#7c5cff66, #5eead433);padding:22px;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,0.5);backdrop-filter: blur(6px);margin-bottom:18px}
.hero-inner{max-width:900px}
.hero-inner{display:flex;align-items:center;gap:16px}
.event-logo{width:76px;height:76px;flex:0 0 auto;border-radius:12px;border:2px solid rgba(255,255,255,0.08);background:linear-gradient(135deg,#fff2 0,#fff0 100%)}
#eventLogo{width:74px;height:74px;object-fit:contain;border-radius:12px;border:2px solid rgba(255,255,255,0.06);background:rgba(255,255,255,0.02)}
.hero-text{min-width:0}
.event-title{margin:0;font-size:1.6rem;color:white;letter-spacing:0.2px}
.event-meta{margin:6px 0 0;color:#e0e7ff}
.event-sub{margin:8px 0 0;color:#dbeafe;font-size:0.95rem}
.search-card{background:linear-gradient(180deg,rgba(255,255,255,0.03),rgba(255,255,255,0.01));padding:18px;border-radius:14px;box-shadow:0 6px 18px rgba(0,0,0,0.45)}
.search-row{display:flex;gap:12px;margin-bottom:12px}
.search-box{display:flex;align-items:center;background:rgba(255,255,255,0.03);padding:8px 12px;border-radius:12px;flex:1}
.search-icon{color:var(--accent);margin-right:8px;opacity:0.95}
input#searchInput{flex:1;padding:10px;background:transparent;border:0;color:#eef4ff;font-size:1rem;outline:none}
.results-count{margin:8px 0 12px;color:var(--muted)}
table.results{width:100%;border-collapse:collapse;background:transparent;border-radius:8px;overflow:hidden}
table.results thead{background:transparent}
table.results th, table.results td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,0.04);text-align:left;color:#eaf2ff}
table.results tbody tr{transition:none;cursor:default}
table.results tbody tr:hover{transform:none;background:transparent;box-shadow:none}
table.results td.email-cell{color:#bfe9e0}
table.results td.email-cell{user-select:none;-webkit-user-select:none}
.toast{position:fixed;right:20px;bottom:24px;background:#0b1220;color:#e6fff6;padding:10px 14px;border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,0.6);opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translateY(0)}

/* Responsive: convert table rows into card-like blocks on small screens */
@media (max-width: 640px) {
	body{padding:18px}
	.hero{padding:16px}
	.hero-inner{flex-direction:column;align-items:flex-start}
	#eventLogo{width:56px;height:56px;margin-bottom:8px}
	.event-title{font-size:1.25rem}
	.search-card{padding:12px}
	.search-box{padding:8px}
	input#searchInput{font-size:15px}

	table.results thead{display:none}
	table.results, table.results tbody, table.results tr, table.results td{display:block;width:100%}
	table.results tr{margin-bottom:12px;padding:12px;border-radius:10px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));box-shadow:0 6px 18px rgba(0,0,0,0.45)}
	table.results td{padding:6px 0;border-bottom:none;display:flex;justify-content:space-between;align-items:center}
	table.results td::before{content:attr(data-label);color:var(--muted);font-size:0.85rem;margin-right:8px}
	.email-cell{word-break:break-all}
}

/* Certificate Download Button */
.btn-cert{background:rgba(255,255,255,0.08);color:#94a3b8;border:1px solid rgba(255,255,255,0.12);padding:6px 12px;border-radius:6px;font-size:0.8rem;font-weight:500;cursor:pointer;transition:background 0.15s,color 0.15s,border-color 0.15s}
.btn-cert:hover{background:rgba(255,255,255,0.12);color:#e2e8f0;border-color:rgba(255,255,255,0.2)}
.btn-cert:disabled{opacity:0.4;cursor:not-allowed}
.btn-cert svg{vertical-align:middle;margin-right:4px}

/* Pass Verification Button */
.btn-pass{background:rgba(94,234,212,0.1);color:#5eead4;border:1px solid rgba(94,234,212,0.2);padding:6px 12px;border-radius:6px;font-size:0.8rem;font-weight:500;cursor:pointer;transition:background 0.15s,color 0.15s,border-color 0.15s;margin-right:8px}
.btn-pass:hover{background:rgba(94,234,212,0.2);color:#99f6e4;border-color:rgba(94,234,212,0.4)}
.btn-pass svg{vertical-align:middle;margin-right:4px}

/* Actions Cell */
.actions-cell{white-space:nowrap}

/* Modal Close Button for Pass Modal */
.modal-close-pass{position:absolute;top:12px;right:14px;background:none;border:none;color:#94a3b8;font-size:1.6rem;cursor:pointer;line-height:1}
.modal-close-pass:hover{color:#fff}

/* Modal Styles */
.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity 0.25s,visibility 0.25s}
.modal[aria-hidden="false"]{opacity:1;visibility:visible}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px)}
.modal-content{position:relative;background:linear-gradient(180deg,#1e293b,#0f172a);padding:28px 32px;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,0.6);max-width:420px;width:90%;text-align:center;border:1px solid rgba(255,255,255,0.08)}
.modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:#94a3b8;font-size:1.6rem;cursor:pointer;line-height:1}
.modal-close:hover{color:#fff}
.modal-icon{font-size:3rem;margin-bottom:12px}
.modal-content h2{margin:0 0 12px;color:#fff;font-size:1.4rem}
.modal-info{margin:0 0 8px;color:#e2e8f0}
.masked-email{color:#5eead4;font-family:monospace}
.modal-desc{margin:0 0 16px;color:#94a3b8;font-size:0.92rem}
.modal-content input[type="email"]{width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,0.1);border-radius:10px;background:rgba(255,255,255,0.05);color:#fff;font-size:1rem;margin-bottom:12px}
.modal-content input[type="email"]:focus{outline:none;border-color:#7c5cff}
.verify-error{color:#f87171;font-size:0.88rem;margin:0 0 12px;min-height:1.2em}
.verify-error[aria-hidden="true"]{visibility:hidden}
.btn-primary{background:linear-gradient(135deg,#7c5cff,#a78bfa);color:#fff;border:none;padding:12px 24px;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform 0.15s,box-shadow 0.15s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(124,92,255,0.5)}
.btn-primary:disabled{opacity:0.6;cursor:not-allowed;transform:none}

/* Pass Details Card (shown after verification) */
.pass-details{margin-top:20px}
.pass-details[aria-hidden="true"]{display:none}
.pass-card{background:linear-gradient(135deg,rgba(94,234,212,0.1),rgba(124,92,255,0.1));border:1px solid rgba(94,234,212,0.3);border-radius:12px;padding:16px 20px;text-align:left}
.pass-header{color:#5eead4;font-size:1.2rem;font-weight:600;margin-bottom:12px;text-align:center}
.pass-info p{margin:8px 0;color:#e2e8f0;font-size:0.95rem}
.pass-info strong{color:#94a3b8;min-width:80px;display:inline-block}

/* Pass Image Container */
.pass-image-container{margin-top:16px;text-align:center}
.pass-image-container[aria-hidden="true"]{display:none}
.pass-image{max-width:100%;max-height:300px;border-radius:8px;border:1px solid rgba(94,234,212,0.3);margin-bottom:12px;box-shadow:0 4px 12px rgba(0,0,0,0.3)}
.btn-download-pass{display:inline-flex;align-items:center;gap:6px;margin-top:8px}

