@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:wght@300;400;500;600&display=swap";:root{--color-bg:#080808;--color-surface:#111;--color-surface-2:#1a1a1a;--color-surface-3:#222;--color-gold:#c9a84c;--color-gold-light:#e8c97a;--color-gold-dark:#9a7a30;--color-gold-glow:#c9a84c2e;--color-gold-border:#c9a84c40;--color-purple:#7c3aed;--color-purple-light:#9d5bf4;--color-purple-glow:#7c3aed33;--color-purple-border:#7c3aed40;--color-text:#f0ede8;--color-text-muted:#f0ede88c;--color-text-faint:#f0ede84d;--color-success:#4ade80;--color-success-glow:#4ade802e;--color-success-border:#4ade8047;--color-error:#f87171;--color-error-glow:#f871712e;--color-error-border:#f8717147;--color-warning:#fbbf24;--color-warning-glow:#fbbf242e;--color-warning-border:#fbbf2447;--color-border:#c9a84c2e;--color-border-subtle:#ffffff0f;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--font-display:"Playfair Display", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-xl:32px;--radius-full:9999px;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #0009;--glow-gold:0 0 40px var(--color-gold-glow);--glow-gold-sm:0 0 20px var(--color-gold-glow);--glow-success:0 0 32px var(--color-success-glow);--glow-error:0 0 32px var(--color-error-glow);--glow-warning:0 0 32px var(--color-warning-glow);--ease-cinematic:cubic-bezier(.16, 1, .3, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--transition-base:.35s var(--ease-smooth)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100dvh;font-weight:400;line-height:1.6;overflow-x:hidden}img,video{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}body:after{content:"";pointer-events:none;z-index:9999;opacity:.45;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");position:fixed;inset:0}.app-root{width:100%;max-width:480px;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,24px);margin:0 auto}.scanner-header{padding:var(--space-md) var(--space-md) var(--space-sm);border-bottom:1px solid var(--color-border-subtle);z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#080808eb;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.scanner-header__left{flex-direction:column;gap:2px;display:flex}.scanner-header__title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-gold-light);letter-spacing:-.01em;font-weight:700;line-height:1.1}.scanner-header__event{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.08em}.scanner-header__badge{letter-spacing:.12em;text-transform:uppercase;border-radius:var(--radius-full);border:1px solid var(--color-warning-border);background:var(--color-warning-glow);color:var(--color-warning);padding:4px 10px;font-size:10px;font-weight:600}.scanner-page{padding:var(--space-md);gap:var(--space-lg);flex-direction:column;display:flex}.section-title{text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-faint);margin-bottom:var(--space-sm);font-size:10px;font-weight:600}.scanner-panel{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);overflow:hidden}.qr-viewfinder{aspect-ratio:1;background:#0a0a0a;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.qr-viewfinder__bg{background:radial-gradient(#7c3aed14 0%,#0000 70%);position:absolute;inset:0}.qr-viewfinder__frame{aspect-ratio:1;width:60%;position:relative}.qr-viewfinder__frame:before,.qr-viewfinder__frame:after{content:"";width:24px;height:24px;position:absolute}.qr-viewfinder__frame:before{border-top:2px solid var(--color-gold);border-left:2px solid var(--color-gold);border-radius:2px 0 0;top:0;left:0}.qr-viewfinder__frame:after{border-top:2px solid var(--color-gold);border-right:2px solid var(--color-gold);border-radius:0 2px 0 0;top:0;right:0}.qr-viewfinder__corner-bl,.qr-viewfinder__corner-br{width:24px;height:24px;position:absolute;bottom:0}.qr-viewfinder__corner-bl{border-bottom:2px solid var(--color-gold);border-left:2px solid var(--color-gold);border-radius:0 0 0 2px;left:0}.qr-viewfinder__corner-br{border-bottom:2px solid var(--color-gold);border-right:2px solid var(--color-gold);border-radius:0 0 2px;right:0}.qr-viewfinder__scan-line{background:linear-gradient(90deg, transparent, var(--color-gold), transparent);height:2px;box-shadow:0 0 8px var(--color-gold);animation:2.2s ease-in-out infinite scanLine;position:absolute;left:0;right:0}@keyframes scanLine{0%{opacity:1;top:5%}48%{opacity:1;top:95%}50%{opacity:0;top:95%}52%{opacity:0;top:5%}54%{opacity:1;top:5%}to{opacity:1;top:95%}}.qr-viewfinder__label{bottom:var(--space-md);color:var(--color-text-faint);letter-spacing:.1em;text-transform:uppercase;text-align:center;font-size:11px;position:absolute}.scanner-input-section{padding:var(--space-md);gap:var(--space-sm);border-top:1px solid var(--color-border-subtle);flex-direction:column;display:flex}.scanner-input-row{gap:var(--space-sm);display:flex}.scanner-input{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;padding:12px var(--space-md);transition:var(--transition-base);outline:none;flex:1;min-height:48px}.scanner-input::placeholder{color:var(--color-text-faint);text-transform:none;letter-spacing:0;font-family:var(--font-body)}.scanner-input:focus{border-color:var(--color-gold-border);box-shadow:0 0 0 3px var(--color-gold-glow)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:13px var(--space-md);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:.04em;transition:var(--transition-base);white-space:nowrap;-webkit-tap-highlight-color:transparent;min-height:48px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:disabled{opacity:.38;cursor:not-allowed}.btn-full{width:100%}.btn-sm{padding:9px var(--space-md);min-height:40px;font-size:var(--text-xs)}.btn-primary{background:linear-gradient(135deg, var(--color-gold-dark), var(--color-gold-light));color:#080808;box-shadow:var(--glow-gold-sm)}.btn-primary:hover:not(:disabled){box-shadow:var(--glow-gold);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.985)}.btn-secondary{color:var(--color-gold);border:1px solid var(--color-gold-border);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--color-gold-glow);border-color:var(--color-gold)}.btn-demo{color:var(--color-purple-light);border:1px solid var(--color-purple-border);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;background:#7c3aed1f}.btn-demo:hover:not(:disabled){border-color:var(--color-purple-light);background:#7c3aed33}.btn-success{color:var(--color-success);border:1px solid var(--color-success-border);background:#4ade801f}.btn-success:hover:not(:disabled){box-shadow:var(--glow-success);background:#4ade8033}.btn-danger{color:var(--color-error);border:1px solid var(--color-error-border);background:#f871711a}.btn-danger:hover:not(:disabled){box-shadow:var(--glow-error);background:#f871712e}.btn-warning{color:var(--color-warning);border:1px solid var(--color-warning-border);background:#fbbf241a}.btn-warning:hover:not(:disabled){background:#fbbf242e}.result-card{border-radius:var(--radius-lg);padding:var(--space-lg);gap:var(--space-md);animation:slideUp .4s var(--ease-cinematic) both;border:1px solid #0000;flex-direction:column;display:flex}.result-card--valid{border-color:var(--color-success-border);box-shadow:var(--glow-success);background:#4ade800d}.result-card--used{border-color:var(--color-warning-border);box-shadow:var(--glow-warning);background:#fbbf240d}.result-card--invalid{border-color:var(--color-error-border);box-shadow:var(--glow-error);background:#f871710d}.result-card--marked{border-color:var(--color-gold-border);box-shadow:var(--glow-gold-sm);background:#c9a84c0d}.result-card__status{align-items:center;gap:var(--space-sm);display:flex}.result-card__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.result-card__icon--valid{background:var(--color-success-glow);color:var(--color-success)}.result-card__icon--used{background:var(--color-warning-glow);color:var(--color-warning)}.result-card__icon--invalid{background:var(--color-error-glow);color:var(--color-error)}.result-card__icon--marked{background:var(--color-gold-glow);color:var(--color-gold-light)}.result-card__status-label{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;line-height:1.1}.result-card__status-label--valid{color:var(--color-success)}.result-card__status-label--used{color:var(--color-warning)}.result-card__status-label--invalid{color:var(--color-error)}.result-card__status-label--marked{color:var(--color-gold-light)}.result-card__details{gap:var(--space-xs);flex-direction:column;display:flex}.result-card__row{align-items:baseline;gap:var(--space-sm);display:flex}.result-card__label{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-faint);flex-shrink:0;min-width:80px;font-weight:500}.result-card__value{font-size:var(--text-sm);color:var(--color-text);font-weight:600}.result-card__code{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;color:var(--color-text-muted)}.result-card__message{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.55}.result-card__actions{gap:var(--space-sm);flex-direction:column;display:flex}.metrics-grid{gap:var(--space-sm);grid-template-columns:1fr 1fr;display:grid}.metric-card{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-md);gap:var(--space-xs);flex-direction:column;display:flex}.metric-card__value{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;line-height:1}.metric-card__label{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-faint);font-weight:500}.metric-card--registered .metric-card__value{color:var(--color-text)}.metric-card--confirmed .metric-card__value{color:var(--color-success)}.metric-card--pending .metric-card__value{color:var(--color-gold)}.metric-card--invalid .metric-card__value{color:var(--color-error)}.history-list{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);overflow:hidden}.history-empty{padding:var(--space-xl) var(--space-md);text-align:center;font-size:var(--text-sm);color:var(--color-text-faint);font-style:italic}.history-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-subtle);animation:slideIn .35s var(--ease-cinematic) both;display:flex}.history-item:last-child{border-bottom:none}.history-item__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.history-item__dot--valid{background:var(--color-success);box-shadow:0 0 6px var(--color-success-glow)}.history-item__dot--used{background:var(--color-warning);box-shadow:0 0 6px var(--color-warning-glow)}.history-item__dot--invalid{background:var(--color-error);box-shadow:0 0 6px var(--color-error-glow)}.history-item__dot--marked{background:var(--color-gold);box-shadow:0 0 6px var(--color-gold-glow)}.history-item__body{flex:1;min-width:0}.history-item__code{font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.history-item__name{font-size:var(--text-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.history-item__outcome{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:600}.history-item__outcome--valid{color:var(--color-success)}.history-item__outcome--used{color:var(--color-warning)}.history-item__outcome--invalid{color:var(--color-error)}.history-item__outcome--marked{color:var(--color-gold)}.history-item__time{color:var(--color-text-faint);white-space:nowrap;font-size:10px}.contact-row{gap:var(--space-sm);grid-template-columns:1fr 1fr;display:grid}.contact-btn{justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:.04em;transition:var(--transition-base);font-weight:500;text-decoration:none;display:flex}.contact-btn:hover{border-color:var(--color-gold-border);color:var(--color-text);background:var(--color-surface-2)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.divider-gold{background:linear-gradient(90deg, transparent, var(--color-gold), transparent);width:40px;height:1px;margin:var(--space-sm) auto}@media (width>=520px){.app-root{padding-top:var(--space-md);border-left:1px solid var(--color-border-subtle);border-right:1px solid var(--color-border-subtle)}}@media (prefers-reduced-motion:reduce){.qr-viewfinder__scan-line,.result-card,.history-item{animation:none}}
