@import"https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700,900&f[]=clash-display@600,700&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-void: #08060e;--bg-deep: #0d0a18;--bg-surface: rgba(22, 17, 40, .6);--bg-card: rgba(28, 22, 54, .55);--bg-card-solid: #1c1636;--bg-elevated: rgba(37, 30, 72, .5);--glass-border: rgba(139, 92, 246, .12);--glass-border-hover: rgba(139, 92, 246, .28);--glass-shine: rgba(255, 255, 255, .03);--text-primary: #ede9f6;--text-secondary: #a89cc8;--text-muted: #645a80;--accent: #a855f7;--accent-bright: #c084fc;--accent-hot: #d946ef;--accent-dim: #7c3aed;--gradient-brand: linear-gradient(135deg, #d946ef 0%, #8b5cf6 50%, #6d28d9 100%);--gradient-brand-subtle: linear-gradient(135deg, rgba(217, 70, 239, .15), rgba(109, 40, 217, .15));--success: #34d399;--success-bg: rgba(52, 211, 153, .08);--success-border: rgba(52, 211, 153, .2);--error: #fb7185;--error-bg: rgba(251, 113, 133, .08);--error-border: rgba(251, 113, 133, .2);--warning: #fbbf24;--radius: 14px;--radius-sm: 10px;--radius-xs: 6px;--shadow-ambient: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 60px -12px rgba(139, 92, 246, .15);--backdrop: blur(20px) saturate(1.4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{font-family:Satoshi,-apple-system,sans-serif;background:var(--bg-void);color:var(--text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}.login-wrapper{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem;position:relative;background:radial-gradient(ellipse 60% 45% at 50% 40%,rgba(109,40,217,.1),transparent),var(--bg-void)}.login-card{position:relative;z-index:1;background:var(--bg-card);backdrop-filter:var(--backdrop);-webkit-backdrop-filter:var(--backdrop);border:1px solid var(--glass-border);border-radius:20px;padding:3rem 2.5rem 2.5rem;width:100%;max-width:400px;text-align:center;box-shadow:var(--shadow-ambient),var(--shadow-glow);animation:cardEnter .6s cubic-bezier(.16,1,.3,1) both}.login-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;padding:1px;background:linear-gradient(160deg,rgba(255,255,255,.08),transparent 40%,transparent 60%,rgba(139,92,246,.1));mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;-webkit-mask-composite:xor;pointer-events:none}@keyframes cardEnter{0%{opacity:0;transform:translateY(24px) scale(.96)}}.login-logo{width:72px;height:72px;object-fit:contain;margin-bottom:1.5rem;filter:drop-shadow(0 0 24px rgba(168,85,247,.35));animation:logoPulse 4s ease-in-out infinite}@keyframes logoPulse{0%,to{filter:drop-shadow(0 0 24px rgba(168,85,247,.35))}50%{filter:drop-shadow(0 0 32px rgba(217,70,239,.5))}}.login-title{font-family:Clash Display,Satoshi,sans-serif;font-size:1.35rem;font-weight:600;color:var(--text-primary);margin-bottom:.35rem;letter-spacing:-.02em}.login-subtitle{font-size:.88rem;color:var(--text-muted);margin-bottom:2rem;font-weight:400}.login-card .field-group{margin-bottom:1rem}.login-card .field-group input{text-align:center;font-size:1rem;padding:.85rem 1.25rem;letter-spacing:.15em;background:#0d0a18b3;border-color:#8b5cf626}.login-card .field-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #a855f71a,0 0 20px #a855f714}.login-card .field-group input::placeholder{letter-spacing:.05em}.login-btn{width:100%;justify-content:center;padding:.85rem!important;font-size:.95rem!important;margin-top:.5rem;border-radius:var(--radius)!important}.login-card .error-text{margin-bottom:.5rem;text-align:center}#root{max-width:940px;margin:0 auto;padding:0 1.25rem 3rem}body.app-loaded{background:radial-gradient(ellipse 70% 50% at 50% -10%,rgba(109,40,217,.08),transparent),radial-gradient(ellipse 50% 35% at 85% 100%,rgba(217,70,239,.04),transparent),var(--bg-void)}.header{display:flex;align-items:center;gap:1rem;padding:1.5rem 0 1.75rem;border-bottom:1px solid var(--glass-border);margin-bottom:1.75rem;animation:fadeDown .5s cubic-bezier(.16,1,.3,1) both}@keyframes fadeDown{0%{opacity:0;transform:translateY(-10px)}}.header-logo{height:34px;width:auto;opacity:.88;transition:opacity .3s}.header-logo:hover{opacity:1}.header-divider{width:1px;height:24px;background:linear-gradient(180deg,transparent,var(--glass-border-hover),transparent)}.header-title{font-family:Clash Display,Satoshi,sans-serif;font-size:1rem;font-weight:600;color:var(--text-secondary);letter-spacing:-.01em}.logout-btn{margin-left:auto;background:transparent;border:1px solid var(--glass-border);color:var(--text-muted);padding:.35rem .9rem;border-radius:var(--radius-sm);font-family:inherit;font-size:.78rem;font-weight:500;cursor:pointer;transition:all .25s;letter-spacing:.02em}.logout-btn:hover{color:var(--error);border-color:var(--error-border);background:var(--error-bg)}.tabs{display:flex;gap:2px;background:var(--bg-surface);backdrop-filter:var(--backdrop);-webkit-backdrop-filter:var(--backdrop);border:1px solid var(--glass-border);border-radius:var(--radius);padding:4px;margin-bottom:1.75rem;animation:fadeUp .4s cubic-bezier(.16,1,.3,1) .1s both}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}}.tabs button{flex:1;padding:.6rem 1.2rem;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:.88rem;font-weight:500;color:var(--text-muted);border-radius:var(--radius-sm);transition:all .25s}.tabs button:hover:not(.active){color:var(--text-secondary);background:#8b5cf60d}.tabs button.active{color:var(--text-primary);background:var(--bg-card-solid);box-shadow:0 2px 12px #00000040,inset 0 1px 0 var(--glass-shine)}.card{background:var(--bg-card);backdrop-filter:var(--backdrop);-webkit-backdrop-filter:var(--backdrop);border:1px solid var(--glass-border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem;box-shadow:var(--shadow-glow);transition:border-color .3s,box-shadow .3s;position:relative;animation:fadeUp .4s cubic-bezier(.16,1,.3,1) .15s both}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius);padding:1px;background:linear-gradient(160deg,var(--glass-shine),transparent 30%);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;-webkit-mask-composite:xor;pointer-events:none}.card:hover{border-color:var(--glass-border-hover)}.card-title{font-family:Clash Display,Satoshi,sans-serif;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-bright);margin-bottom:1.25rem;display:flex;align-items:center;gap:.6rem}.card-title:before{content:"";display:inline-block;width:3px;height:14px;background:var(--gradient-brand);border-radius:2px;box-shadow:0 0 8px #d946ef66}.field-group{margin-bottom:1.25rem}.field-group:last-child{margin-bottom:0}label{display:block;font-weight:500;font-size:.82rem;color:var(--text-secondary);margin-bottom:.45rem;letter-spacing:.015em}input[type=text],input[type=url],input[type=password],select{width:100%;padding:.7rem .9rem;background:#0d0a1880;border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.9rem;transition:all .25s;outline:none}input::placeholder{color:var(--text-muted)}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #a855f71a;background:#0d0a18b3}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a89cc8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.2rem}select option{background:var(--bg-card-solid);color:var(--text-primary)}.file-upload-zone{position:relative;border:1.5px dashed var(--glass-border-hover);border-radius:var(--radius);padding:2.25rem 1.5rem;text-align:center;cursor:pointer;transition:all .3s;background:var(--gradient-brand-subtle)}.file-upload-zone:hover{border-color:var(--accent);background:#8b5cf614;box-shadow:0 0 30px -8px #8b5cf61f}.file-upload-zone.has-file{border-style:solid;border-color:var(--accent-dim);background:#7c3aed0f}.file-upload-zone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-upload-icon{font-size:2.2rem;margin-bottom:.6rem;display:block;filter:saturate(.8)}.file-upload-text{font-size:.88rem;color:var(--text-secondary)}.file-upload-text strong{color:var(--accent-bright);font-weight:600}.file-upload-hint{font-size:.75rem;color:var(--text-muted);margin-top:.35rem}.file-name{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--accent-bright);margin-top:.3rem}button.primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--gradient-brand);color:#fff;border:none;padding:.75rem 2rem;border-radius:var(--radius-sm);font-family:Satoshi,sans-serif;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 16px #8b5cf64d,inset 0 1px #ffffff26;letter-spacing:.01em;position:relative;overflow:hidden}button.primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 60%);pointer-events:none}button.primary:hover:not(:disabled){box-shadow:0 6px 28px #8b5cf673,inset 0 1px #fff3;transform:translateY(-2px)}button.primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #8b5cf64d}button.primary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none;transform:none}.table-wrapper{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:#0d0a184d}table{width:100%;border-collapse:collapse;font-size:.84rem}th{text-align:left;padding:.65rem .9rem;background:#0d0a1880;color:var(--text-muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--glass-border)}td{padding:.6rem .9rem;border-bottom:1px solid rgba(139,92,246,.06);color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:.8rem}tr:last-child td{border-bottom:none}tr{transition:background .15s}tr:hover td{background:#8b5cf60a}.progress-bar-wrapper{margin-bottom:.75rem}.progress-bar{width:100%;height:8px;background:#0d0a1899;border-radius:100px;overflow:hidden;border:1px solid var(--glass-border)}.progress-bar-fill{height:100%;background:var(--gradient-brand);border-radius:100px;transition:width .3s ease;position:relative;box-shadow:0 0 12px #a855f766}.progress-bar-fill.complete{background:linear-gradient(135deg,#34d399,#10b981);box-shadow:0 0 12px #34d39966}.progress-bar-fill.has-errors{background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 0 12px #fbbf2466}.progress-info{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.82rem}.progress-pct{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--accent-bright)}.progress-count{font-family:JetBrains Mono,monospace;color:var(--text-muted)}.progress-current{font-size:.82rem;color:var(--text-secondary);margin-top:.25rem}.progress-current strong{font-family:JetBrains Mono,monospace;color:var(--accent-bright)}.progress-summary{display:flex;align-items:center;gap:.6rem;margin-top:.5rem;font-size:.88rem;font-weight:600}.progress-success{color:var(--success)}.progress-divider,.progress-fail{color:var(--text-muted)}.progress-fail.has-fails{color:var(--error)}button.secondary{display:inline-flex;align-items:center;gap:.4rem;background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--glass-border);padding:.65rem 1.5rem;border-radius:var(--radius-sm);font-family:inherit;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s}button.secondary:hover{color:var(--error);border-color:var(--error-border);background:var(--error-bg)}.status-box{padding:1rem 1.25rem;border-radius:var(--radius);margin-top:1rem;font-size:.88rem;display:flex;flex-direction:column;gap:.3rem;animation:fadeUp .3s ease both}.status-box.success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success)}.status-box.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error)}.status-box strong{font-weight:700}.status-box p{opacity:.8;font-size:.82rem}.count-badge{display:inline-flex;align-items:center;gap:.5rem;margin-top:.85rem;padding:.4rem .9rem;background:#0d0a1880;border:1px solid var(--glass-border);border-radius:100px;font-size:.8rem;color:var(--text-secondary)}.count-badge strong{color:var(--accent-bright);font-family:JetBrains Mono,monospace;font-weight:600}.config-section{margin-bottom:1.5rem}.config-description{font-size:.8rem;color:var(--text-muted);margin-top:.85rem;line-height:1.6}.saved-toast{display:inline-flex;align-items:center;gap:.35rem;margin-left:.75rem;font-size:.82rem;font-weight:500;color:var(--success);animation:toastIn .35s cubic-bezier(.16,1,.3,1)}@keyframes toastIn{0%{opacity:0;transform:translate(-6px)}}.sending-indicator{display:inline-flex;align-items:center;gap:.6rem}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.15);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-text{color:var(--error);font-size:.8rem;margin-top:.45rem}.warning-bar{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;background:#fbbf240f;border:1px solid rgba(251,191,36,.15);border-radius:var(--radius-sm);font-size:.8rem;color:var(--warning);margin-bottom:1rem;animation:fadeUp .3s ease both}.action-bar{display:flex;align-items:center;gap:1rem;margin-top:1.25rem;animation:fadeUp .4s cubic-bezier(.16,1,.3,1) .2s both}@media (max-width: 600px){#root{padding:0 .75rem 2rem}.header{padding:1rem 0 1.25rem}.header-logo{height:28px}.card{padding:1.15rem}.file-upload-zone{padding:1.5rem 1rem}.login-card{padding:2rem 1.5rem}}
