:root{--ink: #102429;--ink-soft: #2a454c;--paper: #e7f0ec;--paper-2: #f3f8f5;--mist: #c5d8d0;--sea: #0f6b5c;--sea-deep: #0a4f44;--sun: #d97706;--danger: #b42318;--ok: #047857;--line: rgba(16, 36, 41, .12);--shadow: 0 18px 50px rgba(16, 36, 41, .12);--radius: 18px;--font-display: "Fraunces", Georgia, serif;--font-body: "Figtree", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-body);background:radial-gradient(1200px 600px at 10% -10%,rgba(15,107,92,.18),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(217,119,6,.12),transparent 50%),linear-gradient(160deg,#d9e8e2 0%,var(--paper) 42%,#edf4f0 100%);background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:linear-gradient(rgba(16,36,41,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(16,36,41,.03) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(circle at center,black,transparent 85%);mask-image:radial-gradient(circle at center,black,transparent 85%)}button,input,select,textarea{font:inherit}a{color:inherit}.app-shell{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:1.5rem 0 3rem;position:relative;z-index:1}.topbar{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;animation:rise .7s ease both}.brand{display:grid;gap:.35rem}.brand h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,4vw,2.8rem);font-weight:700;letter-spacing:-.03em;line-height:1.05}.brand p{margin:0;color:var(--ink-soft);max-width:38ch}.top-actions{display:flex;gap:.65rem;flex-wrap:wrap}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:999px;padding:.7rem 1.1rem;background:var(--sea);color:#fff;font-weight:600;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.btn:hover{background:var(--sea-deep);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--line)}.btn-secondary:hover{background:#ffffff8c}.btn-danger{background:transparent;color:var(--danger);border-color:#b4231840}.layout{display:grid;grid-template-columns:1.15fr .85fr;gap:1.25rem}@media(max-width:960px){.layout{grid-template-columns:1fr}}.panel{background:#f3f8f5c7;border:1px solid rgba(16,36,41,.08);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);overflow:hidden;animation:rise .8s ease both}.panel:nth-child(2){animation-delay:.08s}.dropzone{position:relative;min-height:280px;display:grid;place-items:center;text-align:center;padding:2rem 1.5rem;background:linear-gradient(180deg,rgba(15,107,92,.08),transparent 55%),repeating-linear-gradient(-12deg,transparent,transparent 12px,rgba(15,107,92,.03) 12px,rgba(15,107,92,.03) 13px);border-bottom:1px solid var(--line);transition:background .25s ease,transform .25s ease}.dropzone.active{background:linear-gradient(180deg,#0f6b5c29,#0f6b5c0a),repeating-linear-gradient(-12deg,transparent,transparent 12px,rgba(15,107,92,.05) 12px,rgba(15,107,92,.05) 13px);transform:scale(1.01)}.dropzone h2{margin:0 0 .45rem;font-family:var(--font-display);font-size:1.7rem;letter-spacing:-.02em}.dropzone p{margin:0;color:var(--ink-soft)}.dropzone .hint{margin-top:1rem;font-size:.92rem;color:var(--ink-soft)}.file-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.toolbar{display:flex;gap:.75rem;padding:1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar input,.toolbar select,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#ffffffb3;border-radius:12px;padding:.7rem .85rem;color:var(--ink);outline:none}.toolbar input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#0f6b5c73;box-shadow:0 0 0 3px #0f6b5c1f}.doc-list{list-style:none;margin:0;padding:.4rem;max-height:520px;overflow:auto}.doc-item{display:grid;grid-template-columns:1fr auto;gap:.35rem .75rem;padding:.9rem 1rem;border-radius:14px;cursor:pointer;transition:background .18s ease,transform .18s ease}.doc-item:hover{background:#0f6b5c0f}.doc-item.selected{background:#0f6b5c1f}.doc-item strong{font-size:.98rem}.doc-item .meta{color:var(--ink-soft);font-size:.86rem}.status{align-self:start;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.28rem .55rem;border-radius:999px;background:#10242914}.status.completed{background:#04785724;color:var(--ok)}.status.failed{background:#b423181f;color:var(--danger)}.status.processing,.status.queued{background:#d9770629;color:#92400e}.detail{padding:1.25rem;display:grid;gap:1rem}.detail header{display:flex;justify-content:space-between;gap:1rem;align-items:start}.detail h2{margin:0;font-family:var(--font-display);font-size:1.45rem;letter-spacing:-.02em}.detail .path{margin:.35rem 0 0;color:var(--ink-soft);font-size:.9rem;word-break:break-all}.progress{height:8px;border-radius:999px;background:#10242914;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--sea),#1f9b84);transition:width .35s ease}.fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media(max-width:640px){.fields{grid-template-columns:1fr}}.field{display:grid;gap:.35rem}.field.full{grid-column:1 / -1}.field label{font-size:.8rem;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.raw-text{max-height:180px;overflow:auto;white-space:pre-wrap;background:#1024290a;border-radius:12px;padding:.85rem;font-size:.86rem;line-height:1.45}.empty{padding:2rem 1.25rem;text-align:center;color:var(--ink-soft)}.error-banner{margin:0 0 1rem;padding:.85rem 1rem;border-radius:12px;background:#b423181a;color:var(--danger);animation:rise .4s ease both}.toast-row{display:flex;flex-wrap:wrap;gap:.5rem;padding:.85rem 1rem 0}.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;border-radius:999px;background:#0f6b5c1a;color:var(--sea-deep);font-size:.85rem;font-weight:600;animation:pop .35s ease both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
