:root{--font-mono: "DM Mono", monospace;--bg: #0a0a0b;--bg-card: #141416;--bg-input: #1a1a1e;--bg-hover: #1e1e22;--border: #2a2a2e;--border-focus: #4a4a4e;--text: #e4e4e7;--text-muted: #71717a;--text-dim: #52525b;--accent: #f59e0b;--accent-hover: #d97706;--success: #22c55e;--success-bg: rgba(34, 197, 94, .1);--error: #ef4444;--error-bg: rgba(239, 68, 68, .1);--warning: #eab308;--warning-bg: rgba(234, 179, 8, .1);--radius: 6px;--radius-lg: 10px}.app{min-height:100dvh;display:flex;flex-direction:column}.header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.header-title{font-size:16px;font-weight:500;color:var(--text)}.header-subtitle{font-size:12px;color:var(--text-muted)}.main{flex:1;padding:20px;display:flex;flex-direction:column;gap:20px;max-width:900px;width:100%;margin:0 auto}.tabs{display:flex;gap:8px}.tab{padding:8px 16px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font-mono);font-size:13px;cursor:pointer}.tab:hover{background:var(--bg-hover);color:var(--text)}.tab.active{background:var(--bg-card);border-color:var(--accent);color:var(--accent)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.card-title{font-size:13px;font-weight:500;color:var(--text-muted);margin-bottom:16px;text-transform:lowercase}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-title-row .card-title{margin-bottom:0}.btn-icon{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font-mono);font-size:11px;cursor:pointer}.btn-icon:hover{background:var(--bg-hover);color:var(--text)}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;text-align:center}.upload-zone:hover{border-color:var(--accent);background:#f59e0b05}.upload-zone.has-file{border-color:var(--success);border-style:solid;background:var(--success-bg)}.upload-zone-icon{color:var(--text-muted)}.upload-zone-text{font-size:13px;color:var(--text-muted)}.upload-zone-hint{font-size:11px;color:var(--text-dim)}.upload-zone-filename{font-size:13px;color:var(--success);display:flex;align-items:center;gap:6px}.form-grid{display:grid;gap:12px}.form-row{display:flex;flex-direction:column;gap:4px}.form-label{font-size:11px;color:var(--text-muted);text-transform:lowercase}.form-input{padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);font-size:13px}.form-input:focus{outline:none;border-color:var(--border-focus)}.form-input::placeholder{color:var(--text-dim)}.form-textarea{resize:vertical;min-height:80px}.form-note{font-size:11px;color:var(--text-dim);margin-top:12px}.btn{padding:12px 24px;background:var(--accent);border:none;border-radius:var(--radius);color:#000;font-family:var(--font-mono);font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-input);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.results{display:flex;flex-direction:column;gap:16px}.result-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.result-status{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500}.result-status.passed{color:var(--success)}.result-status.failed{color:var(--error)}.result-time{font-size:11px;color:var(--text-dim)}.result-image{margin-bottom:16px;border-radius:var(--radius);overflow:hidden;background:var(--bg)}.result-image img{width:100%;max-height:400px;object-fit:contain;display:block}.result-fields{display:flex;flex-direction:column;gap:8px}.result-field{padding:12px;background:var(--bg);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px}.result-field-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.result-field-name{font-size:12px;color:var(--text-muted);text-transform:lowercase}.result-field-status{font-size:11px;padding:2px 8px;border-radius:4px;display:flex;align-items:center;gap:4px}.result-field-status.match{background:var(--success-bg);color:var(--success)}.result-field-status.mismatch,.result-field-status.missing{background:var(--error-bg);color:var(--error)}.result-field-status.skipped{background:var(--warning-bg);color:var(--warning)}.result-field-values{display:flex;flex-direction:column;gap:4px}.result-field-value{font-size:12px;display:flex;gap:8px}.result-field-value-label{color:var(--text-dim);min-width:60px}.result-field-value-text{color:var(--text);word-break:break-word}.result-field-reason{font-size:11px;color:var(--error);font-style:italic}.batch-files{display:flex;flex-direction:column;gap:8px;margin-top:12px}.batch-file{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border-radius:var(--radius);font-size:12px}.batch-file-name{color:var(--text);display:flex;align-items:center;gap:6px}.batch-file-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex}.batch-file-remove:hover{color:var(--error)}.loading{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:13px}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:13px}.batch-results{display:flex;flex-direction:column;gap:16px}.batch-result-item{background:var(--bg);border-radius:var(--radius);padding:16px}.batch-result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.batch-result-filename{font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px}.action-bar{display:flex;gap:12px;margin-top:8px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-mono);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}
