*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#faf6f0;--color-surface:#fff;--color-primary:#ff6a1f;--color-primary-hover:#e85a08;--color-primary-disabled:#ffc199;--color-text:#1c0f06;--color-text-muted:#8a7060;--color-border:#e6d8cc;--color-error:#ef4444;--color-success:#22c55e;--color-active:#ff6a1f;--color-upload-hover:#fff4ee;--color-results-header:#faf0e8;--radius:8px;color:var(--color-text);font-family:Inter,system-ui,sans-serif;font-size:16px}[data-theme=dark]{--color-bg:#0e0e10;--color-surface:#18181b;--color-text:#f4f1ec;--color-text-muted:#9a938a;--color-border:#2c2b28;--color-primary:#ff6a1f;--color-primary-hover:#ff8547;--color-primary-disabled:#6b4a30;--color-success:#4ade80;--color-error:#f87171;--color-upload-hover:#221b16;--color-results-header:#141412;--color-active:#ff6a1f}body{background:var(--color-bg);min-height:100vh;transition:background .2s,color .2s}.app-header{z-index:10;background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.875rem 1.5rem;transition:background .2s,border-color .2s;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 1px 4px #0000000f}.app-logo{color:var(--color-primary);letter-spacing:-.01em;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;display:flex}.theme-toggle{border:1px solid var(--color-border);cursor:pointer;width:38px;height:38px;color:var(--color-text-muted);background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,border-color .2s,color .15s;display:flex}.theme-toggle:hover{color:var(--color-text);border-color:var(--color-text-muted);background:var(--color-upload-hover)}.page{justify-content:center;align-items:flex-start;min-height:100vh;padding:6rem 1rem 3rem;display:flex}.card{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:480px;padding:2.5rem;box-shadow:0 1px 3px #00000014,0 4px 16px #0000000f}.card--wide{max-width:800px}.card__title{margin-bottom:.375rem;font-size:1.5rem;font-weight:700}.card__subtitle{color:var(--color-text-muted);margin-bottom:2rem}.form{flex-direction:column;gap:1.25rem;display:flex}.form__field{flex-direction:column;gap:.5rem;display:flex}.form__label{font-size:.875rem;font-weight:500}.form__input{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);outline:none;padding:.625rem .875rem;font-size:1rem;transition:border-color .15s}.form__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #c2440e26}.form__input--error{border-color:var(--color-error)}.form__input--error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #dc262626}.form__input--valid{border-color:var(--color-success)}.form__field-error{color:var(--color-error);font-size:.8125rem}.form__error{color:var(--color-error);font-size:.875rem}.form__step{flex-direction:column;gap:1.25rem;transition:max-height .35s,opacity .3s;display:flex;overflow:hidden}.form__step--visible{opacity:1;max-height:600px}.form__step--hidden{opacity:0;pointer-events:none;max-height:0}.file-upload{border:2px dashed var(--color-border);border-radius:var(--radius);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;transition:border-color .15s,background .15s;display:flex}.file-upload:hover,.file-upload--dragging{border-color:var(--color-primary);background:var(--color-upload-hover)}.file-upload--has-file{border-style:solid;border-color:var(--color-primary);background:var(--color-upload-hover)}.file-upload__icon{font-size:2rem;line-height:1}.file-upload__label{font-size:.9375rem;font-weight:500}.file-upload__hint{color:var(--color-text-muted);font-size:.8125rem}.file-upload__filename{font-size:.9375rem;font-weight:600}.file-upload__size{color:var(--color-text-muted);font-size:.8125rem}.file-upload__remove{color:var(--color-error);cursor:pointer;background:0 0;border:none;margin-top:.25rem;font-size:.8125rem;text-decoration:underline}.btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s,opacity .15s,filter .15s;display:inline-flex}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--primary:disabled{background:var(--color-primary-disabled);cursor:not-allowed}.btn--secondary{background:var(--color-border);color:var(--color-text)}.btn--secondary:hover{filter:brightness(.92)}.btn--download{background:var(--color-success);color:#fff}.btn--download:hover{filter:brightness(1.1)}.task-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.task-progress{align-items:flex-start;gap:0;margin:2rem 0;display:flex;position:relative}.task-progress__step{flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.task-progress__indicator{z-index:1;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:700;transition:background .3s,color .3s;display:flex}.task-progress__indicator.completed{background:var(--color-success);color:#fff}.task-progress__indicator.active{background:var(--color-active);color:#fff;animation:1.5s infinite pulse;box-shadow:0 0 0 4px #c2440e33}.task-progress__indicator.pending{background:var(--color-border);color:var(--color-text-muted)}.task-progress__indicator.failed{background:var(--color-error);color:#fff}@keyframes pulse{0%,to{box-shadow:0 0 0 4px #c2440e33}50%{box-shadow:0 0 0 8px #c2440e14}}.task-progress__label{color:var(--color-text-muted);text-align:center;margin-top:.5rem;font-size:.75rem}.task-progress__label.active{color:var(--color-text);font-weight:600}.task-progress__connector{background:var(--color-border);z-index:0;width:100%;height:2px;transition:background .3s;position:absolute;top:18px;left:50%}.task-progress__connector.completed{background:var(--color-success)}.results{flex-direction:column;gap:1.5rem;margin-top:1.5rem;display:flex}.results__block{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.results__header{background:var(--color-results-header);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.875rem 1rem;display:flex}.results__header h2{font-size:.9375rem;font-weight:600}.results__copy{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-muted);background:0 0;border-radius:4px;padding:.25rem .625rem;font-size:.8125rem}.results__copy:hover{background:var(--color-border)}.results__text{white-space:pre-wrap;color:var(--color-text);max-height:320px;padding:1rem;font-family:inherit;font-size:.9375rem;line-height:1.7;overflow-y:auto}
