:root{--va-bg:#f4f6f9;--va-surface:#fff;--va-border:#e2e6ed;--va-text:#1a1a2e;--va-text-muted:#4b5563;--va-text-faint:#9ca3af;--va-primary:#2563eb;--va-primary-hover:#1d4ed8;--va-primary-ring:#93c5fd;--va-primary-bg:#eff6ff;--va-primary-border:#bfdbfe;--va-primary-text:#1d4ed8;--va-success-bg:#ecfdf5;--va-success-border:#a7f3d0;--va-success-text:#047857;--va-error-bg:#fef2f2;--va-error-border:#fecaca;--va-error-text:#b91c1c;--va-code-bg:#0000000a;--va-shadow:0 1px 2px #1018280a;--va-input-bg:#fff}@media (prefers-color-scheme:dark){:root{--va-bg:#0f1117;--va-surface:#1a1d27;--va-border:#2a2f45;--va-text:#e8eaf0;--va-text-muted:#9ca3af;--va-text-faint:#6b7280;--va-primary:#3b82f6;--va-primary-hover:#60a5fa;--va-primary-ring:#1d4ed8;--va-primary-bg:#172554;--va-primary-border:#1d4ed8;--va-primary-text:#93c5fd;--va-success-bg:#052e16;--va-success-border:#14532d;--va-success-text:#86efac;--va-error-bg:#450a0a;--va-error-border:#7f1d1d;--va-error-text:#fca5a5;--va-code-bg:#ffffff0f;--va-shadow:0 1px 3px #0006;--va-input-bg:#0f1117}}*,:before,:after{box-sizing:border-box}body{min-height:100vh;color:var(--va-text);background:var(--va-bg);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}#root{min-height:100vh}button{font:inherit;cursor:pointer}input,textarea{font:inherit;color:var(--va-text);background:var(--va-input-bg)}@keyframes va-spin{to{transform:rotate(360deg)}}.dashboard{max-width:960px;margin:0 auto;padding:2rem 1.25rem 3rem}.dashboard__header{border-bottom:1px solid var(--va-border);margin-bottom:2rem;padding-bottom:1.25rem}.dashboard__header-top{align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.dashboard__logo{background:var(--va-primary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}.dashboard__logo svg{color:#fff;fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1.2rem;height:1.2rem}.dashboard__header h1{letter-spacing:-.02em;color:var(--va-text);margin:0;font-size:1.6rem;font-weight:700}.dashboard__version{background:var(--va-primary-bg);color:var(--va-primary-text);border:1px solid var(--va-primary-border);vertical-align:middle;border-radius:999px;align-items:center;margin-left:.4rem;padding:.15rem .45rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;font-weight:600;display:inline-flex}.dashboard__nav{flex-shrink:0;align-items:center;gap:.5rem;margin-left:auto;font-size:.83rem;display:flex}.dashboard__nav a{color:var(--va-text-muted);text-decoration:none;transition:color .12s}.dashboard__nav a:hover{color:var(--va-primary)}.dashboard__nav span{color:var(--va-text-faint)}.panel__helper{color:var(--va-text-muted);margin:0 0 1rem;font-size:.9rem;line-height:1.5}.operator-note{border:1px solid var(--va-border);background:color-mix(in srgb, var(--va-primary) 8%, var(--va-surface));color:var(--va-text-muted);border-radius:8px;margin:0 0 1rem;padding:.75rem .9rem;font-size:.875rem;line-height:1.5}.operator-note strong{color:var(--va-text)}.field-hint{color:var(--va-text-faint);margin-top:.35rem;font-size:.8rem;line-height:1.4;display:block}.dashboard__tagline{color:var(--va-text-muted);margin:0;font-size:.875rem}.dashboard__header p{color:var(--va-text-muted);margin:0;font-size:.9rem}.dashboard__layout{gap:1.25rem;display:grid}@media (width>=860px){.dashboard__layout{grid-template-columns:1fr 280px;align-items:start}}.dashboard__sections{flex-direction:column;gap:1rem;display:flex}.panel{background:var(--va-surface);border:1px solid var(--va-border);box-shadow:var(--va-shadow);border-radius:10px;padding:1.15rem 1.25rem}.panel__heading{color:var(--va-text);align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1rem;font-weight:600;display:flex}.panel p{color:var(--va-text-muted);margin:0 0 .75rem;font-size:.9rem}.panel__actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.step-badge{background:var(--va-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.btn{border:1px solid var(--va-border);background:var(--va-surface);color:var(--va-text);border-radius:6px;justify-content:center;align-items:center;gap:.35rem;padding:.45rem .9rem;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--va-bg);border-color:var(--va-text-muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--va-primary);border-color:var(--va-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--va-primary-hover);border-color:var(--va-primary-hover)}.form-grid{gap:.65rem;display:grid}@media (width>=600px){.form-grid{grid-template-columns:1fr 1fr}.form-grid label:last-child{grid-column:1/-1}}.form-grid label{color:var(--va-text-muted);flex-direction:column;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.form-grid input,.form-grid textarea{border:1px solid var(--va-border);background:var(--va-input-bg);color:var(--va-text);border-radius:6px;padding:.45rem .6rem}.form-grid input:focus,.form-grid textarea:focus{outline:2px solid var(--va-primary-ring);outline-offset:0;border-color:var(--va-primary)}.form-grid textarea{resize:vertical;min-height:4.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem}.status{border-radius:6px;flex-direction:column;gap:.35rem;margin-top:.75rem;padding:.65rem .75rem;font-size:.875rem;display:flex}.status__message{align-items:baseline;gap:.4rem;display:flex}.status__icon{flex-shrink:0;font-style:normal}.status__icon--spin{animation:.9s linear infinite va-spin;display:inline-block}.status--loading{background:var(--va-primary-bg);color:var(--va-primary-text);border:1px solid var(--va-primary-border)}.status--success{background:var(--va-success-bg);color:var(--va-success-text);border:1px solid var(--va-success-border)}.status--error{background:var(--va-error-bg);color:var(--va-error-text);border:1px solid var(--va-error-border)}.status pre{background:var(--va-code-bg);border-radius:4px;margin:0;padding:.5rem;font-size:.78rem;line-height:1.4;overflow-x:auto}.workflow-panel{position:sticky;top:1.25rem}.workflow-panel .panel__heading{margin-bottom:.85rem;font-size:.95rem}.workflow-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.workflow-list>div{flex-direction:column;gap:.2rem;display:flex}.workflow-list dt{text-transform:uppercase;letter-spacing:.04em;color:var(--va-text-faint);font-size:.72rem;font-weight:600}.workflow-list dd{margin:0}.hash-value{align-items:center;gap:.3rem;margin:0;display:flex}.hash-value__text{color:var(--va-text);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem}.hash-value__copy{border:1px solid var(--va-border);background:var(--va-bg);color:var(--va-text-faint);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:.1rem .28rem;font-size:.68rem;line-height:1;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.hash-value__copy:hover{background:var(--va-primary-bg);color:var(--va-primary);border-color:var(--va-primary-border)}.hash-value__copy--copied{color:var(--va-success-text);border-color:var(--va-success-border);background:var(--va-success-bg)}.hash-value__empty{color:var(--va-text-faint);font-size:.82rem;font-style:italic}.external-link{color:var(--va-primary);align-items:center;gap:.3rem;margin-top:.85rem;font-size:.83rem;text-decoration:none;display:inline-flex}.external-link:hover{text-decoration:underline}.success-banner{background:var(--va-success-bg);border:1px solid var(--va-success-border);color:var(--va-success-text);border-radius:10px;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;display:flex}.success-banner__icon{flex-shrink:0;font-size:1.1rem;line-height:1.4}.success-banner div{flex:1;font-size:.9rem;line-height:1.5}.success-banner strong{font-weight:600}.success-banner__link{color:var(--va-success-text);text-underline-offset:2px;white-space:nowrap;flex-shrink:0;align-items:center;gap:.25rem;margin-top:.1rem;font-size:.83rem;text-decoration:underline;display:inline-flex}.success-banner__link:hover{opacity:.8}.badge{border-radius:999px;padding:.15rem .45rem;font-size:.75rem;font-weight:600;display:inline-block}.badge--ok{background:var(--va-success-bg);color:var(--va-success-text);border:1px solid var(--va-success-border)}.badge--fail{background:var(--va-error-bg);color:var(--va-error-text);border:1px solid var(--va-error-border)}
