@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";
:root{--bg-primary:#0a0a0f;--bg-secondary:#111118;--bg-card:#ffffff06;--bg-card-hover:#ffffff0d;--border-subtle:#ffffff0f;--border-hover:#ffffff1f;--text-primary:#f0f0f5;--text-secondary:#8b8b9e;--text-muted:#55556a;--accent:#6366f1;--accent-light:#818cf8;--accent-glow:#6366f11f;--success:#10b981;--success-glow:#10b9811f;--warning:#f59e0b;--warning-glow:#f59e0b1f;--error:#ef4444;--error-glow:#ef44441f;--radius-sm:8px;--radius-md:12px;--radius-lg:20px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(at 25% 0,#6366f112 0%,#0000 50%),radial-gradient(at 75% 100%,#10b9810a 0%,#0000 50%);position:fixed;inset:0}.dashboard{z-index:1;max-width:640px;margin:0 auto;padding:72px 24px 80px;position:relative}.dashboard-topbar{z-index:1;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:relative}.header-left{align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-icon{color:#fff;background:linear-gradient(135deg,#3b82f6,#9333ea);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;font-weight:800;display:flex}.brand-name{color:var(--text-primary);letter-spacing:-.02em;font-size:1.125rem;font-weight:700}.brand-name-accent{color:#3b82f6}.logout-btn{color:var(--text-secondary);gap:6px;font-size:.8125rem;transition:color .2s}.logout-btn:hover{color:var(--text-primary)}.dashboard-header{margin-bottom:40px}.dashboard-header h1{letter-spacing:-.03em;margin-bottom:4px;font-size:1.625rem;font-weight:700}.dashboard-header p{color:var(--text-secondary);font-size:.8125rem}.cards{flex-direction:column;gap:16px;display:flex}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(24px);padding:28px;transition:all .3s;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg,#0000,#ffffff0f,#0000);height:1px;position:absolute;top:0;left:0;right:0}.card-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:16px;font-size:.6875rem;font-weight:600}.estimate-row{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.estimate-row:last-child{margin-bottom:0}.estimate-label{color:var(--text-secondary);font-size:.8125rem}.estimate-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600}.estimate-total{border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:12px}.estimate-total .estimate-value{color:var(--accent-light);font-size:1.25rem;font-weight:700}.button-row{gap:10px;margin-top:20px;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-family:inherit;font-size:.8125rem;font-weight:600;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--accent),#4f46e5)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #6366f14d}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-subtle);background:#ffffff0a}.btn-ghost:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary);background:#ffffff14}.btn-danger{color:#fff;background:linear-gradient(135deg,var(--error),#dc2626);border:1px solid #ef44444d}.btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #ef44444d}.btn-danger:active:not(:disabled){transform:translateY(0)}.btn-icon{fill:currentColor;flex-shrink:0;width:16px;height:16px}.btn-icon-stroke{stroke:currentColor;fill:none;flex-shrink:0;width:16px;height:16px}.spinning{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-section{margin-top:4px}.progress-header{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.progress-count{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.5rem;font-weight:700}.progress-count span{color:var(--text-muted);font-size:1rem;font-weight:400}.progress-elapsed{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.progress-track{background:#ffffff0f;border-radius:100px;width:100%;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--accent),var(--accent-light));border-radius:100px;height:100%;transition:width .5s cubic-bezier(.16,1,.3,1);position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff3);border-radius:100px;width:40px;animation:1.5s ease-in-out infinite shimmer-bar;position:absolute;top:0;bottom:0;right:0}@keyframes shimmer-bar{0%,to{opacity:.3}50%{opacity:1}}.progress-percent{color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;margin-top:6px;font-size:.75rem}.status-indicator{border-radius:100px;align-items:center;gap:6px;padding:4px 12px;font-size:.75rem;font-weight:500;display:inline-flex}.status-indicator.running{background:var(--accent-glow);color:var(--accent-light)}.status-indicator.completed{background:var(--success-glow);color:var(--success)}.status-indicator.failed{background:var(--error-glow);color:var(--error)}.status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.status-indicator.running .status-dot{animation:1.5s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.completed-stats{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px;margin-bottom:20px;display:grid}.stat{text-align:center}.stat-value{font-variant-numeric:tabular-nums;margin-bottom:2px;font-size:1.25rem;font-weight:700}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.6875rem}.feedback{border-radius:var(--radius-sm);align-items:center;gap:8px;margin-top:12px;padding:10px 14px;font-size:.8125rem;font-weight:500;animation:.3s slide-in;display:flex}.feedback.error{color:var(--error);background:var(--error-glow)}@keyframes slide-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff08,#ffffff12,#ffffff08) 0 0/200% 100%;animation:1.8s ease-in-out infinite shimmer}.skeleton-line{height:14px;margin-bottom:10px}.skeleton-line.w60{width:60%}.skeleton-line.w40{width:40%}.skeleton-line.w80{width:80%}.skeleton-line.w100{width:100%}.skeleton-btn{border-radius:var(--radius-md);width:180px;height:44px;margin-top:20px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.dialog::backdrop{-webkit-backdrop-filter:blur(4px);background:#0009;animation:.15s fade-in}.dialog{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:calc(100% - 48px);max-width:400px;margin:auto;padding:28px;animation:.2s cubic-bezier(.16,1,.3,1) dialog-enter;position:fixed;overflow:hidden}.dialog:before{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);height:1px;position:absolute;top:0;left:0;right:0}.dialog-title{letter-spacing:-.01em;margin-bottom:8px;font-size:1rem;font-weight:600}.dialog-message{color:var(--text-secondary);margin-bottom:24px;font-size:.8125rem;line-height:1.5}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-enter{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.history-section{margin-top:40px}.history-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:12px;font-size:.8125rem;font-weight:600}.history-list{flex-direction:column;display:flex}.history-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr 90px 90px 80px 82px;align-items:center;gap:8px;padding:12px 0;display:grid}.history-row:last-child{border-bottom:none}.history-row-left{align-items:center;gap:10px;display:flex}.history-meta,.history-header-label:not(:first-child){text-align:right}.history-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.history-status-dot.completed{background:var(--success);box-shadow:0 0 6px var(--success-glow)}.history-status-dot.aborted{background:var(--warning);box-shadow:0 0 6px var(--warning-glow)}.history-status-dot.failed{background:var(--error);box-shadow:0 0 6px var(--error-glow)}.history-date{color:var(--text-secondary);font-size:.8125rem}.history-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.history-badge{text-align:center;border-radius:100px;min-width:72px;padding:3px 10px;font-size:.6875rem;font-weight:600}.history-badge.completed{background:var(--success-glow);color:var(--success)}.history-badge.aborted{background:var(--warning-glow);color:var(--warning)}.history-badge.failed{background:var(--error-glow);color:var(--error)}.history-row.history-header{border-bottom:1px solid var(--border-hover);padding-bottom:8px}.history-header-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.6875rem;font-weight:600}.history-toggle{width:100%;margin-top:8px;padding:8px;font-size:.75rem}.login-page{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:16px;width:100%;max-width:380px;padding:40px 32px}.login-logo{justify-content:center;margin-bottom:24px;display:flex}.login-logo img{filter:invert();width:260px;height:auto}.login-header{text-align:center;margin-bottom:32px}.login-header h1{color:var(--text-primary);margin-bottom:4px;font-size:1.25rem;font-weight:700}.login-header p{color:var(--text-muted);font-size:.8125rem}.login-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.75rem;font-weight:600}.form-group input{background:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:8px;outline:none;padding:10px 14px;font-family:inherit;font-size:.875rem;transition:border-color .2s}.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-group input::placeholder{color:var(--text-muted)}.login-btn{justify-content:center;width:100%;margin-top:4px}
