:root{--bg: #08080d;--bg-2: #0e0e16;--surface: #14141f;--surface-2: #1b1b29;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--text: #f4f4f8;--muted: #a0a0b2;--muted-2: #71717f;--accent: #ff4d4d;--accent-2: #ffb020;--accent-grad: linear-gradient(100deg, #ff4d4d 0%, #ff7a2f 45%, #ffb020 100%);--accent-soft: rgba(255, 77, 77, .12);--success: #4ade80;--danger: #ff6b6b;--radius: 16px;--radius-sm: 11px;--maxw: 1120px;--font: "Outfit", system-ui, sans-serif;--font-display: "Syne", "Outfit", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background:radial-gradient(600px 400px at 78% -5%,rgba(255,77,77,.14),transparent 60%),radial-gradient(700px 500px at 8% 8%,rgba(255,176,32,.08),transparent 60%);pointer-events:none;z-index:0}app-root{position:relative;z-index:1;display:block;min-height:100vh}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);line-height:1.15;letter-spacing:-.02em;font-weight:700;margin:0}p{margin:0}button,input,select{font:inherit}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14.5px;letter-spacing:.01em;padding:11px 18px;border-radius:12px;border:none;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--accent-grad);color:#1a0d00;box-shadow:0 8px 24px #ff5a2847}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 30px #ff5a2866}.btn-ghost{background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:#ffffff38}.btn-danger{background:#ff4d4d1f;color:#ff9c9c;border:1px solid rgba(255,77,77,.3)}.btn-danger:hover:not(:disabled){background:#ff4d4d33}.btn-sm{padding:7px 12px;font-size:13px;border-radius:10px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field label{font-size:13.5px;font-weight:600}.field input,.field select{width:100%;padding:12px 14px;font-size:15px;background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:var(--muted-2)}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #ff4d4d26}.muted{color:var(--muted)}.muted-2{color:var(--muted-2)}.error-box{margin-top:12px;padding:12px 15px;border-radius:var(--radius-sm);background:#ff4d4d1a;border:1px solid rgba(255,77,77,.3);color:#ff9c9c;font-size:14px}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}.status-pill.ready{color:var(--success);background:#4ade801a;border-color:#4ade8040}.status-pill.pending,.status-pill.processing{color:var(--accent-2);background:#ffb0201a;border-color:#ffb02040}.status-pill.failed,.status-pill.error,.status-pill.stuck{color:var(--danger);background:#ff4d4d1f;border-color:#ff4d4d4d}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.gradient-text{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.skeleton{background:linear-gradient(100deg,var(--surface) 30%,var(--surface-2) 50%,var(--surface) 70%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}
