:root{--bg: #0a0a0a;--bg-elev: #141414;--bg-elev2: #1c1c1c;--fg: #e8e8e8;--fg-dim: #888;--fg-dimmer: #555;--border: #2a2a2a;--accent: #d4d4d4;--danger: #c45050;--ok: #6a9955;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;font-size:13px;line-height:1.5}.app{max-width:1200px;margin:0 auto;padding:32px 24px 64px}.app-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--border)}.app-header h1{font-size:18px;font-weight:500;letter-spacing:.05em;margin:0}.app-header .subtitle{color:var(--fg-dim);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.grid{display:grid;grid-template-columns:360px 1fr;gap:24px}@media (max-width: 880px){.grid{grid-template-columns:1fr}}.panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:4px;padding:20px}.panel h2{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--fg-dim);margin:0 0 16px}.panel+.panel{margin-top:16px}.field{margin-bottom:14px}.field label{display:block;font-size:11px;color:var(--fg-dim);margin-bottom:4px;letter-spacing:.05em}.field input,.field select,.field textarea{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--fg);padding:8px 10px;font-family:var(--mono);font-size:12px;border-radius:3px;outline:none;transition:border-color .1s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field textarea{resize:vertical;min-height:180px;line-height:1.4}.field .hint{font-size:10px;color:var(--fg-dimmer);margin-top:3px;font-family:var(--mono)}.btn{background:var(--fg);color:var(--bg);border:none;padding:9px 16px;font-size:12px;letter-spacing:.05em;font-weight:500;cursor:pointer;border-radius:3px;transition:opacity .1s}.btn:hover:not(:disabled){opacity:.85}.btn:disabled{opacity:.3;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--fg);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--fg-dim)}.btn-row{display:flex;gap:8px;margin-top:16px}.dropzone{border:1px dashed var(--border);border-radius:4px;padding:32px 16px;text-align:center;color:var(--fg-dim);cursor:pointer;transition:border-color .1s,background .1s;font-size:12px}.dropzone.drag{border-color:var(--accent);background:var(--bg-elev2)}.dropzone-count{color:var(--fg);font-family:var(--mono)}.preview-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px}.preview-table th{text-align:left;font-weight:500;color:var(--fg-dim);padding:6px 8px;border-bottom:1px solid var(--border);text-transform:uppercase;font-size:10px;letter-spacing:.1em}.preview-table td{padding:6px 8px;border-bottom:1px solid var(--border);word-break:break-all}.preview-table tr:last-child td{border-bottom:none}.preview-table .arrow{color:var(--fg-dimmer);padding:0 4px}.preview-table .collision{color:var(--danger)}.preview-table .source{color:var(--fg-dim)}.preview-table .target{color:var(--fg)}.message{padding:8px 12px;border-radius:3px;font-size:12px;font-family:var(--mono);margin-bottom:12px}.message.err{background:#c450501a;border:1px solid rgba(196,80,80,.3);color:var(--danger)}.message.ok{background:#6a99551a;border:1px solid rgba(106,153,85,.3);color:var(--ok)}.empty{color:var(--fg-dimmer);font-size:12px;padding:24px;text-align:center;font-family:var(--mono)}.spec-name{font-family:var(--mono);font-size:11px;color:var(--fg-dim);margin-bottom:12px;padding:6px 8px;background:var(--bg);border-radius:3px;border:1px solid var(--border)}.spec-name strong{color:var(--fg);font-weight:500}.toolbar{display:flex;gap:8px;margin-bottom:12px}.toolbar .btn-secondary{padding:6px 12px;font-size:11px}
