:root{--indigo:#4f46e5;--indigo-dark:#3730a3;--indigo-light:#eef2ff;--text:#1e1b4b;--muted:#6b7280;--bg:#f8fafc;--card:#fff;--border:#e5e7eb;--green:#059669;--red:#dc2626;--amber:#d97706}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}a{color:var(--indigo);text-decoration:none}.container{max-width:640px;margin:0 auto;padding:16px}.container-wide{max-width:1000px;margin:0 auto;padding:16px}.topbar{background:var(--card);border-bottom:1px solid var(--border);z-index:10;position:-webkit-sticky;position:sticky;top:0}.topbar-inner{flex-wrap:wrap;align-items:center;gap:16px;max-width:1000px;margin:0 auto;padding:12px 16px;display:flex}.logo{color:var(--indigo);font-size:20px;font-weight:800}.nav{flex-wrap:wrap;gap:12px;font-size:14px;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:6px 8px}.nav a:hover{background:var(--indigo-light);color:var(--indigo)}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;margin-bottom:12px;padding:16px}.card-link{transition:box-shadow .15s;display:block}.card-link:hover{box-shadow:0 4px 14px rgba(79,70,229,.12)}.btn{background:var(--indigo);color:#fff;cursor:pointer;text-align:center;border:none;border-radius:12px;justify-content:center;align-items:center;min-height:48px;padding:14px 22px;font-size:16px;font-weight:600;display:inline-flex}.btn:hover{background:var(--indigo-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-outline{color:var(--indigo);border:2px solid var(--indigo);background:0 0}.btn-outline:hover{background:var(--indigo-light)}.btn-danger{background:var(--red)}.btn-danger:hover{background:#991b1b}.btn-green{background:var(--green)}.btn-green:hover{background:#047857}.btn-amber{background:var(--amber)}.btn-block{width:100%}.btn-big{min-height:64px;padding:20px 32px;font-size:22px}.btn-sm{border-radius:8px;min-height:36px;padding:8px 14px;font-size:14px}.input,select.input,textarea.input{border:1.5px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:12px;padding:13px 14px;font-size:16px}.input:focus{border-color:var(--indigo);outline:none}.label{margin:12px 0 6px;font-size:14px;font-weight:600;display:block}.h1{margin:8px 0 16px;font-size:26px;font-weight:800}.h2{margin:8px 0 10px;font-size:19px;font-weight:700}.muted{color:var(--muted);font-size:14px}.error{color:var(--red);margin:8px 0;font-size:14px}.success{color:var(--green);margin:8px 0;font-size:14px}.badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.badge-green{color:#065f46;background:#d1fae5}.badge-amber{color:#92400e;background:#fef3c7}.badge-red{color:#991b1b;background:#fee2e2}.badge-indigo{background:var(--indigo-light);color:var(--indigo-dark)}.badge-gray{color:#4b5563;background:#f3f4f6}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:10px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:560px){.grid2{grid-template-columns:1fr}}.ticket-code{color:var(--indigo);text-align:center;letter-spacing:2px;font-size:64px;font-weight:900}.big-num{font-size:34px;font-weight:800}.empty{text-align:center;color:var(--muted);padding:40px 16px}.spinner{border:3px solid var(--border);border-top-color:var(--indigo);border-radius:50%;width:28px;height:28px;margin:32px auto;animation:.8s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.cat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.cat-btn{background:var(--card);border:1px solid var(--border);text-align:center;color:var(--text);cursor:pointer;border-radius:12px;padding:16px 12px;font-size:15px;font-weight:600}.cat-btn:hover{border-color:var(--indigo);background:var(--indigo-light)}table.tbl{border-collapse:collapse;width:100%;font-size:14px}table.tbl th,table.tbl td{text-align:left;border-bottom:1px solid var(--border);padding:10px 8px}table.tbl th{color:var(--muted);text-transform:uppercase;font-size:12px}.bar-row{align-items:flex-end;gap:4px;height:120px;display:flex}.bar{background:var(--indigo);border-radius:4px 4px 0 0;flex:1;min-height:2px}
