@import "https://fonts.googleapis.com/css2?family=Urbanist:wght@300;400;500;600;700;800&display=swap";:root{--font-sans:"Urbanist", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--accent:#ff7e00;--accent-hover:#e67200;--accent-glow:#ff7e0040;--radius-sm:8px;--radius-md:12px;--radius-lg:24px;--radius-pill:9999px;--transition-fast:.15s ease;--transition-smooth:.4s cubic-bezier(.16, 1, .3, 1);--bg-base:#fff;--bg-surface:#fff;--bg-elevated:#fff;--bg-element:#f8f9fa;--text-main:#111827;--text-muted:#6b7280;--text-inverse:#fff;--border-subtle:#0000000f;--border-strong:#00000026;--shadow-sm:0 2px 8px -2px #0000000d;--shadow-lg:0 20px 40px -12px #00000014, 0 0 0 1px #00000005;--shadow-glow:0 8px 24px -8px var(--accent-glow);--status-valid-bg:#ecfdf3;--status-valid-text:#027a48;--status-invalid-bg:#fef3f2;--status-invalid-text:#b42318}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-base);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}a{color:var(--accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,select,textarea{font-family:inherit}code{font-family:var(--font-mono);background:var(--bg-element);color:var(--text-main);border-radius:6px;padding:.2em .45em;font-size:.92em}.app-wrapper{background-color:var(--bg-base);flex-direction:column;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.main{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;padding:48px 24px;display:flex}.card-wrapper{width:100%;max-width:640px}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;width:100%;display:flex;overflow:hidden}.card__header{border-bottom:1px solid var(--border-subtle);background:var(--bg-base);flex-direction:column;align-items:center;padding:40px 48px 24px;display:flex}.card__content{flex:1;padding:48px}.card__footer{text-align:center;background:var(--bg-element);border-top:1px solid var(--border-subtle);color:var(--text-muted);padding:24px;font-size:.85rem;font-weight:500}.brand-logo{width:auto;height:54px;margin-bottom:8px}.card__subtitle{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.85rem;font-weight:600}.card__eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;font-size:.85rem;font-weight:700;display:inline-block}.card__content h1{letter-spacing:-.03em;margin-bottom:16px;font-size:clamp(2rem,5vw,2.5rem);font-weight:800;line-height:1.1}.card__content h2{letter-spacing:-.02em;margin-bottom:24px;font-size:1.5rem;font-weight:700}.lead{color:var(--text-muted);margin-bottom:24px;font-size:1.125rem;line-height:1.7}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:1rem;font-weight:700;display:inline-flex}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-2px)}.btn--secondary{background:var(--bg-element);color:var(--text-main);border:1px solid var(--border-subtle)}.btn--secondary:hover:not(:disabled){border-color:var(--border-strong);background:#f1f3f5}.btn--danger{color:var(--status-invalid-text);border:1px solid var(--border-subtle);background:0 0;padding:8px 16px;font-size:.9rem}.btn--danger:hover:not(:disabled){background:var(--status-invalid-bg);border-color:#0000}.btn:disabled{opacity:.5;cursor:not-allowed}.field-group{margin-bottom:20px}.field-label{color:var(--text-main);margin-bottom:8px;font-size:.95rem;font-weight:600;display:block}.field-input{border-radius:var(--radius-md);background:var(--bg-element);border:1px solid var(--border-subtle);width:100%;color:var(--text-main);transition:all var(--transition-fast);padding:14px 16px;font-size:1rem}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow);background:var(--bg-elevated);outline:none}.badge{border-radius:var(--radius-pill);letter-spacing:.05em;text-transform:uppercase;align-items:center;margin-bottom:24px;padding:8px 16px;font-size:.85rem;font-weight:700;display:inline-flex}.badge.valid{background:var(--status-valid-bg);color:var(--status-valid-text)}.badge.invalid,.badge.locked{background:var(--status-invalid-bg);color:var(--status-invalid-text)}.serial-box{background:var(--bg-element);border:1px dashed var(--border-strong);border-radius:var(--radius-md);text-align:center;margin:32px 0;padding:28px 24px}.serial-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;margin-bottom:12px;font-size:.85rem;font-weight:700;display:block}.serial-value{font-family:var(--font-mono);color:var(--accent);letter-spacing:.05em;font-size:clamp(1.75rem,5vw,2.5rem);font-weight:800;display:block}.feature-list{gap:16px;margin-top:32px;list-style:none;display:grid}.feature-list li{background:var(--bg-element);border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-main);align-items:center;gap:16px;padding:16px 24px;font-size:1.05rem;font-weight:600;display:flex}.feature-list li:before{content:"✓";background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.8rem;display:flex}.admin-toolbar{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:flex-end;margin-bottom:32px;padding-bottom:24px;display:flex}.admin-section{background:var(--bg-element);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:24px;padding:32px}.admin-form.inline{align-items:flex-end;gap:16px;display:flex}.admin-form.inline .field-group{flex:1;margin-bottom:0}.upload-hint{color:var(--text-muted);margin-bottom:16px;font-size:.95rem}.file-input{width:100%;color:var(--text-main);padding:12px 0;display:block}.file-input::file-selector-button{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text-main);cursor:pointer;transition:all var(--transition-fast);margin-right:16px;padding:10px 20px;font-family:inherit;font-weight:700}.file-input::file-selector-button:hover{border-color:var(--accent);color:var(--accent)}.table-wrap{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated);margin-top:24px;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;min-width:600px}th,td{border-bottom:1px solid var(--border-subtle);padding:18px 24px}th{background:var(--bg-element);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;font-weight:700}tr:last-child td{border-bottom:none}td{font-size:1rem;font-weight:500}td:first-child{color:var(--text-muted);width:80px}.notice{color:var(--text-muted);margin-bottom:16px;font-size:1rem}.contact{color:var(--text-main);border-top:1px solid var(--border-subtle);margin-top:24px;padding-top:24px;font-size:1rem}.spinner-block{flex-direction:column;align-items:center;gap:16px;padding:64px 0;display:flex}.spinner{border:4px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:1s cubic-bezier(.6,.2,.4,.8) infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-element);padding:64px 24px;font-weight:600}.status{margin-top:12px;font-size:.95rem;font-weight:600}.status.error{color:var(--status-invalid-text)}.status.success{color:var(--status-valid-text)}.status.loading{color:var(--text-muted)}@media (width<=640px){.main{padding:24px 16px}.card__header,.card__content{padding:32px 24px}.admin-toolbar{flex-direction:column;align-items:flex-start;gap:20px}.admin-form.inline{flex-direction:column;align-items:stretch}.admin-form.inline .btn{width:100%}}.admin-content{max-width:800px;margin:0 auto}.login-wrapper{max-width:400px;margin:0 auto}
