:root{--color-bg: #ffffff;--color-surface: #f8f9fa;--color-surface-alt: #f1f3f5;--color-border: #dee2e6;--color-border-strong: #ced4da;--color-text: #1a1a1a;--color-text-secondary: #495057;--color-text-muted: #6c757d;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-active: #1e40af;--color-primary-light: #eff6ff;--color-success: #16a34a;--color-success-bg: #dcfce7;--color-success-border: #86efac;--color-warning: #d97706;--color-warning-bg: #fef3c7;--color-warning-border: #fcd34d;--color-error: #dc2626;--color-error-bg: #fee2e2;--color-error-border: #fca5a5;--color-info: #0891b2;--color-info-bg: #cffafe;--color-drag-over-border: #2563eb;--color-drag-over-bg: #eff6ff;--color-focus: #3b82f6;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", "Source Code Pro", monospace;--fs-xs: clamp(.75rem, .72rem + .15vw, .8125rem);--fs-sm: clamp(.8125rem, .78rem + .18vw, .875rem);--fs-base: clamp(.9375rem, .91rem + .15vw, 1rem);--fs-lg: clamp(1.0625rem, 1rem + .3vw, 1.1875rem);--fs-xl: clamp(1.25rem, 1.12rem + .6vw, 1.5rem);--fs-2xl: clamp(1.5rem, 1.3rem + 1vw, 2rem);--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.25;--lh-normal: 1.5;--lh-relaxed: 1.625;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--space-8: 3rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.08), 0 2px 4px -2px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.05);--max-width: 960px;--focus-outline: 2px solid var(--color-focus);--focus-offset: 2px;--transition-fast: .12s ease;--transition-normal: .2s ease}@media (prefers-color-scheme: dark){:root{--color-bg: #0f1115;--color-surface: #1a1d24;--color-surface-alt: #232730;--color-border: #2d323d;--color-border-strong: #3a4150;--color-text: #e8eaed;--color-text-secondary: #b4b8c0;--color-text-muted: #8b909c;--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-primary-active: #2563eb;--color-primary-light: #172554;--color-success: #4ade80;--color-success-bg: #052e16;--color-success-border: #166534;--color-warning: #fbbf24;--color-warning-bg: #451a03;--color-warning-border: #78350f;--color-error: #f87171;--color-error-bg: #450a0a;--color-error-border: #7f1d1d;--color-info: #22d3ee;--color-info-bg: #083344;--color-drag-over-border: #3b82f6;--color-drag-over-bg: #172554;--color-focus: #60a5fa}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-3);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}p{margin:0 0 var(--space-3)}a{color:var(--color-primary)}button{font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:var(--fs-base)}:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:absolute;top:-100px;left:var(--space-4);z-index:1000;padding:var(--space-2) var(--space-4);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);text-decoration:none}.skip-link:focus{top:var(--space-4)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-header{max-width:var(--max-width);margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-4);text-align:center}.app-description{color:var(--color-text-secondary);font-size:var(--fs-lg);margin-bottom:var(--space-2)}.privacy-notice{display:inline-block;padding:var(--space-2) var(--space-4);background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--fs-sm);margin-bottom:0}main{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-4) var(--space-6)}.section{margin-bottom:var(--space-6)}.section.hidden{display:none}.hidden,[aria-hidden=true].hidden{display:none!important}.section-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-4)}.app-footer{max-width:var(--max-width);margin:0 auto;padding:var(--space-6) var(--space-4);border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-muted);font-size:var(--fs-sm)}.footer-note{font-size:var(--fs-xs);margin-top:var(--space-1)}.notification-region{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:9000;display:flex;flex-direction:column;gap:var(--space-2);max-width:400px;pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--fs-base);font-weight:var(--fw-medium);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast);text-decoration:none;min-height:40px;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-active)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-alt)}.btn-large{padding:var(--space-3) var(--space-6);font-size:var(--fs-lg);min-height:48px}.btn-danger{background-color:transparent;color:var(--color-error);border-color:transparent;padding:var(--space-1) var(--space-2);font-size:var(--fs-sm);min-height:32px}.btn-danger:hover:not(:disabled){background-color:var(--color-error-bg)}.drop-zone{border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-4);text-align:center;cursor:pointer;transition:border-color var(--transition-normal),background-color var(--transition-normal);background:var(--color-surface)}.drop-zone:hover,.drop-zone:focus-visible{border-color:var(--color-primary);background:var(--color-primary-light)}.drop-zone.drag-over{border-color:var(--color-drag-over-border);background:var(--color-drag-over-bg)}.drop-zone-icon{color:var(--color-text-muted);margin-bottom:var(--space-3)}.drop-zone-text{font-size:var(--fs-lg);margin-bottom:var(--space-1)}.drop-zone-subtext{color:var(--color-text-muted);margin-bottom:var(--space-3)}.stats-bar{display:flex;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--fs-sm)}.stat-item{color:var(--color-text-secondary)}.stat-item strong{color:var(--color-text)}.table-scroll{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table th{background:var(--color-surface);font-weight:var(--fw-semibold);white-space:nowrap;position:sticky;top:0}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--color-surface)}.status-badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap}.status-pending{background:var(--color-surface-alt);color:var(--color-text-muted)}.status-processing{background:var(--color-info-bg);color:var(--color-info)}.status-success{background:var(--color-success-bg);color:var(--color-success)}.status-failed{background:var(--color-error-bg);color:var(--color-error)}.status-skipped{background:var(--color-warning-bg);color:var(--color-warning)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.form-group{display:flex;flex-direction:column;gap:var(--space-1)}.form-group label{font-weight:var(--fw-medium);font-size:var(--fs-sm)}.form-group .unit{font-weight:var(--fw-normal);color:var(--color-text-muted)}.form-group input[type=number],.form-group input[type=text],.form-group select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);min-height:40px}.form-group input[type=number]:focus,.form-group select:focus{border-color:var(--color-primary)}.form-group input[type=range]{width:100%;cursor:pointer}.form-group input[type=color]{width:60px;height:40px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;padding:2px}.form-check{flex-direction:row;align-items:center;gap:var(--space-2)}.form-check input{width:18px;height:18px;cursor:pointer}.form-check label{font-weight:var(--fw-normal);cursor:pointer}.error-text{color:var(--color-error);font-size:var(--fs-xs);min-height:1em}.help-text{color:var(--color-text-muted);font-size:var(--fs-xs);margin:0}.progress-container{margin-top:var(--space-4)}.progress-bar-track{width:100%;height:24px;background:var(--color-surface-alt);border-radius:var(--radius-full);overflow:hidden;border:1px solid var(--color-border)}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width var(--transition-normal);width:0%}.progress-text{margin-top:var(--space-2);font-size:var(--fs-sm);color:var(--color-text-secondary)}.results-summary{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4)}.results-summary .summary-item{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-sm)}.summary-success{background:var(--color-success-bg);color:var(--color-success)}.summary-failed{background:var(--color-error-bg);color:var(--color-error)}.summary-skipped{background:var(--color-warning-bg);color:var(--color-warning)}.notification{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-sm);box-shadow:var(--shadow-lg);pointer-events:auto;display:flex;align-items:flex-start;gap:var(--space-2)}.notification-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-text)}.notification-error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-text)}.notification-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-text)}.notification-info{background:var(--color-info-bg);border:1px solid var(--color-info);color:var(--color-text)}.notification-close{margin-left:auto;background:none;border:none;cursor:pointer;font-size:var(--fs-lg);line-height:1;padding:0;color:inherit;opacity:.7}.notification-close:hover{opacity:1}@media (max-width: 640px){.app-header{padding:var(--space-4) var(--space-3) var(--space-3)}main{padding:0 var(--space-3) var(--space-5)}.drop-zone{padding:var(--space-5) var(--space-3)}.drop-zone-text{font-size:var(--fs-base)}.stats-bar{font-size:var(--fs-xs);gap:var(--space-3);padding:var(--space-2) var(--space-3)}.settings-grid{grid-template-columns:1fr;gap:var(--space-3)}.data-table{font-size:var(--fs-xs)}.data-table th,.data-table td{padding:var(--space-1) var(--space-2)}.btn-large{width:100%}.section-actions{flex-direction:column}.section-actions .btn{width:100%}.notification-region{left:var(--space-3);right:var(--space-3);bottom:var(--space-3);max-width:none}.results-summary{flex-direction:column;gap:var(--space-2)}}@media (min-width: 641px) and (max-width: 900px){.settings-grid{grid-template-columns:repeat(2,1fr)}}
