@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-ui);color:var(--color-neutral-800);background-color:var(--color-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100dvh}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--color-border-focus)!important;box-shadow:var(--ring-focus)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.container-focused-task{max-width:480px;margin-inline:auto;padding-inline:var(--space-4);padding-top:var(--space-24);padding-bottom:var(--space-16)}@media (min-width: 640px){.container-focused-task{padding-inline:var(--space-6);padding-top:var(--space-32)}}.heading-lg{font-size:clamp(1.875rem,5vw,2.5rem);font-weight:700;line-height:var(--leading-tighter);letter-spacing:-.02em;color:var(--color-neutral-900);text-wrap:balance}.heading-md{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1.25;letter-spacing:var(--tracking-snug);color:var(--color-neutral-900)}.heading-sm{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-close);color:var(--color-neutral-900)}.body-md{font-size:var(--font-size-md);font-weight:var(--font-weight-normal);line-height:var(--leading-normal);color:var(--color-neutral-600)}.body-sm{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--leading-relaxed)}.label-xs{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--color-neutral-400)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:none;cursor:pointer;font-family:var(--font-ui);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);line-height:var(--leading-normal);border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);text-decoration:none;white-space:nowrap}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn--sm{height:32px;min-height:32px;padding-inline:var(--space-3);font-size:var(--font-size-xs)}.btn--md{height:40px;min-height:40px;padding-inline:var(--space-4)}.btn--lg{height:48px;min-height:48px;padding-inline:var(--space-5);font-size:var(--font-size-md)}.btn--full{width:100%}.btn--primary{background-color:var(--color-ink);color:var(--color-on-ink)}.btn--primary:hover{background-color:var(--color-ink-hover)}.btn--primary:active{background-color:var(--color-ink-active)}.btn--secondary{background-color:var(--color-bg-surface);color:var(--color-neutral-800);border:1px solid var(--color-border-strong)}.btn--secondary:hover{background-color:var(--color-bg-subtle);border-color:var(--color-border-strong)}.btn--ghost{background-color:transparent;color:var(--color-neutral-600);border:1px solid transparent}.btn--ghost:hover{background-color:var(--color-neutral-100);color:var(--color-neutral-800)}.btn--destructive{background-color:var(--color-error);color:#fff;border:none}.btn--destructive:hover{background-color:var(--color-error-strong)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn{min-width:44px}.upload-page{text-align:center}.upload-page__badge{display:flex;justify-content:center;margin-bottom:var(--space-6)}.upload-page__heading{margin-bottom:var(--space-2)}.upload-page__subtext{margin-bottom:var(--space-8)}@media (min-width: 640px){.upload-page__heading,.upload-page__subtext{position:relative;left:50%;transform:translate(-50%);width:max-content;max-width:min(56rem,92vw)}}.dropzone{min-height:200px;border:2px dashed var(--color-border-default);background-color:var(--color-bg-surface);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-4);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}@media (min-width: 768px){.dropzone{min-height:240px}}@media (prefers-reduced-motion: reduce){.dropzone{transition:none}}.dropzone:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.dropzone--drag-hover{border-color:var(--color-accent-400);background-color:var(--color-accent-50)}.dropzone--file-valid-hover{border-color:var(--color-success);background-color:var(--color-success-light)}.dropzone--file-invalid-hover{border-color:var(--color-error);background-color:var(--color-error-light)}.dropzone--uploading{border:2px solid var(--color-accent-200);background-color:var(--color-accent-50);cursor:default}.dropzone__icon{color:var(--color-neutral-400);margin-bottom:var(--space-3);transition:transform var(--duration-standard) var(--ease-in-out)}@media (prefers-reduced-motion: reduce){.dropzone__icon{transition:none}}.dropzone--drag-hover .dropzone__icon{color:var(--color-accent-500);transform:scale(1.08)}.dropzone--file-valid-hover .dropzone__icon{color:var(--color-success)}.dropzone--file-invalid-hover .dropzone__icon{color:var(--color-error)}.dropzone__primary{font-size:var(--font-size-md);color:var(--color-neutral-600);margin-bottom:var(--space-1)}.dropzone__link{color:var(--color-accent-600);font-weight:var(--font-weight-medium);cursor:pointer}.dropzone__secondary{font-size:var(--font-size-xs);color:var(--color-neutral-600)}.upload-card{padding:var(--space-8);background-color:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}.upload-card__file-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.upload-card__tile{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background-color:var(--color-accent-50);border-radius:var(--radius-lg);color:var(--color-accent-600)}.upload-card__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.upload-card__filename{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-neutral-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-card__status{font-size:var(--font-size-sm);color:var(--color-neutral-500)}.upload-card__spinner{flex-shrink:0}.dropzone__uploading-text{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-neutral-700);margin-top:var(--space-3)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{display:inline-block;width:20px;height:20px;border:2.5px solid var(--color-accent-200);border-top-color:var(--color-accent-600);border-radius:var(--radius-full);animation:spin .7s linear infinite}.spinner--sm{width:16px;height:16px;border-width:2px}.spinner--md{width:20px;height:20px}.spinner--lg{width:32px;height:32px}.spinner--xl{width:40px;height:40px;border-width:3px}@media (prefers-reduced-motion: reduce){.spinner{animation:none;border-color:var(--color-accent-200);border-top-color:var(--color-accent-600);opacity:.5}}.progress-bar-wrap{margin-top:var(--space-3);width:100%}.progress-bar-rail{height:4px;background-color:var(--color-neutral-200);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background-color:var(--color-accent-600);border-radius:var(--radius-full);transform-origin:left center;transform:scaleX(0);transition:transform var(--duration-standard) var(--ease-out),background-color var(--duration-slow) var(--ease-in-out)}@media (prefers-reduced-motion: reduce){.progress-bar-fill{transition:background-color var(--duration-slow) var(--ease-in-out)}}.progress-bar-fill--success{background-color:var(--color-success)}@keyframes progress-indeterminate{0%{transform:translate(-60%) scaleX(.6)}50%{transform:translate(40%) scaleX(.6)}to{transform:translate(160%) scaleX(.6)}}.progress-bar-fill--indeterminate{animation:progress-indeterminate 1.4s var(--ease-linear) infinite;transform:none}@media (prefers-reduced-motion: reduce){.progress-bar-fill--indeterminate{animation:none;transform:scaleX(.5);opacity:.7}}.progress-bar-label{margin-top:var(--space-2);font-size:var(--font-size-sm);color:var(--color-neutral-500);text-align:center}.error-banner{background-color:var(--color-error-light);border:1px solid var(--color-error-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-top:var(--space-4);display:flex;align-items:flex-start;gap:var(--space-2);animation:error-banner-enter var(--duration-standard) var(--ease-out) both}@keyframes error-banner-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.error-banner{animation:none}}.error-banner__icon{color:var(--color-error);flex-shrink:0;margin-top:1px}.error-banner__body{flex:1;min-width:0}.error-banner__headline{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-error-strong);line-height:var(--leading-normal)}.error-banner__detail{font-size:var(--font-size-sm);color:var(--color-error-strong);margin-top:var(--space-1);line-height:var(--leading-relaxed)}.error-banner__retry{flex-shrink:0;margin-left:auto}@media (hover: none){.dropzone__primary,.dropzone__secondary{display:none}.dropzone{min-height:0;padding:0;border:none;background:none;cursor:default}.dropzone__icon{display:none}.dropzone__touch-btn{display:flex!important;width:100%;margin-top:var(--space-4)}}.dropzone__touch-btn{display:none}input[type=password],input[type=text],input[type=email],textarea,select{font-size:var(--font-size-browser-default)}input[type=password]::-ms-reveal,input[type=password]::-ms-clear{display:none}.choose-file-btn{width:100%}
