:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#0f172a;background-color:#e2e8f0}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}.app-shell{display:flex;flex-direction:column;min-height:100vh;background:#f5f6fa;color:#1f2430}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;background:#fff;border-bottom:1px solid rgba(15,23,42,.08)}.app-header h1{margin:0;font-size:1.5rem;font-weight:600}.subtitle{margin:.35rem 0 0;color:#475569}.actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.file-input{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1rem;border-radius:.5rem;background:#4f46e5;color:#fff;font-weight:500;cursor:pointer;position:relative;overflow:hidden}.file-input input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-input--disabled{background:#a5b4fc;cursor:not-allowed}.file-input--disabled input{cursor:not-allowed}.file-name{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.85rem;color:#475569}.actions .secondary{padding:.6rem .9rem;border-radius:.45rem;background:#e2e8f0;color:#1e293b;border:none;cursor:pointer;font-weight:500}.actions .secondary:hover{background:#cbd5f5}.banner{margin:1rem 2rem;padding:.8rem 1rem;border-radius:.5rem;font-weight:500}.banner--error{background:#dc26261a;color:#b91c1c}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#475569;padding:3rem 1rem;text-align:center}.hint{margin-top:.5rem;color:#64748b}.workspace{display:flex;flex:1;overflow:hidden}.documents-panel{width:240px;background:#fff;border-right:1px solid rgba(15,23,42,.08);display:flex;flex-direction:column}.documents-panel__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid rgba(15,23,42,.05)}.documents-panel__header h2{margin:0;font-size:1.05rem;font-weight:600}.documents-panel__count{background:#e0f2fe;color:#0369a1;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}.documents-panel__list{flex:1;overflow-y:auto;padding:.75rem .5rem;display:flex;flex-direction:column;gap:.5rem}.documents-panel__item{display:grid;grid-template-columns:1fr auto;gap:.25rem;padding:.75rem .9rem;border-radius:.5rem;border:1px solid transparent;background:transparent;text-align:left;cursor:pointer;transition:background .2s ease,border .2s ease;position:relative}.documents-panel__item:hover{background:#3b82f614}.documents-panel__item--active{border-color:#3b82f699;background:#3b82f61f}.documents-panel__name{font-weight:600;color:#1e293b;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.documents-panel__meta{font-size:.8rem;color:#475569}.documents-panel__status{margin-left:.35rem;color:#2563eb;font-weight:600}.documents-panel__remove{position:absolute;right:.35rem;top:.35rem}.documents-panel__remove button{border:none;background:transparent;cursor:pointer;font-size:.8rem;color:#94a3b8}.documents-panel__remove button:hover{color:#ef4444}.documents-panel__empty{padding:1rem 1.25rem;color:#64748b;font-size:.9rem}.viewer{flex:1;display:flex;flex-direction:column;padding:1.5rem 1.5rem 1.5rem 2rem;overflow:hidden}.viewer-toolbar{display:flex;gap:.75rem;margin-bottom:1rem}.viewer-toolbar button{padding:.65rem 1rem;border-radius:.45rem;border:none;background:#e2e8f0;color:#1e293b;font-weight:500;cursor:pointer}.viewer-toolbar .primary{background:#2563eb;color:#fff}.viewer-toolbar button:disabled{opacity:.6;cursor:not-allowed}.pages{flex:1;overflow-y:auto;padding-right:1rem}.page-wrapper{display:flex;justify-content:center;margin-bottom:1.5rem}.page-layer{position:relative;background:#fff;box-shadow:0 12px 32px #0f172a1f;border-radius:.5rem;overflow:hidden}.page-layer canvas{display:block}.empty-state.small{padding:2rem 1rem}.field-overlay{position:absolute;background:#a855f738;border-radius:.4rem;cursor:move;box-sizing:border-box;border:none}.field-overlay.selected{background:#9333ea47;box-shadow:0 0 0 2px #9333ea66}.field-overlay__label{display:none}.field-overlay__handle{position:absolute;width:10px;height:10px;border-radius:50%;background:#7c3aed;border:2px solid #ffffff;cursor:pointer}.field-overlay__handle--nw{top:-6px;left:-6px;cursor:nwse-resize}.field-overlay__handle--ne{top:-6px;right:-6px;cursor:nesw-resize}.field-overlay__handle--sw{bottom:-6px;left:-6px;cursor:nesw-resize}.field-overlay__handle--se{bottom:-6px;right:-6px;cursor:nwse-resize}.sidebar{width:320px;background:#fff;border-left:1px solid rgba(15,23,42,.08);padding:1.5rem 1.5rem 1.5rem 1rem;overflow-y:auto}.sidebar h2{margin-top:0;font-size:1.1rem}.field-list{display:flex;flex-direction:column;gap:.75rem}.field-list__item{border:1px solid rgba(148,163,184,.45);border-radius:.5rem;padding:.75rem;background:#f8fafc;transition:border .2s ease,box-shadow .2s ease}.field-list__item--active{border-color:#4338ca;box-shadow:0 0 0 2px #6366f14d}.field-list__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.field-list__title{font-size:.95rem;font-weight:600}.field-list__delete{background:transparent;border:none;color:#dc2626;font-weight:500;cursor:pointer}.field-list__label{display:flex;flex-direction:column;font-size:.85rem;gap:.35rem;margin-bottom:.5rem}.field-list__label input{padding:.35rem .5rem;border-radius:.4rem;border:1px solid rgba(148,163,184,.6);font-size:.85rem}.field-list__checkbox{display:flex;align-items:center;gap:.5rem;font-size:.85rem;margin-top:.5rem}.field-list__confidence{font-size:.75rem;color:#475569;margin-top:.35rem}.field-list__empty{padding:1.25rem;border-radius:.5rem;border:1px dashed rgba(148,163,184,.7);color:#475569;background:#f8fafc}@media(max-width:1024px){.workspace{flex-direction:column}.sidebar{width:100%;border-left:none;border-top:1px solid rgba(148,163,184,.35)}.viewer{padding-right:1.5rem}}.drop-overlay{position:fixed;inset:0;background:#2563eb1f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1000}.drop-overlay__content{background:#ffffffeb;border:2px dashed #2563eb;border-radius:.75rem;padding:2rem 3rem;color:#1e3a8a;font-size:1.25rem;font-weight:600;box-shadow:0 12px 32px #0f172a2e;text-align:center}
