:root{--primary: #1a5276;--primary-light: #2980b9;--success: #27ae60;--danger: #e74c3c;--warning: #f39c12;--bg: #f8f9fa;--surface: #ffffff;--text: #2c3e50;--text-light: #7f8c8d;--border: #e0e0e0;--radius: 6px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 6px rgba(0, 0, 0, .1), 0 2px 4px rgba(0, 0, 0, .06)}*,*:before,*:after{box-sizing:border-box}html{line-height:1.5;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:16px;color:var(--text);background-color:var(--bg);min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.2}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{margin:0 0 1rem}a{color:var(--primary-light);text-decoration:none}a:hover{text-decoration:underline}img,svg,video,canvas{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}@media(min-width:768px){.container{padding:0 2rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-weight:500;font-size:.875rem;line-height:1.25rem;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:background-color .15s,border-color .15s,opacity .15s;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn--primary{background-color:var(--primary);color:#fff}.btn--primary:hover{background-color:var(--primary-light)}.btn--success{background-color:var(--success);color:#fff}.btn--success:hover{background-color:#219a52}.btn--danger{background-color:var(--danger);color:#fff}.btn--danger:hover{background-color:#c0392b}.btn--outline{background-color:transparent;border-color:var(--border);color:var(--text)}.btn--outline:hover{background-color:var(--bg)}.btn--sm{padding:.25rem .75rem;font-size:.75rem}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.card__header{padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.card__header h2,.card__header h3{font-size:1.125rem}.card__body{padding:1.25rem}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.375rem}.form-input{display:block;width:100%;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;color:var(--text);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.form-input:focus{outline:none;border-color:var(--primary-light);box-shadow:0 0 0 3px #2980b926}.form-input--error{border-color:var(--danger)}.form-error{font-size:.75rem;color:var(--danger);margin-top:.25rem}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{text-align:left;padding:.625rem .75rem;font-weight:600;color:var(--text-light);border-bottom:2px solid var(--border);white-space:nowrap}tbody td{padding:.625rem .75rem;border-bottom:1px solid var(--border)}tbody tr:hover{background-color:var(--bg)}.badge{display:inline-block;padding:.125rem .5rem;font-size:.75rem;font-weight:500;border-radius:9999px;text-transform:capitalize;white-space:nowrap}.badge--issued{background-color:#27ae601a;color:var(--success)}.badge--redeemed{background-color:#2980b91a;color:var(--primary-light)}.badge--expired{background-color:#e74c3c1a;color:var(--danger)}.spinner{display:inline-block;width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.text-center{text-align:center}.text-light{color:var(--text-light)}.w-full{width:100%}.min-h-screen{min-height:100vh}.bg-bg-secondary{background-color:#f1f3f5}.border-r{border-right:1px solid var(--border)}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.overflow-x-auto{overflow-x:auto}.cursor-pointer{cursor:pointer}.hover\:shadow-md:hover{box-shadow:var(--shadow-lg)}.transition-shadow{transition:box-shadow .15s}.space-y-1>*+*{margin-top:.25rem}.pt-3{padding-top:.75rem}.border-t{border-top:1px solid var(--border)}.justify-end{justify-content:flex-end}.items-start{align-items:flex-start}.font-bold{font-weight:700}.text-sm{font-size:.875rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.relative{position:relative}.absolute{position:absolute}.top-2{top:.5rem}.right-2{right:.5rem}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.w-56{width:14rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.rounded-md{border-radius:.375rem}.transition-colors{transition:color .15s,background-color .15s}.font-semibold{font-weight:600}.flex-1{flex:1 1 0%}.p-4{padding:1rem}.p-6{padding:1.5rem}.block{display:block}.text-white{color:#fff}.rounded-full{border-radius:9999px}.bg-green-100{background-color:#d1fae5}.text-green-700{color:#065f46}.bg-gray-100{background-color:#f3f4f6}.text-gray-500{color:#6b7280}.bg-red-50{background-color:#fef2f2}.border-red-200{border-color:#fecaca}.text-red-700{color:#b91c1c}.text-xs{font-size:.75rem}.leading-relaxed{line-height:1.625}.text-text-light{color:var(--text-light)}.text-danger{color:var(--danger)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-text{color:var(--text)}.border-border{border-color:var(--border)}.hover\:text-text:hover{color:var(--text)}.hover\:text-primary:hover{color:var(--primary)}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.text-lg{font-size:1.125rem}.fixed{position:fixed}.inset-0{top:0;right:0;bottom:0;left:0}.z-50{z-index:50}.transition-transform{transition:transform .15s}.rotate-180{transform:rotate(180deg)}
