@import "https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700&display=swap";html,body{margin:0;padding:0}:root{--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-700:#374151;--gray-900:#111827;--leaf-50:#c8e6c9;--leaf-100:#a5d6a7;--leaf-200:#81c784;--leaf-400:#4caf50;--leaf-600:#388e3c;--leaf-700:#2e7d32;--leaf-800:#1b5e20;--ocean-50:#e3f2fd;--ocean-200:#90caf9;--ocean-500:#1e88e5;--ocean-600:#1565c0;--ocean-700:#0d47a1;--accent-yellow:#ffc107;--accent-orange:#ff9800;--accent-violet:#7b1fa2;--bg:var(--gray-50);--panel:#fff;--panel-border:var(--gray-200);--text:var(--gray-900);--muted:var(--gray-500);--primary:var(--leaf-700);--primary-hover:var(--leaf-800);--primary-soft-bg:#e8f5e9;--primary-soft-text:var(--leaf-800);--info:var(--ocean-600);--warn:var(--accent-orange);--success:var(--leaf-600);--error:#dc2626;--radius-sm:.5rem;--radius:.75rem;--radius-lg:1rem}*{box-sizing:border-box}html,body,#root{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;padding:0;font-family:Satoshi,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.app{max-width:960px;margin:0 auto;padding:40px 24px 80px}.app header h1{letter-spacing:-.01em;color:var(--text);margin:0 0 4px;font-size:28px;font-weight:700}.app header p{color:var(--muted);margin:0 0 28px}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);margin-bottom:18px;padding:20px;box-shadow:0 1px 2px #1118270a}.dropzone{border:2px dashed var(--gray-300);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--gray-50);padding:40px 20px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.active{border-color:var(--leaf-600);background:var(--primary-soft-bg)}.dropzone p{color:var(--text);margin:6px 0;font-weight:500}.dropzone .hint{color:var(--muted);font-size:13px;font-weight:400}.dropzone-actions{justify-content:center;gap:8px;margin-top:12px;display:flex}.settings{grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:16px;display:grid}.settings label{color:var(--gray-700);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;gap:6px;font-size:12px;font-weight:500;display:flex}.settings input,.settings select{border:1px solid var(--gray-300);color:var(--text);border-radius:var(--radius-sm);text-transform:none;letter-spacing:0;background:#fff;outline:none;padding:9px 12px;font-family:inherit;font-size:14px;font-weight:400;transition:border-color .15s,box-shadow .15s}.settings input:focus,.settings select:focus{border-color:var(--leaf-600);box-shadow:0 0 0 3px #2e7d321f}.btn{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-block}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:focus-visible{box-shadow:0 0 0 3px #2e7d3240}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{border:1px solid var(--gray-300);color:var(--gray-700);background:#fff}.btn.secondary:hover:not(:disabled){border-color:var(--leaf-600);color:var(--leaf-700);background:var(--primary-soft-bg)}.btn.small{border-radius:var(--radius-sm);padding:6px 10px;font-size:12px}.image-list{flex-direction:column;gap:8px;display:flex}.image-row{border:1px solid var(--panel-border);border-radius:var(--radius-sm);background:#fff;grid-template-columns:48px 1fr auto auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.image-row .thumb{border-radius:var(--radius-sm);background:var(--gray-100) center/cover no-repeat;width:48px;height:48px}.image-row .meta{min-width:0}.image-row .name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500;overflow:hidden}.image-row .sub{color:var(--muted);margin-top:2px;font-size:12px}.image-row .sub strong{color:var(--leaf-800);font-weight:600}.status{text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;padding:3px 8px;font-size:11px;font-weight:600}.status.pending{color:var(--gray-700);background:var(--gray-100)}.status.processing{color:var(--ocean-700);background:var(--ocean-50);box-shadow:inset 0 0 0 1px var(--ocean-200)}.status.done{color:var(--leaf-800);background:var(--primary-soft-bg);box-shadow:inset 0 0 0 1px var(--leaf-200)}.status.warn{color:#92400e;background:#fef3c7;box-shadow:inset 0 0 0 1px #fde68a}.status.error{color:#991b1b;background:#fee2e2;box-shadow:inset 0 0 0 1px #fecaca}.summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.summary .stats{color:var(--gray-700);font-size:14px}.summary .stats strong{color:var(--text);font-weight:600}.summary .actions{gap:8px;display:flex}
