:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18202b;background:#f4f6f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{display:flex;justify-content:space-between;gap:24px;padding:20px 28px;background:#111827;color:#f9fafb;align-items:center}.brand-row{display:flex;align-items:center;gap:10px}.brand-row h1{margin:0;font-size:24px;letter-spacing:-.03em}.brand-mark{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-weight:800;background:#f9fafb;color:#111827}.version{font-size:12px;color:#9ca3af}.topbar p{margin:5px 0 0;color:#cbd5e1;font-size:13px}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.top-actions select{max-width:210px}.project-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 28px;border-bottom:1px solid #dfe4ea;background:#fff}.project-strip label{display:flex;align-items:center;gap:10px;color:#667085;font-size:13px}.project-strip input{width:260px;font-weight:650;color:#18202b}.local-indicator{font-size:12px;font-weight:700;padding:5px 9px;border-radius:999px;color:#166534;background:#dcfce7}.workspace-grid{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(360px,1.1fr) minmax(340px,1fr);gap:14px;padding:14px;align-items:start}.workspace-column{min-width:0;display:grid;gap:14px}.panel{background:#fff;border:1px solid #dde3ea;border-radius:14px;padding:18px;box-shadow:0 1px 2px #1018280a}.panel h2{margin:4px 0 14px;font-size:18px;letter-spacing:-.02em}.panel-title-row{display:flex;justify-content:space-between;align-items:start;gap:12px}.step{color:#475467;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.badge{border-radius:999px;background:#eef2ff;color:#3730a3;padding:5px 9px;font-size:11px;font-weight:750;white-space:nowrap}.button{border:1px solid transparent;border-radius:9px;padding:9px 12px;font-weight:700;font-size:13px}.button.primary{background:#111827;color:#fff}.button.secondary{background:#f8fafc;color:#1f2937;border-color:#d8dee7}.button.ghost{color:#e5e7eb;background:transparent;border-color:#374151}.button:disabled{opacity:.45;cursor:default}.button.full{width:100%;margin-top:12px}.file-button input,.hidden{display:none}.upload-row{display:flex;align-items:end;gap:10px}.compact-field{font-size:11px;color:#667085;display:grid;gap:4px}.field{display:grid;gap:5px;color:#475467;font-size:12px;font-weight:650;margin:8px 0}input,select,textarea{border:1px solid #d0d5dd;border-radius:8px;padding:8px 9px;background:#fff;color:#18202b;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #c7d2fe;border-color:#818cf8}.empty-state{border:1px dashed #cfd6df;border-radius:10px;color:#7b8794;padding:28px 14px;text-align:center;font-size:13px;margin-top:12px}.document-meta{display:flex;gap:9px;flex-wrap:wrap;font-size:12px;margin:14px 0 10px;color:#667085}.document-meta strong{color:#1f2937}.source-preview{display:block;width:100%;max-height:360px;object-fit:contain;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc}.source-frame{width:100%;height:420px;border:1px solid #e5e7eb;border-radius:8px}.text-preview{margin-top:10px}.text-preview summary{font-size:12px;color:#475467;font-weight:700;cursor:pointer}.text-preview pre{white-space:pre-wrap;word-break:break-word;max-height:300px;overflow:auto;background:#f8fafc;border-radius:8px;padding:10px;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.schema-list{display:grid;gap:9px;max-height:660px;overflow:auto;padding-right:2px}.schema-card{border:1px solid #e2e7ee;border-radius:10px;padding:11px;background:#fbfcfd}.schema-card-grid{display:grid;grid-template-columns:1.25fr 1.25fr .8fr auto;gap:8px;align-items:end}.rules-row{display:flex;align-items:end;gap:8px}.rules-row .field{flex:1}.check-field{display:flex;gap:6px;align-items:center;padding-bottom:10px;font-size:12px;color:#475467}.check-field input{min-width:auto}.text-button{border:0;background:transparent;padding:8px 3px;font-size:12px}.text-button.danger{color:#b42318}.extraction-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 14px}.mode-card{display:grid;gap:3px;text-align:left;border:1px solid #d8dee7;border-radius:10px;padding:11px;background:#fff;color:#1f2937}.mode-card.active{border-color:#818cf8;background:#eef2ff}.mode-card strong{font-size:13px}.mode-card span{color:#667085;font-size:11px;line-height:1.4}.manual-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.assisted-steps{display:grid;gap:5px;margin:10px 0;padding:10px;border:1px solid #e2e7ee;border-radius:9px;background:#fbfcfd;color:#667085;font-size:11px;line-height:1.45}.assisted-steps strong{color:#344054}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.prompt-box,.response-box{width:100%;resize:vertical;line-height:1.45;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.prompt-box{background:#f8fafc;min-height:150px}.response-box{min-height:150px}.provider-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}.privacy-note{font-size:11px;color:#667085;background:#f8fafc;padding:9px;border-radius:8px;line-height:1.45}.security-note{font-size:11px;color:#854d0e;background:#fffbeb;border:1px solid #fde68a;padding:9px;border-radius:8px;line-height:1.45}.review-list{display:grid;gap:10px}.review-card{border:1px solid #e2e7ee;border-left-width:4px;border-radius:10px;padding:11px}.review-card.status-valid{border-left-color:#16a34a}.review-card.status-corrected{border-left-color:#4f46e5}.review-card.status-error{border-left-color:#dc2626;background:snow}.review-card-head{display:flex;justify-content:space-between;gap:10px}.review-card-head strong{display:block;font-size:13px}.review-card-head code{font-size:10px;color:#667085}.status-pill{text-transform:uppercase;font-size:9px;font-weight:800;color:#475467}.prediction{font-size:11px;color:#667085;margin-top:4px}.issues{margin:7px 0 0;padding-left:17px;color:#b42318;font-size:11px}.metrics-row{display:flex;gap:8px;margin-bottom:12px}.metrics-row span{background:#f8fafc;border-radius:8px;padding:7px 9px;font-size:11px;color:#667085}.metrics-row strong{color:#18202b}.export-row{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid #e5e7eb}.export-row .step{margin-right:auto}.error-banner{margin:12px 14px 0;padding:10px 12px;border:1px solid #fecaca;border-radius:9px;background:#fef2f2;color:#991b1b;font-size:13px}.muted{color:#667085}.status-line{font-size:12px}footer{padding:10px 28px 22px;color:#667085;font-size:11px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}footer a{color:#475467;font-weight:700;text-decoration:underline;text-underline-offset:2px}@media(max-width:1100px){.workspace-grid{grid-template-columns:1fr 1fr}.right-column{grid-column:1 / -1}.topbar{align-items:start;flex-direction:column}}@media(max-width:760px){.extraction-mode-switch{grid-template-columns:1fr}.workspace-grid{grid-template-columns:1fr;padding:8px}.right-column{grid-column:auto}.project-strip{padding:10px 14px;flex-direction:column;align-items:stretch}.project-strip input{width:100%}.schema-card-grid{grid-template-columns:1fr 1fr}.topbar{padding:16px}.top-actions{width:100%}.provider-grid{grid-template-columns:1fr}}.global-issues{border:1px solid #f0b4b4;border-radius:10px;padding:12px 14px;background:#fff8f8;font-size:.9rem}.global-issues ul{margin:8px 0 0;padding-left:20px}
